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:
@@ -96,6 +96,7 @@ public class PlanningTabViewModelTests
|
||||
{
|
||||
var (vm, units, lessons, sourceGroupId) = BuildScenario();
|
||||
var targetGroupId = Guid.NewGuid();
|
||||
var kurzversionId = Guid.NewGuid(); // Katalog-Referenz, bleibt beim Kopieren unverändert
|
||||
|
||||
var unit = new Unit
|
||||
{
|
||||
@@ -111,7 +112,7 @@ public class PlanningTabViewModelTests
|
||||
UnitId = unit.Id, GroupId = sourceGroupId, Date = new DateOnly(2025, 9, 1),
|
||||
Topic = "Einführung", Status = LessonStatus.Conducted, Reflection = "lief gut",
|
||||
StartTime = new TimeOnly(11, 45),
|
||||
Phases = [new LessonPhaseStep { Name = "Einstieg", DurationMinutes = 10, Material = "AB01", Shorthand = "L->AB01" }],
|
||||
Phases = [new LessonPhaseStep { Name = "Einstieg", DurationMinutes = 10, Material = "AB01", Shorthand = "L->AB01", AlternativePathId = kurzversionId }],
|
||||
};
|
||||
var l2 = new Lesson
|
||||
{
|
||||
@@ -144,6 +145,7 @@ public class PlanningTabViewModelTests
|
||||
Assert.Single(copiedLessons[0].Phases);
|
||||
Assert.Equal("Einstieg", copiedLessons[0].Phases[0].Name);
|
||||
Assert.Equal("L->AB01", copiedLessons[0].Phases[0].Shorthand);
|
||||
Assert.Equal(kurzversionId, copiedLessons[0].Phases[0].AlternativePathId);
|
||||
Assert.NotEqual(l1.Phases[0].Id, copiedLessons[0].Phases[0].Id); // frische Id, keine geteilte Referenz
|
||||
|
||||
// Ursprüngliche Einheit/Stunden bleiben unverändert in der Quellgruppe.
|
||||
|
||||
Reference in New Issue
Block a user