Schreibgeschützter LessonViewerDialog (größere Schrift, ohne Bearbeitungs-/Verlängern-/ Verschieben-Funktion) für den Einsatz während des Unterrichtens, erreichbar über "Anzeigen" im Stunden-Toolbar. Alternative Unterrichtsabläufe (z.B. Kurzversion bei Zeitmangel) laufen jetzt über einen echten Katalog (neues Modell AlternativeLessonPath: Name + Beschreibung) statt Freitext direkt an der Phase: im Verlaufsplan-Editor eine kompakte, farbig unterstützte Checkbox statt einer durchgehend sichtbaren Eingabespalte, Zuordnung/Neuanlage über einen eigenen Dialog. Der Viewer gruppiert Phasen entsprechend und zeigt die hinterlegte Beschreibung. Schema-Migration v3→v4 führt bestehende Freitextwerte verlustfrei in Katalogeinträge über. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
58 lines
3.1 KiB
XML
58 lines
3.1 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"
|
|
xmlns:models="clr-namespace:LehrerApp.Core.Models;assembly=LehrerApp.Core"
|
|
x:Class="LehrerApp.Desktop.Views.Groups.AlternativePathDialog"
|
|
x:DataType="vm:AlternativePathDialogViewModel"
|
|
Title="Alternativer Ablauf"
|
|
Width="440" Height="500" MinWidth="380" MinHeight="380"
|
|
CanResize="True" WindowStartupLocation="CenterOwner">
|
|
|
|
<Grid RowDefinitions="*,Auto" Margin="24">
|
|
<ScrollViewer Grid.Row="0">
|
|
<StackPanel Spacing="14">
|
|
<TextBlock Text="Alternativer Ablauf" Classes="dialogtitle"/>
|
|
<TextBlock Text="Diese Phase gehört zu einem alternativen Unterrichtsverlauf, z.B. einer Kurzversion bei Zeitmangel."
|
|
FontSize="12" Opacity="0.6" TextWrapping="Wrap"/>
|
|
|
|
<StackPanel Spacing="4">
|
|
<TextBlock Text="Vorhandene Abläufe" FontSize="12" Opacity="0.7"/>
|
|
<ComboBox ItemsSource="{Binding Available}" SelectedItem="{Binding SelectedPath}"
|
|
HorizontalAlignment="Stretch" PlaceholderText="Ablauf auswählen">
|
|
<ComboBox.ItemTemplate>
|
|
<DataTemplate x:DataType="models:AlternativeLessonPath">
|
|
<StackPanel Margin="0,2">
|
|
<TextBlock Text="{Binding Name}"/>
|
|
<TextBlock Text="{Binding Description}" FontSize="11" Opacity="0.6" TextWrapping="Wrap"
|
|
IsVisible="{Binding Description, Converter={x:Static StringConverters.IsNotNullOrEmpty}}"/>
|
|
</StackPanel>
|
|
</DataTemplate>
|
|
</ComboBox.ItemTemplate>
|
|
</ComboBox>
|
|
<TextBlock Text="{Binding SelectionError}" Foreground="Red" FontSize="11"
|
|
IsVisible="{Binding SelectionError, Converter={x:Static StringConverters.IsNotNullOrEmpty}}"/>
|
|
</StackPanel>
|
|
|
|
<Separator Margin="0,4"/>
|
|
|
|
<StackPanel Spacing="10">
|
|
<TextBlock Text="Neuen Ablauf anlegen" FontSize="12" FontWeight="SemiBold" Opacity="0.7"/>
|
|
<StackPanel Spacing="4">
|
|
<TextBox Text="{Binding NewName}" PlaceholderText="Name, z.B. Kurzversion"/>
|
|
<TextBlock Text="{Binding NewNameError}" Foreground="Red" FontSize="11"
|
|
IsVisible="{Binding NewNameError, Converter={x:Static StringConverters.IsNotNullOrEmpty}}"/>
|
|
</StackPanel>
|
|
<TextBox Text="{Binding NewDescription}" AcceptsReturn="True" Height="64" TextWrapping="Wrap"
|
|
PlaceholderText="Wann nimmt man diesen Weg? z.B. 'Bei Zeitmangel, wenn Aufgabe 3 nicht mehr passt.'"/>
|
|
<Button Content="Anlegen und auswählen" Command="{Binding CreateNewCommand}" HorizontalAlignment="Left"/>
|
|
</StackPanel>
|
|
</StackPanel>
|
|
</ScrollViewer>
|
|
|
|
<Grid Grid.Row="1" ColumnDefinitions="*,8,*" Margin="0,20,0,0">
|
|
<Button Grid.Column="0" Content="Abbrechen" HorizontalAlignment="Stretch" Click="OnCancel"/>
|
|
<Button Grid.Column="2" Content="Übernehmen" HorizontalAlignment="Stretch" Click="OnConfirm"/>
|
|
</Grid>
|
|
</Grid>
|
|
</Window>
|