Audiences: student (18+), parent.
PREREQUISITE (contract-v2 A4): learnerId/parentIds are currently NC user IDs — remap to UUID domain refs (LearnerProfile) before contributing. Parents scope via A5 via join (parentIds → learner records).
Student — read: Enrolment, GradeEntry/FinalGrade, AttendanceRecord, Assignment/Submission, LearningPlan, Credential; create: Submission, ExcuseRequest, ExternalTrainingRecord; actions: sign LearningPlan, acknowledge grade.
Parent — read: linked learner's records; create: ExcuseRequest (submittedAuthLevel eIDAS field already modeled — wire to contract-v2 trust levels); actions: co-sign LearningPlan.
Inbox: GradeNotification schema exists; attendance flags, due-date reminders.
Public credential-verify endpoint stays anonymous (not portal).
Per ADR-046 + contract-v2 amendment (hydra, 2026-07-06) and the fleet review PORTALIQ-FLEET-REVIEW-2026-07-06.md (apps-extra). Delivery: one portal-contribution openspec change in this repo — a plain OCA\{App}\Portal\PortalContributionProvider (duck-typed: getAudiences(): array + getContribution(array $subject): ?array; NO portaliq import, NO info.xml dependency — without portaliq the class is inert). Data stays in OpenRegister; portaliq reads it scoped by the declared scopeField. Scoping properties must be UUID domain refs, never NC user IDs.
Gemigreerd van Codeberg — oorspronkelijk Conduction/scholiq#39, geopend door rubenvdlinde op 2026-07-06.
Audiences:
student(18+),parent.PREREQUISITE (contract-v2 A4):
learnerId/parentIdsare currently NC user IDs — remap to UUID domain refs (LearnerProfile) before contributing. Parents scope via A5viajoin (parentIds → learner records).Student — read: Enrolment, GradeEntry/FinalGrade, AttendanceRecord, Assignment/Submission, LearningPlan, Credential; create: Submission, ExcuseRequest, ExternalTrainingRecord; actions: sign LearningPlan, acknowledge grade.
Parent — read: linked learner's records; create: ExcuseRequest (
submittedAuthLeveleIDAS field already modeled — wire to contract-v2 trust levels); actions: co-sign LearningPlan.Inbox: GradeNotification schema exists; attendance flags, due-date reminders.
Public credential-verify endpoint stays anonymous (not portal).
Per ADR-046 + contract-v2 amendment (hydra, 2026-07-06) and the fleet review
PORTALIQ-FLEET-REVIEW-2026-07-06.md(apps-extra). Delivery: oneportal-contributionopenspec change in this repo — a plainOCA\{App}\Portal\PortalContributionProvider(duck-typed:getAudiences(): array+getContribution(array $subject): ?array; NO portaliq import, NO info.xml dependency — without portaliq the class is inert). Data stays in OpenRegister; portaliq reads it scoped by the declaredscopeField. Scoping properties must be UUID domain refs, never NC user IDs.Gemigreerd van Codeberg — oorspronkelijk Conduction/scholiq#39, geopend door
rubenvdlindeop 2026-07-06.