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
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! -------------------------------' )
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
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
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)
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)
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()
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()
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
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)
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
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
def nuevaNota(self, texto, tags=''): '''Crea una nueva nota y la agrega a la lista.''' self.notas.append(Nota(texto, tags))
def nueva_nota(self, memo, tags=''): '''Crea una nueva nota y la añade a lista notas''' self.notas.append(Nota(memo, tags))
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)
def nueva_nota(self, texto, etiquetas=''): '''Crea una nueva nota y la agrega a la lista''' self.notas.append(Nota(texto, etiquetas))