added teacher-focused lesson sheet with direct class and teacher timetable links

This commit is contained in:
2026-09-24 23:33:13 +02:00
parent de866b12b4
commit e21560ed3d
14 changed files with 306 additions and 33 deletions
+17 -5
View File
@@ -46,6 +46,10 @@ class _TimetableState extends State<Timetable> {
if (guardDemoAction(context)) return;
final ref = await AppRoutes.openElementPicker(context);
if (!mounted || ref == null) return;
_openElement(ref);
}
void _openElement(TimetableElementRef ref) {
setState(() => _selected = ref);
}
@@ -103,6 +107,7 @@ class _TimetableState extends State<Timetable> {
final atToday = innerState != null && _isOnInitialWeek(innerState);
final capabilities = context.watch<CapabilitiesCubit>();
final canViewForeign = capabilities.canViewForeignTimetables;
final teacherPlan = capabilities.isTeacher;
return Scaffold(
appBar: AppBar(
// Der Kalender scrollt nicht (nur ziehen/reloaden), aber seine internen
@@ -162,10 +167,12 @@ class _TimetableState extends State<Timetable> {
state,
apt,
canEditSubjectColor: true,
teacherPlan: teacherPlan,
onOpenElement: canViewForeign ? _openElement : null,
),
onCreateEvent: _onCreateEventAt,
customEvents: state.customEvents?.events ?? const [],
showClassInsteadOfTeacher: capabilities.isTeacher,
showClassInsteadOfTeacher: teacherPlan,
),
),
);
@@ -179,6 +186,7 @@ class _TimetableState extends State<Timetable> {
final canViewForeign = context
.watch<CapabilitiesCubit>()
.canViewForeignTimetables;
final teacherPlan = selected.type == TimetableElementType.teacher;
return Scaffold(
appBar: AppBar(
// Siehe _buildOwnPlan: den scroll-under-Farbwechsel unterdrücken, weil
@@ -214,11 +222,15 @@ class _TimetableState extends State<Timetable> {
key: _calendarKey,
state: state,
onWeekChanged: bloc.changeWeek,
onAppointmentTap: (apt) =>
AppointmentDetailsDispatcher.show(context, state, apt),
onAppointmentTap: (apt) => AppointmentDetailsDispatcher.show(
context,
state,
apt,
teacherPlan: teacherPlan,
onOpenElement: canViewForeign ? _openElement : null,
),
customEvents: const [],
showClassInsteadOfTeacher:
selected.type == TimetableElementType.teacher,
showClassInsteadOfTeacher: teacherPlan,
),
),
),