Ejemplo n.º 1
0
class Periodo_controller:
    def __init__(self):
        self.periodo = Periodo()
        self.salir = False

    def menu(self):
        while True:
            try:
                print('''
                ===============
                    Periodo
                ===============
                ''')
                menu = ['Listar Periodo', 'Buscar Periodo', "Nuevo Periodo", "Salir"]
                respuesta = Menu(menu).show()
                
                if respuesta == 1:
                    self.listar_periodos()
                elif respuesta == 2:
                    self.buscar_periodo()
                elif respuesta == 3:
                    self.insertar_periodos()
                else:
                    self.salir = True
                    break
            except Exception as e:
                print(f'{str(e)}')

    def listar_periodos(self):
        print('''
        =========================
            Lista de Periodos
        =========================
        ''')
        periodo = self.periodo.obtener_periodos('id_periodo')
        print(print_table(periodo, ['ID', 'Nombre periodo', 'fecha inicio', 'fecha fin']))
        input("\nPresione una tecla para continuar...")

    def buscar_periodo(self):
        print('''
        ======================
            Buscar Periodo
        ======================
        ''')
        try:
            id_periodo = input_data("Ingrese el ID del periodo >> ", "int")
            periodo = self.periodo.obtener_periodo({'id_periodo': id_periodo})
            print(print_table(periodo, ['ID', 'Nombre periodo', 'fecha inicio', 'fecha fin']))

            if periodo:
                if pregunta("¿Deseas dar mantenimiento al periodo?"):
                    opciones = ['Editar periodo', 'Eliminar periodo', 'Salir']
                    respuesta = Menu(opciones).show()
                    if respuesta == 1:
                        self.editar_periodo(id_periodo)
                    elif respuesta == 2:
                        self.eliminar_periodo(id_periodo)
        except Exception as e:
            print(f'{str(e)}')
        input("\nPresione una tecla para continuar...")

    def insertar_periodos(self):
        nombre = input_data("Ingrese el nombre del periodo >> ")
        fecha_desde = input_data("Ingrese fecha de inicio del periodo (formato DD-MM-AAAA) >> ","date")
        fecha_hasta = input_data("Ingrese fecha fin del periodo (formato DD-MM-AAAA) >> ","date")
        self.periodo.guardar_periodo({
            'nombre_periodo': nombre,
            'fecha_desde' : fecha_desde,
            'fecha_hasta' : fecha_hasta
        })
        print('''
        ==============================
            Nuevo Periodo agregado !
        ==============================
        ''')
        self.listar_periodos()

    def editar_periodo(self, id_periodo):
        nombre = input_data("Ingrese el nuevo nombre del periodo >> ")
        fecha_desde = input_data("Ingrese fecha de inicio del periodo (formato DD-MM-AAAA) >> ","date")
        fecha_hasta = input_data("Ingrese fecha fin del periodo (formato DD-MM-AAAA) >> ","date")
        self.periodo.modificar_periodo({
            'id_periodo': id_periodo
        }, {
            'nombre_periodo': nombre,
            'fecha_desde' : fecha_desde,
            'fecha_hasta' : fecha_hasta,
        })
        print('''
        ========================
            Periodo Editado !
        ========================
        ''')

    def eliminar_periodo(self, id_periodo):
        self.periodo.eliminar_periodo({
            'id_periodo': id_periodo
        })
        print('''
        ========================
            Periodo Eliminado !
        ========================
        ''')
Ejemplo n.º 2
0
class Periodo_controller:
    def __init__(self):
        self.periodo = Periodo()
        self.profesor_curso = Profesor_curso()
        self.profesor = Profesor()
        self.malla = Malla()
        self.curso = Curso()
        self.salon = Salon()
        self.salir = False

    def menu(self):
        while True:
            try:
                print('''
                ===============
                    Periodos
                ===============
                ''')
                menu = [
                    'Listar periodos', 'Buscar periodo', "Nuevo periodo",
                    "Salir"
                ]
                respuesta = Menu(menu).show()

                if respuesta == 1:
                    self.listar_periodo()
                elif respuesta == 2:
                    self.buscar_periodo()
                elif respuesta == 3:
                    self.insertar_periodo()
                else:
                    self.salir = True
                    break
            except Exception as e:
                print(f'{str(e)}')

    def listar_periodo(self):
        print('''
        ========================
            Lista de Periodos
        ========================
        ''')
        periodo = self.periodo.obtener_periodos('id_periodo')
        print(
            print_table(periodo, ['ID', 'Periodo', 'Inicio', 'Fin', 'Estado']))
        input("\nPresione una tecla para continuar...")

    def buscar_periodo(self):
        print('''
        =====================
            Buscar Periodo
        =====================
        ''')
        try:
            id_periodo = input_data("Ingrese el ID del periodo >> ", "int")
            periodo = self.periodo.obtener_periodo({'id_periodo': id_periodo})
            print(
                print_table(periodo,
                            ['ID', 'Periodo', 'Inicio', 'Fin', 'Estado']))

            if periodo:
                if pregunta("¿Deseas dar mantenimiento a este periodo?"):
                    opciones = [
                        'Asignar una malla al periodo escolar',
                        'Editar periodo escolar', 'Eliminar periodo escolar',
                        'Aperturar periodo escolar', 'Cerrar periodo escolar',
                        'Salir'
                    ]
                    respuesta = Menu(opciones).show()
                    if respuesta == 1:
                        self.agregar_malla(id_periodo, periodo)
                    elif respuesta == 2:
                        self.editar_periodo(id_periodo)
                    elif respuesta == 3:
                        self.eliminar_periodo(id_periodo)
                    elif respuesta == 4:
                        self.aperturar_periodo(id_periodo)
                    elif respuesta == 5:
                        self.cerrar_periodo(id_periodo)
        except Exception as e:
            print(f'{str(e)}')
        input("\nPresione una tecla para continuar...")

    def insertar_periodo(self):
        nombre_periodo = input_data("Ingrese el nombre del periodo >> ")
        fecha_desde = input_data("Ingrese desde cuando inicia el periodo >> ")
        fecha_hasta = input_data(
            "Ingrese hasta cuando finaliza el periodo >> ")
        self.periodo.guardar_periodo({
            'nombre_periodo': nombre_periodo,
            'fecha_desde': fecha_desde,
            'fecha_hasta': fecha_hasta
        })
        print('''
        ==============================
            Nuevo Periodo agregado !
        ==============================
        ''')
        self.listar_periodo()

    def editar_periodo(self, id_periodo):
        nombre_periodo = input_data("Ingrese el nuevo nombre del periodo >> ")
        fecha_desde = input_data(
            "Ingrese desde cuando inicia el nuevo periodo >> ")
        fecha_hasta = input_data(
            "Ingrese hasta cuando finaliza el nuevo periodo >> ")
        self.periodo.modificar_periodo({'id_periodo': id_periodo}, {
            'nombre_periodo': nombre_periodo,
            'fecha_desde': fecha_desde,
            'fecha_hasta': fecha_hasta
        })
        print('''
        ========================
            Periodo Editado !
        ========================
        ''')

    def cerrar_periodo(self, id_periodo):
        periodo = self.periodo.obtener_periodo({'id_periodo': id_periodo})
        if pregunta(f'¿Seguro que desea cerrar el periodo {periodo[1]}?'):
            self.periodo.modificar_periodo({'id_periodo': id_periodo},
                                           {'estado_periodo': 'cerrado'})
            print('''
            ========================
                Periodo Editado !
            ========================
        ''')

    def aperturar_periodo(self, id_periodo):
        periodo = self.periodo.obtener_periodo({'id_periodo': id_periodo})
        if pregunta(f'¿Seguro que desea aperturar el periodo {periodo[1]}?'):
            self.periodo.modificar_periodo({'id_periodo': id_periodo},
                                           {'estado_periodo': 'aperturado'})
            print('''
            ========================
                Periodo Editado !
            ========================
        ''')

    def eliminar_periodo(self, id_periodo):
        self.periodo.eliminar_periodo({'id_periodo': id_periodo})
        print('''
        ========================
            Periodo Eliminado !
        ========================
        ''')

    def agregar_malla(self, id_periodo, periodo):
        print(
            f'\n Por favor elige el grado o salón para el que desea trabajar su malla curricular :'
        )
        salon_seleccionado = []
        salones_1 = self.salon.obtener_salones('id_salon')
        print(print_table(salones_1, ['ID', 'Salón', 'Nombre del Salon']))
        id_salon_seleccionado = input_data(
            "Seleccione el ID del salón a trabajar su malla: >> ", "int")
        salon_seleccionado = self.salon.obtener_salon(
            {'id_salon': id_salon_seleccionado})
        print(
            f'\n Creación de la malla curricular para el periodo : {periodo[1]} y salón: {salon_seleccionado[1]}'
        )
        print(f'''
            =======================================================
                Malla curricular del Salón: {salon_seleccionado[1]}
            =======================================================
        ''')
        #malla_periodo = self.malla.obtener_malla({'id_periodo': id_periodo,'id_salon': id_salon_seleccionado})
        malla_periodo = self.malla.obtener_malla({
            'id_periodo':
            id_periodo,
            'id_salon':
            id_salon_seleccionado
        })
        print(
            print_table(malla_periodo,
                        ['ID', 'ID_Periodo', 'ID_salon', 'ID_Profesor']))
        mallas_imprimir = []
        if malla_periodo:
            for v in malla_periodo:
                id_malla = v[0]
                id_periodo1 = v[1]
                id_salon1 = v[2]
                id_profesor_curso1 = v[3]
                nomb_periodo = self.periodo.obtener_periodo(
                    {'id_periodo': id_periodo1})
                if not nomb_periodo:
                    nomb_periodo = ''
                nomb_salon = self.salon.obtener_salon({'id_salon': id_salon1})
                if not nomb_salon:
                    nomb_salon = ''
                nomb_profesor_curso = self.profesor_curso.obtener_profesor_curso(
                    {'id_profesor_curso': id_profesor_curso1})
                if not nomb_profesor_curso:
                    nomb_profesor_curso = ''
                    break
                nombre_profe = self.profesor.obtener_profesor(
                    {'profesor_id': nomb_profesor_curso[1]})
                if not nombre_profe:
                    nombre_profe = ''
                nombre_curso1 = self.curso.obtener_curso(
                    {'curso_id': nomb_profesor_curso[2]})
                if not nombre_curso1:
                    nombre_curso1 = ''
                mallas_imprimir.append({
                    'id': id_malla,
                    'Periodo': nomb_periodo[1],
                    'Salon': nomb_salon[1],
                    'Profesor': nombre_profe[1],
                    'Curso': nombre_curso1[1],
                    'Codigo_curso_profe': id_profesor_curso1
                })
            print(print_table(mallas_imprimir))

            if pregunta(
                    f'¿Deseas ver la relación de cursos dictados por profesores?'
            ):
                curso_profe_1 = self.profesor_curso.obtener_profesor_cursos(
                    'id_profesor_curso')
                print(print_table(curso_profe_1, ['ID', 'Profesor', 'Curso']))

            else:
                curso_profe_1 = []
            id_curso_profe_seleccionado = input_data(
                "Seleccione el código profesor curso : >> ", "int")
            self.malla.guardar_malla({
                'id_periodo':
                id_periodo,
                'id_salon':
                id_salon_seleccionado,
                'id_profesor_curso':
                id_curso_profe_seleccionado
            })
            print('''
                ==============================
                    Malla agregada !
                ==============================
            ''')