D1 — Vierde bestemming “Mijn bewijs” in de eLearning-module #2037

Closed
opened 2026-09-09 20:47:10 +00:00 by brenno · 2 comments
Owner

Onderdeel van het bouwplan voor bewijs bij badges. Het ontwerp staat in de
OciServe-repo: docs/EVIDENCE.md (model, zekerheidsniveaus, bewaren) en
docs/adr/0015-evidence-assurance-and-retention.md (de productbesluiten).
OciDeck is in deze keten de kant van de cursist.

Waarom dit bestaat

Voor sommige badges moet je bewijs aanleveren: een EHBO- of BHV-diploma, een
medische verklaring, een taalvaardigheidsverklaring, een gedragsverklaring, of
een diploma van iets anders. Een beoordelaar stelt vast of het klopt, en pas
daarna wordt de badge toegekend.

Vandaag kan de cursist in OciDeck niets van dit alles: hij ziet zijn badges
niet en hij kan niets aanleveren. De eLearning-module heeft drie bestemmingen —
Mijn cursussen, Voortgang, Gegevens — en bewijs komt er als vierde bij.

Wat dit toevoegt. Een vierde bestemming in de zijbalk van de
eLearning-module, naast Mijn cursussen, Voortgang en Gegevens. Bovenaan de
badges die je hebt en tot wanneer ze gelden; daaronder wat er nog nodig is.

De ontwerpregel voor het hele scherm: begin bij de badge, niet bij een
uploadvak.
Niet "sleep hier een bestand", maar "Voor Bedrijfshulpverlener heb
je nog nodig: je BHV-certificaat"
met één knop eronder. Een cursuseis linkt naar
de cursus; een bewijseis krijgt een knop om aan te leveren.

Taal. Het woord "kwalificatie" hoort hier niet thuis. Een cursist heeft
badges, diploma's en certificaten — geen kwalificaties met een status.

Grens. Bewijs is serverdata. Het komt nooit in een .md, een sidecar of een
deck terecht; dezelfde grens die het eLearning-ontwerp trekt voor
learnerresultaten geldt hier onverkort.

Te doen

  1. Vierde bestemming in ociserve_courses_sidebar.dart.
  2. Modellen voor bewijssoort, bewijsstuk en badge; routes erbij in
    ociserve_gateway.dart, langs de bestaande netwerkgrens.
  3. Bovenaan: badges met hun geldigheidsdatum. Daaronder per badge wat er nog
    ontbreekt, met per eis het juiste vervolg.
  4. Houd ociserve_models.dart onder de 1000 regels — begin liever meteen een
    eigen modelbestand.
  5. Regel in docs/SOURCE_MAP.md voor elk nieuw bestand.

Bestanden (voorstel)

lib/models/ociserve_evidence.dart (nieuw)
lib/services/ociserve/ociserve_gateway.dart
lib/widgets/dialogs/ociserve_courses_sidebar.dart
lib/widgets/dialogs/ociserve_evidence.dart (nieuw)
docs/SOURCE_MAP.md

Klaar wanneer

  • Een cursist ziet zijn badges en wat er ontbreekt, zonder ergens het
    woord "kwalificatie" tegen te komen.
  • De bestemming werkt met toetsenbord en schermlezer, en overleeft 200%
    tekstschaal.

Afhankelijkheden

Wacht op brenno/OciServe#519 (zelfpad voor aanleveren).

Vaste verplichtingen in deze repo

  • Geen zichtbare tekst buiten l10n.d('...'). Elke nieuwe string betekent
    32 vertalingen via make add-l10n SPEC=...; make l10n-check bewaakt de
    pariteit.
  • Elk nieuw bestand in lib/ krijgt een regel in docs/SOURCE_MAP.md en
    moet in minstens één test voorkomen, anders valt make check.
  • Bestanden blijven onder 1000 regels; splits met part in plaats van te
    groeien.
  • Een nieuw topniveauscherm gaat door de overflow-stresstest (200% tekstschaal).
  • make check groen vóór de merge.
  • Werk in een branch, nooit direct op main.
> Onderdeel van het bouwplan voor bewijs bij badges. Het ontwerp staat in de > OciServe-repo: `docs/EVIDENCE.md` (model, zekerheidsniveaus, bewaren) en > `docs/adr/0015-evidence-assurance-and-retention.md` (de productbesluiten). > OciDeck is in deze keten de kant van de cursist. ## Waarom dit bestaat Voor sommige badges moet je bewijs aanleveren: een EHBO- of BHV-diploma, een medische verklaring, een taalvaardigheidsverklaring, een gedragsverklaring, of een diploma van iets anders. Een beoordelaar stelt vast of het klopt, en pas daarna wordt de badge toegekend. Vandaag kan de cursist in OciDeck **niets** van dit alles: hij ziet zijn badges niet en hij kan niets aanleveren. De eLearning-module heeft drie bestemmingen — Mijn cursussen, Voortgang, Gegevens — en bewijs komt er als vierde bij. **Wat dit toevoegt.** Een vierde bestemming in de zijbalk van de eLearning-module, naast Mijn cursussen, Voortgang en Gegevens. Bovenaan de badges die je hebt en tot wanneer ze gelden; daaronder wat er nog nodig is. **De ontwerpregel voor het hele scherm: begin bij de badge, niet bij een uploadvak.** Niet "sleep hier een bestand", maar *"Voor Bedrijfshulpverlener heb je nog nodig: je BHV-certificaat"* met één knop eronder. Een cursuseis linkt naar de cursus; een bewijseis krijgt een knop om aan te leveren. **Taal.** Het woord "kwalificatie" hoort hier niet thuis. Een cursist heeft badges, diploma's en certificaten — geen kwalificaties met een status. **Grens.** Bewijs is serverdata. Het komt nooit in een `.md`, een sidecar of een deck terecht; dezelfde grens die het eLearning-ontwerp trekt voor learnerresultaten geldt hier onverkort. ## Te doen 1. Vierde bestemming in `ociserve_courses_sidebar.dart`. 2. Modellen voor bewijssoort, bewijsstuk en badge; routes erbij in `ociserve_gateway.dart`, langs de bestaande netwerkgrens. 3. Bovenaan: badges met hun geldigheidsdatum. Daaronder per badge wat er nog ontbreekt, met per eis het juiste vervolg. 4. Houd `ociserve_models.dart` onder de 1000 regels — begin liever meteen een eigen modelbestand. 5. Regel in `docs/SOURCE_MAP.md` voor elk nieuw bestand. ## Bestanden (voorstel) ``` lib/models/ociserve_evidence.dart (nieuw) lib/services/ociserve/ociserve_gateway.dart lib/widgets/dialogs/ociserve_courses_sidebar.dart lib/widgets/dialogs/ociserve_evidence.dart (nieuw) docs/SOURCE_MAP.md ``` ## Klaar wanneer - Een cursist ziet zijn badges en wat er ontbreekt, zonder ergens het woord "kwalificatie" tegen te komen. - De bestemming werkt met toetsenbord en schermlezer, en overleeft 200% tekstschaal. ## Afhankelijkheden Wacht op brenno/OciServe#519 (zelfpad voor aanleveren). ## Vaste verplichtingen in deze repo - **Geen zichtbare tekst buiten `l10n.d('...')`.** Elke nieuwe string betekent 32 vertalingen via `make add-l10n SPEC=...`; `make l10n-check` bewaakt de pariteit. - **Elk nieuw bestand in `lib/` krijgt een regel in `docs/SOURCE_MAP.md`** en moet in minstens één test voorkomen, anders valt `make check`. - Bestanden blijven onder 1000 regels; splits met `part` in plaats van te groeien. - Een nieuw topniveauscherm gaat door de overflow-stresstest (200% tekstschaal). - `make check` groen vóór de merge. - Werk in een branch, nooit direct op `main`.
Author
Owner

Integratiecontrole — dit issue heeft een gegevensbron nodig die nog niet
bestaat.

Het scherm toont "wat er nog nodig is per badge". Die evaluatie zit vandaag
ingebakken in het toekennen op de server en levert alleen een foutmelding op;
er is geen route die per eis een status teruggeeft.

Dat leesmodel is aangevraagd als brenno/OciServe#529. Dit issue wacht daarop.
Leid de status niet zelf af uit losse lijsten — dan ontstaat er een tweede
implementatie van de eisregels in een client.

Zie ook #2042 (contractpoort tegen de spec), die hier het beste meteen naast
loopt.

**Integratiecontrole — dit issue heeft een gegevensbron nodig die nog niet bestaat.** Het scherm toont "wat er nog nodig is per badge". Die evaluatie zit vandaag ingebakken in het toekennen op de server en levert alleen een foutmelding op; er is geen route die per eis een status teruggeeft. Dat leesmodel is aangevraagd als brenno/OciServe#529. Dit issue wacht daarop. Leid de status **niet** zelf af uit losse lijsten — dan ontstaat er een tweede implementatie van de eisregels in een client. Zie ook #2042 (contractpoort tegen de spec), die hier het beste meteen naast loopt.
Author
Owner

Reeds geimplementeerd op main in commit 8bd93c854 (PR gemerged). Tests in ociserve_evidence_test.dart en ociserve_evidence_ui_test.dart dekken het bewijs. Gesloten omdat het werk al geland was.

Reeds geimplementeerd op main in commit 8bd93c854 (PR gemerged). Tests in ociserve_evidence_test.dart en ociserve_evidence_ui_test.dart dekken het bewijs. Gesloten omdat het werk al geland was.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
LibreKAT/Ocideck#2037
No description provided.