Modifications des permissions, ajout Presta OK, vue calendrier ok

This commit is contained in:
2025-05-24 23:50:07 +02:00
parent 249a6d6074
commit 851b891a8a
18 changed files with 1077 additions and 304 deletions

View File

@ -1,15 +1,16 @@
import 'package:em2rp/providers/local_user_provider.dart';
import 'package:em2rp/providers/event_provider.dart';
import 'package:flutter/material.dart';
import 'package:em2rp/widgets/custom_app_bar.dart';
import 'package:em2rp/views/widgets/custom_app_bar.dart';
import 'package:em2rp/views/widgets/nav/main_drawer.dart';
import 'package:provider/provider.dart';
import 'package:table_calendar/table_calendar.dart';
import 'package:em2rp/models/event_model.dart';
import 'package:em2rp/widgets/event_details.dart';
import 'package:em2rp/views/widgets/calendar_widgets/event_details.dart';
import 'package:intl/date_symbol_data_local.dart';
import 'package:em2rp/views/widgets/calendar_widgets/month_view.dart';
import 'package:em2rp/views/widgets/calendar_widgets/week_view.dart';
import 'package:em2rp/views/pages/event_add_page.dart';
class CalendarPage extends StatefulWidget {
const CalendarPage({super.key});
@ -36,9 +37,13 @@ class _CalendarPageState extends State<CalendarPage> {
Provider.of<LocalUserProvider>(context, listen: false);
final eventProvider = Provider.of<EventProvider>(context, listen: false);
final userId = localAuthProvider.uid;
print('Permissions utilisateur: ${localAuthProvider.permissions}');
final canViewAllEvents = localAuthProvider.hasPermission('view_all_events');
print('canViewAllEvents: $canViewAllEvents');
if (userId != null) {
await eventProvider.loadUserEvents(userId);
await eventProvider.loadUserEvents(userId,
canViewAllEvents: canViewAllEvents);
}
}
@ -51,6 +56,8 @@ class _CalendarPageState extends State<CalendarPage> {
@override
Widget build(BuildContext context) {
final eventProvider = Provider.of<EventProvider>(context);
final localUserProvider = Provider.of<LocalUserProvider>(context);
final isAdmin = localUserProvider.role == 'ADMIN';
final isMobile = MediaQuery.of(context).size.width < 600;
if (eventProvider.isLoading) {
@ -67,6 +74,20 @@ class _CalendarPageState extends State<CalendarPage> {
),
drawer: const MainDrawer(currentPage: '/calendar'),
body: isMobile ? _buildMobileLayout() : _buildDesktopLayout(),
floatingActionButton: isAdmin
? FloatingActionButton(
backgroundColor: Colors.white,
onPressed: () {
Navigator.of(context).push(
MaterialPageRoute(
builder: (context) => const EventAddPage(),
),
);
},
child: const Icon(Icons.add, color: Colors.red),
tooltip: 'Ajouter un événement',
)
: null,
);
}