Files
LehrerApp/LehrerApp.Desktop/Views/Groups/ParticipationQuickInputDialog.axaml
T
adminandClaude Sonnet 5 16ff4875d8 3.1.3: Aspekt-Typen Scale3/Binary/Points in Raster und Dialog unterstützt
Neue Klasse ParticipationRatingScale (Core) ist die einzige Quelle für
Rohwerte je Aspekt-Typ. Scale3/Binary liegen bewusst direkt auf derselben
-2..+2-Achse wie Scale5 (nur mit weniger Zwischenschritten), damit die
bestehende Gewichtung/Mittelwertbildung zur Mitarbeitsnote unverändert
kompatibel bleibt. Points ist grundverschieden (echter Zählwert 0..MaxPoints,
neues Feld auf ParticipationAspect) und wird nur zur Aggregation linear auf
dieselbe Achse normiert.

Ohne diese Normierung hätte ein Punkte-Aspekt die Mitarbeitsnote verfälscht:
drei Stellen summierten bisher den Rohwert direkt (ParticipationGradeDialog-
ViewModel.Recompute, ParticipationWizardViewModels.WeightedRating und
.ComputeSuggestion) - alle drei sind jetzt auf die Normierung umgestellt.

Raster: Punkte-Aspekte zeigen ein NumericUpDown statt fester Stufen-Buttons.
Schnelleingabe-Dialog: Zifferntasten/+/- sind jetzt typabhängig, Legende
zeigt live die für den aktuellen Aspekt gültigen Tasten. Aspekt-Verwaltung
um "Max. Punkte"-Feld ergänzt (nur bei Typ "Punkte" sichtbar).

Bewusst nicht angefasst: die Trendlinien-Visualisierung im
Mitarbeits-Assistenten bleibt fest auf die drei Standardaspekte
zugeschnitten - eigener, größerer Umbau.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-17 00:12:16 +02:00

57 lines
2.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.ParticipationQuickInputDialog"
x:DataType="vm:QuickInputViewModel"
Title="Schnelleingabe Mitarbeit"
Width="420" SizeToContent="Height"
CanResize="False" WindowStartupLocation="CenterOwner">
<Grid RowDefinitions="Auto,*,Auto" Margin="24">
<!-- Schülername + Fortschritt -->
<Grid Grid.Row="0" ColumnDefinitions="*,Auto" Margin="0,0,0,16">
<StackPanel Grid.Column="0">
<TextBlock Text="{Binding StudentName}" FontSize="22" FontWeight="SemiBold"/>
<TextBlock Text="{Binding CurrentAspectLabel}" FontSize="13" Opacity="0.5"/>
</StackPanel>
<TextBlock Grid.Column="1" Text="{Binding ProgressText}"
VerticalAlignment="Top" FontSize="13" Opacity="0.4"/>
</Grid>
<!-- Aspektliste -->
<ItemsControl Grid.Row="1" ItemsSource="{Binding AspectRows}">
<ItemsControl.ItemTemplate>
<DataTemplate x:DataType="vm:QuickAspectRow">
<Grid ColumnDefinitions="4,8,*,44" Margin="0,3">
<!-- Aktiv-Balken links -->
<Border Grid.Column="0" CornerRadius="2"
Background="{DynamicResource SystemAccentColor}"
IsVisible="{Binding IsActive}"/>
<!-- Index-Badge -->
<TextBlock Grid.Column="1" Text="{Binding Index, StringFormat='[{0}]'}"
FontFamily="Monospace" FontSize="11" Opacity="0.4"
VerticalAlignment="Center" Margin="0,0,6,0"/>
<!-- Aspektname: bold wenn aktiv, gedimmt wenn nicht -->
<TextBlock Grid.Column="2" Text="{Binding Label}" FontWeight="SemiBold"
IsVisible="{Binding IsActive}" VerticalAlignment="Center"/>
<TextBlock Grid.Column="2" Text="{Binding Label}" Opacity="0.55"
IsVisible="{Binding IsActive, Converter={x:Static BoolConverters.Not}}"
VerticalAlignment="Center"/>
<!-- Aktueller Wert -->
<TextBlock Grid.Column="3" Text="{Binding DisplayLabel}"
FontFamily="Monospace" FontSize="16" FontWeight="Bold"
TextAlignment="Right" VerticalAlignment="Center"/>
</Grid>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
<!-- Tastenkürzel-Legende + Schließen-Button -->
<StackPanel Grid.Row="2" Margin="0,16,0,0" Spacing="6">
<TextBlock Opacity="0.35" FontSize="11" TextWrapping="Wrap" Text="{Binding HotkeyLegend}"/>
<Button Content="Schließen" HorizontalAlignment="Stretch" Click="OnClose"/>
</StackPanel>
</Grid>
</Window>