def consultaHandler(self, event): nome = self.limiteConsulta.escolhaCurso.get() try: if len(nome) == 0: raise CamposNaoPreenchidos() except CamposNaoPreenchidos: self.limiteConsulta.mostraMessagebox( 'ATENÇÃO', 'Todos os campos devem ser preenchidos', True) else: curso = ManipulaBanco.consultaCurso(nome) try: if curso == False: raise ConexaoBD() if curso == None: raise CursoNaoCadastrado() except ConexaoBD: self.limiteConsulta.mostraMessagebox( 'ERROR', 'Falha de conexão com o Banco de Dados', True) except CursoNaoCadastrado: self.limiteConsulta.mostraMessagebox('ALERTA', 'Curso não cadastrado', True) else: string = f'{curso.nome}\n' if curso.grade == None: string += 'SEM GRADE\n' else: string += f'Grade: {curso.grade.ano}\n' string += '\nALUNOS MATRICULADOS: \n' for aluno in curso.alunos: string += f'{aluno.nro_matric} -- {aluno.nome}\n' string += '---------------------------\n' LimiteMostraCursos('CONSULTA CURSO', string, False) finally: self.limiteConsulta.clearConsulta(event)
def deletaCurso(self): nomeCurso = self.limite.inputCurso.get() try: if len(nomeCurso)==0: raise PreencherCampoId() except PreencherCampoId: self.limite.mostraMessagebox('ALERTA', 'Necessário informar o campo de curso para deletar', True) else: status = ManipulaBanco.deletaCurso(nomeCurso) try: if status == False: raise ErroRequisicao() except ErroRequisicao: self.limite.mostraMessagebox('ERROR', 'Houve erro na requisição ou o dado informado não existe', True) else: self.limite.mostraMessagebox('SUCESSO', f'Curso {nomeCurso} excluído com sucesso', False) self.limite.limpaCurso() self.reloadTabela()
def cadastraCurso(self): nomeCurso = self.limite.inputCurso.get() anoCurso = self.limite.escolhaGrade.get() try: if len(nomeCurso)==0 or len(anoCurso)==0: raise PreencherCampos() except PreencherCampos: self.limite.mostraMessagebox('ALERTA', 'Atenção todos os campos devem ser preenchidos para inserção', True) else: grade = self.ctrlPrincipal.ctrlGrade.getObjGrade(anoCurso) curso = Curso(nome=nomeCurso, alunos=self.listaAlunoCurso, grade=grade) status = ManipulaBanco.cadastraCurso(curso) try: if status == False: raise ConexaoBD() except ConexaoBD: self.limite.mostraMessagebox('ERROR', 'Falha de conexão com o Banco de dados', True) else: self.limite.mostraMessagebox('SUCESSO', 'Curso cadastrado com sucesso', False) self.limite.limpaCurso() self.reloadTabela() self.listaAlunoCurso = []
def buscaCurso(self): nomeCurso = self.limite.inputCurso.get() if len(self.limite.tabelaAl.get_children())==1 and len(nomeCurso)==0: self.reloadTabela() else: try: if len(nomeCurso)==0: raise PreencherCampoId() except PreencherCampoId: self.limite.mostraMessagebox('ALERTA', 'Necessário preencher o campo curso para busca', True) else: curso = ManipulaBanco.consultaCurso(nomeCurso) try: if curso == False: raise ConexaoBD() if curso == None: raise CursoNaoCadastrado() except ConexaoBD: self.limite.mostraMessagebox('ERROR', 'Falha de conexão com o Banco de Dados', True) except CursoNaoCadastrado: self.limite.mostraMessagebox('ERROR', f'Curso {nomeCurso} não cadastrada', True) else: self.reloadOneElement(curso) finally: self.limite.limpaCurso()
def excluiHandler(self, event): nomeCurso = self.limiteExclui.escolhaCurso.get() try: if len(nomeCurso) == 0: raise CamposNaoPreenchidos() except CamposNaoPreenchidos: self.limiteExclui.mostraMessagebox( 'ATENÇÃO', 'Todos os campos devem ser preenchidos', True) else: status = ManipulaBanco.deletaCurso(nomeCurso) try: if status == False: raise CursoNaoCadastrado() except CursoNaoCadastrado: self.limiteExclui.mostraMessagebox( 'ALERTA', 'Curso não cadastrado ou falha de conexão com Banco de Dados', True) else: self.limiteExclui.mostraMessagebox( 'SUCESSO', 'Curso deletado com sucesso', False) finally: self.limiteExclui.clearExclusao(event)
def atualizaCurso(self): nomeCurso = self.limiteAltera.escolhaCurso.get() alunos = self.limiteAltera.listaCursoAl anoCurso = self.limiteAltera.escolhaGrade.get() try: if len(nomeCurso)==0 or len(anoCurso)==0: raise PreencherCampos() if len(alunos)==0: raise CursoSemAluno() except PreencherCampos: self.limiteAltera.mostraMessagebox('ALERTA', 'Os campos curso e grade devem ser preenchidos', True) except CursoSemAluno: self.limiteAltera.mostraMessagebox('ATENÇÃO', 'O curso deve ter no mínimo um aluno', True) else: grade = self.ctrlPrincipal.ctrlGrade.getObjGrade(anoCurso) status = ManipulaBanco.atualizaCurso(nomeCurso, alunos, grade) try: if status == False: raise ConexaoBD() except ConexaoBD: self.limiteAltera.mostraMessagebox('ERROR', 'Falha de conexão com o Banco de Dados', True) else: self.limiteAltera.mostraMessagebox('SUCESSO', f'Curso {nomeCurso} atualizado com sucesso', False) self.limiteAltera.fechaJanela()
def enterHandler(self, event): nome = self.limiteIns.inputCurso.get() try: if len(nome) == 0: raise CamposNaoPreenchidos() except CamposNaoPreenchidos: self.limiteIns.mostraMessagebox( 'ATENÇÃO', 'Todos os campos devem ser preenchidos', True) else: curso = Curso(nome=nome) status = ManipulaBanco.cadastraCurso(curso) try: if status == False: raise CursoDuplicado() except CursoDuplicado: self.limiteIns.mostraMessagebox( 'ALERTA', 'O curso já existe ou falha de conexão com Banco de Dados', True) else: self.limiteIns.mostraMessagebox( 'SUCESSO', 'Curso cadastrado com sucesso!', False) finally: self.limiteIns.clearHandler(event)
def getListaCursos(self): return ManipulaBanco.listaCursos()