Kurs-Übersicht gefüllt: nächste Termine, Mitarbeitshinweis, offene Kontrollen/Dokumentationen, auffällige Fehlzeiten
Der bislang leere "Übersicht"-Tab je Kurs zeigt jetzt einen kompakten "Was steht an"-Überblick aus bereits vorhandenen Daten mit Klick-Durchsprung in den jeweiligen Tab: nächste Stunde/Klausur, Hinweis auf die letzte Mitarbeitssitzung, offene Hausaufgaben-Kontrolle, offene Entschuldigungen, offene Dokumentations-Entwürfe und auffällige Fehlzeiten. Die Fehlzeiten-Karte ist bewusst kein 1:1-Abbild der Dashboard-Warnung: erst ab einer Mindeststichprobe von 8 erfassten Terminen im Schuljahr gemeldet, damit ein einzelner Fehltag zu Schuljahresbeginn nicht sofort als auffällig gilt. Das Hauptdashboard hat dasselbe Problem noch, wird dort separat nachgezogen. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -208,12 +208,14 @@ public partial class GroupDetailViewModel : ObservableObject
|
||||
partial void OnShowFormerStudentsChanged(bool value) => LoadStudents();
|
||||
partial void OnActiveTabIndexChanged(int value)
|
||||
{
|
||||
if (value == 0) OverviewTab.Refresh();
|
||||
if (value == 7) CompetencyOverviewTab.Refresh();
|
||||
}
|
||||
|
||||
public ObservableCollection<StudentSummary> Students { get; } = [];
|
||||
public ObservableCollection<ExamSummary> Exams { get; } = [];
|
||||
|
||||
public GroupOverviewViewModel OverviewTab { get; }
|
||||
public ParticipationTabViewModel ParticipationTab { get; }
|
||||
public GradeOverviewTabViewModel GradeOverviewTab { get; }
|
||||
public PlanningTabViewModel PlanningTab { get; }
|
||||
@@ -233,12 +235,14 @@ public partial class GroupDetailViewModel : ObservableObject
|
||||
public GroupDetailViewModel(IGroupRepository groups, IStudentRepository students,
|
||||
IGroupMembershipRepository memberships, ISubjectRepository subjects,
|
||||
IExamRepository exams, IGradeRepository grades, IWorkTaskRepository tasks,
|
||||
ParticipationTabViewModel participationTab, GradeOverviewTabViewModel gradeOverviewTab,
|
||||
GroupOverviewViewModel overviewTab, ParticipationTabViewModel participationTab,
|
||||
GradeOverviewTabViewModel gradeOverviewTab,
|
||||
PlanningTabViewModel planningTab, CompetencyOverviewTabViewModel competencyOverviewTab,
|
||||
SeatingPlanTabViewModel seatingPlanTab, GroupDocumentationTabViewModel groupDocumentationTab)
|
||||
{
|
||||
_groups = groups; _students = students; _memberships = memberships; _subjects = subjects;
|
||||
_exams = exams; _grades = grades; _tasks = tasks;
|
||||
OverviewTab = overviewTab;
|
||||
ParticipationTab = participationTab;
|
||||
GradeOverviewTab = gradeOverviewTab;
|
||||
PlanningTab = planningTab;
|
||||
@@ -251,6 +255,7 @@ public partial class GroupDetailViewModel : ObservableObject
|
||||
ParticipationTab.RefreshCurrentGrid();
|
||||
};
|
||||
SeatingPlanTab.OnDocumentationChanged = GroupDocumentationTab.Refresh;
|
||||
OverviewTab.OnNavigateToTab = idx => ActiveTabIndex = idx;
|
||||
}
|
||||
|
||||
public void LoadGroup(Guid id)
|
||||
@@ -266,6 +271,7 @@ public partial class GroupDetailViewModel : ObservableObject
|
||||
$"Stufe {Group.GradeLevel} · Noten {(Group.GradingSystem == GradingSystem.Grades1To6 ? "1–6" : "0–15")}";
|
||||
LoadStudents();
|
||||
ReloadExams();
|
||||
OverviewTab.Initialize(Group.Id, GroupTitle);
|
||||
ParticipationTab.Initialize(Group.Id, Group.SchoolYear, IsReadOnly);
|
||||
GradeOverviewTab.Initialize(Group.Id, Group.GradingSystem, Group.Type, GroupTitle, Group.SchoolYear, IsReadOnly);
|
||||
PlanningTab.Initialize(Group.Id, IsReadOnly);
|
||||
|
||||
Reference in New Issue
Block a user