Files
adminandClaude Opus 5.5 d9eac0d1d2
CI / build-and-test (push) Canceled after 0s
Zwischenstand: vorläufige Noten zu Stichtag und Anlass
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>
2026-10-06 13:01:34 +02:00

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>