- Cascade delete on all entities (student, module, UE, user, role, promotion)
- Fix Response body reuse bug (factory functions instead of constants)
- Student note viewing via CAS uid (strip non-digit prefix)
- Fix middleware page visibility for students in LOCAL mode
- Import result popup component (shared across all import pages)
- Fix student import to use numEtud from Excel
- Bulk student selection with promo change and delete
- Move UE/UE-Module API and pages from notes to admin module
- Move promotions page from students to admin module
- Multi-year maquette import with per-year promo selection
- Inline promo creation in maquette import
- Static Excel templates (students, notes, maquette)
- Fix XLSX export using blob download instead of writeFile
- Allow students to read modules list (GET /modules)
Add routes for modules, users, notes import, recap, and islands edit.
Update middleware to filter pages based on user role.
feat(admin): add modal for assigning teaching, replace delete icon with SVG
refactor(server): rename port variable to uppercase and add env support
feat(admin): add enseignants, users, filtering and role colors
refactor(AdminRoles): improve role UI and add permission mapping
feat(admin-users): add role colors, role filter, and modal for creating users
feat(admin): add EditModule component for module editing
feat(admin): add EditUser page for editing users and managing enseignements
feat(promo-select): display id and name in options for promo dropdown
feat: add edit module/user routes, inline coeff editing, UI tweaks
refactor: UI – icons, modal overlay, grid, subtitles, import margin
feat(notes): add NoteRecap island component for student grade recap
feat: add adjust controls to UI component
Add placeholder, value binding, onInput handler, apply/reset buttons,
and display of adjusted value.
feat(notes): add edition and recap pages, update styles and links