def new_nota(self, request):
        """
        Generates a new nota in the platform.
        """
        logging.debug("[FrontEnd] - Nota - Name = {0}".format(request.name))
        logging.debug("[FrontEnd] - Nota - Observacion = {0}".format(request.observacion))

        resp = messages.CreateNotaResponse()
        try:
            Nota.create(observacion=request.observacion, name=request.name)
        except NotaCreationError as e:
            resp.error = e.value
        else:
            resp.ok = True
        return resp
Exemplo n.º 2
0
    def getProvaByAluno(self, matricula):
        idsProvas = Prova().ids('Realizada')
        provas = list(filter(lambda x: x.id in idsProvas, Prova().objects))

        if (len(provas) > 0):
            print(
                '\n|------------------------+----------------------+--------------------+-----------------------|'
            )
            print(
                f"{'':5} {'DISCIPLINA':10} {'':15}  {'VALOR':20} {'PONTUACAO':20} {'APROVEITAMENTO':10}"
            )
            print(
                '|------------------------+-------------------------------------------+-----------------------|'
            )
            for prova in provas:
                nota = Nota().getNotaAluno(prova.id, matricula)
                print(
                    f"{'':4} {prova.getDisciplina().nome:23} {prova.pontos:10.1f} {'':17} {nota:.1f} {'':18} {(nota / prova.pontos * 100):1.1f}%  "
                )
                print(
                    '|------------------------+-------------------------------------------+-----------------------|'
                )

        else:
            print(
                '\n\n------------------------ Nenhuma prova realizada ainda! -------------------------------'
            )
Exemplo n.º 3
0
    def new_nota(self, request):
        """
        Generates a new nota in the platform.
        """
        logging.debug("[FrontEnd] - Nota - Name = {0}".format(request.name))
        logging.debug("[FrontEnd] - Nota - Observacion = {0}".format(
            request.observacion))

        resp = messages.CreateNotaResponse()
        try:
            Nota.create(observacion=request.observacion, name=request.name)
        except NotaCreationError as e:
            resp.error = e.value
        else:
            resp.ok = True
        return resp
Exemplo n.º 4
0
 def get_all(self):
     ''' Retorna una lista de objetos Nota con todas las notas que haya
     guardadas en la BD'''
     lista_notas = []
     consulta = "SELECT id, texto, etiquetas FROM notas;"
     self.cursor.execute(consulta)
     todas_las_notas = self.cursor.fetchall()
     for id, texto, etiquetas in todas_las_notas:
         lista_notas.append(Nota(texto, etiquetas, id))
     return lista_notas
Exemplo n.º 5
0
	def cadastroNota(self):
		alunos = Aluno()
		dataProva = Prova().getOnlyData(Form().pesquisaProva(' 	não realizada', "\nErro: Pesquise por uma prova da lista e que não foi realizada ainda."))
		print('\n\n\n##############################################################################################')
		print("{:>30} {}".format(' ', ' INFORMAÇÕES SOBRE A PROVA '))
		print('\n{:>30} {}'.format(' ', "Prova de {} valendo {} pontos:".format(dataProva[1].nome, dataProva[0].pontos)))
		for aluno in alunos.objects:
			nota = Form().inputFloat('\n\n{:>30} {}'.format(' ', 'Digite a nota de {}: '.format(aluno.nome)), '\nErro: A nota deve ser um número (casas decimais devem separadas por .)', dataProva[0].pontos, 'Erro: Digite um número maior ou igual a 0 e menor ou igual a {}.'.format(dataProva[0].pontos))
			Nota().save(dataProva[0].id, aluno.matricula, nota)

		#Atualiza o status da prova pra "Realizada"
		Prova().atualizaStatus(dataProva[0].id)
Exemplo n.º 6
0
    def get(self, id_prova):
        prova = list(filter(lambda x: x.id == id_prova,
                            self.__class__.objects))
        disciplina = list(
            filter(lambda x: x.id == prova[0].disciplina,
                   Disciplina().objects))
        print(
            '\n\n\n##############################################################################################'
        )
        print("{:>30} {}".format(' ', ' INFORMAÇÕES SOBRE A PROVA '))
        print('\n{:>20} {}'.format(
            ' ',
            "Prova de {} valendo {} pontos.   ".format(disciplina[0].nome,
                                                       prova[0].pontos)))
        print("\n{:>20} {}".format(
            ' ', "ID da Prova {} - Status: {}.".format(prova[0].id,
                                                       prova[0].status)))

        if (prova[0].status != 'não realizada'):
            Nota().getNotas(prova[0].id)
Exemplo n.º 7
0
    def __init__(self,win,):
        self.notaCRUD = Nota()
        self.alunoSelected = None
        self.alunoResult = None
        self.disciSelected = None
        self.desciResult = None

        #Criar os componentes de tela
        self.notaed2Label = tk.Label(win, text='_______________', background='#292826',foreground='#F1780e')
        self.notaedLabel = tk.Label(win, text='______________________________________',background='#292826',foreground='#F1780e')
        self.notaLabel = tk.Label(win, text='NOTAS',font="Bold 17", background='#292826',foreground='#F1780e')

        self.av1Label = tk.Label(win, text='AV1',font="Bold 10", background='#292826',foreground='#F1780e') 
        self.av1Edit = tk.Entry(width = 32, bd=1,bg='#dde')

        self.av2Label = tk.Label(win, text='AV2',font="Bold 10", background='#292826',foreground='#F1780e') 
        self.av2Edit = tk.Entry(width = 32, bd=1,bg='#dde')

        self.av3Label = tk.Label(win, text='AV3',font="Bold 10", background='#292826',foreground='#F1780e') 
        self.av3Edit = tk.Entry(width = 32, bd=1,bg='#dde')

        self.mediaLabel = tk.Label(win, text='Media',font="Bold 10", background='#292826',foreground='#F1780e') 
        self.mediaEdit = tk.Entry(width = 32, bd=1,bg='#dde')

        self.alunoLabel = tk.Label(win, text='Aluno',font="Bold 10", background='#292826',foreground='#F1780e') 
        self.alunoEdit = tk.Entry(width = 32, bd=1,bg='#dde')
        
        self.discLabel = tk.Label(win, text='Disciplina',font="Bold 10", background='#292826',foreground='#F1780e') 
        self.discEdit = tk.Entry(width = 32, bd=1,bg='#dde')
        #------------
        #Botoes
        #------------
        self.buscaEdit = tk.Entry(width=85, bd=1,bg='#dde')
        self.buscaEdit.insert(0, 'Digite sua Matrica')
        self.buscaEdit.configure(state=DISABLED)
        self.buscaEdit.bind('<Button-1>', self._on_click)
        self.buscaEdit.bind("<Return>",(lambda Event: self.get_Aluno(self.buscaEdit.get())))
        self.btnbusca = tk.Button(win, 
                text='Busca',bg='#dde',command=(lambda : self.get_Aluno(self.buscaEdit.get())), bd=0)

        self.btnCadastrar = tk.Button(win, 
                text = 'Salvar',bg='#dde', width = 7, command=self._on_cadastrar_clicked, bd=1)

        self.btnAlterar = tk.Button(win, 
                text = 'Editar',bg='#dde', width = 7, command=self._on_atualizar_clicked, bd=1)

        self.btnExcluir = tk.Button(win, 
                text = 'Excluir',bg='#dde', width = 7, command=self._on_deletar_clicked, bd=1)

        
        
        self.notaList = ttk.Treeview(win, columns=(1,2,3,4,5,6), show='headings')
        
        self.verscrlbar = ttk.Scrollbar(win,orient="vertical", command=self.notaList.yview)
        self.verscrlbar.pack(side = 'right', fill='x')
        self.notaList.configure(yscrollcommand = self.verscrlbar.set)

        self.notaList.heading(1, text='Aluno')
        self.notaList.heading(2, text='Disciplina')
        self.notaList.heading(3, text='AV 1')
        self.notaList.heading(4, text='AV 2')
        self.notaList.heading(5, text='AV 3')
        self.notaList.heading(6, text='Media')

        self.notaList.column(1, minwidth=0, width=200)
        self.notaList.column(2, minwidth=0, width=100)
        self.notaList.column(3, minwidth=0, width=45)
        self.notaList.column(4, minwidth=0, width=40)
        self.notaList.column(5, minwidth=0, width=40)
        self.notaList.column(6, minwidth=0, width=50)

        self.notaList.pack()
        self.notaList.bind("<<TreeviewSelect>>", self._on_mostrar_clicked)

        #Posicionar os componentes na tela
        self.notaed2Label.place(x=440,y=80)
        self.notaedLabel.place(x=380,y=20)
        self.notaLabel.place(x=440,y=50)

        self.av1Label.place(x=460,y=130)
        self.av1Edit.place(x=530,y=130)
        
        self.av2Label.place(x=460,y=160)
        self.av2Edit.place(x=530,y=160)

        self.av3Label.place(x=460,y=190)
        self.av3Edit.place(x=530,y=190)

        self.mediaLabel.place(x=170,y=160)
        self.mediaEdit.place(x=220,y=160)
        
        self.alunoLabel.place(x=170,y=130)
        self.alunoEdit.place(x=220,y=130)

        self.discLabel.place(x=170,y=190)
        self.discEdit.place(x=220,y=190)

        self.buscaEdit.place(x=295,y=300)
        #--------
        # Botoes
        #--------
        #self.btnlista.place(x=865,y=298)
        self.btnbusca.place(x=820,y=298)
        self.btnCadastrar.place(x=670,y=250)
        self.btnAlterar.place(x=600,y=250)
        self.btnExcluir.place(x=530,y=250)
        self.notaList.place(x=300,y=330)
        self.verscrlbar.place(x=880,y=330, height=230)

        self.carregar_dados_iniciais_treeView()
Exemplo n.º 8
0
class Notawin:

    def __init__(self,win,):
        self.notaCRUD = Nota()
        self.alunoSelected = None
        self.alunoResult = None
        self.disciSelected = None
        self.desciResult = None

        #Criar os componentes de tela
        self.notaed2Label = tk.Label(win, text='_______________', background='#292826',foreground='#F1780e')
        self.notaedLabel = tk.Label(win, text='______________________________________',background='#292826',foreground='#F1780e')
        self.notaLabel = tk.Label(win, text='NOTAS',font="Bold 17", background='#292826',foreground='#F1780e')

        self.av1Label = tk.Label(win, text='AV1',font="Bold 10", background='#292826',foreground='#F1780e') 
        self.av1Edit = tk.Entry(width = 32, bd=1,bg='#dde')

        self.av2Label = tk.Label(win, text='AV2',font="Bold 10", background='#292826',foreground='#F1780e') 
        self.av2Edit = tk.Entry(width = 32, bd=1,bg='#dde')

        self.av3Label = tk.Label(win, text='AV3',font="Bold 10", background='#292826',foreground='#F1780e') 
        self.av3Edit = tk.Entry(width = 32, bd=1,bg='#dde')

        self.mediaLabel = tk.Label(win, text='Media',font="Bold 10", background='#292826',foreground='#F1780e') 
        self.mediaEdit = tk.Entry(width = 32, bd=1,bg='#dde')

        self.alunoLabel = tk.Label(win, text='Aluno',font="Bold 10", background='#292826',foreground='#F1780e') 
        self.alunoEdit = tk.Entry(width = 32, bd=1,bg='#dde')
        
        self.discLabel = tk.Label(win, text='Disciplina',font="Bold 10", background='#292826',foreground='#F1780e') 
        self.discEdit = tk.Entry(width = 32, bd=1,bg='#dde')
        #------------
        #Botoes
        #------------
        self.buscaEdit = tk.Entry(width=85, bd=1,bg='#dde')
        self.buscaEdit.insert(0, 'Digite sua Matrica')
        self.buscaEdit.configure(state=DISABLED)
        self.buscaEdit.bind('<Button-1>', self._on_click)
        self.buscaEdit.bind("<Return>",(lambda Event: self.get_Aluno(self.buscaEdit.get())))
        self.btnbusca = tk.Button(win, 
                text='Busca',bg='#dde',command=(lambda : self.get_Aluno(self.buscaEdit.get())), bd=0)

        self.btnCadastrar = tk.Button(win, 
                text = 'Salvar',bg='#dde', width = 7, command=self._on_cadastrar_clicked, bd=1)

        self.btnAlterar = tk.Button(win, 
                text = 'Editar',bg='#dde', width = 7, command=self._on_atualizar_clicked, bd=1)

        self.btnExcluir = tk.Button(win, 
                text = 'Excluir',bg='#dde', width = 7, command=self._on_deletar_clicked, bd=1)

        
        
        self.notaList = ttk.Treeview(win, columns=(1,2,3,4,5,6), show='headings')
        
        self.verscrlbar = ttk.Scrollbar(win,orient="vertical", command=self.notaList.yview)
        self.verscrlbar.pack(side = 'right', fill='x')
        self.notaList.configure(yscrollcommand = self.verscrlbar.set)

        self.notaList.heading(1, text='Aluno')
        self.notaList.heading(2, text='Disciplina')
        self.notaList.heading(3, text='AV 1')
        self.notaList.heading(4, text='AV 2')
        self.notaList.heading(5, text='AV 3')
        self.notaList.heading(6, text='Media')

        self.notaList.column(1, minwidth=0, width=200)
        self.notaList.column(2, minwidth=0, width=100)
        self.notaList.column(3, minwidth=0, width=45)
        self.notaList.column(4, minwidth=0, width=40)
        self.notaList.column(5, minwidth=0, width=40)
        self.notaList.column(6, minwidth=0, width=50)

        self.notaList.pack()
        self.notaList.bind("<<TreeviewSelect>>", self._on_mostrar_clicked)

        #Posicionar os componentes na tela
        self.notaed2Label.place(x=440,y=80)
        self.notaedLabel.place(x=380,y=20)
        self.notaLabel.place(x=440,y=50)

        self.av1Label.place(x=460,y=130)
        self.av1Edit.place(x=530,y=130)
        
        self.av2Label.place(x=460,y=160)
        self.av2Edit.place(x=530,y=160)

        self.av3Label.place(x=460,y=190)
        self.av3Edit.place(x=530,y=190)

        self.mediaLabel.place(x=170,y=160)
        self.mediaEdit.place(x=220,y=160)
        
        self.alunoLabel.place(x=170,y=130)
        self.alunoEdit.place(x=220,y=130)

        self.discLabel.place(x=170,y=190)
        self.discEdit.place(x=220,y=190)

        self.buscaEdit.place(x=295,y=300)
        #--------
        # Botoes
        #--------
        #self.btnlista.place(x=865,y=298)
        self.btnbusca.place(x=820,y=298)
        self.btnCadastrar.place(x=670,y=250)
        self.btnAlterar.place(x=600,y=250)
        self.btnExcluir.place(x=530,y=250)
        self.notaList.place(x=300,y=330)
        self.verscrlbar.place(x=880,y=330, height=230)

        self.carregar_dados_iniciais_treeView()
        #--------
        # Funções
        #--------

    def _on_click(self, event):
        self.buscaEdit.configure(state=NORMAL)
        self.buscaEdit.delete(0, END)
        self.buscaEdit.unbind('<Button-1>',self._on_click)


    def get_Aluno(self,event):
        
            self.notaList.delete(*self.notaList.get_children())
            notas = self.notaCRUD.consultar_por_matricula(self.buscaEdit.get())
            if (len(notas)>0):
                
                item = self.notaList.selection()       
                for item in notas:
                    fk_aluno_id = item[0]
                    fk_disciplina_id = item[1]
                    av1 = item[2]
                    av2 = item[3]
                    av3 = item[4]
                    media = item[5]
                if fk_aluno_id == self.buscaEdit.get():
                    self.notaList.insert('','end',values=(str(fk_aluno_id),fk_disciplina_id,av1,av2,av3,media))
                
            else: notas != self.buscaEdit.get()
            id_aluno = Aluno()
            self.alunoResult = id_aluno.consultar_por_matricula(self.buscaEdit.get())
            lista = id_aluno.consultar_por_matricula(self.buscaEdit.get())
            item = self.notaList.selection()       
            for item in lista:
                            fk_aluno_id = item[1]
                                #deleta os campos prenchidos do formulario
                                #self.alunoEdit.configure(state=NORMAL)
                            self.alunoEdit.delete(0, tk.END)
                            self.alunoEdit.insert(0, fk_aluno_id)
                            #self.alunoEdit.configure(state=DISABLED)
                            self.av1Edit.delete(0, tk.END)
                            self.av2Edit.delete(0, tk.END)
                            self.av3Edit.delete(0, tk.END)
                            self.mediaEdit.delete(0, tk.END)
                            self.buscaEdit.delete(0, tk.END)

                            self.notaList.insert('','end',values=(str(fk_aluno_id),))
                            self.buscaEdit.insert(0, 'Digite sua Matrica')
                            self.buscaEdit.configure(state=DISABLED)
                            self.buscaEdit.bind('<Button-1>', self._on_click)
                        


    def _on_mostrar_clicked(self, event):
            #Seleção do usuario, linha na qual ele clicou
            selection = self.notaList.selection()
            item = self.notaList.item(selection)
            aluno = item["values"][0]
            dis = item["values"][1]
            av1 = item["values"][2]
            av2 = item["values"][3]
            av3   = item["values"][4]
            media = item["values"][5]
           
            self.av1Edit.delete(0, tk.END)
            self.av1Edit.insert(0, av1)
            self.av2Edit.delete(0, tk.END)
            self.av2Edit.insert(0, av2)
            self.av3Edit.delete(0, tk.END)
            self.av3Edit.insert(0, av3)
            self.mediaEdit.delete(0, tk.END)
            self.mediaEdit.insert(0, media)

    def carregar_dados_iniciais_treeView(self):
            self.notaList.delete(*self.notaList.get_children())
            registro = self.notaCRUD.consultar()

            count = 0
            for item in registro:
                fk_aluno_id = item[0]
                fk_disciplina_id = item[1]
                av1 = item[2]
                av2 = item[3]
                av3   = item[4]
                media = item[5]
               

                self.notaList.insert('','end',iid=count,values=(str(fk_aluno_id),fk_disciplina_id,av1,av2,av3,media))
                count = count + 1
            



    def _on_atualizar_clicked(self):
        linha = self.notaList.selection()
      
        if len(linha) != 0:
            fk_aluno_id = self.notaList.item(linha[0])["values"][0]
            fk_disciplina_id = self.notaList
            av1 = self.av1Edit.get()
            av2 = self.av2Edit.get()
            av3 = self.av3Edit.get()
            media = self.mediaEdit.get()
           

            if  self.notaCRUD.atualizar(fk_aluno_id,fk_disciplina_id,av1,av2,av3,media):

                self.notaList.item(self.notaList.focus(), values=(str(fk_aluno_id),av1,av2,av3,media))
                 #remover a seleção
                self.notaList.selection_remove(self.notaList.selection()[0])
                #----------#
                mb.showinfo("Mensagem", "Alteração executada com sucesso.")
                self.av1Edit.delete(0, tk.END)
                self.av2Edit.delete(0, tk.END)
                self.av3Edit.delete(0, tk.END)
                self.mediaEdit.delete(0, tk.END)
               
            else:
                mb.showinfo("Mensagem", "Erro na alteração.")
                self.av1Edit.focus_set()

    
    
    def _on_cadastrar_clicked(self):
        #Recuperar os dados dos campos texto
        fk_aluno_id = self.alunoEdit.get()
        fk_disciplina_id = self.discEdit.get()
        av1 = self.av1Edit.get()
        av2 = self.av2Edit.get()
        av3 = self.av3Edit.get()
        media = self.mediaEdit.get()
        

        #Chamar o cadastrar do aluno.py para cadastrar no banco
        #if (media) !="":
        if self.notaCRUD.cadastrar(fk_aluno_id,fk_disciplina_id,av1,av2,av3,media):
                numeroLinha = len(self.notaList.get_children())
                fk_aluno_id = self.notaCRUD.consultar_ultimo_id()
                
                
                self.notaList.insert('','end',numeroLinha,values=(str(fk_aluno_id),av1,av2,av3,media))
                if (av1+av2)/2>6:
                    media = (av1 + av2 )/2
                elif (av1<av3 and av1<av2):
                    media = (av3+av2)/2
                elif(av1>av2 and av2<av3):
                    media = (av2+av3)/2
                    #Mostrar mensagem para usuário
                    mb.showinfo("Mensagem", "Cadastro executado com sucesso!")
                    
                    #Limpar os campos texto
                    self.mediaEdit.insert(media)
                    self.av1Edit.delete(0,tk.END)
                    self.av2Edit.delete(0, tk.END)
                    self.av3Edit.delete(0, tk.END)
                    self.mediaEdit.delete(0, tk.END)
               
        
        else:
            mb.showinfo("Mensagem", "Erro no cadastro!")
            #Retornando o foco
            self.av1Edit.focus_set()
            self.av2Edit.focus_set()
            self.av3Edit.focus_set()
            self.mediaEdit.focus_set()
           


    def _on_deletar_clicked(self):
        linhaSelecionada = self.notaList.selection()

        if len(linhaSelecionada) != 0:
            id = self.notaList.item(linhaSelecionada[0])["values"][0]

            if  self.notaCRUD.excluir(id):
                self.notaList.delete(linhaSelecionada)
                
                mb.showinfo("Mensagem", "Exclusão executada com sucesso.")
                self.av1Edit.delete(0, tk.END)
                self.av2Edit.delete(0, tk.END)
                self.av3Edit.delete(0, tk.END)
                self.mediaEdit.delete(0, tk.END)
               
            else:
                mb.showinfo("Mensagem", "Erro na exclusão.")
                self.av1Edit.focus_set()
                self.av2Edit.focus_set()
                self.av3Edit.focus_set()
                self.mediaEdit.focus_set()
Exemplo n.º 9
0
def separa_campos_pela_chave(chave):
    new_nota = Nota()
    new_nota.chave = chave

    try:
        new_nota.uf = chave[0:2]
        new_nota.data = chave[2:6]
        new_nota.cnpj = chave[6:20]
        new_nota.modelo = chave[20:22]
        new_nota.serie = chave[22:25]
        new_nota.numero = chave[25:34]
        new_nota.tipo_emissao = chave[34:35]
        new_nota.codigo = chave[35:43]
        new_nota.digito = chave[43:44]
    except:
        print(m.erro_separacao)

    return new_nota
Exemplo n.º 10
0
 def crearNota(self):
     nota = Nota()
     nota.set_titulo(input("ingrese un titulo: "))
     nota.set_fecha(input("ingrese la fecha: "))
     nota.set_contenido(input("contenido: "))
     self.__NotesArray.append(nota)
Exemplo n.º 11
0
 def nueva_nota(self, texto, etiquetas = ''):
     '''Crea una nueva nota y la agrega a la lista'''
     nota = Nota(texto,etiquetas)
     self.notas.append(nota)
     return nota
Exemplo n.º 12
0
 def nueva_nota(self, texto, etiquetas=''):
     '''Crea una nueva nota y la agrega a la lista'''
     nota = Nota(texto, etiquetas)
     nota.id = self.repositorio.guardar(nota)
     self.notas.append(nota)
     return nota
Exemplo n.º 13
0
 def nuevaNota(self, texto, tags=''):
     '''Crea una nueva nota y la agrega a la lista.'''
     self.notas.append(Nota(texto, tags))
Exemplo n.º 14
0
    def nueva_nota(self, memo, tags=''):
        '''Crea una nueva nota y la añade a lista notas'''

        self.notas.append(Nota(memo, tags))
Exemplo n.º 15
0
    def nueva_nota(self, texto, etiquetas=''):
        '''Crea una nueva nota y la agrega a la lista de notas'''
        #TODO: Construir este método.

        nota = Nota(texto, etiquetas)
        self.notas.append(nota)
Exemplo n.º 16
0
 def nueva_nota(self, texto, etiquetas=''):
     '''Crea una nueva nota y la agrega a la lista'''
     self.notas.append(Nota(texto, etiquetas))