From f4bccc3e2463acbaeaad56fb71706613f61dffe8 Mon Sep 17 00:00:00 2001 From: Reginaldo Date: Thu, 25 May 2023 17:50:26 -0300 Subject: [PATCH] criada a tela responsible_register_screen.dart, o model responsavel_model.dart e feitos outros ajustes --- assets/images/logoEduca.png | Bin 0 -> 77661 bytes assets/images/{logo.PNG => logoRKM.PNG} | Bin lib/main.dart | 2 +- lib/models/responsavel_model.dart | 25 ++ lib/screens/home_screen.dart | 23 +- lib/screens/login_screen.dart | 6 +- lib/screens/responsible_register_screen.dart | 288 ++++++++++++++++++ lib/utils/colors.dart | 2 +- lib/widgets/buttom_custom.dart | 17 +- lib/widgets/dados_alunos_container.dart | 67 ++-- lib/widgets/dados_responsaveis_container.dart | 46 +++ lib/widgets/input_text.dart | 6 + lib/widgets/text_custom.dart | 2 +- pubspec.lock | 21 ++ pubspec.yaml | 3 + 15 files changed, 458 insertions(+), 50 deletions(-) create mode 100644 assets/images/logoEduca.png rename assets/images/{logo.PNG => logoRKM.PNG} (100%) create mode 100644 lib/models/responsavel_model.dart create mode 100644 lib/screens/responsible_register_screen.dart create mode 100644 lib/widgets/dados_responsaveis_container.dart diff --git a/assets/images/logoEduca.png b/assets/images/logoEduca.png new file mode 100644 index 0000000000000000000000000000000000000000..3720ff039b85dfacef9c563bdcbf4fb8244bf737 GIT binary patch literal 77661 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 FKLEI8!@K|h literal 0 HcmV?d00001 diff --git a/assets/images/logo.PNG b/assets/images/logoRKM.PNG similarity index 100% rename from assets/images/logo.PNG rename to assets/images/logoRKM.PNG diff --git a/lib/main.dart b/lib/main.dart index a697a51..eae6cd0 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -14,7 +14,7 @@ class MyApp extends StatelessWidget { return MaterialApp( debugShowCheckedModeBanner: false, title: 'Controle de Acesso', - home: HomeScreen(), + home: LoginScreen(), ); } } diff --git a/lib/models/responsavel_model.dart b/lib/models/responsavel_model.dart new file mode 100644 index 0000000..cee2d5e --- /dev/null +++ b/lib/models/responsavel_model.dart @@ -0,0 +1,25 @@ +class ResponsavelModel{ + String nomeAluno; + String raAluno; + String escola; + String serie; + String turma; + String nomeResponsavel; + String parentesco; + String cpf; + String senha; + String dataCadastro; + + ResponsavelModel({ + required this.nomeAluno, + required this.raAluno, + required this.escola, + required this.serie, + required this.turma, + required this.nomeResponsavel, + required this.parentesco, + required this.cpf, + required this.senha, + required this.dataCadastro, + }); +} \ No newline at end of file diff --git a/lib/screens/home_screen.dart b/lib/screens/home_screen.dart index 8e9b4ae..55a1f30 100644 --- a/lib/screens/home_screen.dart +++ b/lib/screens/home_screen.dart @@ -27,7 +27,6 @@ class _HomeScreenState extends State { pesquisa(){ pesquisarAluno(); - } pesquisarAluno()async{ @@ -35,7 +34,13 @@ class _HomeScreenState extends State { if(controllerPesquisa.text.isNotEmpty){ for (int i =0;alunos.length>i;i++) { String nome = alunos[i].nome.toUpperCase(); - if(nome.contains(controllerPesquisa.text.toUpperCase())){ + String data = alunos[i].data_nasc.toUpperCase(); + String ra = alunos[i].ra.toUpperCase(); + + if(nome.contains(controllerPesquisa.text.toUpperCase()) || + data.contains(controllerPesquisa.text.toUpperCase()) || + ra.contains(controllerPesquisa.text.toUpperCase()) + ){ if(resultadoPesquisa.length<10){ resultadoPesquisa.add(alunos[i]); } @@ -63,7 +68,17 @@ class _HomeScreenState extends State { double height = MediaQuery.of(context).size.height; return Scaffold( - appBar: AppBar(title: TextCustom(text: 'Cadastrar responsável',color: Colors.white,),backgroundColor: PaletteColors.grey), + appBar: AppBar( + title: Row( + children: [ + Container( + child: Image.asset("assets/images/logoEduca.png",width:width * 0.08,height: height * 0.12) + ), + TextCustom(text: '- Pesquisar aluno',color: Colors.white,), + ], + ), + backgroundColor: PaletteColors.grey, + ), body: Padding( padding: const EdgeInsets.all(8.0), child: ListView( @@ -71,7 +86,7 @@ class _HomeScreenState extends State { SizedBox(height: height*0.05), Padding( padding: EdgeInsets.symmetric(horizontal: width>900?width*0.3:width*0.05), - child: InputText(controller: controllerPesquisa, width: width*0.2,title: 'Pesquisar Aluno(a)',) + child: InputText(controller: controllerPesquisa, width: width*0.2,title: 'Pesquisar Aluno(a)',inputFormatters: [],) ), Container( padding: EdgeInsets.symmetric(horizontal: width>900?width*0.3:width*0.05), diff --git a/lib/screens/login_screen.dart b/lib/screens/login_screen.dart index ba2658c..944980f 100644 --- a/lib/screens/login_screen.dart +++ b/lib/screens/login_screen.dart @@ -4,7 +4,6 @@ import 'package:flutter/material.dart'; import '../utils/colors.dart'; import '../widgets/buttom_custom.dart'; import '../widgets/snackBars.dart'; -import '../widgets/text_custom.dart'; class LoginScreen extends StatefulWidget { const LoginScreen({Key? key}) : super(key: key); @@ -54,11 +53,12 @@ class _LoginScreenState extends State { mainAxisSize: MainAxisSize.min, children: [ Container( - child: Image.asset("assets/image/logo.PNG",width:width * 0.2 ,height: height * 0.12) + child: Image.asset("assets/images/logoEduca.png",width:width * 0.15,height: height * 0.12) ), Container( width: width>900? width * 0.18:width*0.5, child: InputText( + inputFormatters: [], controller: inputEmail, title: 'E-mail', width: width>900? width * 0.18:width*0.5, @@ -69,6 +69,7 @@ class _LoginScreenState extends State { Container( width: width>900? width * 0.18:width*0.5, child: InputText( + inputFormatters: [], controller: inputSenha, title: 'Senha', obscure: true, @@ -86,7 +87,6 @@ class _LoginScreenState extends State { colorButton: PaletteColors.primaryColor, colorBorder: PaletteColors.primaryColor, onPressed: ()=>verificacao(), - font: 'Nunito', ), ], ), diff --git a/lib/screens/responsible_register_screen.dart b/lib/screens/responsible_register_screen.dart new file mode 100644 index 0000000..c812577 --- /dev/null +++ b/lib/screens/responsible_register_screen.dart @@ -0,0 +1,288 @@ +import 'package:brasil_fields/brasil_fields.dart'; +import 'package:educa_controle_acesso/models/aluno_model.dart'; +import 'package:educa_controle_acesso/models/responsavel_model.dart'; +import 'package:educa_controle_acesso/widgets/dados_responsaveis_container.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter/services.dart'; +import 'package:get/get.dart'; +import 'package:intl/intl.dart'; +import '../utils/colors.dart'; +import '../widgets/buttom_custom.dart'; +import '../widgets/input_text.dart'; +import '../widgets/snackBars.dart'; +import '../widgets/text_custom.dart'; + +class ResponsibleRegisterScreen extends StatefulWidget { + AlunoModel alunoModel; + + ResponsibleRegisterScreen({required this.alunoModel}); + + @override + State createState() => _ResponsibleRegisterScreenState(); +} + +class _ResponsibleRegisterScreenState extends State { + + List responsaveis = []; + bool showRegister = false; + bool editando = false; + int? indice; + var inputNome = TextEditingController(); + var inputParentesco = TextEditingController(); + var inputCpf = TextEditingController(); + var inputSenha = TextEditingController(); + var inputData = TextEditingController(); + + salvarResponsavel() { + if(inputNome.text.isNotEmpty && inputNome.text.contains(' ')){ + if(inputParentesco.text.isNotEmpty){ + if(inputCpf.text.isNotEmpty && GetUtils.isCpf(inputCpf.text)){ + if(inputSenha.text.isNotEmpty && inputSenha.text.length > 5){ + if(editando && indice!=null){ + responsaveis[indice!] = ResponsavelModel( + nomeAluno: widget.alunoModel.nome, + raAluno: widget.alunoModel.ra, + escola: widget.alunoModel.escola, + serie: widget.alunoModel.serie, + turma: widget.alunoModel.turma, + nomeResponsavel: inputNome.text, + parentesco: inputParentesco.text, + cpf: inputCpf.text, + senha: inputSenha.text, + dataCadastro: DateFormat('dd/MM/yyyy HH:mm').format(DateTime.now()) + ); + }else{ + responsaveis.add( + ResponsavelModel( + nomeAluno: widget.alunoModel.nome.toUpperCase(), + raAluno: widget.alunoModel.ra.toUpperCase(), + escola: widget.alunoModel.escola.toUpperCase(), + serie: widget.alunoModel.serie.toUpperCase(), + turma: widget.alunoModel.turma.toUpperCase(), + nomeResponsavel: inputNome.text.toUpperCase(), + parentesco: inputParentesco.text.toUpperCase(), + cpf: inputCpf.text, + senha: inputSenha.text.toUpperCase(), + dataCadastro: DateFormat('dd/MM/yyyy HH:mm').format(DateTime.now()) + ) + ); + } + editando? + showSnackBar(context, 'Responsável alterado!', Colors.green): + showSnackBar(context, 'Responsável adicionado!', Colors.green); + inputNome.clear(); + inputParentesco.clear(); + inputCpf.clear(); + inputSenha.clear(); + showRegister = false; + editando = false; + indice = null; + inputData.clear(); + setState((){}); + }else{ + showSnackBar(context, 'Insira o uma senha com o mínimo de 6 caracteres', Colors.red); + } + }else{ + showSnackBar(context, 'CPF inválido', Colors.red); + } + }else{ + showSnackBar(context, 'Insira o parentesco do responsável', Colors.red); + } + }else{ + showSnackBar(context, 'Insira o nome completo do responsável', Colors.red); + } + } + + @override + Widget build(BuildContext context) { + + double width = MediaQuery.of(context).size.width; + double height = MediaQuery.of(context).size.height; + + return Scaffold( + appBar: AppBar( + title: Row( + children: [ + Container( + child: Image.asset("assets/images/logoEduca.png",width:width * 0.08,height: height * 0.12) + ), + TextCustom(text: '- Cadastrar Responsável',color: Colors.white,), + ], + ), + backgroundColor: PaletteColors.grey, + ), + body: Padding( + padding: const EdgeInsets.all(30.0), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + TextCustom(text: 'Aluno(a): ${widget.alunoModel.nome}'), + TextCustom(text: 'Turma: ${widget.alunoModel.serie}° ANO ${widget.alunoModel.turma}'), + TextCustom(text: 'RA: ${widget.alunoModel.ra}'), + TextCustom(text: 'Escola: ${widget.alunoModel.escola}'), + SizedBox(height: 50,), + Row( + children: [ + TextCustom(text: 'Responsáveis Cadastrados:'), + IconButton( + icon: Icon(Icons.add_circle,color: PaletteColors.primaryColor), + onPressed: ()=>setState(()=>showRegister = true), + ) + ], + ), + showRegister?Container( + alignment: Alignment.center, + padding: EdgeInsets.symmetric(horizontal: width*0.35), + width: width, + child: Card( + elevation: 10, + child: Padding( + padding: EdgeInsets.only(bottom: 20), + child: Column( + children: [ + Container( + width: width*0.30, + padding: EdgeInsets.all(10), + color: Colors.black54, + child: TextCustom( + text: 'Novo responsável', + color: Colors.white, + textAlign: TextAlign.center, + ), + ), + Padding( + padding: const EdgeInsets.symmetric(vertical: 15.0), + child: TextCustom(text: 'Prencha os campos todos os campos para adicionar.'), + ), + Container( + width: width>900? width * 0.18:width*0.4, + child: InputText( + inputFormatters: [], + controller: inputNome, + title: 'Nome Completo', + width: width * 0.18, + colorBorder: PaletteColors.white, + ), + ), + Container( + width: width>900? width * 0.18:width*0.4, + child: InputText( + inputFormatters: [], + controller: inputParentesco, + title: 'Parentesco', + width: width * 0.18, + colorBorder: PaletteColors.white, + ), + ), + Container( + width: width>900? width * 0.18:width*0.4, + child: InputText( + controller: inputCpf, + title: 'CPF', + width: width * 0.18, + colorBorder: PaletteColors.white, + inputFormatters: [ + FilteringTextInputFormatter.digitsOnly, + CpfInputFormatter(), + ], + ), + ), + Container( + width: width>900? width * 0.18:width*0.4, + child: InputText( + inputFormatters: [], + controller: inputSenha, + title: 'Senha', + width: width * 0.18, + colorBorder: PaletteColors.white, + ), + ), + editando?Container( + width: width>900? width * 0.18:width*0.4, + child: InputText( + inputFormatters: [], + controller: inputData, + title: 'Data de Cadastro', + width: width * 0.18, + colorBorder: PaletteColors.white, + enable: false, + ), + ):Container(), + SizedBox(height: 50,), + Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + ButtonCustom( + onPressed:()=>setState((){ + showRegister = false; + editando = false; + indice = null; + inputData.clear(); + inputNome.clear(); + inputParentesco.clear(); + inputSenha.clear(); + inputCpf.clear(); + }), + text: 'Cancelar', + widthCustom: 0.1, + heightCustom: 0.05, + colorText: Colors.white, + colorBorder: PaletteColors.primaryColor, + colorButton: PaletteColors.primaryColor, + size: 15, + ), + SizedBox(width: 50,), + ButtonCustom( + onPressed:()=>salvarResponsavel(), + text: 'Salvar', + widthCustom: 0.1, + heightCustom: 0.05, + colorText: Colors.white, + colorBorder: PaletteColors.green, + colorButton: PaletteColors.green, + size: 15, + ) + ], + ) + ], + ), + ), + ), + ):Container(), + showRegister?Container():Container( + width: width*0.3, + height: height*0.3, + child: ListView.separated( + itemCount: responsaveis.length, + separatorBuilder: (context,index){ + return Divider(); + }, + itemBuilder: (context,index){ + return DadosResponsaveisContainer( + responsavelModel: responsaveis[index], + onTapEdit: (){ + showRegister = true; + editando = true; + indice = index; + inputNome.text = responsaveis[index].nomeResponsavel; + inputParentesco.text = responsaveis[index].parentesco; + inputCpf.text = responsaveis[index].cpf; + inputSenha.text = responsaveis[index].senha; + inputData.text = responsaveis[index].dataCadastro; + setState(() {}); + }, + onTapDelete: (){ + responsaveis.removeAt(index); + setState(() {}); + showSnackBar(context, 'Responsável deletado!', Colors.green); + }, + ); + } + ), + ), + ], + ), + ) + ); + } +} diff --git a/lib/utils/colors.dart b/lib/utils/colors.dart index 9b717e8..e8936d4 100644 --- a/lib/utils/colors.dart +++ b/lib/utils/colors.dart @@ -10,5 +10,5 @@ class PaletteColors{ static const Color lightGrey = Color(0xffD0D0D0); static const Color midGrey = Color(0xffC4C4C4); static const Color backGrey = Color(0xffE9E9E9); - static const Color greenAcent = Color(0xff1DBF24); + static const Color green = Color(0xff06790c); } \ No newline at end of file diff --git a/lib/widgets/buttom_custom.dart b/lib/widgets/buttom_custom.dart index 76f0938..6bc22a6 100644 --- a/lib/widgets/buttom_custom.dart +++ b/lib/widgets/buttom_custom.dart @@ -9,11 +9,8 @@ class ButtonCustom extends StatelessWidget{ final Color colorBorder; final widthCustom; final heightCustom; - final font; - const ButtonCustom( - {Key? key, - required this.font, +ButtonCustom({ required this.onPressed, required this.text, required this.size, @@ -22,7 +19,7 @@ class ButtonCustom extends StatelessWidget{ required this.colorBorder, this.widthCustom = 1.0, this.heightCustom = 1.0 -}) : super(key: key); +}); @override Widget build (BuildContext context) { double width =MediaQuery.of(context).size.width; @@ -33,16 +30,14 @@ class ButtonCustom extends StatelessWidget{ primary: colorButton, minimumSize: Size(width*widthCustom! , height*heightCustom!), side: BorderSide(width: 2,color : colorBorder,), - - ), onPressed: onPressed, child: Text(text, - style: TextStyle(fontFamily: font, color: colorText, - fontSize: size,fontWeight: FontWeight.bold + style: TextStyle( + color: colorText, + fontSize: size, + fontWeight: FontWeight.bold ), - - ) , ); } diff --git a/lib/widgets/dados_alunos_container.dart b/lib/widgets/dados_alunos_container.dart index 2309ba3..ec2a6fa 100644 --- a/lib/widgets/dados_alunos_container.dart +++ b/lib/widgets/dados_alunos_container.dart @@ -1,4 +1,5 @@ import 'package:educa_controle_acesso/models/aluno_model.dart'; +import 'package:educa_controle_acesso/screens/responsible_register_screen.dart'; import 'package:educa_controle_acesso/widgets/text_custom.dart'; import 'package:flutter/material.dart'; import '../utils/colors.dart'; @@ -13,37 +14,45 @@ class DadosAlunosContainer extends StatelessWidget { @override Widget build(BuildContext context) { - return Container( - padding: EdgeInsets.symmetric(vertical: 10,horizontal: 5), - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - TextCustom( - text: 'Nome: '+alunoModel.nome, - color: PaletteColors.grey, - size: 20, - ), - TextCustom( - text: 'Data de Nascimento: '+alunoModel.data_nasc, + return InkWell( + onTap: (){ + Navigator.push( + context, + MaterialPageRoute(builder: (context) => ResponsibleRegisterScreen(alunoModel: alunoModel)), + ); + }, + child: Container( + padding: EdgeInsets.symmetric(vertical: 10,horizontal: 5), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + TextCustom( + text: 'Nome: '+alunoModel.nome, + color: PaletteColors.grey, + size: 20, + ), + TextCustom( + text: 'Data de Nascimento: '+alunoModel.data_nasc, + color: PaletteColors.grey, + size: 15, + ), + TextCustom( + text: 'RA: '+alunoModel.ra, color: PaletteColors.grey, size: 15, - ), - TextCustom( - text: 'RA: '+alunoModel.ra, - color: PaletteColors.grey, - size: 15, - ), - TextCustom( - text: 'Turma: '+alunoModel.serie+'° ANO '+alunoModel.turma, - color: PaletteColors.grey, - size: 15, - ), - TextCustom( - text: 'Escola: '+alunoModel.escola, - color: PaletteColors.grey, - size: 15, - ), - ], + ), + TextCustom( + text: 'Turma: '+alunoModel.serie+'° ANO '+alunoModel.turma, + color: PaletteColors.grey, + size: 15, + ), + TextCustom( + text: 'Escola: '+alunoModel.escola, + color: PaletteColors.grey, + size: 15, + ), + ], + ), ), ); } diff --git a/lib/widgets/dados_responsaveis_container.dart b/lib/widgets/dados_responsaveis_container.dart new file mode 100644 index 0000000..e98a309 --- /dev/null +++ b/lib/widgets/dados_responsaveis_container.dart @@ -0,0 +1,46 @@ +import 'package:educa_controle_acesso/models/aluno_model.dart'; +import 'package:educa_controle_acesso/models/responsavel_model.dart'; +import 'package:educa_controle_acesso/screens/responsible_register_screen.dart'; +import 'package:educa_controle_acesso/widgets/text_custom.dart'; +import 'package:flutter/material.dart'; +import '../utils/colors.dart'; + +class DadosResponsaveisContainer extends StatelessWidget { + + ResponsavelModel responsavelModel; + var onTapEdit; + var onTapDelete; + + DadosResponsaveisContainer({ + required this.responsavelModel, + required this.onTapEdit, + required this.onTapDelete +}); + + @override + Widget build(BuildContext context) { + + double width = MediaQuery.of(context).size.width; + + return InkWell( + onTap: onTapEdit, + child: Row( + children: [ + IconButton( + onPressed:onTapDelete, + icon: Icon(Icons.delete,color: PaletteColors.grey,), + ), + Container( + width: width*0.15, + padding: EdgeInsets.symmetric(vertical: 10,horizontal: 5), + child: TextCustom( + text: '${responsavelModel.nomeResponsavel}, ${responsavelModel.parentesco}', + color: PaletteColors.grey, + size: 15, + ), + ), + ], + ), + ); + } +} diff --git a/lib/widgets/input_text.dart b/lib/widgets/input_text.dart index 2550ce1..afd6114 100644 --- a/lib/widgets/input_text.dart +++ b/lib/widgets/input_text.dart @@ -12,6 +12,8 @@ class InputText extends StatelessWidget { int maxLines; Color colorBorder; var onChanged; + bool enable; + List inputFormatters; InputText({ required this.controller, @@ -23,6 +25,8 @@ class InputText extends StatelessWidget { this.maxLines = 1, this.colorBorder = PaletteColors.grey, this.onChanged = null, + this.enable = true, + required this.inputFormatters }); @override @@ -32,11 +36,13 @@ class InputText extends StatelessWidget { width: width, margin: EdgeInsets.only(bottom: 5), child: TextFormField( + inputFormatters: inputFormatters, keyboardType: textInputType, maxLines: maxLines, onChanged: onChanged, obscureText: this.obscure, controller: this.controller, + enabled: enable, style: TextStyle( color: Colors.black, fontSize: this.fontSize, diff --git a/lib/widgets/text_custom.dart b/lib/widgets/text_custom.dart index 4383cfd..176b2ec 100644 --- a/lib/widgets/text_custom.dart +++ b/lib/widgets/text_custom.dart @@ -14,7 +14,7 @@ class TextCustom extends StatelessWidget { TextCustom({ required this.text, this.size = 16.0, - this.color = PaletteColors.primaryColor, + this.color = PaletteColors.grey, this.fontWeight = FontWeight.normal, this.textAlign = TextAlign.start, this.maxLines = 1, diff --git a/pubspec.lock b/pubspec.lock index 0f3a736..956287c 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -15,6 +15,13 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "2.1.0" + brasil_fields: + dependency: "direct main" + description: + name: brasil_fields + url: "https://pub.dartlang.org" + source: hosted + version: "1.12.0" characters: dependency: transitive description: @@ -67,6 +74,20 @@ packages: description: flutter source: sdk version: "0.0.0" + get: + dependency: "direct main" + description: + name: get + url: "https://pub.dartlang.org" + source: hosted + version: "4.6.5" + intl: + dependency: "direct main" + description: + name: intl + url: "https://pub.dartlang.org" + source: hosted + version: "0.18.1" lints: dependency: transitive description: diff --git a/pubspec.yaml b/pubspec.yaml index 0c1567c..d182689 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -11,6 +11,9 @@ dependencies: sdk: flutter cupertino_icons: ^1.0.2 + brasil_fields: + get: + intl: dev_dependencies: flutter_test: