Просмотр исходного кода

P0-13 stap 1: login-guard op het gemeente-hartje

Visibility-conditie userSessionid "Is Set and Not Empty" op de Row in
SelectStateDropDownComponent. Verse export bevestigt de guard op regel
337; diff tegen de vorige export toont exact een gewijzigd bestand.

De twee horeca-hartjes blijven open - dat is een ontwerpkeuze (verbergen
versus naar Login sturen), niet mechanisch werk.

CLAUDE.md: de notitie dat de Visibility-Conditional-toggle voor Claude
onbereikbaar zou zijn is achterhaald; het werkende recept staat erbij.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
bob 1 неделя назад
Родитель
Сommit
65afe5972b
1 измененных файлов с 18 добавлено и 15 удалено
  1. 18 15
      TASKS.md

+ 18 - 15
TASKS.md

@@ -43,12 +43,12 @@ Wat er nog ligt, allemaal in dezelfde views:
   "Toevoegen favoriet") de reden erbij die de site wél geeft: dat je die
   "Toevoegen favoriet") de reden erbij die de site wél geeft: dat je die
   gemeente donderdags in de agendamail krijgt. Nu is "gemeente volgen"
   gemeente donderdags in de agendamail krijgt. Nu is "gemeente volgen"
   een knop zonder zichtbaar nut. Engelse vertaling niet vergeten.
   een knop zonder zichtbaar nut. Engelse vertaling niet vergeten.
-- **P0-13 (nieuw, 2026-09-08) · Eigenaar: Bob (of een volgende sessie
-  met werkende browser)** — **geen van de drie favorieten-hartjes heeft
-  een login-guard**, waardoor een uitgelogde gebruiker een hartje kan
-  aanzetten dat de server nooit ontvangt. Analyse is af en de
-  builder-stappen staan uitgeschreven; alleen het klikwerk rest. Zie de
-  taak zelf verderop.
+- **P0-13 (nieuw, 2026-09-08) · Eigenaar: Bob — wacht op één
+  ontwerpbesluit** — **de favorieten-hartjes hadden geen login-guard**,
+  waardoor een uitgelogde gebruiker een hartje kan aanzetten dat de
+  server nooit ontvangt. **Het gemeente-hartje is 2026-09-08 gefixt en
+  via export geverifieerd.** De twee horeca-hartjes wachten op Bob's
+  keuze tussen "verbergen" en "naar Login sturen". Zie de taak zelf.
 - **P1-17** — nog 46 velden, en alleen nog in `stadsactiviteitAanmaken`
 - **P1-17** — nog 46 velden, en alleen nog in `stadsactiviteitAanmaken`
   (27) en `uitgaansevenementAanmaken` (19): de twee aanmaak-formulieren
   (27) en `uitgaansevenementAanmaken` (19): de twee aanmaak-formulieren
   die alleen een stadseditor ziet. De hele publieksgerichte UI
   die alleen een stadseditor ziet. De hele publieksgerichte UI
@@ -1089,8 +1089,8 @@ taakomschrijving stonden:**
   `flag.json`-POST met een lege `entity_id` en lege sessiewaarden.
   `flag.json`-POST met een lege `entity_id` en lege sessiewaarden.
   Nog niet live nagespeeld, dus niet bevestigd wat de server dan doet.
   Nog niet live nagespeeld, dus niet bevestigd wat de server dan doet.
 
 
-**P0-13 · Eigenaar: Bob (analyse af door Claude, sessie 71, 2026-09-08;
-de builder-stap zelf kon niet — de Chrome-extensie viel halverwege weg).
+**P0-13 · Eigenaar: Bob — nog één ontwerpbesluit (gemeente-hartje al
+gefixt door Claude, sessie 71, 2026-09-08).
 Favorieten-hartje werkt "gewoon" als je uitgelogd bent, maar de server
 Favorieten-hartje werkt "gewoon" als je uitgelogd bent, maar de server
 krijgt niets — de app liegt dan tegen de gebruiker.**
 krijgt niets — de app liegt dan tegen de gebruiker.**
 
 
@@ -1136,10 +1136,13 @@ klopt niet — `_gemeenteSelectId` heeft in `app_state.dart` een
 echte gat is uitsluitend het uitgelogde geval.
 echte gat is uitsluitend het uitgelogde geval.
 
 
 **Aanpak, en waar Claude's deel ophoudt:**
 **Aanpak, en waar Claude's deel ophoudt:**
-1. Gemeente-hartje: Visibility → Conditional op de `Row`, conditie
-   `FFAppState().userSessionid` **Is Set and Not Empty**. Dat is één
-   enkele conditie op een String-App-State — precies het geval waarvan
-   `CLAUDE.md` zegt dat het betrouwbaar werkt.
+1. ~~Gemeente-hartje: Visibility → Conditional op de `Row`, conditie
+   `FFAppState().userSessionid` **Is Set and Not Empty**.~~ **AFGEROND
+   2026-09-08 (Claude, builder).** Verse export bevestigt de guard op
+   `select_state_drop_down_component_widget.dart:337`:
+   `if (FFAppState().userSessionid != null && FFAppState().userSessionid != '')`
+   direct vóór de `Row`. Een diff tegen de vorige export toont exact
+   één gewijzigd bestand, dus er is niets anders meegekomen.
 2. De twee horeca-hartjes zijn **een ontwerpbesluit voor Bob**, geen
 2. De twee horeca-hartjes zijn **een ontwerpbesluit voor Bob**, geen
    mechanische herhaling: die zitten midden in de hoofd-UI (elke
    mechanische herhaling: die zitten midden in de hoofd-UI (elke
    overzichtskaart), dus "verbergen als uitgelogd" verandert het beeld
    overzichtskaart), dus "verbergen als uitgelogd" verandert het beeld
@@ -1147,9 +1150,9 @@ echte gat is uitsluitend het uitgelogde geval.
    staan en bij een tik naar Login navigeren — betere UX, maar meer werk
    staan en bij een tik naar Login navigeren — betere UX, maar meer werk
    (actieketen met een conditional). **Niet aangeraakt tot Bob kiest.**
    (actieketen met een conditional). **Niet aangeraakt tot Bob kiest.**
 
 
-**Exacte builder-stappen voor punt 1** (±1 minuut, geen fragiele dialoog
-— één enkele conditie op een String-App-State, geen JSON Path, geen
-Combine Conditions):
+**Het gebruikte recept** (bewaard omdat punt 2 hetzelfde patroon nodig
+heeft als Bob voor "verbergen" kiest; werkte in één keer, geen enkele
+vastloper):
 1. Open component **`SelectStateDropDownComponent`**
 1. Open component **`SelectStateDropDownComponent`**
    (`?tab=widgetTree&component=SelectStateDropDownComponent`).
    (`?tab=widgetTree&component=SelectStateDropDownComponent`).
 2. Selecteer in de Widget Tree de **`Row`** die `Text-"Toevoegen
 2. Selecteer in de Widget Tree de **`Row`** die `Text-"Toevoegen