Stundenplan verbesserung
CI / build-and-test (push) Canceled after 0s

This commit is contained in:
2026-08-30 00:53:32 +02:00
parent 2b299fc940
commit dade41ee8d
16 changed files with 639 additions and 75 deletions
@@ -4,7 +4,7 @@
x:Class="LehrerApp.Desktop.Views.Groups.MoveLessonDialog"
x:DataType="vm:MoveLessonDialogViewModel"
Title="Stunde verschieben"
Width="400" Height="260" MinWidth="360" MinHeight="240"
Width="440" Height="430" MinWidth="400" MinHeight="400"
CanResize="False" WindowStartupLocation="CenterOwner">
<Grid RowDefinitions="*,Auto" Margin="24">
@@ -13,6 +13,8 @@
<TextBlock FontSize="12" Opacity="0.6">
<Run Text="Bisheriges Datum: "/>
<Run Text="{Binding CurrentDateDisplay}"/>
<Run Text=" · "/>
<Run Text="{Binding CurrentPeriodDisplay}"/>
</TextBlock>
<StackPanel Spacing="4">
@@ -22,6 +24,24 @@
IsVisible="{Binding NewDateTextError, Converter={x:Static StringConverters.IsNotNullOrEmpty}}"/>
</StackPanel>
<StackPanel Spacing="4">
<TextBlock Text="Neue Stunde" FontSize="12" Opacity="0.7"/>
<NumericUpDown Value="{Binding NewPeriod}" Minimum="1" Maximum="20"
FormatString="0" PlaceholderText="Stundennummer"/>
<TextBlock Text="{Binding NewPeriodError}" Foreground="Red" FontSize="11"
IsVisible="{Binding NewPeriodError, Converter={x:Static StringConverters.IsNotNullOrEmpty}}"/>
</StackPanel>
<Border Background="{DynamicResource SystemControlBackgroundAltHighBrush}" CornerRadius="6"
Padding="10" IsVisible="{Binding CanSplitDoubleLesson}">
<StackPanel Spacing="5">
<CheckBox Content="Nur den zweiten Teil der Doppelstunde verschieben"
IsChecked="{Binding SplitDoubleLesson}"/>
<TextBlock Text="Der Verlauf wird an der Dauer der ersten Stunde geteilt. Der zweite Teil wird als eigene Fortsetzungsstunde angelegt."
FontSize="11" Opacity="0.65" TextWrapping="Wrap"/>
</StackPanel>
</Border>
<CheckBox Content="Folgestunden automatisch verschieben"
IsChecked="{Binding ShiftFollowingPlanned}"
ToolTip.Tip="Verschiebt alle noch geplanten Stunden derselben Einheit, die nach dieser Stunde liegen, um denselben Zeitraum. Bereits durchgeführte Stunden bleiben unverändert."/>
@@ -91,7 +91,8 @@
ToolTip.Tip="Verlaufsplan schreibgeschützt und größer anzeigen — zum Mitnehmen in den Unterricht."/>
<Button Content="Bearbeiten" Command="{Binding EditLessonCommand}" IsEnabled="{Binding !IsReadOnly}"/>
<Button Content="Verschieben" Command="{Binding MoveLessonCommand}" IsEnabled="{Binding !IsReadOnly}"/>
<Button Content="Status → Durchgeführt" Command="{Binding AdvanceLessonStatusCommand}" IsEnabled="{Binding !IsReadOnly}"/>
<Button Content="Status weiter" Command="{Binding AdvanceLessonStatusCommand}" IsEnabled="{Binding !IsReadOnly}"
ToolTip.Tip="Entwurf/Geplant → Bereit → Durchgeführt"/>
<Button Content="Sitzung erzeugen" Command="{Binding CreateParticipationSessionCommand}"
IsEnabled="{Binding !IsReadOnly}"
ToolTip.Tip="Legt eine Mitarbeitssitzung mit Datum und Thema dieser Stunde an."/>
@@ -42,6 +42,7 @@ public partial class PlanningTabView : UserControl
vm.OnGenerateLessonSeries = ShowGenerateLessonSeriesDialog;
vm.OnAiAssist = ShowAiAssistDialog;
vm.OnNotify = Notifications.ShowSuccess;
vm.OnError = Notifications.ShowError;
}
}
@@ -126,7 +127,7 @@ public partial class PlanningTabView : UserControl
private async Task<MoveLessonTarget?> ShowMoveLessonDialog(Lesson lesson)
{
var dialogVm = new MoveLessonDialogViewModel(lesson.Date);
var dialogVm = new MoveLessonDialogViewModel(lesson.Date, lesson.LessonNumber);
var dialog = new MoveLessonDialog { DataContext = dialogVm };
var owner = TopLevel.GetTopLevel(this) as Window;
if (owner is null) return null;