CI / build-and-test (push) Canceled after 0s
- Mitarbeit: Tagesflagge (👑 Spitzentag / 😴 Schlaftag / ⚡ Schlechter Tag) je Schüler und Sitzung. Primär im Sitzplatz-Dialog (⇧1/2/3, ⇧X) mit Badge auf der Sitzplatz-Kachel; Fallback in der Schnelleingabe für Lerngruppen ohne Sitzplan. - Noten: neuer Dialog "Überblick" in der Notenübersicht zeigt Klausuren, Mitarbeit- und sonstige Noten eines Schülers samt berechneter Zeugnisnote. Zielnoten-Rechner (ReportGradeTargetCalculator) beantwortet "was brauche ich noch für Note X", ein Was-wäre-wenn-Rechner simuliert eine zusätzliche Klausurnote. Bewerter-/Schülermodus per Umschalter im selben Fenster — Bewertermodus zeigt zusätzlich Kursdurchschnitt je Klausur und erlaubt das Bearbeiten von Mitarbeit-/Sonstige-Noten. Klausurverlauf als Balken-Sparkline wie die bestehende Notenentwicklung. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
158 lines
8.8 KiB
XML
158 lines
8.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.Groups"
|
||
x:Class="LehrerApp.Desktop.Views.Groups.SeatAssessmentDialog"
|
||
x:DataType="vm:SeatAssessmentViewModel"
|
||
Title="Sitzplatz-Schnelleingabe" Width="660" Height="700"
|
||
MinWidth="560" MinHeight="560" CanResize="True"
|
||
WindowStartupLocation="CenterOwner">
|
||
<Window.Styles>
|
||
<Style Selector="Button.choice">
|
||
<Setter Property="Background" Value="Transparent"/>
|
||
<Setter Property="BorderBrush" Value="{DynamicResource SystemControlForegroundBaseLowBrush}"/>
|
||
<Setter Property="BorderThickness" Value="1"/>
|
||
<Setter Property="Padding" Value="8,5"/>
|
||
</Style>
|
||
<Style Selector="Button.choice.selected">
|
||
<Setter Property="Background" Value="{DynamicResource SystemAccentColorLight2}"/>
|
||
<Setter Property="BorderBrush" Value="{DynamicResource SystemAccentColor}"/>
|
||
<Setter Property="BorderThickness" Value="2"/>
|
||
</Style>
|
||
<Style Selector="Border.aspectrow">
|
||
<Setter Property="BorderBrush" Value="Transparent"/>
|
||
<Setter Property="BorderThickness" Value="1"/>
|
||
<Setter Property="Background" Value="Transparent"/>
|
||
</Style>
|
||
<Style Selector="Border.aspectrow.active">
|
||
<Setter Property="BorderBrush" Value="{DynamicResource SystemAccentColor}"/>
|
||
<Setter Property="Background" Value="{DynamicResource SystemAccentColorLight3}"/>
|
||
</Style>
|
||
</Window.Styles>
|
||
|
||
<Grid RowDefinitions="Auto,*,Auto" Margin="20">
|
||
<Grid Grid.Row="0" ColumnDefinitions="*,Auto" Margin="0,0,0,14">
|
||
<StackPanel>
|
||
<TextBlock Text="{Binding StudentName}" FontSize="22" FontWeight="SemiBold"/>
|
||
<TextBlock Text="{Binding SessionDisplay}" FontSize="12" Opacity="0.55"/>
|
||
</StackPanel>
|
||
<Button Grid.Column="1" Content="Schließen" Click="OnClose" VerticalAlignment="Center"/>
|
||
</Grid>
|
||
|
||
<ScrollViewer Grid.Row="1">
|
||
<StackPanel Spacing="16" IsEnabled="{Binding CanEdit}">
|
||
<Border Background="#FFF3CD" CornerRadius="6" Padding="10"
|
||
IsVisible="{Binding CanEdit, Converter={x:Static BoolConverters.Not}}">
|
||
<TextBlock Text="{Binding ReadOnlyHint}" Foreground="#92400E" TextWrapping="Wrap"/>
|
||
</Border>
|
||
|
||
<StackPanel Spacing="7">
|
||
<TextBlock Text="MITARBEIT" FontSize="11" FontWeight="Bold" Opacity="0.5"/>
|
||
<ItemsControl ItemsSource="{Binding AspectRows}">
|
||
<ItemsControl.ItemTemplate>
|
||
<DataTemplate x:DataType="vm:SeatAssessmentAspectRow">
|
||
<Border Classes="aspectrow" Classes.active="{Binding IsActive}"
|
||
CornerRadius="7" Padding="9" Margin="0,3">
|
||
<Grid ColumnDefinitions="150,*">
|
||
<StackPanel VerticalAlignment="Center">
|
||
<TextBlock FontWeight="SemiBold">
|
||
<Run Text="["/><Run Text="{Binding Shortcut}"/><Run Text="] "/><Run Text="{Binding Label}"/>
|
||
</TextBlock>
|
||
<TextBlock Text="{Binding DisplayValue}" FontSize="11" Opacity="0.6"/>
|
||
<Button Content="{Binding SuggestionLabel}" Command="{Binding ApplySuggestionCommand}"
|
||
IsVisible="{Binding HasSuggestion}" FontSize="10" Padding="6,2" Margin="0,3,0,0"
|
||
HorizontalAlignment="Left"
|
||
ToolTip.Tip="Aus der Strichliste im Sitzplan übernehmen"/>
|
||
</StackPanel>
|
||
<WrapPanel Grid.Column="1" HorizontalAlignment="Right">
|
||
<ItemsControl ItemsSource="{Binding Choices}">
|
||
<ItemsControl.ItemsPanel><ItemsPanelTemplate><StackPanel Orientation="Horizontal"/></ItemsPanelTemplate></ItemsControl.ItemsPanel>
|
||
<ItemsControl.ItemTemplate>
|
||
<DataTemplate x:DataType="vm:SeatRatingChoice">
|
||
<Button Classes="choice" Classes.selected="{Binding IsSelected}"
|
||
Command="{Binding ApplyCommand}" Margin="2">
|
||
<StackPanel>
|
||
<TextBlock Text="{Binding Label}" HorizontalAlignment="Center" FontWeight="SemiBold"/>
|
||
<TextBlock Text="{Binding Shortcut}" HorizontalAlignment="Center" FontSize="9" Opacity="0.5"/>
|
||
</StackPanel>
|
||
</Button>
|
||
</DataTemplate>
|
||
</ItemsControl.ItemTemplate>
|
||
</ItemsControl>
|
||
<Button Classes="choice" Content="−" Command="{Binding DecrementCommand}" Margin="2"/>
|
||
<Button Classes="choice" Content="+" Command="{Binding IncrementCommand}" Margin="2"/>
|
||
<Button Classes="choice" Content="Löschen" Command="{Binding ClearCommand}" Margin="2"/>
|
||
</WrapPanel>
|
||
</Grid>
|
||
</Border>
|
||
</DataTemplate>
|
||
</ItemsControl.ItemTemplate>
|
||
</ItemsControl>
|
||
</StackPanel>
|
||
|
||
<StackPanel Spacing="7">
|
||
<TextBlock Text="ANWESENHEIT" FontSize="11" FontWeight="Bold" Opacity="0.5"/>
|
||
<TextBlock Text="{Binding AttendanceLabel}" FontSize="12"/>
|
||
<ItemsControl ItemsSource="{Binding AttendanceChoices}">
|
||
<ItemsControl.ItemsPanel><ItemsPanelTemplate><WrapPanel/></ItemsPanelTemplate></ItemsControl.ItemsPanel>
|
||
<ItemsControl.ItemTemplate>
|
||
<DataTemplate x:DataType="vm:SeatAttendanceChoice">
|
||
<Button Classes="choice" Classes.selected="{Binding IsSelected}"
|
||
Command="{Binding ApplyCommand}" Margin="2">
|
||
<StackPanel Orientation="Horizontal" Spacing="5">
|
||
<TextBlock Text="{Binding Symbol}" FontWeight="Bold"/>
|
||
<TextBlock Text="{Binding Label}"/>
|
||
<TextBlock Text="{Binding Shortcut}" FontSize="9" Opacity="0.5" VerticalAlignment="Center"/>
|
||
</StackPanel>
|
||
</Button>
|
||
</DataTemplate>
|
||
</ItemsControl.ItemTemplate>
|
||
</ItemsControl>
|
||
</StackPanel>
|
||
|
||
<StackPanel Spacing="7">
|
||
<TextBlock Text="HAUSAUFGABEN" FontSize="11" FontWeight="Bold" Opacity="0.5"/>
|
||
<TextBlock Text="{Binding HomeworkLabel}" FontSize="12"/>
|
||
<ItemsControl ItemsSource="{Binding HomeworkChoices}">
|
||
<ItemsControl.ItemsPanel><ItemsPanelTemplate><WrapPanel/></ItemsPanelTemplate></ItemsControl.ItemsPanel>
|
||
<ItemsControl.ItemTemplate>
|
||
<DataTemplate x:DataType="vm:SeatHomeworkChoice">
|
||
<Button Classes="choice" Classes.selected="{Binding IsSelected}"
|
||
Command="{Binding ApplyCommand}" Margin="2">
|
||
<StackPanel Orientation="Horizontal" Spacing="5">
|
||
<TextBlock Text="{Binding Symbol}" FontWeight="Bold"/>
|
||
<TextBlock Text="{Binding Label}"/>
|
||
<TextBlock Text="{Binding Shortcut}" FontSize="9" Opacity="0.5" VerticalAlignment="Center"/>
|
||
</StackPanel>
|
||
</Button>
|
||
</DataTemplate>
|
||
</ItemsControl.ItemTemplate>
|
||
</ItemsControl>
|
||
</StackPanel>
|
||
|
||
<StackPanel Spacing="7">
|
||
<TextBlock Text="TAGESFLAGGE" FontSize="11" FontWeight="Bold" Opacity="0.5"/>
|
||
<TextBlock Text="{Binding DayHighlightLabel}" FontSize="12"/>
|
||
<ItemsControl ItemsSource="{Binding DayHighlightChoices}">
|
||
<ItemsControl.ItemsPanel><ItemsPanelTemplate><WrapPanel/></ItemsPanelTemplate></ItemsControl.ItemsPanel>
|
||
<ItemsControl.ItemTemplate>
|
||
<DataTemplate x:DataType="vm:SeatDayHighlightChoice">
|
||
<Button Classes="choice" Classes.selected="{Binding IsSelected}"
|
||
Command="{Binding ApplyCommand}" Margin="2">
|
||
<StackPanel Orientation="Horizontal" Spacing="5">
|
||
<TextBlock Text="{Binding Symbol}" FontWeight="Bold"/>
|
||
<TextBlock Text="{Binding Label}"/>
|
||
<TextBlock Text="{Binding Shortcut}" FontSize="9" Opacity="0.5" VerticalAlignment="Center"/>
|
||
</StackPanel>
|
||
</Button>
|
||
</DataTemplate>
|
||
</ItemsControl.ItemTemplate>
|
||
</ItemsControl>
|
||
</StackPanel>
|
||
</StackPanel>
|
||
</ScrollViewer>
|
||
|
||
<TextBlock Grid.Row="2" Margin="0,12,0,0" FontSize="10" Opacity="0.55" TextWrapping="Wrap"
|
||
Text="Mitarbeit: Q/W/E/R/T Aspekt · 1–5 Bewertung · +/− anpassen · Backspace löschen · ←/→ Aspekt | Anwesenheit: Strg+1/2/5/7/9/0, Strg+X | Hausaufgaben: ⌥+1/3/4/5/7/8/0, ⌥+X | Tagesflagge: ⇧1/2/3, ⇧X | Esc schließen"/>
|
||
</Grid>
|
||
</Window>
|