feat: Anhänge je Stunde, Klausur-Sitzplan mischen, Gefährdungsbeurteilungs-Assistent
Lesson bekommt dieselbe Anhang-Infrastruktur wie Documentation (Material, Arbeitsblätter, Experimentunterlagen), samt Fix einer Sync-Lücke, die Anhang- Dateibytes bisher nur für Documentation statt generisch übertragen hat (IHasAttachments). Sitzplan-Tab bekommt einen "Plätze mischen"-Button für Klausursitzpläne. Neu: mehrschrittiger Gefährdungsbeurteilungs-Assistent mit optionalem KI-Entwurf (ai-backend/gbu.php) und PDF-Export, Format bewusst als JSON-Anhang statt eigener Datenbank-Entität. Details und Architekturentscheidungen in TODO.md (4.2, 7.1.5, 10.1.8). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -154,4 +154,32 @@ public sealed class PdfExportServiceTests
|
||||
|
||||
AssertIsPdf(Service.BuildStudentDocumentationPdf(data));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void BuildHazardAssessmentPdf_MitStoffenUndKiHinweis_LiefertGueltigesPdf()
|
||||
{
|
||||
var data = new HazardAssessmentPrintData(
|
||||
"Natrium in Wasser", "10c", "12.09.2026", "Lehrerversuch",
|
||||
"Ein kleines Stück Natrium wird in eine Schale mit Wasser gegeben.",
|
||||
[
|
||||
new HazardSubstancePrintRow("Natrium", "ca. 0,5 g", "GHS02, GHS05",
|
||||
"H260 - Reagiert mit Wasser unter Bildung entzündbarer Gase", "P223, P231+P232, P370+P378"),
|
||||
],
|
||||
["Wasserstoffbildung, Verpuffungsgefahr", "Verätzungsgefahr durch Natronlauge"],
|
||||
["Schutzbrille", "Sicherheitsabstand einhalten", "Abzug/Freiluftversuch"],
|
||||
"Betroffene Stellen mit viel Wasser spülen, Arzt hinzuziehen.",
|
||||
"Reste unter Aufsicht vollständig abreagieren lassen.",
|
||||
"", IsAiAssisted: true);
|
||||
|
||||
AssertIsPdf(Service.BuildHazardAssessmentPdf(data));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void BuildHazardAssessmentPdf_OhneStoffeUndOhneKiHinweis_LiefertGueltigesPdf()
|
||||
{
|
||||
var data = new HazardAssessmentPrintData(
|
||||
"Papierchromatographie", "8b", "", "Schülerversuch", "", [], [], [], "", "", "", IsAiAssisted: false);
|
||||
|
||||
AssertIsPdf(Service.BuildHazardAssessmentPdf(data));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user