Functiebeheer (Technisch)
Technisch ontwerp
Functiebeheer biedt een eenvoudige manier om medewerkers te categoriseren en te sorteren. Functies zijn losgekoppeld van permissies; een functie is puur een label, terwijl een groep de rechten bepaalt.
Datamodel
core.models.Function:title:CharFieldvoor de weergavenaam van de functie.ranking:IntegerFieldvoor de sorteervolgorde (standaard0).
Implementatiedetails
- Views: De logica bevindt zich in
core.views.admin.admin_functies,functie_updateendelete_functie. - Sortering: In diverse views (zoals
admin_users) worden gebruikers gesorteerd op basis vanprofile__function__ranking(ASC, nulls last). - Forms:
core.forms.FunctionFormwordt gebruikt voor het verwerken van input.
Autorisatie en beveiliging
- Toegang tot het beheerdashboard vereist
can_access_admin. - Voor alle mutaties is de specifieke permissie
can_manage_functiesvereist. - Verwijdering van een functie is een fysieke delete (
f.delete()), aangezien dit model geen soft-delete gebruikt.
Relevante bestanden
core/views/admin.py: Bevat de view-logica.core/models.py: DefinieertFunction.core/forms.py: BevatFunctionForm.