def consulta_modalidadT(self, tipo_modalidad, trabajo_a): print 'entroo33' propuesta = Propuesta(modalidad=tipo_modalidad) propuestas = PropuestaDao().get_propuesta_modalidadT(propuesta) if (propuestas): print 'propuestas' trabajos = list() for propuesta in propuestas: pro = TrabajoGradoDao().get_trabajo_modalidadT( propuesta, trabajo_a) if (pro is not None): trabajos.append(pro) print trabajos, 'trabajos' tipoU = session['usuario']['tipo'] usuario_u = UsuarioDao().get_usuario_por_codigo( Usuario(codigo=session['usuario']['codigo'])) return render_template("/coordinador/modalidadT.html", trabajos=trabajos, usuario=usuario_u, tipoU=tipoU) else: flash("No existen Trabajos con esos parametros.", "error") tipoU = session['usuario']['tipo'] usuario_u = UsuarioDao().get_usuario_por_codigo( Usuario(codigo=session['usuario']['codigo'])) return render_template("/coordinador/modalidadT.html", usuario=usuario_u, tipoU=tipoU)
def consulta_estadoP(self, estado): propuesta_U = UsuarioPropuesta(estado=estado) if (Propuesta_UsuarioDao().get_propuesta_estado(propuesta_U)): propuestas = Propuesta_UsuarioDao().get_propuesta_estado( propuesta_U) propuestas_2 = list() for propuesta_usuario in propuestas: pro = Propuesta_UsuarioDao().get_propuesta_codigo( propuesta_usuario) propuestas_2.append(pro) tipoU = session['usuario']['tipo'] usuario_u = UsuarioDao().get_usuario_por_codigo( Usuario(codigo=session['usuario']['codigo'])) return render_template("/coordinador/estadoP.html", propuestas=propuestas_2, usuario=usuario_u, tipoU=tipoU) else: flash("No existen Propuestas con esos parametros.", "error") tipoU = session['usuario']['tipo'] usuario_u = UsuarioDao().get_usuario_por_codigo( Usuario(codigo=session['usuario']['codigo'])) return render_template("/coordinador/estadoP.html", usuario=usuario_u, tipoU=tipoU)
def get_lista_usuarios(self, pagina, codigo, nombres, cedula, apellidos, tipoU): try: limit = 10 offset = (pagina - 1) * limit query = "SELECT * FROM usuario " \ "JOIN tipo_usuario ON tipo_usuario.id = usuario.tipo_usuario " \ "WHERE tipo_usuario = %s AND codigo LIKE %s AND nombres " \ "LIKE %s AND cedula LIKE %s AND apellidos LIKE %s LIMIT %s " \ "OFFSET %s" param = (4, "%" + codigo + "%", "%" + nombres + "%", "%" + cedula + "%", "%" + apellidos + "%", limit, offset) self.__cur.execute(query, param) data = self.__cur.fetchall() resultado = list() if data is None: return [] for usuario in data: user = Usuario(id=usuario[0], codigo=usuario[1], cedula=usuario[2], contrasena=usuario[3], nombres=usuario[4], apellidos=usuario[5], email=usuario[6]) tipo_usuario = TipoUsuario(id=usuario[8], label=usuario[10], nombre=usuario[9]) user.setTipoUsuario(tipo_usuario) resultado.append(user) return resultado except Exception as e: print(e.message) return []
def recordar_contrasena(self, codigo): usuario_c = UsuarioDao().get_usuario_por_codigo(Usuario(codigo=codigo)) type_flash = "error" if usuario_c is None: msg = "El usuario no existe en el sistema." else: token = hashlib.sha1( str(usuario_c.getId()) + usuario_c.getCodigo()).hexdigest() usuario_c.setTokenPassword(token) mensaje = "Para realizar el cambio de contraseña en el sistema " \ "haga <a href='https://ctgistemas.herokuapp.com/cambiar_contrasena/" + \ usuario_c.getTokenPassword() + "'>clic aquí.</a>" print mensaje if EmailController().enviar_email( usuario_c.getEmail(), mensaje, "Cambio de Contraseña - CTG Sistemas"): if not UsuarioDao().editar_usuario(usuario_c): msg = u"Error al realizar el cambio de la contraseña." else: msg = u"Se ha un email con las intrucciones para " \ u"restablecer su contraseñas." type_flash = "success" else: msg = u"Error al enviar el email de cambio de contraseña." flash(msg, type_flash)
def get_home_usuario(): tipos = TipoUsuarioDao().listar_tipo_usuario() if 'usuario' in session: tipoU = session['usuario']['tipo'] codigo = session['usuario']['codigo'] usuario = UsuarioDao().get_usuario_por_codigo( Usuario(codigo=codigo)) if tipoU == 2: actas = SecretariaController().get_actas() return render_template('secretaria/home.html', titulo="Inicio", usuario=usuario, actas=actas) elif tipoU == 3: trabajos = TrabajoGradoDao().get_trabajos() return render_template('coordinador/home.html', titulo="Inicio", usuario=usuario, trabajos=trabajos) elif tipoU == 4: p = PropuestaDao().get_propuesta_consulta_jurado(usuario) t = TrabajoGradoDao().get_trabajos_Jurado(usuario) return render_template('jurado/home.html', titulo="Inicio", usuario=usuario, propuestas=p, trabajos=t) elif tipoU == 5: return EstudianteController().get_registrar_propuesta() return render_template('login/login.html', tipos=tipos)
def cambiar_contrasena(self, contrasena_a, contrasena_n, contrasena_nc): id = session['usuario']['id'] contrasena_c = hashlib.sha1(contrasena_a).hexdigest() usuario = Usuario(id=id) usuario_e = UsuarioDao().get_usuario_por_id(usuario) if usuario_e is not None: if usuario_e.getContrasena() == contrasena_c: if contrasena_n == contrasena_nc: contrasena_cn = hashlib.sha1(contrasena_n).hexdigest() if UsuarioDao().cambiar_contrasena(usuario_e, contrasena_cn): flash("Se cambio la contrasena correctamente.", "success") else: flash("Error al cambiar la contrasena.", "error") else: flash("Las contrasenas no coinciden.", "error") return redirect(url_for("usuarios.cambiar_contrasena")) else: flash("Las contrasenas no coinciden con la actual.", "error") return redirect(url_for("usuarios.cambiar_contrasena")) else: del session['usuario'] return render_template("login/login")
def listar_jurados(self, usuario): try: query = "SELECT * FROM usuario WHERE tipo_usuario=%s" param = (int(usuario.getTipoUsuario().getId()), ) self.__cur.execute(query, param) data = self.__cur.fetchall() resultado = list() if data is None: return [] for jurado in data: user = Usuario(id=jurado[0], codigo=jurado[1], cedula=jurado[2], contrasena=jurado[3], nombres=jurado[4], apellidos=jurado[5], email=jurado[6]) tipo_usuario = TipoUsuario(id=jurado[8], label=jurado[10], nombre=jurado[9]) user.setTipoUsuario(tipo_usuario) resultado.append(user) return resultado except Exception as e: print(e.message) return []
def asignar_propuesta(self, codigo): usuario_pro = Usuario(codigo=codigo) usuario_e = UsuarioDao().get_usuario_por_codigo(usuario_pro) if usuario_e is None: flash("El codigo del estudiante no existe", "error") return redirect(url_for("estudiante.home")) usuario_p = Propuesta_UsuarioDao().get_propuesta_usuario( UsuarioPropuesta(id_estudiante=usuario_e.getId())) if usuario_p is not None: flash("El estudiante ya esta asignado a una propuesta", "error") return redirect(url_for("estudiante.home")) usuario_pro = Propuesta_UsuarioDao().get_propuesta_usuario( UsuarioPropuesta(id_estudiante=session['usuario']['id'])) if Propuesta_UsuarioDao().crear_propuesta_usuario( usuario_pro.getId_propuesta(), usuario_e.getId()): mensaje = "Ha sido asignado a una propuesta de trabajo." \ "Favor ingresar al sistema y verificar la informacion," \ " si no esta deacuerdo por favor diligenciar un retiro " \ "de la propuesta." \ "" flash("Se ha asignado correctamente al estudiante", "success") EmailController().enviar_email( usuario_e.getEmail(), mensaje, "Asignacion de Propuesta - CTG Sistemas") return redirect(url_for("estudiante.home"))
def crear_jurado(self, codigo, nombres, apellidos, cedula, email, contrasena, tipo_usuario): contrasena = hashlib.sha1(contrasena).hexdigest() usuario = Usuario(codigo=codigo, cedula=cedula, contrasena=contrasena, nombres=nombres, apellidos=apellidos, email=email, tipo_usuario=tipo_usuario) usuario_error = { 'codigo': codigo, 'cedula': cedula, 'nombres': nombres, 'apellidos': apellidos, 'email': email } if UsuarioDao().get_usuario_por_codigo(usuario) is not None: flash( "Ya existe un usuario con el codigo {}.".format( usuario.getCodigo()), "error") tipos = TipoUsuarioDao().listar_tipo_usuario() return render_template("secretaria/registroJ.html", usuario=usuario_error, tipos=tipos) if UsuarioDao().crear_usuario(usuario): flash("El usuario se creo correctamente.", "success") else: flash("Error al registrar el usuario.", "error") return redirect(url_for("secretaria.listar_jurados"))
def crear_acta(self, titulo, tipo, fecha, file, descripcion): from proyecto import UPLOAD_FOLDER filename = str(datetime.now().microsecond) + secure_filename( file.filename) file.save(os.path.join(UPLOAD_FOLDER, filename)) cod = session['usuario']['codigo'] usuario = Usuario(nombres=session['usuario']['nombres'], codigo=cod) acta = Acta(titulo=titulo, tipo=tipo, fecha=fecha, archivo=filename, descripcion=descripcion) if (ActaDao().get_acta_titulo(acta) != None): flash( "Ya existe un acta con ese titulo {}.".format( acta.getTitulo()), "error") return render_template("secretaria/acta/RegistrarActa.html", usuario=usuario) if (ActaDao().crear_acta(acta)): flash("El acta se registro correctamente.", "success") else: flash("Error al registrar el acta.", "error") return render_template("secretaria/acta/RegistrarActa.html", usuario=usuario)
def get_view_juradoEstudiante(self): tipoU = session['usuario']['tipo'] usuario_u = UsuarioDao().get_usuario_por_codigo( Usuario(codigo=session['usuario']['codigo'])) return render_template("/coordinador/juradoEstudiante.html", usuario=usuario_u, tipoU=tipoU)
def get_view_cancelarP(self): tipoU = session['usuario']['tipo'] usuario_u = UsuarioDao().get_usuario_por_codigo( Usuario(codigo=session['usuario']['codigo'])) return render_template("/coordinador/cancelarP.html", usuario=usuario_u, tipoU=tipoU)
def get_home_usuario(): tipos = TipoUsuarioDao().listar_tipo_usuario() if 'usuario' in session: tipo = session['usuario']['tipo'] usuario_tipo = Usuario(tipo_usuario=tipo) usuario = UsuarioDao().get_usuario_por_tipo(usuario_tipo) print usuario.getTipoUsuario().getId() if usuario.getTipoUsuario().getId() == 2: return render_template('secretaria/home.html', titulo="Inicio", usuario=usuario) elif usuario.getTipoUsuario().getId() == 3: return render_template('coordinador/home.html', titulo="Inicio", usuario=usuario) elif usuario.getTipoUsuario().getId() == 4: return render_template('jurado/home.html', titulo="Inicio", usuario=usuario) elif usuario.getTipoUsuario().getId() == 5: return render_template('estudiante/home.html', titulo="Inicio", usuario=usuario) return render_template('login/login.html', tipos=tipos)
def get_view_agregar_fechas_trabajo(self, codigo_trabajo): cod = session['usuario']['codigo'] usuario = Usuario(nombres=session['usuario']['nombres'], codigo=cod) trabajo = TrabajoGradoDao().get_trabajo_codigo(codigo_trabajo) return render_template("secretaria/trabajoGrado/AgregarFechas.html", trabajo=trabajo, usuario=usuario)
def get_view_registrar_nota(self, codigo_trabajo): cod = session['usuario']['codigo'] usuario = Usuario(nombres=session['usuario']['nombres'], codigo=cod) trabajo = TrabajoGradoDao().get_trabajo_codigo(codigo_trabajo) return render_template("secretaria/trabajoGrado/RegistrarNota.html", trabajo=trabajo, usuario=usuario)
def get_protocolos(self): protocolos= ProtocoloDao().get_protocolos() tipo = session['usuario']['tipo'] usuario = Usuario(nombres=session['usuario']['nombres'], tipo_usuario=tipo) return render_template("/estudiante/protocolos.html", usuario=usuario, protocolos=protocolos)
def get_agregar_fechas_propuesta(self, codigo_propuesta): cod = session['usuario']['codigo'] usuario = Usuario(nombres=session['usuario']['nombres'], codigo=cod) propuest = Propuesta(id=codigo_propuesta) propuesta = PropuestaDao().get_propuesta_codigo(propuest) return render_template("secretaria/propuesta/AgregarFechas.html", propuesta=propuesta, usuario=usuario)
def get_modificar_estado_propuesta(self, codigo_propuesta): cod = session['usuario']['codigo'] usuario = Usuario(nombres=session['usuario']['nombres'], codigo=cod) propuest = Propuesta(id=codigo_propuesta) propuesta = PropuestaDao().get_propuesta_codigo(propuest) return render_template("secretaria/propuesta/ModificarEstado.html", propuesta=propuesta, usuario=usuario)
def login(self, codigo, contrasena): contrasena_c = hashlib.sha1(contrasena).hexdigest() usuario = Usuario(codigo=codigo, contrasena=contrasena_c) usuario_logueado = UsuarioDao().get_user_login(usuario) if usuario_logueado is not None: session['usuario'] = usuario_logueado.get_dict() else: flash("Los datos ingresados son incorrectos.", "error")
def get_cambiar_contrasena(self, token): usuario = UsuarioDao().get_usuario_por_token( Usuario(token_password=token)) if usuario is None: flash(u"El token no es valido para el cambio de contraseña.", 'error') return False return render_template('login/cambiar_contrasena.html', token=token)
def login(self, codigo, contrasena, tipo): contrasena_c = hashlib.sha1(contrasena).hexdigest() usuario = Usuario(codigo=codigo, contrasena=contrasena_c, tipo_usuario=tipo) usuario_logueado = UsuarioDao().get_user_login(usuario) if usuario_logueado is not None: session['usuario'] = usuario_logueado.get_dict()
def consulta_estudiante(self, codigo_e): usuario = Usuario(codigo=codigo_e) usuario_e = UsuarioDao().get_usuario_por_codigo(usuario) if usuario_e is None: flash("El codigo del estudiante no existe.", "error") tipoU = session['usuario']['tipo'] usuario_u = UsuarioDao().get_usuario_por_codigo( Usuario(codigo=session['usuario']['codigo'])) return render_template("/coordinador/juradoEstudiante.html", usuario=usuario_u, tipoU=tipoU) usuario_p = Propuesta_UsuarioDao().get_propuesta_usuario( UsuarioPropuesta(id_estudiante=usuario_e.getId())) if usuario_p is None: flash("El estudiante no tiene trabajos.", "error") tipoU = session['usuario']['tipo'] usuario_u = UsuarioDao().get_usuario_por_codigo( Usuario(codigo=session['usuario']['codigo'])) return render_template("/coordinador/juradoEstudiante.html", usuario=usuario_u, tipoU=tipoU) trabajoG = TrabajoGrado( id_propuesta=usuario_p.getId_propuesta().getId()) print trabajoG.getId_propuesta().getId() if TrabajoGradoDao().get_trabajo_Estudiante(trabajoG): trabajos = TrabajoGradoDao().get_trabajo_Estudiante(trabajoG) tipoU = session['usuario']['tipo'] usuario_u = UsuarioDao().get_usuario_por_codigo( Usuario(codigo=session['usuario']['codigo'])) return render_template("/coordinador/juradoEstudiante.html", trabajos=trabajos, usuario=usuario_u, tipoU=tipoU) else: flash("No existen Trabajos con esos parametros.", "error") tipoU = session['usuario']['tipo'] usuario_u = UsuarioDao().get_usuario_por_codigo( Usuario(codigo=session['usuario']['codigo'])) return render_template("/coordinador/juradoEstudiante.html", usuario=usuario_u, tipoU=tipoU)
def get_modificar(self, titulo): cod = session['usuario']['codigo'] usuario = Usuario(nombres=session['usuario']['nombres'], codigo=cod) act = Acta(titulo=titulo, tipo="<-- No Selected -->") acta = ActaDao().get_acta_consulta(act) return render_template("secretaria/acta/ModificarActa.html", acta=acta, usuario=usuario)
def get_view_nombreT(self): tipoU = session['usuario']['tipo'] usuario_u = UsuarioDao().get_usuario_por_codigo( Usuario(codigo=session['usuario']['codigo'])) print(usuario_u, 'usuario_u') return render_template("/coordinador/nombreT.html", usuario=usuario_u, tipoU=tipoU)
def get_view_agregar_datos_sustentacion_propuesta(self, id_propuesta): cod = session['usuario']['codigo'] usuario = Usuario(nombres=session['usuario']['nombres'], codigo=cod) propuestaa = Propuesta(id=id_propuesta) propuesta = PropuestaDao().get_propuesta_codigo(propuestaa) return render_template( "secretaria/trabajoGrado/AgregarDatosSustentacion.html", propuesta=propuesta, usuario=usuario)
def get_habilitar_envio_entregables(self, codigo_propuesta): cod = session['usuario']['codigo'] usuario = Usuario(nombres=session['usuario']['nombres'], codigo=cod) propuest = Propuesta(id=codigo_propuesta) propuesta = PropuestaDao().get_propuesta_codigo(propuest) return render_template( "secretaria/propuesta/HabilitarEnvioEntregables.html", propuesta=propuesta, usuario=usuario)
def consultar_trabajo_de_grado(self, titulo, codigo): cod = session['usuario']['codigo'] usuario = Usuario(nombres=session['usuario']['nombres'], codigo=cod) trabaj = TrabajoGrado(titulo=titulo, codigo=codigo) trabajos = TrabajoGradoDao().consultar_trabajos(trabaj) return render_template( "secretaria/trabajoGrado/ConsultarTrabajoGrado.html", trabajos=trabajos, usuario=usuario)
def get_view_asignar_jurado_trabajo(self): cod = session['usuario']['codigo'] usuario = Usuario(nombres=session['usuario']['nombres'], codigo=cod) trabajos = TrabajoGradoDao().get_trabajos_sin_jurados() jurados = UsuarioDao().get_jurados(4) return render_template( "secretaria/trabajoGrado/AsignarJuradosTrabajo.html", trabajos=trabajos, jurados=jurados, usuario=usuario)
def consulta_nombreP(self, nombre): propuesta = Propuesta(titulo=nombre) if (PropuestaDao().get_propuesta_consultaN(propuesta)): propuestas = PropuestaDao().get_propuesta_consultaN(propuesta) tipoU = session['usuario']['tipo'] usuario_u = UsuarioDao().get_usuario_por_codigo( Usuario(codigo=session['usuario']['codigo'])) return render_template("/coordinador/nombreP.html", propuestas=propuestas, usuario=usuario_u, tipoU=tipoU) else: flash("No existen Propuestas con esos parametros.", "error") tipoU = session['usuario']['tipo'] usuario_u = UsuarioDao().get_usuario_por_codigo( Usuario(codigo=session['usuario']['codigo'])) return render_template("/coordinador/nombreP.html", usuario=usuario_u, tipoU=tipoU)
def get_view_asignar_jurado_propuesta(self): cod = session['usuario']['codigo'] usuario = Usuario(nombres=session['usuario']['nombres'], codigo=cod) propuestas = PropuestaDao().get_propuesta_sin_jurado() jurados = UsuarioDao().get_jurados(4) return render_template( "secretaria/propuesta/AsignarJuradosPropuesta.html", propuestas=propuestas, jurados=jurados, usuario=usuario)