Ersteinrichtung
Nach dem ersten Start der Container müssen folgende Schritte durchgeführt werden.
1. Superuser erstellen
Der Superuser hat vollen Zugriff auf alle Funktionen.
docker exec -it resource-planning-restapi python manage.py createsuperuser
Sie werden nach Benutzername, E-Mail und Passwort gefragt.
2. Fixture-Daten laden
Die Anwendung enthält vorkonfigurierte Einsatzarten und Berechtigungsgruppen, die geladen werden sollten:
Einsatzarten
docker exec -it resource-planning-restapi python manage.py loaddata operation_types
Berechtigungsgruppen
docker exec -it resource-planning-restapi python manage.py loaddata groups
Die Standard-Berechtigungsgruppen werden automatisch neuen Benutzern zugewiesen (Auszubildende erhalten Schüler-Gruppen, Lehrer erhalten Lehrer-Gruppen).
3. Schuljahreskalender anlegen
Bei einer Neuinstallation legt die Anwendung bewusst kein Schuljahr an — ein geratener Stichtag wäre schlimmer als gar keiner. Ohne mindestens ein Schuljahr lässt sich kein Auszubildender anlegen und kein Stundeneintrag erfassen.
Legen Sie das erste Schuljahr über die Oberfläche unter System → Schuljahre an; siehe Schuljahre im Benutzerhandbuch.
Legen Sie gleich auch die zurückliegenden Schuljahre an, in denen bereits Auszubildende eingetreten sind. Ein Stundeneintrag wird abgelehnt, wenn sein Datum vor dem Stichtag des ersten Schuljahres liegt.
Wird eine bestehende Installation aktualisiert, rekonstruiert die Migration den Kalender aus den vorhandenen Daten und ordnet jedem Auszubildenden sein Eintrittsschuljahr zu — hier ist nichts zu tun. Über DJANGO_ACADEMIC_YEAR_SEED können Sie die Rekonstruktion durch die tatsächlichen Stichtage ersetzen, siehe Konfiguration.
4. Frontend-Verbindung prüfen
Stellen Sie sicher, dass die Umgebungsvariable APP_API_URL des Frontend-Containers auf die korrekte API-URL zeigt:
environment:
APP_API_URL: "https://api.example.com"
5. E-Mail testen
Falls E-Mail konfiguriert ist, testen Sie die Verbindung mit einem Passwort-Reset über die Benutzeroberfläche.
Alternativ können Sie während der Einrichtung DJANGO_DEBUG_EMAIL=True setzen, um E-Mails auf der Konsole auszugeben:
docker logs resource-planning-restapi
Berechtigungskonzept
Die Anwendung verwendet ein gruppenbasiertes Berechtigungssystem:
Benutzertypen
| Typ | Eigenschaft | Standardgruppen |
|---|---|---|
| Auszubildende | is_student = True | Werden über DefaultGroup automatisch zugewiesen |
| Lehrer/Personal | is_student = False | Werden über DefaultGroup automatisch zugewiesen |
| Superuser | is_superuser = True | Hat vollen Zugriff ohne Gruppenprüfung |
Wichtige Berechtigungen
| Bereich | Berechtigung | Beschreibung |
|---|---|---|
| Accounts | can_login | Anmeldung erlaubt |
| Accounts | view_own_account | Eigenes Profil einsehen |
| Accounts | view_student_accounts | Auszubildende einsehen |
| Accounts | view_all_accounts | Alle Benutzer einsehen |
| Accounts | add_student_accounts | Auszubildende anlegen |
| Accounts | add_all_accounts | Alle Benutzer anlegen |
| Accounts | change_student_accounts | Auszubildende bearbeiten |
| Accounts | change_all_accounts | Alle Benutzer bearbeiten |
| Accounts | change_user_groups | Gruppenzuordnung ändern |
| Accounts | delete_student_accounts | Auszubildende löschen |
| Accounts | delete_all_accounts | Alle Benutzer löschen |
| Schuljahre | view_academicyear | Schuljahreskalender einsehen |
| Schuljahre | add_academicyear | Schuljahr anlegen (= Schuljahreswechsel) |
| Schuljahre | change_academicyear | Schuljahr bearbeiten |
| Schuljahre | delete_academicyear | Schuljahr löschen |
| Accounts | view_studentgradeadjustment | Wiederholungen/Übersprünge einsehen |
| Accounts | add_studentgradeadjustment | Wiederholung/Übersprung eintragen |
| Accounts | change_studentgradeadjustment | Wiederholung/Übersprung bearbeiten |
| Accounts | delete_studentgradeadjustment | Wiederholung/Übersprung entfernen |
| Einsatzarten | view_operationtypeschedule | Terminpläne der Einsatzarten einsehen |
| Einsatzarten | add_operationtypeschedule | Termin für einen Jahrgang eintragen |
| Einsatzarten | change_operationtypeschedule | Termin eines Jahrgangs ändern |
| Einsatzarten | delete_operationtypeschedule | Termin eines Jahrgangs entfernen |
| System | view_systemconfiguration | Systemeinstellungen einsehen |
| System | change_systemconfiguration | Systemeinstellungen ändern |
| Logs | view_logentry | Änderungsprotokoll einsehen |
Die Berechtigungen für operationtypeschedule steuern den Terminplan selbst. Ein Schreibvorgang darauf erzeugt und löscht aber Einsatzzeiträume bei allen Auszubildenden des Jahrgangs — dafür ist zusätzlich change_operationinstance nötig. Wer Terminpläne pflegen soll, braucht beides. Siehe Termine für einen ganzen Jahrgang.
Berechtigungen werden über Gruppen vergeben. Welche Gruppen ein Konto hat, ist im Benutzerhandbuch unter Auszubildende und Lehrer beschrieben; die Gruppen selbst werden über die API gepflegt.