Stunde/Einheit-Dialog: Gruppe + Fach anzeigen, nicht nur Fach

Bei einer Klasse, die in mehreren Fächern unterrichtet wird (mehrere
LearningGroup-Datensätze mit gleichem Namen, z.B. zwei "10c"), zeigte
UnitDialog bisher nur das Fach ("Fach: Chemie"), LessonDialog gar keinen
Gruppen-/Fach-Hinweis. Beide zeigen jetzt "Gruppe · Fach" (z.B. "10c ·
Chemie") direkt unter dem Dialogtitel, nicht editierbar, nur zur Einordnung.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
2026-08-17 00:47:07 +02:00
co-authored by Claude Sonnet 5
parent 888df39f37
commit fbf70df439
7 changed files with 77 additions and 14 deletions
@@ -19,7 +19,17 @@ public sealed class LessonDialogViewModelTests
FakeTimetableSlots? slots = null, PeriodScheduleService? periodSchedule = null) =>
new(new FakeLessons(), new FakeShorthandCodes([]), new FakeAlternativeLessonPaths([]),
slots ?? new FakeTimetableSlots(), periodSchedule ?? NewPeriodSchedule(),
unitId, groupId, [], [], editing);
unitId, groupId, "10c", "Chemie", [], [], editing);
/// Nutzer-Feedback: bei einer Klasse, die in mehreren Fächern unterrichtet wird (mehrere
/// LearningGroup-Datensätze mit gleichem Namen), war im Stunden-Dialog nicht erkennbar,
/// welche der beiden Stunden man gerade bearbeitet.
[Fact]
public void GroupSubjectDisplay_ZeigtGruppeUndFachZusammen()
{
var vm = BuildVm(Guid.NewGuid(), Guid.NewGuid());
Assert.Equal("10c · Chemie", vm.GroupSubjectDisplay);
}
[Fact]
public void AddPhase_FuegtZeileMitStandardwertenHinzu()
@@ -83,7 +93,7 @@ public sealed class LessonDialogViewModelTests
var codes = new FakeShorthandCodes([new ShorthandCode { Code = "Tb" }, new ShorthandCode { Code = "SH" }]);
var vm = new LessonDialogViewModel(new FakeLessons(), codes, new FakeAlternativeLessonPaths([]),
new FakeTimetableSlots(), NewPeriodSchedule(),
Guid.NewGuid(), Guid.NewGuid(), [], ["Plenum", "LDE", "Tb"], null); // "Tb" doppelt (Katalog + Historie), soll nur einmal erscheinen
Guid.NewGuid(), Guid.NewGuid(), "10c", "Chemie", [], ["Plenum", "LDE", "Tb"], null); // "Tb" doppelt (Katalog + Historie), soll nur einmal erscheinen
Assert.Equal(["LDE", "Plenum", "SH", "Tb"], vm.ShorthandSuggestions);
}
@@ -145,7 +155,7 @@ public sealed class LessonDialogViewModelTests
var groupId = Guid.NewGuid();
var lessons = new FakeLessons();
var vm = new LessonDialogViewModel(lessons, new FakeShorthandCodes([]), new FakeAlternativeLessonPaths([]),
new FakeTimetableSlots(), NewPeriodSchedule(), unitId, groupId, [], [], null)
new FakeTimetableSlots(), NewPeriodSchedule(), unitId, groupId, "10c", "Chemie", [], [], null)
{
Topic = "Brechung", DateText = "01.09.2025", StartTimeText = "11:45",
};
@@ -242,7 +252,7 @@ public sealed class LessonDialogViewModelTests
};
var vm = new LessonDialogViewModel(new FakeLessons(), new FakeShorthandCodes([]), alternativePaths,
new FakeTimetableSlots(), NewPeriodSchedule(), Guid.NewGuid(), Guid.NewGuid(), [], [], editing);
new FakeTimetableSlots(), NewPeriodSchedule(), Guid.NewGuid(), Guid.NewGuid(), "10c", "Chemie", [], [], editing);
Assert.True(vm.Phases[0].HasAlternativePath);
Assert.Equal("Kurzversion", vm.Phases[0].AlternativePathName);
@@ -0,0 +1,28 @@
using LehrerApp.Desktop.ViewModels.Groups;
using Xunit;
namespace LehrerApp.Desktop.Tests;
/// Nutzer-Feedback: bei einer Klasse, die in mehreren Fächern unterrichtet wird (mehrere
/// LearningGroup-Datensätze mit gleichem Namen), war im Einheiten-Dialog nur das Fach sichtbar,
/// nicht welche Klasse gemeint ist — beides zusammen macht es eindeutig.
public sealed class UnitDialogViewModelTests
{
[Fact]
public void GroupSubjectDisplay_ZeigtGruppeUndFachZusammen()
{
var vm = new UnitDialogViewModel(new FakeUnits(), new FakeCompetencyDomains(),
Guid.NewGuid(), Guid.NewGuid(), 10, "10c", "Chemie", editingUnit: null);
Assert.Equal("10c · Chemie", vm.GroupSubjectDisplay);
}
[Fact]
public void GroupSubjectDisplay_OhneFach_WeistDaraufHin()
{
var vm = new UnitDialogViewModel(new FakeUnits(), new FakeCompetencyDomains(),
Guid.NewGuid(), null, 10, "10c", "", editingUnit: null);
Assert.Equal("10c · kein Fach hinterlegt (siehe Lerngruppe)", vm.GroupSubjectDisplay);
}
}