def create_tab_alumnos(self): #### TAB ALUMNOS #### formCreateCursante = FormCreateCursante() btn_nuevoCursante = Button(self.frameCursantes, text="[+] Nuevo estudiante", command=formCreateCursante.show) btn_nuevoCursante.grid(row=0, column=0, columnspan=30, pady=(5, 10)) tablaCursantesFrame = Frame(self.frameCursantes, relief="groove", padding=(5, 5)) tablaCursantesFrame.grid(row=1, column=0, columnspan=980) self.tablaCursantes = Tabla(tablaCursantesFrame, FormDetailsCursante())
def create_tab_cursos(self): #### TAB CURSOS #### formCreateCurso = FormCreateCurso() btn_nuevoCurso = Button(self.frameCursos, text="[+] Nuevo curso", command=formCreateCurso.show) btn_nuevoCurso.grid(row=0, column=0, columnspan=30, pady=(5, 10)) tablaCursosFrame = Frame(self.frameCursos, relief="groove", padding=(5, 5)) tablaCursosFrame.grid(row=1, column=0, columnspan=970) self.tablaCursos = Tabla(tablaCursosFrame, FormDetailsCurso(), columns_width={"nombre": 40})
def create_tab_docentes(self): #### TAB DOCENTES #### formCreateDocente = FormCreateDocente() btn_nuevoDocente = Button(self.frameDocentes, text="[+] Nuevo docente", command=formCreateDocente.show) btn_nuevoDocente.grid(row=0, column=0, columnspan=30, pady=(5, 10)) tablaDocentesFrame = Frame(self.frameDocentes, relief="groove", padding=(5, 5)) tablaDocentesFrame.grid(row=1, column=0, columnspan=980) self.tablaDocentes = Tabla(tablaDocentesFrame, FormDetailsDocente(), columns_width={ "dni": 15, "telefono": 15, "titulo": 30 })
class MainApplication(Tk): first_evaluating = True def __init__(self, *args, **kwargs): ''' Establace las configuraciones de la ventana principal ''' self.root = Tk() self.root.title("Sistema de Gestión de Alumnos") self.root.geometry("1010x585") self.root.resizable(0, 0) # Ejecuta la función de actualizar las tablas # cuando la ventana principal obtiene el foco self.root.bind("<FocusIn>", self.update_tablas) self.hay_cursos = False self.create_widgets() # Le otorga el foco a la ventana principal self.root.deiconify() # La mantiene en ejecución self.root.mainloop() def create_widgets(self): ''' Crea todos los componentes de la ventana principal ''' #### TABS #### tabController = Notebook(self.root) tabController.grid(column=0, row=0) self.frameInicio = Frame(tabController, padding=(10, 10)) tabController.add(self.frameInicio, text="Inicio") self.frameCursantes = Frame(tabController, padding=(10, 10)) tabController.add(self.frameCursantes, text="Alumnos") self.frameDocentes = Frame(tabController, padding=(10, 10)) tabController.add(self.frameDocentes, text="Docentes") self.frameCursos = Frame(tabController, padding=(10, 10)) tabController.add(self.frameCursos, text="Cursos") lbl_curso = Label(self.frameInicio, text="Seleccione el curso:", width=35) lbl_curso.grid(row=0, column=0, columnspan=35, padx=(400, 0)) self.id_curso = StringVar() self.cb_curso = Combobox(self.frameInicio, textvariable=self.id_curso, width=20, state="readonly") self.cb_curso.grid(row=1, column=0, columnspan=20, padx=(400, 0)) self.cb_curso.bind("<<ComboboxSelected>>", self.selection_changed) self.create_tab_alumnos() self.create_tab_cursos() self.create_tab_docentes() self.update_tablas() def create_tab_alumnos(self): #### TAB ALUMNOS #### formCreateCursante = FormCreateCursante() btn_nuevoCursante = Button(self.frameCursantes, text="[+] Nuevo estudiante", command=formCreateCursante.show) btn_nuevoCursante.grid(row=0, column=0, columnspan=30, pady=(5, 10)) tablaCursantesFrame = Frame(self.frameCursantes, relief="groove", padding=(5, 5)) tablaCursantesFrame.grid(row=1, column=0, columnspan=980) self.tablaCursantes = Tabla(tablaCursantesFrame, FormDetailsCursante()) def create_tab_docentes(self): #### TAB DOCENTES #### formCreateDocente = FormCreateDocente() btn_nuevoDocente = Button(self.frameDocentes, text="[+] Nuevo docente", command=formCreateDocente.show) btn_nuevoDocente.grid(row=0, column=0, columnspan=30, pady=(5, 10)) tablaDocentesFrame = Frame(self.frameDocentes, relief="groove", padding=(5, 5)) tablaDocentesFrame.grid(row=1, column=0, columnspan=980) self.tablaDocentes = Tabla(tablaDocentesFrame, FormDetailsDocente(), columns_width={ "dni": 15, "telefono": 15, "titulo": 30 }) def create_tab_cursos(self): #### TAB CURSOS #### formCreateCurso = FormCreateCurso() btn_nuevoCurso = Button(self.frameCursos, text="[+] Nuevo curso", command=formCreateCurso.show) btn_nuevoCurso.grid(row=0, column=0, columnspan=30, pady=(5, 10)) tablaCursosFrame = Frame(self.frameCursos, relief="groove", padding=(5, 5)) tablaCursosFrame.grid(row=1, column=0, columnspan=970) self.tablaCursos = Tabla(tablaCursosFrame, FormDetailsCurso(), columns_width={"nombre": 40}) def create_tab_inicio(self): #### TAB INICIO #### self.tabFrameCurso = Notebook(self.frameInicio) self.tabFrameCurso.grid(row=2, column=0, columnspan=970) frameInscriptos = Frame(self.tabFrameCurso, padding=(10, 10)) self.tabFrameCurso.add(frameInscriptos, text="Inscriptos") frameCurDoc = Frame(self.tabFrameCurso, padding=(10, 10)) self.tabFrameCurso.add(frameCurDoc, text="Docentes") frameAsiastencias = Frame(self.tabFrameCurso, padding=(10, 10)) self.tabFrameCurso.add(frameAsiastencias, text="Asistencias") self.formAddAlumno = FormInscriptos("add") self.formRemoveAlumno = FormInscriptos("remove") self.formRemoveAlumno.id_curso = self.id_curso.get() btn_add_cursante = Button( frameInscriptos, text="[+] Agregar", width=15, command=lambda: self.formAddAlumno.show(self.id_curso.get())) btn_add_cursante.grid(row=0, column=0, columnspan=15) btn_remove_cursante = Button( frameInscriptos, text="[-] Remover", width=15, command=lambda: self.formRemoveAlumno.show(self.id_curso.get())) btn_remove_cursante.grid(row=0, column=16, columnspan=15) frameTablaInscriptos = Frame(frameInscriptos, relief="groove", padding=(5, 5)) self.tablaInscriptos = Tabla(frameTablaInscriptos, self.formRemoveAlumno, btn=False, height=400) frameTablaInscriptos.grid(row=1, column=0, columnspan=150, pady=10) btn_certificate = Button(frameInscriptos, text="Generar certificados", width=25, command=lambda: self.generate_certificate()) btn_certificate.grid(row=0, column=126, columnspan=25) self.formAddDocente = FormDocentesCurso("add") self.formRemoveDocente = FormDocentesCurso("remove") self.formRemoveDocente.id_curso = self.id_curso.get() btn_add_doc = Button( frameCurDoc, text="[+] Agregar", width=15, command=lambda: self.formAddDocente.show(self.id_curso.get())) btn_add_doc.grid(row=0, column=0, columnspan=15) btn_remove_doc = Button( frameCurDoc, text="[-] Remover", width=15, command=lambda: self.formRemoveDocente.show(self.id_curso.get())) btn_remove_doc.grid(row=0, column=16, columnspan=15) frameTablaDocentesMiembro = Frame(frameCurDoc, relief="groove", padding=(5, 5)) self.tablaDocentesMiembro = Tabla(frameTablaDocentesMiembro, self.formRemoveDocente, btn=False, height=400) frameTablaDocentesMiembro.grid(row=1, column=0, columnspan=150, pady=10) self.formAsistencias = FormAsistencias() self.formAsistencias.id_curso = self.id_curso.get() btn_asistencia = Button( frameAsiastencias, text="Cargar asistencias", width=25, command=lambda: self.formAsistencias.show(self.id_curso.get())) btn_asistencia.grid(row=0, column=0, columnspan=25) frameTablaAsistencias = Frame(frameAsiastencias, relief="groove", padding=(5, 5)) self.tablaAsistencias = Tabla(frameTablaAsistencias, self.formAsistencias, btn=False, height=400) frameTablaAsistencias.grid(row=1, column=0, columnspan=150, pady=10) def selection_changed(self, *args): ''' Actualiza el ID del curso que se seleccionó en el combobox. ''' self.formRemoveDocente.id_curso = self.id_curso.get() self.formRemoveAlumno.id_curso = self.id_curso.get() self.formAsistencias.id_curso = self.id_curso.get() def update_tablas(self, *args): ''' Le indica a cada tabla que chequee si es necesario actualizar la información visual o que la actualice directamente dependiendo el caso ''' if Curso.modified or MainApplication.first_evaluating: MainApplication.first_evaluating = False values = [dict(item)["codigo"] for item in Curso.get_all()["data"]] self.cb_curso.config(values=(values if values else "--")) self.cb_curso.current( self.cb_curso.current() if self.cb_curso.current() > 0 else 0) if values: if not self.hay_cursos: self.hay_cursos = True self.create_tab_inicio() self.selection_changed() else: if self.hay_cursos: self.hay_cursos = False self.tabFrameCurso.destroy() self.tablaCursos.check_update() self.tablaCursantes.check_update() self.tablaDocentes.check_update() if self.hay_cursos: self.tablaDocentesMiembro.update_table() self.tablaInscriptos.update_table() self.tablaAsistencias.update_table() def generate_certificate(self): data = Curso.get_data_certificados(self.id_curso.get()) for inscripto in data["asistieron"]: info = { "name": inscripto["nombre"].upper(), "dni": inscripto["dni"], "teachers": data["docentes"].upper(), "course": data["curso"].upper(), "dates": data["fechas"] } generar_pdf(info) cant_asist = len(data["asistieron"]) mb.showinfo( "Información", f"Se generó correctamente el certificado\na los {cant_asist} que asistieron al curso." )
def create_tab_inicio(self): #### TAB INICIO #### self.tabFrameCurso = Notebook(self.frameInicio) self.tabFrameCurso.grid(row=2, column=0, columnspan=970) frameInscriptos = Frame(self.tabFrameCurso, padding=(10, 10)) self.tabFrameCurso.add(frameInscriptos, text="Inscriptos") frameCurDoc = Frame(self.tabFrameCurso, padding=(10, 10)) self.tabFrameCurso.add(frameCurDoc, text="Docentes") frameAsiastencias = Frame(self.tabFrameCurso, padding=(10, 10)) self.tabFrameCurso.add(frameAsiastencias, text="Asistencias") self.formAddAlumno = FormInscriptos("add") self.formRemoveAlumno = FormInscriptos("remove") self.formRemoveAlumno.id_curso = self.id_curso.get() btn_add_cursante = Button( frameInscriptos, text="[+] Agregar", width=15, command=lambda: self.formAddAlumno.show(self.id_curso.get())) btn_add_cursante.grid(row=0, column=0, columnspan=15) btn_remove_cursante = Button( frameInscriptos, text="[-] Remover", width=15, command=lambda: self.formRemoveAlumno.show(self.id_curso.get())) btn_remove_cursante.grid(row=0, column=16, columnspan=15) frameTablaInscriptos = Frame(frameInscriptos, relief="groove", padding=(5, 5)) self.tablaInscriptos = Tabla(frameTablaInscriptos, self.formRemoveAlumno, btn=False, height=400) frameTablaInscriptos.grid(row=1, column=0, columnspan=150, pady=10) btn_certificate = Button(frameInscriptos, text="Generar certificados", width=25, command=lambda: self.generate_certificate()) btn_certificate.grid(row=0, column=126, columnspan=25) self.formAddDocente = FormDocentesCurso("add") self.formRemoveDocente = FormDocentesCurso("remove") self.formRemoveDocente.id_curso = self.id_curso.get() btn_add_doc = Button( frameCurDoc, text="[+] Agregar", width=15, command=lambda: self.formAddDocente.show(self.id_curso.get())) btn_add_doc.grid(row=0, column=0, columnspan=15) btn_remove_doc = Button( frameCurDoc, text="[-] Remover", width=15, command=lambda: self.formRemoveDocente.show(self.id_curso.get())) btn_remove_doc.grid(row=0, column=16, columnspan=15) frameTablaDocentesMiembro = Frame(frameCurDoc, relief="groove", padding=(5, 5)) self.tablaDocentesMiembro = Tabla(frameTablaDocentesMiembro, self.formRemoveDocente, btn=False, height=400) frameTablaDocentesMiembro.grid(row=1, column=0, columnspan=150, pady=10) self.formAsistencias = FormAsistencias() self.formAsistencias.id_curso = self.id_curso.get() btn_asistencia = Button( frameAsiastencias, text="Cargar asistencias", width=25, command=lambda: self.formAsistencias.show(self.id_curso.get())) btn_asistencia.grid(row=0, column=0, columnspan=25) frameTablaAsistencias = Frame(frameAsiastencias, relief="groove", padding=(5, 5)) self.tablaAsistencias = Tabla(frameTablaAsistencias, self.formAsistencias, btn=False, height=400) frameTablaAsistencias.grid(row=1, column=0, columnspan=150, pady=10)
#https://github.com/yt4766269/plytype import json import sys import ply.yacc as yacc from calc import tokens from SymbolTable import SymbolTable from Memoria import Memoria from Dato import Dato from Dato import Parameter from Dato import SpecialFunc from Tabla import Tabla from Quadruples import Quadruples tabla_varibles = SymbolTable() aux_dato = Dato() aux_tabla = Tabla() Quadruples = Quadruples() aux_parameter = Parameter() aux_special_func = SpecialFunc() #comentario de prueba #PROGRAMA def p_programa(p): ''' programa : globales pn_quadruples_gotomain funciones principal ''' p[0] = "PROGRAM COMPILED" #Variables globales #Existen: 0 o mas def p_globales(p): '''
from Tabla import Tabla import os if __name__ == '__main__': while True: opc = int(input("1-Genarar Tabla\n2-Salir\n>")) if opc == 1: n1 = int(input("Digite un numero >")) tb = Tabla(n1) tb.Generar_tabla() elif opc == 2: print("**Gracias por usar mi probar mi programa***") break else: print("Opcion Invalida")