コード例 #1
0
 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)
コード例 #2
0
 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()
コード例 #3
0
 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()
コード例 #4
0
 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)
コード例 #5
0
 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)
コード例 #6
0
 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)
コード例 #7
0
 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()
コード例 #8
0
 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()
コード例 #9
0
 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()
コード例 #10
0
 def getListaGrades(self):
     return ManipulaBanco.listaGrades()