download_lesson_attachment deckte bisher nur die Leserichtung ab, der Nutzer legt Arbeitsblätter aber tatsächlich über die Anhang-Funktion an Einzelstunden ab. Neues Write-Tool nimmt Dateiname + Base64-Inhalt entgegen, validiert vor der Bestätigungsnachfrage (leer/ungültig/zu groß) und lädt erst nach Bestätigung hoch. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -2636,6 +2636,20 @@ folgenden Punkte gehören direkt in `LehrerApp.Desktop`:
|
||||
"Out of Scope (v1)". Windows-Installer-Anpassungen und die Runtime-Dedup-Optimierung für
|
||||
macOS (4.5.27) bleiben offen, sind aber nicht MCP-spezifisch.
|
||||
|
||||
- [x] **4.5.30** `add_lesson_attachment`-Tool (2026-09-11, Nutzer-Nachtrag zu 4.5.28): Nutzer nutzt
|
||||
die bestehende Anhang-Funktion an Einzelstunden (`Lesson.Attachments`) tatsächlich, um
|
||||
Arbeitsblätter abzulegen — `download_lesson_attachment` (4.5.28) deckte davon nur die
|
||||
Leserichtung ab. Neues Write-Tool in
|
||||
[LessonPlanTools.cs](LehrerApp.Desktop/Services/Mcp/Tools/LessonPlanTools.cs) nimmt
|
||||
Dateiname + Base64-Inhalt entgegen, validiert (leer/ungültiges Base64/über
|
||||
`IAttachmentStorage.MaxSizeBytes`) **vor** der Bestätigungsnachfrage, lädt erst nach
|
||||
Bestätigung über `IAttachmentStorage.Upload` hoch und hängt den `DocumentAttachment`-Eintrag
|
||||
an die Stunde. `DocumentAttachment` hat keine eigene Guid-Id (nur `StorageId`, ein string) —
|
||||
`WriteResultDto.Id` bleibt deshalb `null`, die `storageId` steht stattdessen in der
|
||||
Erfolgsmeldung, damit ein Folgeaufruf (z.B. zur Kontrolle per `download_lesson_attachment`)
|
||||
ohne erneutes `get_lesson_plans` möglich ist. 4 neue Tests in
|
||||
[McpToolsTests.cs](LehrerApp.Desktop.Tests/McpToolsTests.cs) (jetzt 32).
|
||||
|
||||
**Wichtige Abweichung von der ursprünglichen Planung (5.2):** Vor der Umsetzung zeigte sich,
|
||||
dass 5.2 wie ursprünglich beschrieben eine zweite, parallele Fehlzeiten-Erfassung neben dem
|
||||
bereits bestehenden Anwesenheits-Tracking aus Kapitel 3 (`ParticipationEntry.Attendance`,
|
||||
|
||||
Reference in New Issue
Block a user