Inschrijven (Technisch)
De module Inschrijven binnen de Apotheek Jansen App functioneert als portaal voor externe inschrijfformulieren en activiteiten.
Technisch ontwerp
De module is ontworpen als een eenvoudige lijstbeheerder waarbij externe links (URLField) worden gekoppeld aan titels en verloopdata. De module bevat logica voor automatische filtering op basis van de huidige datum.
Datamodel
De module wordt ondersteund door het InschrijvingItem model in core/models.py.
- InschrijvingItem:
title: De naam van de activiteit of het formulier.url: De volledige URL naar de externe omgeving.verloopdatum: Datum waarna het item automatisch wordt verborgen (optioneel).created_by: Verwijzing naar de gebruiker die het item heeft aangemaakt.
Implementatiedetails
- Lijstweergave: De
inschrijvingenview incore/views/inschrijven.pyfiltert de items in de database. Alleen items waarbij deverloopdatumin de toekomst ligt ofNULLis, worden getoond aan reguliere gebruikers. - Sorteervolgorde: Items worden primair gesorteerd op
verloopdatum(oplopend) en vervolgens optitle. Hierdoor verschijnen items die bijna verlopen bovenaan de lijst. - CRUD Operaties: Beheerders met de juiste rechten kunnen direct vanuit de interface nieuwe items toevoegen of bestaande items bewerken via modals.
Autorisatie en beveiliging
- Gebruikers hebben de permissie
can_view_inschrijvennodig om de lijst te bekijken. - Beheerfuncties (toevoegen, bewerken, verwijderen) zijn beperkt tot gebruikers met de permissie
can_edit_inschrijven. - Bij het openen van externe links wordt
target="_blank"gebruikt om de veiligheid en UX van de app te waarborgen.
Relevante bestanden
core/models.py: Definitie vanInschrijvingItem.core/views/inschrijven.py: Logica voor weergave en beheer.core/templates/inschrijven/index.html: Frontend template.