Parcourir la source

Taak 130-H/I: bouwdraaiboek app-kant klaar

Alles wat zonder het OneAll-abonnement kon is nu af. Inclusief een
manier om de app-keten te testen zonder de upgrade.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
bob il y a 15 heures
Parent
commit
02674c3c88
1 fichiers modifiés avec 14 ajouts et 2 suppressions
  1. 14 2
      TASKS.md

+ 14 - 2
TASKS.md

@@ -1941,8 +1941,8 @@ OneAll als client. Er verandert dus niets aan de Facebook-instellingen van de si
 | **130-E** | ✅ **Code klaar** (2026-09-21), Bob deployt | `POST /flutterdrup/app_social_login/claim.json` → `{status: pending\|ok\|error}`; bij `ok` staan `sessid`/`session_name`/`token`/`user` erin als bij `user/login.json`, maar met een **klein** user-object (uid/name/mail) — geen volledig object in een anoniem claimbaar antwoord. Access callback `_custom_social_app_claim_access()` (TRUE, huispatroon van `custom_plaatsen_access`) |
 | **130-F** | 🟡 **Werkt op devbob** (2026-09-21) | 4/4 tests groen: callback rendert, callback→claim vinden elkaar via de cache, een state is eenmalig, ongeldige state geeft 400. **Nog te doen:** de bijgewerkte `.inc` + de tweede `hook_menu`-regel (pad-variant) plaatsen, en daarna alles naar **productie** — de app praat met uitgaanskrant.com |
 | **130-G** | ✅ **Code klaar** (2026-09-21), nog niet in de builder | `socialLoginStart(provider)` — state genereren, Custom Tab openen (`LaunchMode.inAppBrowserView`, **niet** `inAppWebView`), elke 2 s claimen, App State vullen als `drupalLogin`, tab sluiten met `closeInAppWebView()`. Timeout 3 min. `dart analyze` 0 errors. Wacht op 130-F. ⚠️ Te verifiëren op een toestel: of Android de polling niet throttlet terwijl de Custom Tab voorgrond is — zo ja, claimt hij alsnog bij terugkeer, want de state is 5 min geldig |
-| **130-H** | Claude | Knoppen op `lib/login/login/login_widget.dart` onder het bestaande formulier |
-| **130-I** | Claude | Vertalingen (P1-17-patroon: globe per widget) |
+| **130-H** | 📋 **Draaiboek klaar** (2026-09-21) | Twee knoppen onder de bestaande Inloggen-knop, gemaakt door die knop te dupliceren (erft stijl). Facebook `#1877F2`/wit, Google wit met rand `#DADCE0`. Per knop een **unieke** Action Output Variable Name, anders dubbele declaratie in het model. Stappen in `130-app-draaiboek.md` |
+| **130-I** | 📋 **Teksten klaar** (2026-09-21) | *Log in with Facebook* / *Log in with Google*, via het globe-icoontje. ⚠️ Een gedupliceerde knop erft de Engelse vertaling van het origineel, dus dit hoort bij 130-H, niet erna |
 | **130-J** | Bob | Echte doorloop met een Facebook- én een Google-account op een profile-build. Claude kan dit niet — geen wachtwoorden |
 | **130-K** | ✅ **Tekst klaar** (2026-09-21), Bob voert door | Drie wijzigingen in `/nl/support/privacybeleid` (sectie 1a account, sectie 3 derden met OneAll+Meta+Google, datum/draft) + in Data Safety komt **Personal info → Name** erbij als *Collected*. Volledige tekst in `130-K-privacy.md`. ⚠️ **Losse bug daarbij gevonden: de privacylink in de cookiebanner geeft 404** (`/nl/support/algvoorwaarden`, moet `/nl/support/algemenevoorwaarden` zijn) — Play eist een werkende privacy-URL, dus dit is sowieso repareren op `/admin/config/system/eu-cookie-compliance` |
 | **130-L** | Claude | Bevindingen naar `CLAUDE.md` |
@@ -1973,5 +1973,17 @@ het tweede `hook_menu`-item nog naar **productie** (de oude versie staat er al).
   misgaan. De query-variant blijft bestaan als terugval en om handmatig te
   testen — daarom staan er **twee** `hook_menu`-items.
 
+**Alles wat zonder het abonnement kon, is af (2026-09-21).** Backend getest,
+app-code geschreven, privacytekst klaar, bouwdraaiboek klaar. Openstaand tot de
+upgrade: alleen 130-A, en daarna G t/m J in één sessie.
+
+⚠️ **Besluit Bob 2026-09-21: Claude werkt pas in FlutterFlow zodra het
+abonnement is aangepast.** Tot die tijd alleen voorbereiden.
+
+💡 **De app-keten is te testen zonder de upgrade**: vervang in
+`socialLoginStart` de `startUrl` tijdelijk door `callbackUri`, dan slaat hij
+OneAll over en loopt de rest van de keten wél (browser, polling, foutafhandeling,
+tab sluiten). Zie het draaiboek.
+
 **Volgorde:** A t/m C zijn besluiten en blokkeren D. F blokkeert G. K moet af
 vóór de Play-inzending als 130 in de eerste release meegaat.