# Roosterwijs — Roadmap / backlog Geplande verbeteringen, gegroepeerd. `[ ]` = nog te doen, `[x]` = klaar. Afgeronde fases (0–5) staan in `README.md`. Dit bestand bevat het werk dat nog volgt. ## Fase 6 — Rooster bewerken (snel & overzichtelijk) - [x] **Blokken kopiëren** naar andere tijden en dagen (via het bewerkpaneel naar meerdere tijdsloten tegelijk). - [x] **Blok aanpassen bij klik**: klik op een blok in de Roostermaker opent een bewerkpaneel. - [x] **Snelle inline-aanpassing per blok**: vak/activiteit, locatie, doelgroep (groep/subgroep/leerling), begeleiders en opmerking wijzigen in het paneel. - [x] Vanuit de Roostermaker (tab **Indeling**) direct **subgroepen aanmaken** onder een hoofdgroep, met verantwoordelijke(n) — kolomsgewijs overzicht van subgroepen, vakken en wie verantwoordelijk is. - [x] **Sneltoetsen** in de Roostermaker: N (nieuw blok), ←/→ (week terug/vooruit), T (deze week), Esc (paneel/sluiten); met hint. - [x] **Rol van een begeleider zichtbaar** in de Roostermaker: afkorting (LK/PO/KO) bij de begeleider in een blok en de volledige rol bij het toewijzen. - [x] **Vak-wizard** (module `blokwizard`, default uit): stap-voor-stap vak → voor wie → wanneer/waar (+periode) → begeleiders → controle → inplannen. - [x] **Personen-wizard + import** (module `personenwizard`, default uit): leerling/medewerker enkel toevoegen óf in bulk via plakken/CSV (komma, puntkomma of tab; koprij optioneel) met preview; endpoint /api/personen-import/. ## Fase 6 — Overzicht & navigatie - [~] **Alle klassen verwerkbaar in het rooster**, overzichtelijk gemaakt — een **scope-filter** (per klas/leerplein/leerling/personeel) is toegevoegd in Rooster en Roostermaker; een vast **per-leerplein-overzicht** kan nog volgen. - [ ] **Snelmenu** om per klas of per leerplein direct het rooster te tonen. - [x] **Schooljaar uit het hoofdmenu** halen en **onder Rooster** plaatsen (tab "Schooljaar") met snelle invoer + kalenderbeheer. - [x] **Instellingenmenu** (subtiel onderaan de zijbalk) waaronder **Gebruikers** en **Modulebeheer** verdwijnen. - [x] De hint **"Menu's verschijnen alleen voor ingeschakelde modules."** uit de zijbalk verwijderd. ## Vakken - [x] Per vak **automatisch een passend icoon** (afgeleid van de naam) — getoond in het rooster en bij Activiteiten/vakken. - [x] Optioneel: een icoon handmatig kunnen kiezen/overschrijven (`icoon`-veld op Activiteit + migratie core 0007; leeg = automatisch op naam). ## Stage-module — uitbreidingen - [x] **Aparte (stage)locaties** kunnen toevoegen, los van de gewone lokalen. - [x] Een **begeleider aan meerdere stages** koppelen, maar **niet tegelijk aan een theorievak** (conflict wordt voorkomen bij opslaan + gesignaleerd via `/api/stage-conflicten/`). - [x] Een leerling **verdwijnt op een stagedag(deel) uit de klas** in het rooster (in het weekrooster gemarkeerd "Op stage" bij de betreffende blokken). - [x] Stage instelbaar **per blok, per dagdeel of per dag**. ## Lokalen & dubbele boekingen - [x] **Lokalen** als apart roomsysteem (naast de vrije Locaties), met capaciteit; gedeeld door lessen en interne stages. - [x] **Dubbele-boekingcheck** per tijdslot: gemeld in het conflicten-overzicht; per school instelbaar om opslaan **hard te blokkeren** (Lokalen-scherm). - [x] Interne stages gebruiken nu een **lokaal** (de aparte stagelocatie-lijst is vervallen) en tellen mee in de dubbele-boekingcheck. ## Groepsindeling - [x] **Eén sleep-overzicht**: bovenliggende groep → groep → subgroep genest, met een zijbalk "nog niet ingedeeld". Personen naar elk niveau slepen; × haalt ze weer weg. Leerlingen licht gekleurd, personeel donker; duidelijke gekleurde structuur per niveau. Inline aanmaken/hernoemen. - [x] **Toon-filter** (Allen / Leerlingen / Personeel) en **multi-select**: meerdere personen aanvinken en in één keer in een gekozen groep plaatsen (of de selectie samen slepen). ## Koppelingen & inzetregels - [x] **Personeel koppelen aan leerplein en subgroep** (personeelsformulier: stamgroep, subgroep-begeleiding én leerpleinen). - [x] **Theorievakken automatisch beschikbaar voor leerkrachten** (een leerkracht mag altijd op een theorievak ingezet worden; daarnaast worden theorievakken bij het aanmaken automatisch gekoppeld). - [x] **Inzetregel begeleider ↔ vak:** leerkracht/praktijkondersteuner alleen op gekoppelde vakken (leerkracht bovendien altijd op theorievakken); **klassenondersteuner overal**. - [x] **Hiërarchie vastgelegd:** subgroep → groep (Subgroep.groep) en groep → leerplein (Leerplein.groepen). ## Module: Urenoverzicht - [x] **Module die berekent hoeveel uur een groep per vak krijgt.** (module `uren`, default uit; endpoint /api/urenoverzicht/) - [x] Optie om dit **per leerling** te tonen, **inclusief stage-uren**. - [x] **Filters op de uren-tabellen** (per groep, per vak, zoek op leerling). - [x] **Geschiedenis** per leerling: momentopnames opslaan (model UrenMomentopname) en een tabel leerling × datum met totaal-uren. - [x] **Vrije dagen tellen niet mee** in deze urenberekening. ## Roostermaker — vrije dagen & blok vervallen - [x] **Vak met geldigheidsperiode**: een blok kan gelden **van/tot** een datum (leeg = altijd). `geldig_van == geldig_tot` = eenmalig op die dag. - [x] **Dag leegmaken + eenmalig alternatief**: per dag knop 🧹 (alle blokken díe dag laten vervallen, blijft lesdag) en ➕ (eenmalig blok op die dag), zonder gevolgen voor andere dagen. - [x] **Vrije/vakantie-/studiedagen niet bruikbaar** in de Roostermaker: een blok slepen naar een vrije dag wordt geweigerd; vrije dagkolommen zijn gearceerd; dag-acties (leegmaken/eenmalig) verschijnen niet op vrije dagen. - [x] De actie heet nu **"dit vak laten vervallen"** (per blok, juiste tekst). - [x] Een **hele dag laten vervallen** kan direct in het weekrooster (knop in de dagkop; maakt een vrije dag aan, met "weer lesdag" om te herstellen). ## Pictogrammen & leerlingweergave (ZML) - [x] **Pictogram per vak uploaden** (afbeelding) en tonen in het rooster. - [x] **Grote leerlingweergave** (één dag, groot pictogram + vakkleur) en **ouderweergave** (weekoverzicht), per leerling of groep. - [x] Vakkleur duidelijk gebruikt in de weergaven. - [x] **Dagdeel-indeling (Ochtend/Middag)** met koppen + scheidingslijn in de leerling- en ouderweergave (grens 12:00). - [ ] Later: pictogrammen ook per losse activiteit/stap binnen een dagdeel. ## Later - [ ] **Module: automatisch rooster genereren.** De gebruiker ge