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 ! ======================== ''')
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 ! ============================== ''')
class Habilitar_controller: def __init__(self): self.profesor = Profesor() self.curso = Curso() self.profesor_curso = Profesor_curso() self.periodo = Periodo() self.salon = Salon() self.malla = Malla() self.salir = False def menu(self): while True: try: print(''' ======================= Habilitar Cursos ======================= ''') menu = ["Habilitar salon", "Salir"] respuesta = Menu(menu).show() if respuesta == 1: self.habilitar_salones() else: self.salir = True break except Exception as e: print(f'{str(e)}') def habilitar_salones(self): print(''' ============================================= Habilitar curso por salones y periodo ============================================= ''') print('De la siguiente lista elija el periodo que se habilitara >>\n') periodos = self.periodo.obtener_periodos('id_periodo') print(print_table(periodos, ['ID', 'Nombre', 'Desde', 'Hasta'])) id_periodo_elegido = input_data("\nEscriba el ID del periodo escolar >> ", "int") buscar_periodo = self.periodo.obtener_periodo({'id_periodo': id_periodo_elegido}) if not buscar_periodo: print('\nEl periodo elegido no existe !') return print(f'\nElija el salon para el periodo: {buscar_periodo[1]} >> ') salones = self.salon.obtener_salones('id_salon') print(print_table(salones, ['ID', 'Nombre'])) id_salon_elegido = input_data("\nEscriba el ID del salon >> ", "int") buscar_salon = self.salon.obtener_salon({'id_salon': id_salon_elegido}) if not buscar_salon: print('\nEl salon elegido no existe !') return print(f'\nElija el curso a habilitar para el salon: {buscar_salon[1]} >> ') cursos_profesores = self.profesor_curso.obtener_profesor_cursos('id_profesor_curso') cursos_disponibles = [] if cursos_profesores: for pro_cur in cursos_profesores: curso_id = pro_cur[2] profesor_id = pro_cur[1] id_profesor_curso = pro_cur[0] curso = self.curso.obtener_curso({'curso_id': curso_id}) curso_nombre = curso[1] profesor = self.profesor.obtener_profesor({'profesor_id': profesor_id}) profesor_nombre = profesor[1] mallas = self.malla.buscar_mallas({ 'id_periodo': id_periodo_elegido, 'id_salon': id_salon_elegido, 'id_profesor_curso': id_profesor_curso }) if not mallas: cursos_disponibles.append({ 'codigo': id_profesor_curso, 'curso': curso_nombre, 'profesor_asignado': profesor_nombre }) else: for curso_disponible in cursos_disponibles: if curso_disponible['curso'] == curso_nombre: cursos_disponibles.remove(curso_disponible) print(print_table(cursos_disponibles)) id_profesor_curso = input_data('\nEscriba el codigo del curso disponible >> ', 'int') buscar_profesor_curso = self.profesor_curso.obtener_profesor_curso({'id_profesor_curso': id_profesor_curso}) if not buscar_profesor_curso: print('\nEl codigo escogido no existe como curso disponible') return mallas = self.malla.buscar_mallas({ 'id_periodo': id_periodo_elegido, 'id_salon': id_salon_elegido }) if mallas: for malla in mallas: pro_curso = self.profesor_curso.obtener_profesor_curso({'id_profesor_curso': malla[3]}) if pro_curso[2] == buscar_profesor_curso[2]: print('\nEste curso ya existe para el salon en el periodo escogido !') return self.malla.guardar_malla({ 'id_periodo': id_periodo_elegido, 'id_salon': id_salon_elegido, 'id_profesor_curso': id_profesor_curso }) print(''' ============================================================= Curso habilitado con exito para el salon y el periodo ============================================================= ''') input('\nPresione una tecla para continuar...')
class Malla_curricular_controller: def __init__(self): self.malla = Malla() self.nota = Nota() self.salon = Salon() self.periodo = Periodo() self.profesor_curso = Profesor_curso() self.salir = False def menu(self): while True: try: print(''' ======================== Malla Curricular ======================== ''') menu = [ 'Listar malla curricular', 'Buscar malla curricular', 'Nueva malla curricular', "Salir" ] respuesta = Menu(menu).show() if respuesta == 1: self.listar_malla() elif respuesta == 2: self.buscar_malla() elif respuesta == 3: self.insertar_malla() else: self.salir = True break except Exception as e: print(f'{str(e)}') def listar_malla(self): print(''' ================================== Lista de Malla Curricular ================================== ''') malla = self.malla.obtener_mallas('id_malla') print( print_table( malla, ['id_malla', 'id_periodo', 'id_salon', 'id_profesor_curso'])) input("\nPresione una tecla para continuar...") def buscar_malla(self): print(''' ================================== Buscar de Malla Curricular ================================== ''') try: id_malla = input_data("Ingrese el ID de la malla curricular >> ", "int") malla = self.malla.obtener_malla({'id_malla': id_malla}) print( print_table(malla, [ 'id_malla', 'id_periodo', 'id_salon', 'id_profesor_curso' ])) if malla: if pregunta( "¿Deseas dar mantenimiento a la malla curricular?"): opciones = ['Editar malla', 'Eliminar malla', 'Salir'] respuesta = Menu(opciones).show() if respuesta == 1: self.editar_malla(id_malla) elif respuesta == 2: self.eliminar_malla(id_malla) except Exception as e: print(f'{str(e)}') input("\nPresione una tecla para continuar...") def insertar_malla(self): print(''' ========================= Lista de Periodo ========================= ''') periodo = self.periodo.obtener_periodos('id_periodo') print( print_table( periodo, ['id_periodo', 'nombre_periodo', 'Fecha_desde', 'Fecha_hasta' ])) id_periodo = input_data("Ingrese el ID del periodo >> ", 'int') print(''' ========================== Lista de Salones ========================== ''') salones = self.salon.obtener_salones('id_salon') print(print_table(salones, ['id_salon', 'nombre_salon'])) id_salon = input_data("Ingrese la ID del salon >> ", 'int') print(''' ================================= Lista de Profesor Curso ================================= ''') profesor_curso = self.profesor_curso.obtener_profesor_cursos( 'id_profesor_curso') print( print_table(profesor_curso, ['id_profesor_curso', 'id_profesor', 'id_curso'])) id_profesor_curso = input_data("Ingrese el ID Curso Profesor >> ", 'int') self.malla.guardar_malla({ 'id_periodo': id_periodo, 'id_salon': id_salon, 'id_profesor_curso': id_profesor_curso }) print(''' ================================= Nueva Malla agregado ! ================================= ''') self.listar_malla() def editar_malla(self, id_malla): print(''' ========================= Lista de Periodo ========================= ''') periodo = self.periodo.obtener_periodos('id_periodo') print( print_table( periodo, ['id_periodo', 'nombre_periodo', 'Fecha_desde', 'Fecha_hasta' ])) id_periodo = input_data("Ingrese el ID del periodo >> ", 'int') print(''' ========================== Lista de Salones ========================== ''') salones = self.salon.obtener_salones('id_salon') print(print_table(salones, ['id_salon', 'nombre_salon'])) id_salon = input_data("Ingrese la ID del salon >> ", 'int') print(''' ================================= Lista de Profesor Curso ================================= ''') profesor_curso = self.profesor_curso.obtener_profesor_cursos( 'id_profesor_curso') print( print_table(profesor_curso, ['id_profesor_curso', 'id_profesor', 'id_curso'])) id_profesor_curso = input_data("Ingrese el ID Curso Profesor >> ", 'int') self.malla.modificar_malla({'id_malla': id_malla}, { 'id_periodo': id_periodo, 'id_salon': id_salon, 'id_profesor_curso': id_profesor_curso }) print(''' ========================== Malla Editada ! ========================== ''') def eliminar_malla(self, id_malla): self.malla.eliminar_malla({'id_malla': id_malla}) print(''' =========================== Malla Eliminado ! =========================== ''')