added guardian login with views for their assigned childs

This commit is contained in:
2026-09-20 11:11:58 +02:00
parent e4e2b1a4fb
commit 67c935c05b
117 changed files with 4784 additions and 1514 deletions
+34 -20
View File
@@ -1,35 +1,49 @@
import 'package:flutter/material.dart';
import '../../../access/access_requirement.dart';
import '../../../session/session_manager.dart';
import 'sections/about_section.dart';
import 'sections/account_section.dart';
import 'sections/appearance_section.dart';
import 'sections/files_section.dart';
import 'sections/modules_section.dart';
import 'sections/notifications_section.dart';
import 'sections/talk_section.dart';
import 'sections/timetable_section.dart';
class Settings extends StatelessWidget {
const Settings({super.key});
/// Sections in display order with the backend identities they need;
/// sections the session cannot use are left out.
static const List<(Widget, Set<AccessRequirement>)> _sections = [
(AccountSection(), {}),
(AppearanceSection(), {}),
(ModulesSection(), {}),
(TimetableSection(), {}),
(NotificationsSection(), {}),
(TalkSection(), {AccessRequirement.nextcloud}),
(FilesSection(), {AccessRequirement.nextcloud}),
(AboutSection(), {}),
];
@override
Widget build(BuildContext context) => Scaffold(
appBar: AppBar(title: const Text('Einstellungen')),
body: ListView(
children: const [
AccountSection(),
Divider(),
AppearanceSection(),
Divider(),
ModulesSection(),
Divider(),
TimetableSection(),
Divider(),
TalkSection(),
Divider(),
FilesSection(),
Divider(),
AboutSection(),
],
),
);
Widget build(BuildContext context) {
final session = SessionManager().current;
final visible = [
for (final (section, requirements) in _sections)
if (requirements.areMetBy(session)) section,
];
return Scaffold(
appBar: AppBar(title: const Text('Einstellungen')),
body: ListView(
children: [
for (final (i, section) in visible.indexed) ...[
if (i > 0) const Divider(),
section,
],
],
),
);
}
}