implemented dynamic module settings and configurable bottom bar, added all-day event support to timetable, and overhauled marianum dates UI with month grouping and search

This commit is contained in:
2026-05-06 22:37:41 +02:00
parent 86d12884fc
commit 95ef29fb09
19 changed files with 1114 additions and 253 deletions
+14 -1
View File
@@ -78,14 +78,27 @@ class _TimetableState extends State<Timetable> {
return false;
}
bool _isOnInitialWeek(TimetableState state) {
final target = _initialDisplayDate();
final targetMonday = target.subtract(Duration(days: target.weekday - 1));
final mondayOnly = DateTime(targetMonday.year, targetMonday.month, targetMonday.day);
return state.startDate == mondayOnly;
}
@override
Widget build(BuildContext context) {
final bloc = context.read<TimetableBloc>();
final loadableState = context.watch<TimetableBloc>().state;
final innerState = loadableState.data;
final atToday = innerState != null && _isOnInitialWeek(innerState);
return Scaffold(
appBar: AppBar(
title: const Text('Stunden & Vertretungsplan'),
actions: [
IconButton(icon: const Icon(Icons.home_outlined), onPressed: _jumpToToday),
IconButton(
icon: const Icon(Icons.home_outlined),
onPressed: atToday ? null : _jumpToToday,
),
PopupMenuButton<_CalendarAction>(
icon: const Icon(Icons.edit_calendar_outlined),
onSelected: _onAction,