def gradeConsulta(self, event): ano = self.limiteConsulta.escolhaAno.get() curso = self.limiteConsulta.escolhaCurso.get() try: if len(ano) == 0 or len(curso) == 0: raise CamposNaoPreenchidos() except CamposNaoPreenchidos: self.limiteConsulta.mostraMessagebox('ATENÇÃO', 'Todos os campos devem ser preenchidos', True) else: grade = ManipulaBanco.consultaGrade(ano, curso) try: if grade == False: raise ConexaoBD() if grade == None: raise GradeNaoCadastrada() except ConexaoBD: self.limiteConsulta.mostraMessagebox('ERROR', 'Falha de conexão com o Banco de Dados', True) except GradeNaoCadastrada: self.limiteConsulta.mostraMessagebox('ALERTA', 'Grade não cadastrada', True) else: string = f'Grade: {grade.ano}\n' string += f'Curso: {grade.curso_id}\n' string += '\nDisciplinas da grade: ' for disc in grade.disciplinas: string += f'\n{disc.codigo} -- {disc.nome} -- {disc.carga_horaria}hr' LimiteMostraGrades('CONSULTA GRADE', string, False) finally: self.limiteConsulta.clearConsulta(event)
def buscaGrade(self): anoCurso = self.limite.inputGrade.get() if len(self.limite.tabelaDisc.get_children()) == 1 and len( anoCurso) == 0: self.reloadTabela() else: try: if len(anoCurso) == 0: raise PreencherCampoId() except PreencherCampoId: self.limite.mostraMessagebox( 'ALERTA', 'Necessário preencher o campo grade para busca', True) else: grade = ManipulaBanco.consultaGrade(anoCurso) try: if grade == False: raise ConexaoBD() if grade == None: raise GradeNaoCadastrado() except ConexaoBD: self.limite.mostraMessagebox( 'ERROR', 'Falha de conexão com o Banco de Dados', True) except GradeNaoCadastrado: self.limite.mostraMessagebox( 'ERROR', f'Grade {anoCurso} não cadastrada', True) else: self.reloadOneElement(grade) finally: self.limite.limpaGrade()
def criaGrade(self, event): ano = self.limiteIns.inputAno.get() cursoSelecionado = self.limiteIns.escolhaCurso.get() try: if len(ano)==0 or len(cursoSelecionado)==0: raise CamposNaoPreenchidos() except CamposNaoPreenchidos: self.limiteIns.mostraMessagebox('ATENÇÃO', 'Todos os campos devem ser preenchidos', True) else: relacionamento = [] grade = Grade(ano=ano, curso_id=cursoSelecionado) ManipulaBanco.cadastraGrade(grade) for i in self.listaDiscGrade: grade_disc = GradeDisciplina(grade_id_ano=ano, grade_id_curso=cursoSelecionado, disciplina_id=i) relacionamento.append(grade_disc) ManipulaBanco.cadastraGradeDisciplina(relacionamento) self.limiteIns.mostraMessagebox('SUCESSO', 'Disciplina inseridas na grade %s com sucesso'%ano, False) self.limiteIns.janela.destroy()
def removeDisciplina(self, event): comboCurso = self.limiteAtualiza.escolhaCurso.get() comboAno = self.limiteAtualiza.escolhaGrade.get() disciplinaSel = self.limiteAtualiza.listbox.get(tk.ACTIVE) status = ManipulaBanco.removerDisciplinaDaGrade(comboAno, comboCurso, disciplinaSel) try: if status == False: raise ConexaoBD() except ConexaoBD: self.limiteAtualiza.mostraMessagebox('ERROR', 'Falha de conexão com Banco de Dados', True) else: self.limiteAtualiza.mostraMessagebox('Sucesso', 'Disciplina removida com sucesso', False) self.popular(event)
def adicionaDisciplina(self, event): comboCurso = self.limiteAtualiza.escolhaCurso.get() comboAno = self.limiteAtualiza.escolhaGrade.get() disciplinaSel = self.limiteAtualiza.listboxTodas.get(tk.ACTIVE) gradeDisciplina = GradeDisciplina(grade_id_ano=comboAno, grade_id_curso=comboCurso, disciplina_id=disciplinaSel) status = ManipulaBanco.inserirDisciplinaNaGrade(gradeDisciplina) try: if status == False: raise ConexaoBD() except ConexaoBD: self.limiteAtualiza.mostraMessagebox('ERROR', 'Falha de conexão com Banco de Dados', True) else: self.limiteAtualiza.mostraMessagebox('Sucesso', 'Disciplina inserida com sucesso', False) self.popular(event)
def gradeDelete(self, event): ano = self.limiteExclui.escolhaAno.get() curso = self.limiteExclui.escolhaCurso.get() try: if len(ano)==0 or len(curso)==0: raise CamposNaoPreenchidos() except CamposNaoPreenchidos: self.limiteExclui.mostraMessagebox('ATENÇÃO', 'Todos os campos devem ser preenchidos', True) else: status = ManipulaBanco.deletaGrade(ano, curso) try: if status == False: raise GradeNaoCadastrada() except GradeNaoCadastrada: self.limiteExclui.mostraMessagebox('ALERTA', 'Grade não cadastrada ou falha de conexão com Banco de Dados', True) else: self.limiteExclui.mostraMessagebox('SUCESSO', 'Grade deletada com sucesso', False) finally: self.limiteExclui.clearExclusao(event)
def deletaGrade(self): anoCurso = self.limite.inputGrade.get() try: if len(anoCurso) == 0: raise PreencherCampoId() except PreencherCampoId: self.limite.mostraMessagebox( 'ALERTA', 'Necessário informar o campo de grade para deletar', True) else: status = ManipulaBanco.deletaGrade(anoCurso) 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'Grade {anoCurso} excluído com sucesso', False) self.limite.limpaGrade() self.reloadTabela()
def atualizaGrade(self): anoCurso = self.limiteAltera.escolhaGrade.get() disciplinas = self.limiteAltera.listaGradeDisc try: if len(anoCurso) == 0: raise PreencherCampoId() if len(disciplinas) == 0: raise GradeSemDisciplina() except PreencherCampoId: self.limiteAltera.mostraMessagebox( 'ALERTA', 'Campo Ano/Curso deve ser preenchido', True) except GradeSemDisciplina: self.limiteAltera.mostraMessagebox( 'ATENÇÃO', 'A grade deve ter no mínimo uma disciplina', True) else: status = ManipulaBanco.atualizaGrade(anoCurso, disciplinas) 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'Grade {anoCurso} atualizada com sucesso', False) self.reloadTabelaAltera()
def cadastraGrade(self): anoCurso = self.limite.inputGrade.get() try: if len(anoCurso) == 0: raise PreencherCampos() except PreencherCampos: self.limite.mostraMessagebox( 'ALERTA', 'Atenção todos os campos devem ser preenchidos para inserção', True) else: listaDict = self.converteDict(self.listaDiscGrade) grade = Grade(anoCurso=anoCurso, disciplinas=listaDict) status = ManipulaBanco.cadastraGrade(grade) 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', 'Grade cadastrada com sucesso', False) self.limite.fechaJanela()
def getListaGrades(self): return ManipulaBanco.listaGrades()