Exemplo n.º 1
0
    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())
Exemplo n.º 2
0
    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})
Exemplo n.º 3
0
    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
                                   })
Exemplo n.º 4
0
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."
        )
Exemplo n.º 5
0
    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)
Exemplo n.º 6
0
#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):
    '''
Exemplo n.º 7
0
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")