Stundenplan: Dropdown für Unterrichtsansicht/Sitzplan/Planung/Planungsviewer
Die zwei Buttons in der "Heute"-Tagesliste mit teils vom Lesson-Status
abhängiger Doppelbedeutung ("Verlaufsplan ansehen"/"Zur Lerngruppe") waren
unklar. Ersetzt durch ein Dropdown mit vier ausdrücklich benannten Zielen;
drei nutzen bestehende Commands, "Sitzplan" (Sitzpläne-Tab) ist neu und
bisher nur indirekt über den Unterrichtsmodus erreichbar gewesen.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -2,6 +2,7 @@ using Avalonia.Controls;
|
||||
using LehrerApp.Core.Interfaces;
|
||||
using LehrerApp.Core.Models;
|
||||
using LehrerApp.Core.Services;
|
||||
using LehrerApp.Desktop.ViewModels;
|
||||
using LehrerApp.Desktop.ViewModels.Planning;
|
||||
using LehrerApp.Desktop.ViewModels.Groups;
|
||||
using LehrerApp.Desktop.Views.Groups;
|
||||
@@ -27,6 +28,39 @@ public partial class TimetableView : UserControl
|
||||
}
|
||||
}
|
||||
|
||||
/// Nutzer-Feedback: unklar, wie man aus der "Heute"-Tagesliste zwischen Unterrichtsansicht,
|
||||
/// Sitzplan, Planung und Planungsviewer wechselt. Statt der bisherigen zwei Buttons mit
|
||||
/// teils vom Lesson-Status abhängiger Doppelbedeutung ein Dropdown mit ausdrücklich benannten
|
||||
/// Zielen (TodayLessonItem.DestinationOptions) — Menü-Charakter, die Auswahl wird danach
|
||||
/// bewusst zurückgesetzt statt dauerhaft angezeigt. Drei der vier Ziele nutzen unverändert
|
||||
/// die bestehenden TimetableViewModel-Commands, nur "Sitzplan" ist neu (bisher nur über den
|
||||
/// Unterrichtsmodus erreichbar, siehe TODO.md 4.5.23-Nachtrag).
|
||||
private void OnLessonDestinationSelected(object? sender, SelectionChangedEventArgs e)
|
||||
{
|
||||
if (sender is not ComboBox comboBox) return;
|
||||
var item = comboBox.DataContext as TodayLessonItem;
|
||||
var option = e.AddedItems.Count > 0 ? e.AddedItems[0] as TimetableDestinationOption : null;
|
||||
comboBox.SelectedItem = null;
|
||||
if (item is null || option is null || DataContext is not TimetableViewModel vm) return;
|
||||
|
||||
switch (option.Kind)
|
||||
{
|
||||
case TimetableLessonDestination.TeachingMode:
|
||||
vm.StartTeachingModeCommand.Execute(item);
|
||||
break;
|
||||
case TimetableLessonDestination.Viewer:
|
||||
vm.OpenTodayLessonCommand.Execute(item);
|
||||
break;
|
||||
case TimetableLessonDestination.Planning:
|
||||
vm.OpenGroupCommand.Execute(item.GroupId);
|
||||
break;
|
||||
case TimetableLessonDestination.SeatingPlan:
|
||||
App.Services.GetRequiredService<MainWindowViewModel>()
|
||||
.NavigateToGroupDetail(item.GroupId, 2);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
private async Task ShowWebUntisTimetableDialog()
|
||||
{
|
||||
var owner = TopLevel.GetTopLevel(this) as Window;
|
||||
|
||||
Reference in New Issue
Block a user