Datepicker update
CI / build-and-test (push) Canceled after 0s

This commit is contained in:
2026-09-01 15:31:16 +02:00
parent ab1feba0f0
commit edf7510765
6 changed files with 112 additions and 6 deletions
@@ -364,16 +364,25 @@ public partial class PlanningTabViewModel : ObservableObject
/// Übernimmt Datum + Thema der Stunde in eine neue Mitarbeitssitzung (3.3.1) — verknüpft über
/// das bisher ungenutzte Lesson.LessonId-Feld auf ParticipationSession, damit ein zweiter Klick
/// auf dieselbe Stunde keine doppelte Sitzung anlegt, sondern nur darauf hinweist.
///
/// Prüft dabei zusätzlich auf JEDE bereits an diesem Tag bestehende Sitzung, nicht nur eine
/// exakt mit `lesson.Id` verknüpfte (Nutzer-Feedback, analog
/// <see cref="SeatingPlanTabViewModel.SelectOrCreateSessionForLesson"/>): kommt neben einer
/// Doppelstunde noch eine dritte Stunde desselben Tages hinzu (eigene `Lesson`, z.B. durch
/// Vertretung), soll das nicht zu einer zweiten Mitarbeitssitzung für den Tag führen.
[RelayCommand(CanExecute = nameof(HasSelectedLesson))]
private void CreateParticipationSession()
{
if (SelectedLesson is null) return;
var lesson = SelectedLesson.Model;
var existing = _participationSessions.GetByGroup(lesson.GroupId)
.FirstOrDefault(s => s.LessonId == lesson.Id);
var sessionsForGroup = _participationSessions.GetByGroup(lesson.GroupId);
var existing = sessionsForGroup.FirstOrDefault(s => s.LessonId == lesson.Id)
?? sessionsForGroup.FirstOrDefault(s => s.Date == lesson.Date);
if (existing is not null)
{
OnNotify?.Invoke("Für diese Stunde existiert bereits eine Sitzung.");
OnNotify?.Invoke(existing.LessonId == lesson.Id
? "Für diese Stunde existiert bereits eine Sitzung."
: "Für diesen Tag existiert bereits eine Sitzung.");
return;
}