Avalonias Spinner-DatePicker übernimmt Änderungen nur über einen separaten Häkchen-Button im Flyout und verwirft sie sonst stillschweigend. Betrifft alle verbliebenen Zeitraum-Datumsfelder mit diesem Muster. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
89 lines
5.8 KiB
XML
89 lines
5.8 KiB
XML
<Window xmlns="https://github.com/avaloniaui"
|
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
|
xmlns:vm="clr-namespace:LehrerApp.Desktop.ViewModels.Students"
|
|
x:Class="LehrerApp.Desktop.Views.Students.WebUntisDocumentationComparisonDialog"
|
|
x:DataType="vm:WebUntisDocumentationComparisonViewModel"
|
|
Title="Klassenbucheinträge mit WebUntis abgleichen" Width="1150" Height="720"
|
|
MinWidth="900" MinHeight="500" WindowStartupLocation="CenterOwner">
|
|
<Grid RowDefinitions="Auto,Auto,Auto,2*,Auto,Auto,1*,Auto" Margin="24" RowSpacing="8">
|
|
<StackPanel Grid.Row="0" Spacing="4">
|
|
<TextBlock Text="Klassenbucheinträge mit WebUntis abgleichen" Classes="dialogtitle"/>
|
|
<TextBlock TextWrapping="Wrap" FontSize="12" Opacity="0.65"
|
|
Text="Nur eigene WebUntis-Einträge (Benutzer = eigener Login). Zeilen ohne automatische Zuordnung bitte manuell einem/einer Schüler*in zuweisen. Bereits lokal vorhandene Einträge sind gesperrt."/>
|
|
</StackPanel>
|
|
<StackPanel Grid.Row="1" Orientation="Horizontal" Spacing="8">
|
|
<CalendarDatePicker SelectedDate="{Binding StartDate}"/>
|
|
<TextBlock Text="bis" VerticalAlignment="Center"/>
|
|
<CalendarDatePicker SelectedDate="{Binding EndDate}"/>
|
|
<Button Content="Klassenbucheinträge laden" Command="{Binding LoadCommand}" IsEnabled="{Binding !Busy}"/>
|
|
</StackPanel>
|
|
|
|
<Grid Grid.Row="2" ColumnDefinitions="Auto,70,55,65,1.1*,1.1*,1*,1.3*,1.3*" ColumnSpacing="8" Margin="4,0">
|
|
<TextBlock Grid.Column="1" Text="Datum" FontSize="11" Opacity="0.6"/>
|
|
<TextBlock Grid.Column="2" Text="Klasse" FontSize="11" Opacity="0.6"/>
|
|
<TextBlock Grid.Column="3" Text="Fach" FontSize="11" Opacity="0.6"/>
|
|
<TextBlock Grid.Column="4" Text="Name (WebUntis)" FontSize="11" Opacity="0.6"/>
|
|
<TextBlock Grid.Column="5" Text="Zuordnung" FontSize="11" Opacity="0.6"/>
|
|
<TextBlock Grid.Column="6" Text="Kategorie" FontSize="11" Opacity="0.6"/>
|
|
<TextBlock Grid.Column="7" Text="Text" FontSize="11" Opacity="0.6"/>
|
|
<TextBlock Grid.Column="8" Text="Lokal am selben Tag" FontSize="11" Opacity="0.6"/>
|
|
</Grid>
|
|
<ScrollViewer Grid.Row="3">
|
|
<ItemsControl ItemsSource="{Binding Rows}">
|
|
<ItemsControl.ItemTemplate>
|
|
<DataTemplate x:DataType="vm:WebUntisDocumentationRow">
|
|
<Grid ColumnDefinitions="Auto,70,55,65,1.1*,1.1*,1*,1.3*,1.3*" ColumnSpacing="8" Margin="0,3">
|
|
<CheckBox Grid.Column="0" IsChecked="{Binding Selected}" IsEnabled="{Binding CanApply}"/>
|
|
<TextBlock Grid.Column="1" Text="{Binding DateLabel}" VerticalAlignment="Center"/>
|
|
<TextBlock Grid.Column="2" Text="{Binding ClassName}" VerticalAlignment="Center"/>
|
|
<TextBlock Grid.Column="3" Text="{Binding Subject}" VerticalAlignment="Center"/>
|
|
<TextBlock Grid.Column="4" Text="{Binding UntisStudentName}" VerticalAlignment="Center" TextWrapping="Wrap"/>
|
|
<ComboBox Grid.Column="5" ItemsSource="{Binding Candidates}" SelectedItem="{Binding AssignedStudent}"
|
|
DisplayMemberBinding="{Binding FullName}" PlaceholderText="Schüler*in wählen…"
|
|
HorizontalAlignment="Stretch"/>
|
|
<StackPanel Grid.Column="6" Spacing="0">
|
|
<TextBlock Text="{Binding CategoryName}" TextWrapping="Wrap"/>
|
|
<TextBlock Text="{Binding CategoryGroup}" FontSize="11" Opacity="0.6"/>
|
|
</StackPanel>
|
|
<TextBlock Grid.Column="7" Text="{Binding Text}" TextWrapping="Wrap" VerticalAlignment="Center"/>
|
|
<TextBlock Grid.Column="8" Text="{Binding ExistingLocalEntry}" TextWrapping="Wrap"
|
|
Foreground="DarkOrange" VerticalAlignment="Center"
|
|
IsVisible="{Binding ExistingLocalEntry, Converter={x:Static StringConverters.IsNotNullOrEmpty}}"/>
|
|
</Grid>
|
|
</DataTemplate>
|
|
</ItemsControl.ItemTemplate>
|
|
</ItemsControl>
|
|
</ScrollViewer>
|
|
<Grid Grid.Row="4" ColumnDefinitions="*,Auto" ColumnSpacing="8">
|
|
<TextBlock Grid.Column="0" Text="{Binding Status}" FontSize="12" TextWrapping="Wrap" VerticalAlignment="Center"/>
|
|
<Button Grid.Column="1" Content="Markierte übernehmen" Command="{Binding ApplyCommand}" IsEnabled="{Binding !Busy}"/>
|
|
</Grid>
|
|
|
|
<StackPanel Grid.Row="5" Spacing="2">
|
|
<TextBlock Text="Lokale Einträge im Zeitraum ohne WebUntis-Gegenstück" FontWeight="SemiBold" FontSize="13"/>
|
|
<TextBlock FontSize="12" Opacity="0.65" TextWrapping="Wrap"
|
|
Text="Kein Schreibzugriff auf WebUntis — Text zum manuellen Nacherfassen in die Zwischenablage kopieren."/>
|
|
</StackPanel>
|
|
<ScrollViewer Grid.Row="6">
|
|
<ItemsControl ItemsSource="{Binding LocalOnlyRows}">
|
|
<ItemsControl.ItemTemplate>
|
|
<DataTemplate x:DataType="vm:LocalOnlyDocumentationRow">
|
|
<Grid ColumnDefinitions="80,1.2*,1.5*,2.5*,Auto" ColumnSpacing="8" Margin="0,3">
|
|
<TextBlock Grid.Column="0" Text="{Binding DateLabel}" VerticalAlignment="Center"/>
|
|
<TextBlock Grid.Column="1" Text="{Binding StudentName}" VerticalAlignment="Center" TextWrapping="Wrap"/>
|
|
<TextBlock Grid.Column="2" Text="{Binding GroupName}" VerticalAlignment="Center" TextWrapping="Wrap"/>
|
|
<StackPanel Grid.Column="3">
|
|
<TextBlock Text="{Binding Title}" FontWeight="SemiBold"/>
|
|
<TextBlock Text="{Binding Content}" TextWrapping="Wrap" FontSize="12" Opacity="0.8"/>
|
|
</StackPanel>
|
|
<Button Grid.Column="4" Content="In Zwischenablage" Click="OnCopyToClipboardClick"/>
|
|
</Grid>
|
|
</DataTemplate>
|
|
</ItemsControl.ItemTemplate>
|
|
</ItemsControl>
|
|
</ScrollViewer>
|
|
|
|
<Button Grid.Row="7" Content="Schließen" Click="OnClose" HorizontalAlignment="Right"/>
|
|
</Grid>
|
|
</Window>
|