Kurs-Übersicht: neue Karte "Fehlende Hausaufgaben" listet Schüler mit nicht gemachter Hausaufgabe aus der letzten Mitarbeitssitzung. Aufgabenverwaltung: WorkTask.Kind unterscheidet jetzt Arbeitsaufträge von reinen Erinnerungen ohne Zeitbezug (z.B. "morgen Ansage an die Klasse machen") - eigener Button "🔔 Erinnerung", eigenes Icon in Liste/Dashboard, läuft nicht in die Zeitauswertung ein. Drei Bugfixes aus Nutzer-Feedback: - Dashboard-Kalender zeigte eine Stunde doppelt, wenn sie über "Sitzung erzeugen" mit einer Mitarbeitssitzung verknüpft war. - Der Sitzplan-Tab legte beim bloßen Öffnen einer Gruppe (nicht erst bei echter Nutzung) eine leere "Sitzplan"-Sitzung für heute an. - Der "Meine Klasse"-Ring im Kalender erschien erst, sobald für den Tag eine Lesson existierte, statt schon laut Stundenplan. Außerdem: Drawer-Icons pinnen jetzt explizit auf die farbige Emoji-Schrift (Windows kann sonst je nach Font-Fallback auf eine einfarbige Variante ausweichen). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
80 lines
4.2 KiB
XML
80 lines
4.2 KiB
XML
<Window xmlns="https://github.com/avaloniaui"
|
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
|
xmlns:vm="clr-namespace:LehrerApp.Desktop.ViewModels.Workload"
|
|
xmlns:models="clr-namespace:LehrerApp.Core.Models;assembly=LehrerApp.Core"
|
|
x:Class="LehrerApp.Desktop.Views.Workload.AddEditWorkTaskDialog"
|
|
x:DataType="vm:AddEditWorkTaskDialogViewModel"
|
|
Title="{Binding DialogTitle}"
|
|
Width="420" Height="480" MinWidth="380" MinHeight="420"
|
|
CanResize="True" WindowStartupLocation="CenterOwner">
|
|
|
|
<Grid RowDefinitions="*,Auto" Margin="24">
|
|
<ScrollViewer Grid.Row="0">
|
|
<StackPanel Spacing="14" Margin="0,0,12,0">
|
|
<TextBlock Text="{Binding DialogTitle}" Classes="dialogtitle"/>
|
|
|
|
<StackPanel Spacing="4">
|
|
<TextBlock Text="Titel *" FontSize="12" Opacity="0.7"/>
|
|
<TextBox Text="{Binding Title}" PlaceholderText="z.B. Klausur 8a korrigieren"/>
|
|
<TextBlock Text="{Binding TitleError}" Foreground="Red" FontSize="11"
|
|
IsVisible="{Binding TitleError, Converter={x:Static StringConverters.IsNotNullOrEmpty}}"/>
|
|
</StackPanel>
|
|
|
|
<CheckBox Content="🔔 Nur Erinnerung (kein Zeitbezug, läuft nicht in die Zeiterfassung ein)"
|
|
IsChecked="{Binding IsReminder}"/>
|
|
|
|
<Grid ColumnDefinitions="*,8,*">
|
|
<StackPanel Grid.Column="0" Spacing="4">
|
|
<TextBlock Text="Kategorie *" FontSize="12" Opacity="0.7"/>
|
|
<ComboBox ItemsSource="{Binding CategoryOptions}" SelectedItem="{Binding SelectedCategory}"
|
|
HorizontalAlignment="Stretch"/>
|
|
</StackPanel>
|
|
<StackPanel Grid.Column="2" Spacing="4">
|
|
<TextBlock Text="Gruppe (optional)" FontSize="12" Opacity="0.7"/>
|
|
<ComboBox ItemsSource="{Binding Groups}" SelectedItem="{Binding SelectedGroup}"
|
|
HorizontalAlignment="Stretch" PlaceholderText="Keine Gruppe">
|
|
<ComboBox.ItemTemplate>
|
|
<DataTemplate x:DataType="models:LearningGroup">
|
|
<TextBlock Text="{Binding Name}"/>
|
|
</DataTemplate>
|
|
</ComboBox.ItemTemplate>
|
|
</ComboBox>
|
|
</StackPanel>
|
|
</Grid>
|
|
|
|
<Grid ColumnDefinitions="*,8,*">
|
|
<StackPanel Grid.Column="0" Spacing="4">
|
|
<TextBlock Text="Fällig am (optional)" FontSize="12" Opacity="0.7"/>
|
|
<TextBox Text="{Binding DueDateText}" PlaceholderText="TT.MM.JJJJ"/>
|
|
<TextBlock Text="{Binding DueDateError}" Foreground="Red" FontSize="11"
|
|
IsVisible="{Binding DueDateError, Converter={x:Static StringConverters.IsNotNullOrEmpty}}"/>
|
|
</StackPanel>
|
|
<StackPanel Grid.Column="2" Spacing="4" IsVisible="{Binding !IsReminder}">
|
|
<TextBlock Text="Geschätzte Dauer in min (optional)" FontSize="12" Opacity="0.7"/>
|
|
<TextBox Text="{Binding EstimatedMinutesText}" PlaceholderText="z.B. 90"/>
|
|
<TextBlock Text="{Binding EstimatedMinutesError}" Foreground="Red" FontSize="11"
|
|
IsVisible="{Binding EstimatedMinutesError, Converter={x:Static StringConverters.IsNotNullOrEmpty}}"/>
|
|
</StackPanel>
|
|
</Grid>
|
|
|
|
<StackPanel Spacing="4">
|
|
<TextBlock Text="Wiederholung" FontSize="12" Opacity="0.7"
|
|
ToolTip.Tip="Beim Abschließen wird automatisch die nächste Instanz mit neuem Fälligkeitsdatum angelegt. Braucht ein Fälligkeitsdatum als Ausgangspunkt."/>
|
|
<ComboBox ItemsSource="{Binding RecurrenceOptions}" SelectedItem="{Binding SelectedRecurrence}"
|
|
HorizontalAlignment="Stretch"/>
|
|
</StackPanel>
|
|
|
|
<StackPanel Spacing="4">
|
|
<TextBlock Text="Notizen (optional)" FontSize="12" Opacity="0.7"/>
|
|
<TextBox Text="{Binding Notes}" AcceptsReturn="True" TextWrapping="Wrap" Height="80"/>
|
|
</StackPanel>
|
|
</StackPanel>
|
|
</ScrollViewer>
|
|
|
|
<Grid Grid.Row="1" ColumnDefinitions="*,8,*" Margin="0,20,0,0">
|
|
<Button Grid.Column="0" Content="Abbrechen" HorizontalAlignment="Stretch" Click="OnCancel"/>
|
|
<Button Grid.Column="2" Content="Speichern" HorizontalAlignment="Stretch" Click="OnSave"/>
|
|
</Grid>
|
|
</Grid>
|
|
</Window>
|