diff --git a/lib/componentes/drawer_custom.dart b/lib/componentes/drawer_custom.dart index 5ddb35b..6bb11b4 100644 --- a/lib/componentes/drawer_custom.dart +++ b/lib/componentes/drawer_custom.dart @@ -2,11 +2,14 @@ import 'package:flutter/material.dart'; import 'package:line_icons/line_icons.dart'; import 'package:rkm_educa_app/Telas/tela_situacao_escolar.dart'; import 'package:rkm_educa_app/modelos/estudante_modelo.dart'; +import 'package:rkm_educa_app/telas/tela_agenda.dart'; import 'package:rkm_educa_app/telas/tela_botetim.dart'; +import 'package:rkm_educa_app/telas/tela_chamada.dart'; import 'package:rkm_educa_app/telas/tela_contatos.dart'; import 'package:rkm_educa_app/telas/tela_eventos.dart'; import 'package:rkm_educa_app/telas/tela_historico.dart'; import 'package:rkm_educa_app/telas/tela_login.dart'; +import 'package:rkm_educa_app/telas/tela_passe.dart'; import 'package:rkm_educa_app/telas/tela_perfil.dart'; import 'package:rkm_educa_app/utils/cores.dart'; import 'package:rkm_educa_app/componentes/text_custom.dart'; @@ -76,13 +79,13 @@ class DrawerCustom extends StatelessWidget { ItemDrawer( icone: LineIcons.checkSquareAlt, texto: 'Chamadas / Presenças', - onPressed: (){}, + onPressed: ()=>Navigator.push(context, MaterialPageRoute(builder: (context)=>TelaChamada(estudanteModelo: estudanteModelo))), ), Container(height: 1,color: PaletaCores.divider,margin: EdgeInsets.symmetric(horizontal: 20),), ItemDrawer( icone: LineIcons.calendarAlt, texto: 'Agenda Escolar', - onPressed: (){}, + onPressed: ()=>Navigator.push(context, MaterialPageRoute(builder: (context)=>TelaAgenda(estudanteModelo: estudanteModelo))), ), Container(height: 1,color: PaletaCores.divider,margin: EdgeInsets.symmetric(horizontal: 20),), ItemDrawer( @@ -100,7 +103,7 @@ class DrawerCustom extends StatelessWidget { ItemDrawer( icone: LineIcons.bus, texto: 'Passe', - onPressed: (){}, + onPressed: ()=>Navigator.push(context, MaterialPageRoute(builder: (context)=>TelaPasse(estudanteModelo: estudanteModelo))), ), Container(height: 1,color: PaletaCores.divider,margin: EdgeInsets.symmetric(horizontal: 20),), ], diff --git a/lib/componentes/item_agenda.dart b/lib/componentes/item_agenda.dart new file mode 100644 index 0000000..cb6f994 --- /dev/null +++ b/lib/componentes/item_agenda.dart @@ -0,0 +1,58 @@ +import 'package:flutter/material.dart'; +import 'package:rkm_educa_app/componentes/text_custom.dart'; +import 'package:rkm_educa_app/utils/dimensoes.dart'; +import '../utils/cores.dart'; + +class ItemAgenda extends StatelessWidget { + + String data; + String titulo; + + ItemAgenda({ + required this.data, + required this.titulo, +}); + + @override + Widget build(BuildContext context) { + + return Container( + color: PaletaCores.branco, + padding: const EdgeInsets.symmetric(horizontal: 20.0,vertical: 5), + child: Column( + children: [ + Container( + width: Dimensoes.width*0.8, + height: 65, + padding: const EdgeInsets.symmetric(horizontal: 20.0), + child: Column( + children: [ + Padding( + padding: EdgeInsets.symmetric(vertical: 5), + child: Row( + children: [ + TextCustom(text: 'Data',size: 14.0,fontWeight: FontWeight.bold), + SizedBox(width: 10,), + TextCustom(text: data,size: 14.0,fontWeight: FontWeight.normal,color: PaletaCores.cinzaClaro,), + ], + ), + ), + Padding( + padding: EdgeInsets.symmetric(vertical: 5), + child: Row( + children: [ + TextCustom(text: 'Título',size: 14.0,fontWeight: FontWeight.bold), + SizedBox(width: 10,), + TextCustom(text: titulo), + ], + ), + ), + ], + ), + ), + Container(width: double.infinity,height: 2,color: PaletaCores.divider,) + ], + ), + ); + } +} diff --git a/lib/componentes/text_custom.dart b/lib/componentes/text_custom.dart index 68c6138..edfbaa5 100644 --- a/lib/componentes/text_custom.dart +++ b/lib/componentes/text_custom.dart @@ -19,7 +19,6 @@ class TextCustom extends StatelessWidget { this.textAlign = TextAlign.start, this.maxLines = 1, this.underscore, - }); @override diff --git a/lib/main.dart b/lib/main.dart index f4375ed..00889e3 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -1,5 +1,6 @@ import 'dart:io'; import 'package:flutter/material.dart'; +import 'package:flutter_localizations/flutter_localizations.dart'; import 'package:rkm_educa_app/telas/tela_login.dart'; class PostHttpOverrides extends HttpOverrides{ @@ -21,7 +22,16 @@ class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { return MaterialApp( + localizationsDelegates: [ + GlobalMaterialLocalizations.delegate, + GlobalCupertinoLocalizations.delegate, + GlobalWidgetsLocalizations.delegate, + ], + supportedLocales: [ + const Locale('pt','BR') + ], debugShowCheckedModeBanner: false, + locale: const Locale('pt'), home: TelaLogin(), ); } diff --git a/lib/telas/tela_agenda.dart b/lib/telas/tela_agenda.dart new file mode 100644 index 0000000..5b13802 --- /dev/null +++ b/lib/telas/tela_agenda.dart @@ -0,0 +1,142 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_calendar_carousel/classes/event.dart'; +import 'package:flutter_calendar_carousel/flutter_calendar_carousel.dart'; +import 'package:intl/intl.dart'; +import 'package:rkm_educa_app/componentes/appbar_custom.dart'; +import 'package:rkm_educa_app/componentes/drawer_custom.dart'; +import 'package:rkm_educa_app/componentes/item_agenda.dart'; +import 'package:rkm_educa_app/componentes/text_custom.dart'; +import 'package:rkm_educa_app/modelos/estudante_modelo.dart'; +import 'package:rkm_educa_app/utils/cores.dart'; +import 'package:rkm_educa_app/utils/dimensoes.dart'; + +class TelaAgenda extends StatefulWidget { + EstudanteModelo estudanteModelo; + + TelaAgenda({ + required this.estudanteModelo +}); + + @override + State createState() => _TelaAgendaState(); +} + +class _TelaAgendaState extends State { + + DateTime _currentDate = DateTime.now(); + DateTime dataAtual = DateTime.now(); + EventList _markedDateMap = new EventList( + events: {}, + ); + + Widget _eventIcon(String dia) => Container( + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(30), + color: PaletaCores.verdeCalendario, + ), + width: 40, + height: 40, + child: Center( + child: TextCustom(text: dia,fontWeight: FontWeight.bold,size: 14.0,color: PaletaCores.cinza), + ), + ); + + TextStyle textStyle = TextStyle( + color: PaletaCores.cinza, + fontWeight: FontWeight.bold, + fontFamily: 'Nunito', + fontSize: 14 + ); + + TextStyle textStyleFDS = TextStyle( + color: Colors.red, + fontWeight: FontWeight.bold, + fontFamily: 'Nunito', + fontSize: 14 + ); + + @override + void initState() { + super.initState(); + _markedDateMap.add(DateTime(2023,5,1), Event(date: DateTime(2023,5,1),icon: _eventIcon('1'))); + _markedDateMap.add(DateTime(2023,5,15), Event(date: DateTime(2023,5,1),icon: _eventIcon('15'))); + _markedDateMap.add(DateTime(2023,6,30), Event(date: DateTime(2023,6,30),icon: _eventIcon('30'))); + setState(() {}); + } + + @override + Widget build(BuildContext context) { + + final _calendario = CalendarCarousel( + locale: 'pt', + weekdayTextStyle: TextStyle(color: PaletaCores.cinza,fontSize: 14,fontFamily: 'Nunito',), + disableDayPressed: true, + daysTextStyle: textStyle, + selectedDayButtonColor: Colors.red, + weekendTextStyle: textStyleFDS, + markedDatesMap: _markedDateMap, + height: Dimensoes.height*0.40, + targetDateTime: dataAtual, + markedDateCustomTextStyle: textStyle, + markedDateMoreShowTotal: null, + showHeader: false, + todayTextStyle: textStyle, + isScrollable: false, + todayButtonColor: PaletaCores.calendario, + selectedDayTextStyle: textStyle, + minSelectedDate: _currentDate.subtract(Duration(days: 360)), + maxSelectedDate: _currentDate.add(Duration(days: 360)), + markedDateIconBuilder: (event){ + return event.icon; + }, + ); + + return Scaffold( + appBar: AppBarCustom().appbar(context, 'AGENDA ESCOLAR'), + drawer: DrawerCustom(estudanteModelo: widget.estudanteModelo), + body: ListView( + padding: EdgeInsets.all(10), + children: [ + Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + IconButton( + onPressed: () { + setState(() { + dataAtual = DateTime(dataAtual.year, dataAtual.month -1); + }); + }, + icon: Icon(Icons.arrow_left,size: 30,color: PaletaCores.cinzaClaro,) + ), + TextCustom(text: DateFormat('MMMM / yyyy','pt_Br').format(dataAtual),fontWeight: FontWeight.bold), + IconButton( + onPressed: () { + setState(() { + dataAtual = DateTime(dataAtual.year, dataAtual.month +1); + }); + }, + icon: Icon(Icons.arrow_right,size: 30,color: PaletaCores.cinzaClaro,) + ), + ], + ), + Container( + height: 300, + margin: EdgeInsets.symmetric(horizontal: 16.0), + child: _calendario, + ), + Container( + padding: EdgeInsets.symmetric(vertical: 15), + height: Dimensoes.height*0.60, + child: ListView( + children: [ + dataAtual.month==5?ItemAgenda(data: '01/05/2023', titulo: 'Feriado - Dia do Trabalhador',):Container(), + dataAtual.month==5?ItemAgenda(data: '15/05/2023', titulo: 'Reunisão para os pais',):Container(), + dataAtual.month==6?ItemAgenda(data: '30/06/2023', titulo: 'Início Férias',):Container(), + ], + ), + ) + ], + ), + ); + } +} diff --git a/lib/telas/tela_chamada.dart b/lib/telas/tela_chamada.dart new file mode 100644 index 0000000..49a2f78 --- /dev/null +++ b/lib/telas/tela_chamada.dart @@ -0,0 +1,25 @@ +import 'package:flutter/material.dart'; +import 'package:rkm_educa_app/componentes/appbar_custom.dart'; +import 'package:rkm_educa_app/componentes/drawer_custom.dart'; +import 'package:rkm_educa_app/modelos/estudante_modelo.dart'; + +class TelaChamada extends StatefulWidget { + EstudanteModelo estudanteModelo; + + TelaChamada({ + required this.estudanteModelo +}); + + @override + State createState() => _TelaChamadaState(); +} + +class _TelaChamadaState extends State { + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBarCustom().appbar(context, 'CHAMADAS / PRESENÇAS'), + drawer: DrawerCustom(estudanteModelo: widget.estudanteModelo), + ); + } +} diff --git a/lib/telas/tela_passe.dart b/lib/telas/tela_passe.dart new file mode 100644 index 0000000..6587759 --- /dev/null +++ b/lib/telas/tela_passe.dart @@ -0,0 +1,25 @@ +import 'package:flutter/material.dart'; +import 'package:rkm_educa_app/componentes/appbar_custom.dart'; +import 'package:rkm_educa_app/componentes/drawer_custom.dart'; +import 'package:rkm_educa_app/modelos/estudante_modelo.dart'; + +class TelaPasse extends StatefulWidget { + EstudanteModelo estudanteModelo; + + TelaPasse({ + required this.estudanteModelo +}); + + @override + State createState() => _TelaPasseState(); +} + +class _TelaPasseState extends State { + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBarCustom().appbar(context, 'PASSE ESCOLAR'), + drawer: DrawerCustom(estudanteModelo: widget.estudanteModelo), + ); + } +} diff --git a/lib/utils/cores.dart b/lib/utils/cores.dart index 9b31b3e..68c1d79 100644 --- a/lib/utils/cores.dart +++ b/lib/utils/cores.dart @@ -9,6 +9,8 @@ class PaletaCores{ static const Color cinzaClaro = Color (0xff7A7A7A); static const Color divider = Color (0xffc9c9c9); static const Color cinzaInput = Color (0xffE1E1E1); + static const Color calendario = Color (0xffB1B1B1); + static const Color verdeCalendario = Color (0xff84CB7E); static const Color notificacao = Color (0xffBB0202); static const Color appBar = Color(0xff3A3A3A); } \ No newline at end of file diff --git a/pubspec.lock b/pubspec.lock index 3d34797..e38c084 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -102,6 +102,14 @@ packages: description: flutter source: sdk version: "0.0.0" + flutter_calendar_carousel: + dependency: "direct main" + description: + name: flutter_calendar_carousel + sha256: "8666447f3404d2db45a2523095cab053d4d15c4fd5438d4a893d96ea5637a3aa" + url: "https://pub.dev" + source: hosted + version: "2.4.2" flutter_lints: dependency: "direct dev" description: @@ -110,6 +118,11 @@ packages: url: "https://pub.dev" source: hosted version: "2.0.1" + flutter_localizations: + dependency: "direct main" + description: flutter + source: sdk + version: "0.0.0" flutter_test: dependency: "direct dev" description: flutter @@ -139,6 +152,14 @@ packages: url: "https://pub.dev" source: hosted version: "4.0.2" + intl: + dependency: "direct main" + description: + name: intl + sha256: a3715e3bc90294e971cb7dc063fbf3cd9ee0ebf8604ffeafabd9e6f16abbdbe6 + url: "https://pub.dev" + source: hosted + version: "0.18.0" js: dependency: transitive description: diff --git a/pubspec.yaml b/pubspec.yaml index 544ec67..b31e4a5 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -13,7 +13,12 @@ dependencies: cupertino_icons: ^1.0.2 gainer_crypto: ^0.0.6 line_icons: + flutter_calendar_carousel: ^2.4.2 http: + intl: + + flutter_localizations: + sdk: flutter dev_dependencies: flutter_test: