Clean project: remove test files, debug logs, and add documentation

This commit is contained in:
dahoud
2025-10-05 13:41:33 +00:00
parent 96a17eadbd
commit 291847924c
438 changed files with 65754 additions and 32713 deletions

View File

@@ -1,5 +1,4 @@
import 'package:go_router/go_router.dart';
import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import '../auth/bloc/auth_bloc.dart';

View File

@@ -6,8 +6,18 @@ import '../auth/models/user_role.dart';
import '../design_system/tokens/tokens.dart';
import '../../features/dashboard/presentation/pages/role_dashboards/role_dashboards.dart';
import '../../features/members/presentation/pages/members_page.dart';
import '../../features/events/presentation/pages/events_page.dart';
import '../../features/members/presentation/pages/members_page_wrapper.dart';
import '../../features/events/presentation/pages/events_page_wrapper.dart';
import '../../features/cotisations/presentation/pages/cotisations_page_wrapper.dart';
import '../../features/about/presentation/pages/about_page.dart';
import '../../features/help/presentation/pages/help_support_page.dart';
import '../../features/notifications/presentation/pages/notifications_page.dart';
import '../../features/profile/presentation/pages/profile_page.dart';
import '../../features/system_settings/presentation/pages/system_settings_page.dart';
import '../../features/backup/presentation/pages/backup_page.dart';
import '../../features/logs/presentation/pages/logs_page.dart';
import '../../features/reports/presentation/pages/reports_page.dart';
/// Layout principal avec navigation hybride
/// Bottom Navigation pour les sections principales + Drawer pour fonctions avancées
@@ -42,8 +52,8 @@ class _MainNavigationLayoutState extends State<MainNavigationLayout> {
List<Widget> _getPages(UserRole role) {
return [
_getDashboardForRole(role),
const MembersPage(),
const EventsPage(),
const MembersPageWrapper(), // Wrapper BLoC pour connexion API
const EventsPageWrapper(), // Wrapper BLoC pour connexion API
const MorePage(), // Page "Plus" qui affiche les options avancées
];
}
@@ -136,7 +146,7 @@ class MorePage extends StatelessWidget {
const SizedBox(height: 16),
// Options selon le rôle
..._buildRoleBasedOptions(state),
..._buildRoleBasedOptions(context, state),
const SizedBox(height: 16),
@@ -222,10 +232,10 @@ class MorePage extends StatelessWidget {
);
}
List<Widget> _buildRoleBasedOptions(AuthAuthenticated state) {
List<Widget> _buildRoleBasedOptions(BuildContext context, AuthAuthenticated state) {
final options = <Widget>[];
// Options Super Admin
// Options Super Admin uniquement
if (state.effectiveRole == UserRole.superAdmin) {
options.addAll([
_buildSectionTitle('Administration Système'),
@@ -233,84 +243,125 @@ class MorePage extends StatelessWidget {
icon: Icons.settings,
title: 'Paramètres Système',
subtitle: 'Configuration globale',
onTap: () {},
onTap: () {
Navigator.of(context).push(
MaterialPageRoute(
builder: (context) => const SystemSettingsPage(),
),
);
},
),
_buildOptionTile(
icon: Icons.backup,
title: 'Sauvegarde',
title: 'Sauvegarde & Restauration',
subtitle: 'Gestion des sauvegardes',
onTap: () {},
onTap: () {
Navigator.of(context).push(
MaterialPageRoute(
builder: (context) => const BackupPage(),
),
);
},
),
_buildOptionTile(
icon: Icons.analytics,
title: 'Logs Système',
subtitle: 'Surveillance et logs',
onTap: () {},
icon: Icons.article,
title: 'Logs & Monitoring',
subtitle: 'Surveillance et journaux',
onTap: () {
Navigator.of(context).push(
MaterialPageRoute(
builder: (context) => const LogsPage(),
),
);
},
),
]);
}
// Options Admin Organisation
// Options Admin+ (Admin Organisation et Super Admin)
if (state.effectiveRole == UserRole.orgAdmin || state.effectiveRole == UserRole.superAdmin) {
options.addAll([
_buildSectionTitle('Administration'),
_buildOptionTile(
icon: Icons.business,
title: 'Gestion Organisation',
subtitle: 'Paramètres organisation',
onTap: () {},
),
_buildSectionTitle('Rapports & Analytics'),
_buildOptionTile(
icon: Icons.assessment,
title: 'Rapports',
subtitle: 'Rapports et statistiques',
onTap: () {},
title: 'Rapports & Analytics',
subtitle: 'Statistiques détaillées',
onTap: () {
Navigator.of(context).push(
MaterialPageRoute(
builder: (context) => const ReportsPage(),
),
);
},
),
]);
}
// Options RH
if (state.effectiveRole == UserRole.moderator || state.effectiveRole == UserRole.superAdmin) {
options.addAll([
_buildSectionTitle('Ressources Humaines'),
_buildOptionTile(
icon: Icons.people_alt,
title: 'Gestion RH',
subtitle: 'Outils RH avancés',
onTap: () {},
),
]);
}
return options;
}
List<Widget> _buildCommonOptions(BuildContext context) {
return [
_buildSectionTitle('Général'),
_buildOptionTile(
icon: Icons.payment,
title: 'Cotisations',
subtitle: 'Gérer les cotisations',
onTap: () {
Navigator.of(context).push(
MaterialPageRoute(
builder: (context) => const CotisationsPageWrapper(),
),
);
},
),
_buildOptionTile(
icon: Icons.person,
title: 'Mon Profil',
subtitle: 'Modifier mes informations',
onTap: () {},
onTap: () {
Navigator.of(context).push(
MaterialPageRoute(
builder: (context) => const ProfilePage(),
),
);
},
),
_buildOptionTile(
icon: Icons.notifications,
title: 'Notifications',
subtitle: 'Gérer les notifications',
onTap: () {},
onTap: () {
Navigator.of(context).push(
MaterialPageRoute(
builder: (context) => const NotificationsPage(),
),
);
},
),
_buildOptionTile(
icon: Icons.help,
title: 'Aide & Support',
subtitle: 'Documentation et support',
onTap: () {},
onTap: () {
Navigator.of(context).push(
MaterialPageRoute(
builder: (context) => const HelpSupportPage(),
),
);
},
),
_buildOptionTile(
icon: Icons.info,
title: 'À propos',
subtitle: 'Version et informations',
onTap: () {},
onTap: () {
Navigator.of(context).push(
MaterialPageRoute(
builder: (context) => const AboutPage(),
),
);
},
),
const SizedBox(height: 16),
_buildOptionTile(
@@ -319,7 +370,7 @@ class MorePage extends StatelessWidget {
subtitle: 'Se déconnecter de l\'application',
color: Colors.red,
onTap: () {
context.read<AuthBloc>().add(AuthLogoutRequested());
context.read<AuthBloc>().add(const AuthLogoutRequested());
},
),
];