Status-File und Multi-Feedback Erweiterung für ILIAS Übungen (Exercises).
- Export von Bewertungen als Excel (.xlsx) oder CSV
- Bearbeitung von Status, Noten, Kommentaren außerhalb von ILIAS
- Import mehrerer Änderungen auf einmal (markierte Zeilen mit
update=1) - Unterstützt Individual- und Team-Assignments
- Download aller Abgaben mit einem Klick
- Automatische Ordnerstruktur:
- Individual:
Lastname_Firstname_Login_ID/ - Teams:
Team_ID/Lastname_Firstname_Login_ID/
- Individual:
- Inklusive Status-File für Bewertungen
- Upload von Feedback-Dateien für mehrere Teilnehmer gleichzeitig
- Feedback OHNE Status-Updates möglich - einfach Dateien in User-Ordner legen
- Automatische Filterung: Submissions werden nicht als Feedback hochgeladen
- Unterstützt Individual- und Team-Assignments
- Automatische E-Mail-Benachrichtigung beim Feedback-Upload
- Studenten werden benachrichtigt wenn Tutor Feedback-Dateien hochlädt
- Funktioniert für Individual- und Team-Assignments
- Bei Teams: Alle Team-Mitglieder werden benachrichtigt
- Debug-Modus für sichere Tests (keine echten E-Mails während Entwicklung)
- ILIAS 8.x oder höher
- PHP 8.1 oder höher
- Composer
- Plugin klonen:
cd Customizing/global/plugins/Services/UIComponent/UserInterfaceHook/
git clone https://github.com/comusielak/ExerciseStatusFile.git- Composer & Setup:
composer du
php setup/setup.php update- Plugin aktivieren:
- Administration → Plugins → UI Component Hook Plugins
- ExerciseStatusFile aktivieren
- In einer Übung → Bewertung/Noten
- Button "Multi-Feedback Download" klicken
- Teams/User auswählen
- ZIP wird generiert mit:
- Alle Abgaben in User-Ordnern
status.xlsxundstatus.csvfür BewertungenREADME.mdmit Anleitung
-
ZIP entpacken
-
Feedback-Dateien hinzufügen:
- Legen Sie neue Dateien in die User-Ordner
- WICHTIG: Ordner-Namen NICHT ändern!
- Format:
Lastname_Firstname_Login_ID/für Individual - Format:
Team_X/Lastname_Firstname_Login_ID/für Teams
⚠️ WICHTIG: Feedback-Dateien müssen ANDERE Namen haben als die Submissions!Dateien mit identischen Namen werden automatisch gefiltert und NICHT als Feedback hochgeladen.
Beispiel:
- ❌ FALSCH: Student hat
Aufgabe1.javaabgegeben → Sie legen ebenfallsAufgabe1.javaals Feedback ab → Wird automatisch gefiltert (erkannt als Submission) - ✅ RICHTIG: Student hat
Aufgabe1.javaabgegeben → Sie legenAufgabe1_korrigiert.javaoderFeedback.pdfals Feedback ab → Wird als Feedback hochgeladen
-
Status bearbeiten (optional):
- Öffne
status.xlsxoderstatus.csv - Bei
updateeine1eintragen für Zeilen die aktualisiert werden sollen - Status/Note/Kommentar ändern
- Hinweis: Feedback-Upload funktioniert auch OHNE Status-Updates!
- Öffne
-
ZIP wieder hochladen:
- Ganzes ZIP-Archiv erneut erstellen
- In ILIAS hochladen
- Feedback-Dateien werden automatisch verarbeitet
- Studenten erhalten E-Mail-Benachrichtigung (wenn aktiviert)
Als Feedback hochgeladen:
- ✅ Neue Dateien in User-Ordnern
- ✅ Dateien die NICHT als Submission existieren
NICHT als Feedback hochgeladen:
- ❌ Submissions (bereits abgegebene Dateien)
- ❌ System-Dateien (status.xlsx, status.csv, README.md)
- ❌ Hidden Files (.DS_Store, __MACOSX)
Die Ordner-Namen werden zur korrekten Zuordnung benötigt:
Lastname_Firstname_Login_ID/→ Format muss erhalten bleibenTeam_13/→ Team-Nummern müssen korrekt sein- Bei Namensänderungen können Dateien nicht zugeordnet werden!
Bei Team-Assignments:
Multi_Feedback_AssignmentName/
├── status.xlsx
├── status.csv
├── README.md
└── Team_13/
├── Lastname_Firstname_Login_ID/
│ ├── submission.java # Wird NICHT als Feedback hochgeladen
│ └── korrektur.pdf # Wird als Feedback hochgeladen
└── Othername_Otherfirst_login2_ID/
└── feedback.txt
Bei Individual-Assignments:
Multi_Feedback_AssignmentName/
├── status.xlsx
├── status.csv
├── README.md
├── Lastname_Firstname_Login_ID/
│ ├── submission.java
│ └── feedback.pdf
└── Othername_Otherfirst_login2_ID/
└── feedback.txt
Excel/CSV Spalten:
update:1= Zeile wird aktualisiert,0= ignorierenteam_id/user_id: ID des Teams/Userslogins: Login-Namen (Komma-getrennt bei Teams)status:passed,failed,notgradedmark: Note (Text/Zahl)notice: Feedback-Textcomment: Interner Kommentar
Beim Upload werden Feedback-Dateien mit bestehenden Submissions verglichen:
- Vergleich mit und ohne Zeitstempel-Prefix (
20250130120000_datei.txt) - Bei Teams: Submissions aller Team-Mitglieder werden berücksichtigt
- Nur neue Dateien werden als Feedback hochgeladen
Studenten erhalten automatisch eine E-Mail wenn der Tutor Feedback-Dateien hochlädt.
Wann wird benachrichtigt:
- ✅ Beim Upload von Feedback-Dateien (nicht nur Status-Updates)
- ✅ Bei Individual-Assignments: Jeder Student einzeln
- ✅ Bei Team-Assignments: Alle Team-Mitglieder
Wann NICHT:
- ❌ Bei reinen Status-Updates ohne Feedback-Dateien
- ❌ Wenn User Benachrichtigungen deaktiviert hat (ILIAS Profil-Einstellung)
Standard-Einstellung: Debug-Modus ist aktiviert
// classes/class.ilExerciseStatusFilePlugin.php (Zeile 17)
const DEBUG_EMAIL_NOTIFICATIONS = true; // ← Standard: sicherIm Debug-Modus:
- ❌ Keine echten E-Mails werden verschickt
- ✅ Ausführliche Logs in
/var/www/StudOn/data/studon/ilias.log - ✅ Admin-Benachrichtigungen im Browser (nur für Admins sichtbar)
- ✅ Sicher für Produktion - keine Spam-Mails während Tests
Produktiv-Modus aktivieren (nach erfolgreichen Tests):
const DEBUG_EMAIL_NOTIFICATIONS = false; // Echte E-MailsEmpfohlener Workflow:
- Erste 1-2 Wochen: Debug-Modus aktiv lassen
- Logs überwachen:
tail -f /var/www/StudOn/data/studon/ilias.log | grep notification - User-Feedback sammeln
- Optional: Debug-Modus deaktivieren
Weitere Informationen:
- tests/NOTIFICATION_TEST_GUIDE.md - Ausführliche Dokumentation
- tests/MODAL_TEST_GUIDE.md - Test-Guide
Das Plugin verfügt über umfassende automatisierte Tests für Qualitätssicherung.
Vollautomatisierte Tests des gesamten Multi-Feedback Workflows:
- ✅ Individual & Team Assignments
- ✅ Download → Upload Workflow
- ✅ Status-File Verarbeitung (XLSX + CSV)
- ✅ Checksum-basierte Datei-Umbenennung
- ✅ E-Mail Benachrichtigungen (Team + Individual) ✨ NEU
- ✅ Negative Tests (Error Handling)
- ✅ Performance-Optimierungen
Tests ausführen:
Option 1: Modal in ILIAS UI (Empfohlen)
- Als Admin einloggen
- Übung öffnen → "Abgaben und Noten"
- Gelber Button "🧪 Run Tests" klicken
- Tests laufen automatisch im Modal
Option 2: CLI
cd tests/integration/
php run-all-tests.php --parent-ref=12345Option 3: Web Interface
Browser: /Customizing/.../ExerciseStatusFile/tests/integration/web-runner.php
Test-Ergebnisse (v1.2.0):
- ✅ 12/12 Tests bestanden
- ⏱️ Dauer: ~9 Sekunden
- 🧹 Automatisches Cleanup
Features:
- 🎯 Parent RefID Support: Tests erstellen Objekte in eigenem Ordner (nicht Root!)
- 🧹 Auto-Cleanup: Test-Daten werden automatisch aufgeräumt
- 📊 12 Test-Szenarien: Individual, Team, CSV, Notifications, Negative Tests
- 📧 Notification-Tests im Debug-Modus (keine echten E-Mails)
- ⚡ Schnell: ~9 Sekunden für alle Tests
Wichtig für Admins:
- Siehe tests/MODAL_TEST_GUIDE.md für Modal-Anleitung
- Siehe docs/ADMIN_GUIDE_TESTS.md für detaillierte Dokumentation
- Immer Parent RefID setzen! (z.B. Test-Ordner RefID)
- Tests sind sicher und löschen alle temporären Daten
Grundlegende Struktur- und Syntax-Tests:
cd tests/
php smoke-test.phpWas wird getestet:
- ✅ Dateistruktur (Plugin-Dateien vorhanden)
- ✅ PHP-Syntax (keine Syntax-Fehler)
- ✅ Klassen-Struktur (erforderliche Methoden vorhanden)
- ✅ Security-Features (Path Traversal Prevention)
Für umfassende Funktionstests siehe tests/MANUAL_TEST_GUIDE.md.
Diese beinhalten:
- Individual und Team Assignments
- Feedback Upload mit/ohne Status-Updates
- Security-Tests (Path Traversal)
- Performance-Tests (große Dateien)
- GitHub: https://github.com/comusielak/ExerciseStatusFile
- Issues: https://github.com/comusielak/ExerciseStatusFile/issues
GPL-3.0
Aktuelle Version: 1.2.0 - 2025-01-04
Siehe CHANGELOG.md für vollständige Version-Historie.
Highlights v1.2.0:
- ✅ E-Mail Benachrichtigungen: Automatische Notifications beim Feedback-Upload
- ✅ Debug-Modus: Sichere Tests ohne echte E-Mails
- ✅ Performance: Batch-Loading für Team-Daten (~10x schneller)
- ✅ Tests: 12/12 Integration Tests bestanden in 8.93s
- ✅ Modal-Integration: "🧪 Run Tests" Button in ILIAS UI
- 📚 Dokumentation: Umfassende Guides für Notifications und Tests