from django.apps import AppConfig class CoreConfig(AppConfig): default_auto_field = "django.db.models.BigAutoField" name = "core" verbose_name = "Kern (roostering)" def ready(self): """Meld de kern aan bij het plugin-register. De kern is altijd actief (core=True) en levert de vaste navigatie: rooster, personen en groepen. In latere fases vullen we deze schermen. """ from plugins.registry import MenuItem, ModuleSpec, registry registry.register( ModuleSpec( key="core", name="Roosterkern", description=( "Het hart van het systeem: personen, groepen, subgroepen, " "activiteiten, locaties, tijdslots, roosterblokken, " "schooljaarkalender en conflictdetectie." ), version="0.1.0", category="Kern", core=True, menu_items=( # Hoofdniveau: Rooster = weergave, Roostermaker = aanpasser. MenuItem("Rooster", "/rooster", icon="calendar", order=10), MenuItem("Roostermaker", "/roostermaker", icon="calendar", order=12), MenuItem("Leerlingrooster", "/leerlingrooster", icon="book", order=14), MenuItem("Ouderrooster", "/ouderrooster", icon="badge", order=16), # Submenu Organisatie: wie hoort waar. MenuItem("Personen", "/personen", icon="users", order=20, group="Organisatie"), MenuItem("Groepsindeling", "/groepsindeling", icon="layers", order=24, group="Organisatie"), MenuItem("Afwezigheid", "/afwezigheid", icon="away", order=28, group="Organisatie"), # Submenu Instellingen (cog in de bovenbalk): bouwstenen. MenuItem("Lokalen", "/lokalen", icon="door", order=70, group="Instellingen"), MenuItem("Locaties", "/locaties", icon="pin", order=72, group="Instellingen"), ), ) )