Zum Hauptinhalt springen

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.

tipp

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.

Bei einer Migration aus einer älteren Version

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

TypEigenschaftStandardgruppen
Auszubildendeis_student = TrueWerden über DefaultGroup automatisch zugewiesen
Lehrer/Personalis_student = FalseWerden über DefaultGroup automatisch zugewiesen
Superuseris_superuser = TrueHat vollen Zugriff ohne Gruppenprüfung

Wichtige Berechtigungen

BereichBerechtigungBeschreibung
Accountscan_loginAnmeldung erlaubt
Accountsview_own_accountEigenes Profil einsehen
Accountsview_student_accountsAuszubildende einsehen
Accountsview_all_accountsAlle Benutzer einsehen
Accountsadd_student_accountsAuszubildende anlegen
Accountsadd_all_accountsAlle Benutzer anlegen
Accountschange_student_accountsAuszubildende bearbeiten
Accountschange_all_accountsAlle Benutzer bearbeiten
Accountschange_user_groupsGruppenzuordnung ändern
Accountsdelete_student_accountsAuszubildende löschen
Accountsdelete_all_accountsAlle Benutzer löschen
Schuljahreview_academicyearSchuljahreskalender einsehen
Schuljahreadd_academicyearSchuljahr anlegen (= Schuljahreswechsel)
Schuljahrechange_academicyearSchuljahr bearbeiten
Schuljahredelete_academicyearSchuljahr löschen
Accountsview_studentgradeadjustmentWiederholungen/Übersprünge einsehen
Accountsadd_studentgradeadjustmentWiederholung/Übersprung eintragen
Accountschange_studentgradeadjustmentWiederholung/Übersprung bearbeiten
Accountsdelete_studentgradeadjustmentWiederholung/Übersprung entfernen
Einsatzartenview_operationtypescheduleTerminpläne der Einsatzarten einsehen
Einsatzartenadd_operationtypescheduleTermin für einen Jahrgang eintragen
Einsatzartenchange_operationtypescheduleTermin eines Jahrgangs ändern
Einsatzartendelete_operationtypescheduleTermin eines Jahrgangs entfernen
Systemview_systemconfigurationSystemeinstellungen einsehen
Systemchange_systemconfigurationSystemeinstellungen ändern
Logsview_logentryÄnderungsprotokoll einsehen
Terminpläne brauchen zusätzlich das Recht am Einsatz

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.