CI / build-and-test (push) Canceled after 0s
Ein Zwischenstand ist ein Durchgang aus Stichtag, Anlass und Schülerauswahl (ganze Gruppe, Teilgruppe oder Einzelfall, mit Schnellfilter für gefährdete Schüler). Der Zeugnisnoten-Assistent geht die gewählten Schüler im Zwischenstand-Modus durch und notiert vorläufige schriftliche, mündliche und Gesamtnote samt Notiz. Gespeichert wird das als eigenes Modell InterimGrade, getrennt von der Zeugnisnote. Die Berechnung endet am Stichtag und rechnet den laufenden Mitarbeits-Abschnitt mit ein. Zwischenstände erscheinen im Assistenten als Liste und Marker im Verlauf sowie als graue Spalte in der Notenübersicht (nicht in "Gesamt", nicht im PDF). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
88 lines
4.9 KiB
XML
88 lines
4.9 KiB
XML
<Window xmlns="https://github.com/avaloniaui"
|
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
|
xmlns:vm="clr-namespace:LehrerApp.Desktop.ViewModels.Groups"
|
|
x:Class="LehrerApp.Desktop.Views.Groups.InterimRunDialog"
|
|
x:DataType="vm:InterimRunDialogViewModel"
|
|
Title="Zwischenstand"
|
|
Width="560" Height="720" MinWidth="480" MinHeight="520"
|
|
CanResize="True" WindowStartupLocation="CenterOwner">
|
|
|
|
<Grid RowDefinitions="Auto,Auto,Auto,*,Auto" Margin="24">
|
|
|
|
<StackPanel Grid.Row="0" Spacing="2">
|
|
<TextBlock Text="{Binding GroupLabel}" FontSize="13" Opacity="0.5"/>
|
|
<TextBlock Text="Zwischenstand notieren" Classes="dialogtitle"/>
|
|
<TextBlock FontSize="12" Opacity="0.6" TextWrapping="Wrap"
|
|
Text="Vorläufige Noten zu einem Stichtag — für Sprechtage, blaue Briefe, Konferenzen oder einzelne Anfragen. Die Zeugnisnoten bleiben unberührt."/>
|
|
</StackPanel>
|
|
|
|
<StackPanel Grid.Row="1" Spacing="8" Margin="0,14,0,0">
|
|
<StackPanel Spacing="2" IsVisible="{Binding HasExistingRuns}">
|
|
<TextBlock Text="Begonnenen Durchgang fortsetzen" FontSize="11" Opacity="0.6"/>
|
|
<ComboBox ItemsSource="{Binding ExistingRuns}" SelectedItem="{Binding SelectedExistingRun}"
|
|
PlaceholderText="Neuer Durchgang" HorizontalAlignment="Stretch"/>
|
|
</StackPanel>
|
|
|
|
<Grid ColumnDefinitions="130,170,*" ColumnSpacing="8">
|
|
<StackPanel Grid.Column="0" Spacing="2">
|
|
<TextBlock Text="Stichtag" FontSize="11" Opacity="0.6"/>
|
|
<TextBox Text="{Binding DateText}" PlaceholderText="TT.MM.JJJJ"/>
|
|
<TextBlock Text="{Binding DateTextError}" Foreground="Red" FontSize="11" TextWrapping="Wrap"
|
|
IsVisible="{Binding DateTextError, Converter={x:Static StringConverters.IsNotNullOrEmpty}}"/>
|
|
</StackPanel>
|
|
<StackPanel Grid.Column="1" Spacing="2">
|
|
<TextBlock Text="Anlass" FontSize="11" Opacity="0.6"/>
|
|
<ComboBox ItemsSource="{Binding OccasionOptions}" SelectedItem="{Binding OccasionName}"
|
|
HorizontalAlignment="Stretch"/>
|
|
</StackPanel>
|
|
<StackPanel Grid.Column="2" Spacing="2">
|
|
<TextBlock Text="Ergänzung (optional)" FontSize="11" Opacity="0.6"/>
|
|
<TextBox Text="{Binding OccasionDetail}" PlaceholderText="z. B. 1. Elternsprechtag"/>
|
|
</StackPanel>
|
|
</Grid>
|
|
</StackPanel>
|
|
|
|
<StackPanel Grid.Row="2" Spacing="4" Margin="0,16,0,6">
|
|
<TextBlock Text="Schüler" FontSize="13" FontWeight="SemiBold"/>
|
|
<StackPanel Orientation="Horizontal" Spacing="6">
|
|
<Button Content="Alle" Command="{Binding SelectAllCommand}" FontSize="11" Padding="8,3"/>
|
|
<Button Content="Keine" Command="{Binding SelectNoneCommand}" FontSize="11" Padding="8,3"/>
|
|
<Button Content="{Binding AtRiskLabel}" Command="{Binding SelectAtRiskCommand}" FontSize="11"
|
|
Padding="8,3" Margin="10,0,0,0"
|
|
ToolTip.Tip="Wählt genau die Schüler aus, deren vorläufige Note zum Stichtag diese Schwelle erreicht"/>
|
|
<TextBox Text="{Binding ThresholdText}" Width="48" FontSize="11"/>
|
|
</StackPanel>
|
|
<TextBlock Text="{Binding ThresholdTextError}" Foreground="Red" FontSize="11"
|
|
IsVisible="{Binding ThresholdTextError, Converter={x:Static StringConverters.IsNotNullOrEmpty}}"/>
|
|
</StackPanel>
|
|
|
|
<Border Grid.Row="3" BorderBrush="{DynamicResource SystemControlForegroundBaseLowBrush}"
|
|
BorderThickness="1" CornerRadius="6">
|
|
<ScrollViewer>
|
|
<ItemsControl ItemsSource="{Binding Students}" Margin="8,4">
|
|
<ItemsControl.ItemTemplate>
|
|
<DataTemplate x:DataType="vm:InterimRunStudentRow">
|
|
<Grid ColumnDefinitions="*,Auto,50" Margin="0,1">
|
|
<CheckBox Grid.Column="0" Content="{Binding Name}" IsChecked="{Binding IsSelected}" FontSize="13"/>
|
|
<TextBlock Grid.Column="1" Text="{Binding NotedDisplay}" FontSize="11" Foreground="#2E86DE"
|
|
VerticalAlignment="Center" Margin="8,0"/>
|
|
<TextBlock Grid.Column="2" Text="{Binding ProvisionalDisplay}" FontSize="14" FontWeight="SemiBold"
|
|
VerticalAlignment="Center" HorizontalAlignment="Right"
|
|
ToolTip.Tip="Vorläufige Note zum Stichtag"/>
|
|
</Grid>
|
|
</DataTemplate>
|
|
</ItemsControl.ItemTemplate>
|
|
</ItemsControl>
|
|
</ScrollViewer>
|
|
</Border>
|
|
|
|
<Grid Grid.Row="4" ColumnDefinitions="*,Auto,Auto" Margin="0,14,0,0">
|
|
<TextBlock Grid.Column="0" Text="{Binding SelectionError}" Foreground="Red" FontSize="11"
|
|
VerticalAlignment="Center"
|
|
IsVisible="{Binding SelectionError, Converter={x:Static StringConverters.IsNotNullOrEmpty}}"/>
|
|
<Button Grid.Column="1" Content="Abbrechen" Click="OnCancel" Margin="0,0,8,0"/>
|
|
<Button Grid.Column="2" Content="Schüler durchgehen ▸" Click="OnConfirm"/>
|
|
</Grid>
|
|
</Grid>
|
|
</Window>
|