Files
LehrerApp/LehrerApp.Desktop/Views/Groups/PlanningTabView.axaml
T
adminandClaude Sonnet 5 de6ea001e7 Unterrichtsplanung: Einheiten, Verlaufsplan-Editor, Kürzel-Katalog (Kapitel 4.1/4.2)
Neuer Tab "Planung" in GroupDetailView ersetzt den Platzhalter: Einheiten anlegen/bearbeiten/
als Vorlage in andere Gruppe kopieren, Stunden je Einheit mit Verschieben (inkl. Nachrücken
der Folgestunden). Stundeneditor als tabellarischer Verlaufsplan (Phase/Dauer/Tätigkeit/
Material/Kurzsymbol je Zeile, Uhrzeit aus optionalem Stundenbeginn abgeleitet) statt eines
einzelnen Phase-Felds mit Methoden-/Materialien-Chips — Kurzsymbol als Freitext mit
Vorschlägen aus neuem Kürzel-Katalog (Einstellungen) plus bisher verwendeten Werten.
Schema-Migrationen v1-v3 überführen bestehende Daten verlustfrei. 4.2.5 bewusst offen
gelassen (hängt an Stundenplan, Kapitel 4.3).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-14 00:50:57 +02:00

109 lines
5.7 KiB
XML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<UserControl 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.PlanningTabView"
x:DataType="vm:PlanningTabViewModel">
<Grid RowDefinitions="Auto,2*,Auto,Auto,2*" Margin="16">
<!-- Einheiten-Toolbar -->
<Grid Grid.Row="0" ColumnDefinitions="*,Auto" Margin="0,0,0,8">
<TextBlock Grid.Column="0" Text="Unterrichtseinheiten" FontSize="14" FontWeight="SemiBold"
VerticalAlignment="Center"/>
<StackPanel Grid.Column="1" Orientation="Horizontal" Spacing="8">
<Button Content=" Einheit" Command="{Binding AddUnitCommand}"/>
<Button Content="Bearbeiten" Command="{Binding EditUnitCommand}"/>
<Button Content="Als Vorlage kopieren" Command="{Binding CopyUnitCommand}"/>
<Button Content="Löschen" Command="{Binding DeleteUnitCommand}"/>
</StackPanel>
</Grid>
<!-- Einheiten-Tabelle -->
<DataGrid Grid.Row="1" ItemsSource="{Binding Units}"
SelectedItem="{Binding SelectedUnit}"
AutoGenerateColumns="False"
IsReadOnly="True"
GridLinesVisibility="Horizontal"
CanUserReorderColumns="False"
Margin="0,0,0,8">
<DataGrid.Columns>
<DataGridTextColumn Header="Titel" Binding="{Binding Title}" Width="*"/>
<DataGridTextColumn Header="Zeitraum" Binding="{Binding DateRangeDisplay}" Width="200"/>
<DataGridTemplateColumn Header="Status" Width="130">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate x:DataType="vm:UnitSummary">
<Border Background="{Binding StatusColorHex}" CornerRadius="4"
Padding="8,2" HorizontalAlignment="Left">
<TextBlock Text="{Binding StatusLabel}" FontSize="12" Foreground="White"/>
</Border>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTemplateColumn Header="Fortschritt" Width="180">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate x:DataType="vm:UnitSummary">
<StackPanel Spacing="2" VerticalAlignment="Center" Margin="0,4">
<ProgressBar Value="{Binding ProgressFraction}" Maximum="1" Height="6"/>
<TextBlock Text="{Binding ProgressText}" FontSize="11" Opacity="0.7"/>
</StackPanel>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTextColumn Header="Kompetenzen" Binding="{Binding CompetencyCountLabel}" Width="120"/>
</DataGrid.Columns>
</DataGrid>
<Separator Grid.Row="2" Margin="0,0,0,8"/>
<!-- Stunden-Toolbar -->
<Grid Grid.Row="3" ColumnDefinitions="*,Auto" Margin="0,0,0,8">
<StackPanel Grid.Column="0" Orientation="Horizontal" VerticalAlignment="Center">
<TextBlock Text="Stunden" FontSize="14" FontWeight="SemiBold"/>
<TextBlock Text="{Binding SelectedUnitTitleSuffix}" FontSize="14" FontWeight="SemiBold"/>
</StackPanel>
<StackPanel Grid.Column="1" Orientation="Horizontal" Spacing="8">
<Button Content=" Stunde" Command="{Binding AddLessonCommand}"/>
<Button Content="Bearbeiten" Command="{Binding EditLessonCommand}"/>
<Button Content="Verschieben" Command="{Binding MoveLessonCommand}"/>
<Button Content="Status → Durchgeführt" Command="{Binding AdvanceLessonStatusCommand}"/>
<Button Content="Löschen" Command="{Binding DeleteLessonCommand}"/>
</StackPanel>
</Grid>
<!-- Stunden-Tabelle -->
<DataGrid Grid.Row="4" ItemsSource="{Binding Lessons}"
SelectedItem="{Binding SelectedLesson}"
AutoGenerateColumns="False"
IsReadOnly="True"
GridLinesVisibility="Horizontal"
CanUserReorderColumns="False">
<DataGrid.Columns>
<DataGridTextColumn Header="Datum" Binding="{Binding DateDisplay}" Width="100"/>
<DataGridTextColumn Header="Nr." Binding="{Binding LessonNumber}" Width="50"/>
<DataGridTextColumn Header="Thema" Binding="{Binding Topic}" Width="*"/>
<DataGridTextColumn Header="Beginn" Binding="{Binding StartTimeDisplay}" Width="70"/>
<DataGridTemplateColumn Header="Status" Width="130">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate x:DataType="vm:LessonSummary">
<Border Background="{Binding StatusColorHex}" CornerRadius="4"
Padding="8,2" HorizontalAlignment="Left">
<TextBlock Text="{Binding StatusLabel}" FontSize="12" Foreground="White"/>
</Border>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTextColumn Header="Phasen" Binding="{Binding PhaseCountLabel}" Width="80"/>
<DataGridTextColumn Header="Dauer" Binding="{Binding TotalDurationLabel}" Width="80"/>
<DataGridTextColumn Header="Materialien" Binding="{Binding MaterialsDisplay}" Width="150"/>
<DataGridTemplateColumn Header="HA" Width="40">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate x:DataType="vm:LessonSummary">
<TextBlock Text="✓" IsVisible="{Binding HasHomework}" HorizontalAlignment="Center"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>
</Grid>
</UserControl>