implemented foreign timetable support for students, teachers, rooms, and classes, including a searchable element picker with favorites support, introduced a capabilities system for feature gating, refactored the timetable UI into a reusable TimetableCalendarView component, and redesigned the chat input field with a unified emoji picker and integrated attachment actions.

This commit is contained in:
2026-05-31 21:29:16 +02:00
parent 6e12da08c0
commit b6d06dd3b4
41 changed files with 2325 additions and 290 deletions
+24
View File
@@ -0,0 +1,24 @@
import 'package:flutter_test/flutter_test.dart';
import 'package:marianum_mobile/api/marianumconnect/queries/timetable_get_element_week/timetable_element_type.dart';
void main() {
group('TimetableElementType.pathSegment', () {
test('maps each type to the backend URL segment', () {
expect(TimetableElementType.student.pathSegment, 'student');
expect(TimetableElementType.teacher.pathSegment, 'teacher');
expect(TimetableElementType.room.pathSegment, 'room');
// `schoolClass` exists only because `class` is a reserved word; the
// backend segment must still be `class`.
expect(TimetableElementType.schoolClass.pathSegment, 'class');
});
});
group('TimetableElementType.label', () {
test('provides a German singular label for each type', () {
expect(TimetableElementType.student.label, 'Schüler');
expect(TimetableElementType.teacher.label, 'Lehrer');
expect(TimetableElementType.room.label, 'Raum');
expect(TimetableElementType.schoolClass.label, 'Klasse');
});
});
}