Stundenverlaufsplan: Viewer und Alternativpfad-Katalog (Kapitel 4.2 Nachtrag)
Schreibgeschützter LessonViewerDialog (größere Schrift, ohne Bearbeitungs-/Verlängern-/ Verschieben-Funktion) für den Einsatz während des Unterrichtens, erreichbar über "Anzeigen" im Stunden-Toolbar. Alternative Unterrichtsabläufe (z.B. Kurzversion bei Zeitmangel) laufen jetzt über einen echten Katalog (neues Modell AlternativeLessonPath: Name + Beschreibung) statt Freitext direkt an der Phase: im Verlaufsplan-Editor eine kompakte, farbig unterstützte Checkbox statt einer durchgehend sichtbaren Eingabespalte, Zuordnung/Neuanlage über einen eigenen Dialog. Der Viewer gruppiert Phasen entsprechend und zeigt die hinterlegte Beschreibung. Schema-Migration v3→v4 führt bestehende Freitextwerte verlustfrei in Katalogeinträge über. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -488,4 +488,45 @@ public sealed class RepositoryTests
|
||||
|
||||
Assert.Empty(repo.GetAll());
|
||||
}
|
||||
|
||||
// ── AlternativeLessonPathRepository ───────────────────────────────────────
|
||||
|
||||
[Fact]
|
||||
public void AlternativeLessonPathRepository_Save_LehntDuplikatNamenAb()
|
||||
{
|
||||
using var db = NewInMemoryContext();
|
||||
var repo = new AlternativeLessonPathRepository(db);
|
||||
repo.Save(new AlternativeLessonPath { Name = "Kurzversion" });
|
||||
|
||||
Assert.Throws<InvalidOperationException>(() =>
|
||||
repo.Save(new AlternativeLessonPath { Name = "kurzversion" }));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void AlternativeLessonPathRepository_GetById_FindetGespeichertenEintragMitBeschreibung()
|
||||
{
|
||||
using var db = NewInMemoryContext();
|
||||
var repo = new AlternativeLessonPathRepository(db);
|
||||
var entry = new AlternativeLessonPath { Name = "Kurzversion", Description = "Bei Zeitmangel." };
|
||||
repo.Save(entry);
|
||||
|
||||
var found = repo.GetById(entry.Id);
|
||||
|
||||
Assert.NotNull(found);
|
||||
Assert.Equal("Kurzversion", found!.Name);
|
||||
Assert.Equal("Bei Zeitmangel.", found.Description);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void AlternativeLessonPathRepository_Delete_EntferntEintrag()
|
||||
{
|
||||
using var db = NewInMemoryContext();
|
||||
var repo = new AlternativeLessonPathRepository(db);
|
||||
repo.Save(new AlternativeLessonPath { Name = "Kurzversion" });
|
||||
var id = repo.GetAll().Single().Id;
|
||||
|
||||
repo.Delete(id);
|
||||
|
||||
Assert.Empty(repo.GetAll());
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user