Exemplo n.º 1
0
    def get_nombre_docente_entry(self):
        '''guarda la nombre del docente'''
        if not self.__nombre_docente_entry:
            self.__nombre_docente_entry = tk.Entry(master=self, width=20)
            #self.__nombre_docente_entry.focus()
            self.__nombre_docente_entry.grid(row=4, column=2)

            #recupero el codigo del docente
            cedula = self.get_cedula_docente_entry().get()
            #busco al docente en la base de datos
            docente = ControladorDocente().buscar_codigo(cedula)
            #inserto en nombre del docente al campo de entrada
            self.__nombre_docente_entry.insert(0,docente.get_nombre())
        return self.__nombre_docente_entry
Exemplo n.º 2
0
    def consultar_docente(self):
        obligatorio = True
        cedula = util.leer_cadena(msg('docente.ingrese.cedula'), obligatorio)

        try:
            if not util.es_numerico(cedula):
                raise Exception("La cedula debe ser numerica!")

            docente = ControladorDocente().buscar_codigo(cedula)
            return docente
        except Exception as e:
            print(e)
Exemplo n.º 3
0
    def verificar_docente(self):
        #recupero la cedula ingresada
        cedula = self.get_cedula_docente_entry().get()

        try:
            #verifico que la cedula este cargada
            if not cedula:
                raise Exception ("Debe ingresar una valor para la cedula")

            #busco al docente en la base de datos
            docente = ControladorDocente().buscar_codigo(cedula)
            #recupero el nombre del docente
            self.get_nombre_docente_entry()
            #recupero las asignaturas del docente
            self.get_asignatura_cbx()
            return True
        except Exception as e:
            messagebox.showinfo("Opaa", e)
Exemplo n.º 4
0
class ModuloDocente(Modulo):
    __controlador = ControladorDocente()

    def __init__(self):
        Modulo.__init__(self, msg('abm.docente.menu.titulo'))
        self.__menu_dict = None

    def listar(self):
        docentes = self.get_controlador().get_lista_objetos()
        print(msg('abm.docente.titulo.lista'))
        for doc in docentes:
            print(doc.__str__())
        self.pausa()

    def registrar(self):
        print(msg('abm.docente.titulo.registrar'))
        obligatorio = True

        cedula = util.leer_cadena(msg('docente.ingrese.cedula'), obligatorio)
        nombre = str(
            util.leer_cadena(msg('docente.ingrese.nombre'), obligatorio))
        apellido = str(
            util.leer_cadena(msg('docente.ingrese.apellido'), obligatorio))
        fecha_nacimiento = str(
            util.leer_cadena(msg('docente.ingrese.fecha_nacimiento'),
                             obligatorio))
        asignatura = str(
            util.leer_cadena(msg('docente.ingrese.asignatura'), obligatorio))
        telefono = str(
            util.leer_cadena(msg('docente.ingrese.telefono'), obligatorio))
        departamento = str(
            util.leer_cadena(msg('docente.ingrese.departamento'), obligatorio))

        docente = Docente(asignatura, departamento, telefono, cedula, nombre,
                          apellido, fecha_nacimiento)

        try:
            self.get_controlador().crear(docente)
            print(msg("registro.creado"))
        except Exception as e:
            print(e)
        self.pausa()

    def borrar(self):
        print(msg('abm.docente.titulo.borrar'))
        obligatorio = True
        cedula = util.leer_cadena(msg('docente.ingrese.cedula'), obligatorio)
        try:
            docente = self.get_controlador().buscar_codigo(cedula)
            if not docente:
                print(msg('docente.cedula.no.existe'), ":", cedula)
            else:
                self.get_controlador().borrar(docente)
                print(msg('docente.borrado'))
        except Exception as e:
            print(e)
        self.pausa()

    def consultar_docente(self):
        obligatorio = True
        cedula = util.leer_cadena(msg('docente.ingrese.cedula'), obligatorio)

        try:
            if not util.es_numerico(cedula):
                raise Exception("La cedula debe ser numerica!")

            docente = ControladorDocente().buscar_codigo(cedula)
            return docente
        except Exception as e:
            print(e)

    def ir_menu_principal(self):
        self.set_terminar_ejecucion(True)

    def get_controlador(self):
        return self.__controlador

    def get_menu_dict(self):
        #crear en caso de que aun no se haya creado
        if not self.__menu_dict:
            menu_listar = Menu(msg('abm.docente.listar'), self.listar)
            menu_registrar = Menu(msg('abm.docente.registrar'), self.registrar)
            #menu_borrar = Menu(msg('abm.docente.borrar'), self.borrar)
            menu_principal = Menu(msg('abm.ir.menu.principal'),
                                  self.ir_menu_principal)
            menus = {1: menu_listar, 2: menu_registrar, 3: menu_principal}
            self.__menu_dict = menus

        return self.__menu_dict
Exemplo n.º 5
0
def buscar_por_cedula(cedula):
	'''funcion que buscar a un docente por cedula'''
	return [docente for docente in ControladorDocente().buscar_codigo(cedula) if cedula == docente.get_cedula()]
Exemplo n.º 6
0
class FormsReserva(tk.PanedWindow):
    __laboratorio_lbl = None
    __laboratorio_cbx = None
    __laboratorio_dicc = None
    __codigo_lbl = None
    __codigo_entry = None
    __cedula_docente_lbl = None
    __cedula_docente_entry = None
    __nombre_docente_entry = None
    __crear_btn = None
    __fecha_lbl = None
    __fecha_entry = None
    __hora_inicio_lbl = None
    __hora_inicio_entry = None
    __hora_fin_lbl = None
    __hora_fin_entry = None
    __asignatura_cbx = None
    __verificar_btn = None

    '''defino los controladores necesarios a ser utilizados'''
    __controlador_ficha = ControladorFicha()
    __controlador_laboratorio = ControladorLaboratorio()
    __controlador_docente = ControladorDocente()

    
    def __init__(self, panel_master):
        tk.PanedWindow.__init__(self, master=panel_master)
        self.__panel_master = panel_master
        self.inicializar()
        self.pack()

    def inicializar(self):
        self.__panel_master.geometry('800x600')
        self.__panel_master.title("ABM Reservas")
        self.get_laboratorio_lbl()
        self.get_laboratorio_cbx()
        self.get_codigo_lbl()
        self.get_codigo_entry()
        self.get_cedula_docente_lbl()
        self.get_cedula_docente_entry()
        self.get_fecha_lbl()
        self.get_fecha_entry()
        self.get_hora_inicio_lbl()
        self.get_hora_inicio_entry()
        self.get_hora_fin_lbl()
        self.get_hora_fin_entry()
        self.get_crear_btn()
        self.get_verificar_btn()
        
    def get_laboratorio_lbl(self):
        '''etiqueta para desplegar los nombres de laboratorios'''
        if not self.__laboratorio_lbl:
            self.__laboratorio_lbl = tk.Label(master=self, text="LABORATORIO", width=20)
            self.__laboratorio_lbl.grid(row=2, column=0)
        return self.__laboratorio_lbl

    def get_laboratorio_cbx(self):
        '''Combobox que recupera los objetos del tipo laboratorio para poder mostrar sus nombres'''
        if not self.__laboratorio_cbx:
            self.__box_value = StringVar()
            self.__laboratorio_cbx = ttk.Combobox(master=self,textvariable=self.__box_value, width=20, state='readonly')
            
            #obtener la lista de laboratorios actual
            laboratorios = self.__controlador_laboratorio.get_lista_objetos()
            lista = []
            self.__laboratorio_dicc = {}
            for lab in laboratorios:
                lista.append(lab.get_nombre())
                self.__laboratorio_dicc[lab.get_nombre()] = lab
                self.__laboratorio_cbx["value"] = lista
            self.__laboratorio_cbx.focus()
            self.__laboratorio_cbx.grid(row=2, column=1)
        return self.__laboratorio_cbx

    def get_codigo_lbl(self):
        '''etiqueta para el codigo de una ficha'''
        if not self.__codigo_lbl:
            self.__codigo_lbl = tk.Label(master=self, text="CODIGO FICHA :", width=20)
            self.__codigo_lbl.grid(row=3, column=0)
        return self.__codigo_lbl

    def get_codigo_entry(self):
        '''campo que muestra en codigo de la ficha que sera autogenerado'''
        if not self.__codigo_entry:
            self.__codigo_entry = tk.Entry(master=self, width=20)
            self.__codigo_entry.focus()
            self.__codigo_entry.grid(row=3, column=1)
        return self.__codigo_entry
    
    def get_cedula_docente_lbl(self):
        '''etiqueta para la cedula del docente'''
        if not self.__cedula_docente_lbl:
            self.__cedula_docente_lbl = tk.Label(master=self, text="CEDULA_DOCENTE :", width=20)
            self.__cedula_docente_lbl.grid(row=4, column=0)
        return self.__cedula_docente_lbl

    def get_cedula_docente_entry(self):
        '''guarda la cedula del docente'''
        if not self.__cedula_docente_entry:
            self.__cedula_docente_entry = tk.Entry(master=self, width=20)
            self.__cedula_docente_entry.focus()
            self.__cedula_docente_entry.grid(row=4, column=1)
        return self.__cedula_docente_entry

    def get_nombre_docente_entry(self):
        '''guarda la nombre del docente'''
        if not self.__nombre_docente_entry:
            self.__nombre_docente_entry = tk.Entry(master=self, width=20)
            #self.__nombre_docente_entry.focus()
            self.__nombre_docente_entry.grid(row=4, column=2)

            #recupero el codigo del docente
            cedula = self.get_cedula_docente_entry().get()
            #busco al docente en la base de datos
            docente = ControladorDocente().buscar_codigo(cedula)
            #inserto en nombre del docente al campo de entrada
            self.__nombre_docente_entry.insert(0,docente.get_nombre())
        return self.__nombre_docente_entry


    def get_asignatura_cbx(self):
        if not self.__asignatura_cbx:
            self.__box_value = StringVar()
            self.__asignatura_cbx = ttk.Combobox(master=self,textvariable=self.__box_value, width=20, state='readonly')
            
            #obtener la lista de asignatura actual
            docente = self.__controlador_docente.get_lista_objetos()
            lista = []
            dicc = {}
            for doc in docente:
                lista.append(doc.get_asignatura())
                dicc[doc.get_asignatura()] = doc
                self.__asignatura_cbx["value"] = lista

            self.__asignatura_cbx.focus()
            self.__asignatura_cbx.grid(row=4, column=3)
        return self.__asignatura_cbx   



    def get_fecha_lbl(self):
        '''etiqueta para la fecha a reservar'''
        if not self.__fecha_lbl:
            self.__fecha_lbl = tk.Label(master=self, text="FECHA PRESTAMO :", width=20)
            self.__fecha_lbl.grid(row=5, column=0)
        return self.__fecha_lbl

    def get_fecha_entry(self):
        '''guarda la fecha reservada por el docente'''
        if not self.__fecha_entry:
            self.__fecha_entry = tk.Entry(master=self, width=20)
            self.__fecha_entry.focus()
            self.__fecha_entry.grid(row=5, column=1)
        return self.__fecha_entry

    def get_hora_inicio_lbl(self):
        '''etiqueta para la hora de inicio'''
        if not self.__hora_inicio_lbl:
            self.__hora_inicio_lbl = tk.Label(master=self, text="HORA_INICIO :", width=20)
            self.__hora_inicio_lbl.grid(row=6, column=0)
        return self.__hora_inicio_lbl

    def get_hora_inicio_entry(self):
        '''guarda la hora inicio reservada'''
        if not self.__hora_inicio_entry:
            self.__hora_inicio_entry = tk.Entry(master=self, width=20)
            self.__hora_inicio_entry.focus()
            self.__hora_inicio_entry.grid(row=6, column=1)
        return self.__hora_inicio_entry    

    def get_hora_fin_lbl(self):
        '''etiqueta para la hora de fin'''
        if not self.__hora_fin_lbl:
            self.__hora_fin_lbl = tk.Label(master=self, text="HORA_FIN :", width=20)
            self.__hora_fin_lbl.grid(row=7, column=0)
        return self.__hora_fin_lbl

    def get_hora_fin_entry(self):
        '''guarda la hora fin reservada'''
        if not self.__hora_fin_entry:
            self.__hora_fin_entry = tk.Entry(master=self, width=20)
            self.__hora_fin_entry.focus()
            self.__hora_fin_entry.grid(row=7, column=1)
        return self.__hora_fin_entry  


    def get_crear_btn(self):
        '''Boton utilizado para la creacion de un reserva'''
        if not self.__crear_btn:
            self.__crear_btn = tk.Button(master=self, text="CREAR", bg='orange3', command=self.crear_reserva)
            self.__crear_btn.grid(row=8, column=1)
        return self.__crear_btn

    def get_verificar_btn(self):
        '''Boton utilizado para la verificacion de datos del docente'''
        if not self.__verificar_btn:
            self.__verificar_btn = tk.Button(master=self, text="VERIFICAR CEDULA", bg='orange3', command=self.verificar_docente)
            self.__verificar_btn.grid(row=8, column=2)
        return self.__verificar_btn


    '''Reservar laboratorio, consiste en que un docente debe poder seleccionar un laboratorio y poder realizar
    dicha reserva de la siguiente manera'''
    def crear_reserva(self):
        #recupero los datos ingresados por el usuario, de manera a poder crear la ficha
        nombre_lab = self.get_laboratorio_cbx().get()
        codigo = self.get_codigo_entry().get()
        cedula = self.get_cedula_docente_entry().get()
        fecha = self.get_fecha_entry().get()
        hora_inicio = self.get_hora_inicio_entry().get()
        hora_fin = self.get_hora_fin_entry().get()

        try:
            if not self.verificar_docente():
                raise Exception("Debe ingresar una cedula de docente valido!!")
            else:
                #creo la ficha para la reserva
                ficha = Ficha(codigo, cedula, hora_inicio, hora_fin, fecha)
                self.__controlador_ficha.crear(ficha)
                #recuperar el laboratorio a asignar la reserva
                laboratorio = self.__laboratorio_dicc[nombre_lab]
                laboratorio.reserva(ficha)
                messagebox.showinfo("Reserva", "Prestamo exitoso!!")
        except Exception as e:
            messagebox.showinfo("Exception", e)

    '''Verifica la existencia de un docente en la base de datos'''
    def verificar_docente(self):
        #recupero la cedula ingresada
        cedula = self.get_cedula_docente_entry().get()

        try:
            #verifico que la cedula este cargada
            if not cedula:
                raise Exception ("Debe ingresar una valor para la cedula")

            #busco al docente en la base de datos
            docente = ControladorDocente().buscar_codigo(cedula)
            #recupero el nombre del docente
            self.get_nombre_docente_entry()
            #recupero las asignaturas del docente
            self.get_asignatura_cbx()
            return True
        except Exception as e:
            messagebox.showinfo("Opaa", e)


    '''funcion utilizada para partes del programa que no estan en desarrollo'''
    def accion(self):
        messagebox.showinfo("Info", "No implementado")
Exemplo n.º 7
0
class FormsDocente(tk.PanedWindow):
    '''Clase que permite realizar el formulario para introducir un docente desde el 
    teclado'''
    __cedula_etiqueta = None
    __cedula_entry = None
    __nombre_etiqueta = None
    __nombre_entry = None
    __apellido_etiqueta = None
    __apellido_entry = None
    __fecha_nacimiento_etiqueta = None
    __fecha_nacimiento_entry = None
    __asignatura_etiqueta = None
    __asignatura_entry = None
    __departamento_etiqueta = None
    __departamento_entry = None
    __telefono_etiqueta = None
    __telefono_entry = None
    __guardar_boton = None
    __controlador = ControladorDocente()

    def __init__(self, panel_master):
        tk.PanedWindow.__init__(self, master=panel_master)
        self.__panel_master = panel_master
        self.inicializar()
        self.pack()

    def inicializar(self):
        self.__panel_master.geometry('800x600')
        self.__panel_master.title("ABM DOcentes")
        self.get_cedula_etiqueta()
        self.get_cedula_entry()
        self.get_nombre_etiqueta()
        self.get_nombre_entry()
        self.get_apellido_etiqueta()
        self.get_apellido_entry()
        self.get_fecha_nacimiento_etiqueta()
        self.get_fecha_nacimiento_entry()
        self.get_asignatura_etiqueta()
        self.get_asignatura_entry()
        self.get_departamento_etiqueta()
        self.get_departamento_entry()
        self.get_telefono_etiqueta()
        self.get_telefono_entry()
        self.get_guardar_boton()

    def get_controlador(self):
        return self.__controlador

    def get_cedula_etiqueta(self):
        '''creo la etiqueta para la vista'''
        if not self.__cedula_etiqueta:
            self.__cedula_etiqueta = tk.Label(master=self,
                                              text="Cedula: ",
                                              width=20)
            self.__cedula_etiqueta.grid(row=1, column=0)
        return self.__cedula_etiqueta

    def get_cedula_entry(self):
        '''creo la caja de texto para cargar datos'''
        if not self.__cedula_entry:
            self.__cedula_entry = tk.Entry(master=self, width=20)
            self.__cedula_entry.focus()
            self.__cedula_entry.grid(row=1, column=1)
        return self.__cedula_entry

    def get_nombre_etiqueta(self):
        '''creo la etiqueta para la vista'''
        if not self.__nombre_etiqueta:
            self.__nombre_etiqueta = tk.Label(master=self,
                                              text="Nombre: ",
                                              width=20)
            self.__nombre_etiqueta.grid(row=2, column=0)
        return self.__nombre_etiqueta

    def get_nombre_entry(self):
        '''creo la caja de texto para cargar datos'''
        if not self.__nombre_entry:
            self.__nombre_entry = tk.Entry(master=self, width=20)
            self.__nombre_entry.grid(row=2, column=1)
        return self.__nombre_entry

    def get_apellido_etiqueta(self):
        '''creo la etiqueta para la vista'''
        if not self.__apellido_etiqueta:
            self.__apellido_etiqueta = tk.Label(master=self,
                                                text="Apellido: ",
                                                width=20)
            self.__apellido_etiqueta.grid(row=3, column=0)
        return self.__apellido_etiqueta

    def get_apellido_entry(self):
        '''creo la caja de texto para cargar datos'''
        if not self.__apellido_entry:
            self.__apellido_entry = tk.Entry(master=self, width=20)
            self.__apellido_entry.grid(row=3, column=1)
        return self.__apellido_entry

    def get_fecha_nacimiento_etiqueta(self):
        '''creo la etiqueta para la vista'''
        if not self.__fecha_nacimiento_etiqueta:
            self.__fecha_nacimiento_etiqueta = tk.Label(
                master=self, text="Fecha Nacimiento: ", width=20)
            self.__fecha_nacimiento_etiqueta.grid(row=4, column=0)
        return self.__fecha_nacimiento_etiqueta

    def get_fecha_nacimiento_entry(self):
        '''creo la caja de texto para cargar datos'''
        if not self.__fecha_nacimiento_entry:
            self.__fecha_nacimiento_entry = tk.Entry(master=self, width=20)
            self.__fecha_nacimiento_entry.grid(row=4, column=1)
        return self.__fecha_nacimiento_entry

    def get_asignatura_etiqueta(self):
        '''creo la etiqueta para la vista'''
        if not self.__asignatura_etiqueta:
            self.__asignatura_etiqueta = tk.Label(master=self,
                                                  text="Asignatura: ",
                                                  width=20)
            self.__asignatura_etiqueta.grid(row=5, column=0)
        return self.__asignatura_etiqueta

    def get_asignatura_entry(self):
        '''creo la caja de texto para cargar datos'''
        if not self.__asignatura_entry:
            self.__asignatura_entry = tk.Entry(master=self, width=20)
            self.__asignatura_entry.grid(row=5, column=1)
        return self.__asignatura_entry

    def get_departamento_etiqueta(self):
        '''creo la etiqueta para la vista'''
        if not self.__departamento_etiqueta:
            self.__departamento_etiqueta = tk.Label(master=self,
                                                    text="DEpartamento: ",
                                                    width=20)
            self.__departamento_etiqueta.grid(row=6, column=0)
        return self.__departamento_etiqueta

    def get_departamento_entry(self):
        '''creo la caja de texto para cargar datos'''
        if not self.__departamento_entry:
            self.__departamento_entry = tk.Entry(master=self, width=20)
            self.__departamento_entry.grid(row=6, column=1)
        return self.__departamento_entry

    def get_telefono_etiqueta(self):
        '''creo la etiqueta para la vista'''
        if not self.__telefono_etiqueta:
            self.__telefono_etiqueta = tk.Label(master=self,
                                                text="Telefono: ",
                                                width=20)
            self.__telefono_etiqueta.grid(row=7, column=0)
        return self.__telefono_etiqueta

    def get_telefono_entry(self):
        '''creo la caja de texto para cargar datos'''
        if not self.__telefono_entry:
            self.__telefono_entry = tk.Entry(master=self, width=20)
            self.__telefono_entry.grid(row=7, column=1)
        return self.__telefono_entry

    def get_guardar_boton(self):
        if not self.__guardar_boton:
            self.__guardar_boton = tk.Button(master=self,
                                             text="Guardar",
                                             command=self.guardar_docente)
            self.__guardar_boton.grid(row=8, column=1)
        return self.__guardar_boton

    def guardar_docente(self):
        cedula = self.get_cedula_entry().get()
        nombre = self.get_nombre_entry().get()
        apellido = self.get_apellido_entry().get()
        fecha_nacimiento = self.get_fecha_nacimiento_entry().get()
        asignatura = self.get_asignatura_entry().get()
        departamento = self.get_departamento_entry().get()
        telefono = self.get_telefono_entry().get()

        try:
            #creo el objeto del tipo docente
            docente = Docente(asignatura, departamento, telefono, cedula,
                              nombre, apellido, fecha_nacimiento)
            #lo creo por medio del controlador
            self.get_controlador().crear(docente)
            messagebox.showinfo("Registro Docente",
                                "Se creo el Docente con exito")
        except Exception as e:
            messagebox.showinfo("Error", e)