def subir_entregable(self, file, id): from proyecto import UPLOAD_FOLDER filename = str(datetime.now().microsecond) + secure_filename( file.filename) file.save(os.path.join(UPLOAD_FOLDER, filename)) propuesta_e = Propuesta_UsuarioDao().get_propuesta_usuario( UsuarioPropuesta(id_estudiante=id)) if propuesta_e is None: flash("La propuesta no existe", "error") return redirect(url_for("estudiante.home")) pro = Propuesta_UsuarioDao().get_propuesta_codigo( UsuarioPropuesta( id_propuesta=propuesta_e.getId_propuesta().getId())) fecha = datetime.now().date() entregable_propuesta = Entregable_propuestaDao( ).get_entregable_propuesta(pro) entregable_propuesta.setFecha(fecha) entregable_propuesta.setEntregable(filename) if entregable_propuesta.getFecha_Entregable( ) > entregable_propuesta.getFecha(): if Entregable_propuestaDao().subir_entregable( entregable_propuesta): flash("se subio correctamente el archivo", "success") return redirect(url_for("estudiante.home")) else: flash("Ya excedio la fecha limite de presentar el entregable", "error") return redirect(url_for("estudiante.home"))
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 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 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()) 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 solicitar_retiro(self, file, id): from proyecto import UPLOAD_FOLDER filename = str(datetime.now().microsecond) + secure_filename( file.filename) file.save(os.path.join(UPLOAD_FOLDER, filename)) propuesta_e = Propuesta_UsuarioDao().get_propuesta_usuario( UsuarioPropuesta(id_estudiante=id)) if propuesta_e is None: flash("La propuesta no existe", "error") return redirect(url_for("estudiante.home")) pro = Propuesta_UsuarioDao().get_propuesta_codigo(UsuarioPropuesta( id_propuesta=propuesta_e.getId_propuesta().getId())) pro.getId_propuesta().setSolicitud_retiro(filename) if PropuestaDao().solicitar_retiro_propuesta(pro): flash("se subio correctamente el archivo", "success") return redirect(url_for("estudiante.home"))
def get_registrar_propuesta(self): tipo = session['usuario']['tipo'] usuario = Usuario(nombres=session['usuario']['nombres'], tipo_usuario=tipo) propuesta = Propuesta_UsuarioDao().get_propuesta_usuario( UsuarioPropuesta(id_estudiante=session['usuario']['id'])) if propuesta is None: return render_template("estudiante/home.html", usuario=usuario, propuesta=propuesta) pro = Propuesta_UsuarioDao().get_propuesta_codigo( UsuarioPropuesta(id_propuesta=propuesta.getId_propuesta().getId())) return render_template("estudiante/home.html", propuesta=pro, estudiante=propuesta, usuario=usuario)
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 modificar_estado_propuesta(self, codigo_propuesta, estado): cod = session['usuario']['codigo'] usuario = Usuario(nombres=session['usuario']['nombres'], codigo=cod) propuesta = Propuesta(id=codigo_propuesta, estado=estado) if (Propuesta_UsuarioDao().modificar_estado(propuesta)): flash("Se ha modificado exitosamente el estado.", "success") return render_template( "secretaria/propuesta/ConsultarPropuesta.html", usuario=usuario) else: flash("No se ha podido modificar el estado.", "error") return render_template("secretaria/propuesta/ConsultarPropuesta.html", usuario=usuario)
def subir_entregable(self, file, id): from proyecto import UPLOAD_FOLDER filename = str(datetime.now().microsecond) + secure_filename( file.filename) file.save(os.path.join(UPLOAD_FOLDER, filename)) propuesta_e = Propuesta_UsuarioDao().get_propuesta_usuario( UsuarioPropuesta(id_estudiante=id)) if propuesta_e is None: flash("La propuesta no existe", "error") return redirect(url_for("estudiante.home")) pro = Propuesta_UsuarioDao().get_propuesta_codigo(UsuarioPropuesta( id_propuesta=propuesta_e.getId_propuesta().getId())) fecha = datetime.now().date() entregable_propuesta = Entregable_propuestaDao().get_entregable_propuesta(pro) entregable_propuesta.setFecha(fecha) entregable_propuesta.setEntregable(filename) if entregable_propuesta.getFecha_Entregable() > entregable_propuesta.getFecha(): if Entregable_propuestaDao().subir_entregable(entregable_propuesta): flash("se subio correctamente el archivo", "success") return redirect(url_for("estudiante.home")) else: flash("Ya excedio la fecha limite de presentar el entregable", "error") return redirect(url_for("estudiante.home"))
def solicitar_prorroga(self, file, id): from proyecto import UPLOAD_FOLDER filename = str(datetime.now().microsecond) + secure_filename( file.filename) file.save(os.path.join(UPLOAD_FOLDER, filename)) propuesta_e = Propuesta_UsuarioDao().get_propuesta_usuario( UsuarioPropuesta(id_estudiante=id)) print(propuesta_e) if propuesta_e is None: flash("La propuesta no existe", "error") return redirect(url_for("estudiante.home")) pro = Propuesta_UsuarioDao().get_propuesta_codigo(UsuarioPropuesta( id_propuesta=propuesta_e.getId_propuesta().getId())) print(pro) pro.getId_propuesta().setSolicitud_prorroga(filename) print(pro.getId_propuesta().getSolicitud_prorroga()) if PropuestaDao().solicitar_prorroga(pro): flash("se subio correctamente el archivo", "success") return redirect(url_for("estudiante.home"))
def agregar_datos_sustentacion(self, id_propuesta, lugar, fecha, hora): cod = session['usuario']['codigo'] usuario = Usuario(nombres=session['usuario']['nombres'], codigo=cod) pro = Propuesta(id=id_propuesta) propuesta = PropuestaDao().get_propuesta_codigo(pro) trab = TrabajoGrado(titulo=propuesta.getTitulo(), documentacion=propuesta.getDocumentacion(), id_propuesta=id_propuesta, fecha=propuesta.getFecha(), lugar_sustentacion=lugar, fecha_sustentacion=fecha, hora_sustentacion=hora) if (TrabajoGradoDao().de_propuesta_a_trabajo_de_grado(trab)): Propuesta_UsuarioDao().desactivar_propuesta(id_propuesta) flash( "Se han agregado los datos y registrado Trabajo de Grado exitosamente", "success") return render_template("secretaria/home.html", usuario=usuario) else: flash("No se han podido agregar datos", "error") return render_template("secretaria/home.html", usuario=usuario)
def consulta_cancelarP(self, nombre, estado): propuesta = Propuesta(titulo=nombre, estado=estado) propuesta_2 = PropuestaDao().get_propuesta_titulo(propuesta) if (propuesta_2 is not None): Propuesta_UsuarioDao().get_propuesta_cancelar(propuesta_2) flash("Actualiacion Exitosa", "success") 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) else: flash("No existen Propuesta con esos parametros.", "error") 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 registrar_propuesta(self, titulo, director, modalidad, file, id): from proyecto import UPLOAD_FOLDER filename = str(datetime.now().microsecond) + secure_filename(file.filename) file.save(os.path.join(UPLOAD_FOLDER, filename)) fecha = datetime.now().date() propuesta = Propuesta(titulo=titulo, director_trabajo=director, modalidad=modalidad, documentacion=filename, fecha=fecha) propuest = PropuestaDao().get_propuesta_titulo(propuesta) if propuest is not None: flash("Ya existe una propuesta con ese titulo", "error") return self.get_registro_propuesta() if PropuestaDao().crear_propuesta(propuesta): pro = PropuestaDao().get_propuesta_titulo(propuesta) if Propuesta_UsuarioDao().crear_propuesta_usuario(pro, id): if Entregable_propuestaDao().crear_entregable_propuesta(pro): flash("se creo la propuesta exitosamente.", "success") return self.get_registrar_propuesta() else: flash("error al crear la propuesta", "error") return self.get_registro_propuesta()
def get_registrar_propuesta(self): tipo = session['usuario']['tipo'] usuario = Usuario(nombres=session['usuario']['nombres'], tipo_usuario=tipo) propuesta = Propuesta_UsuarioDao().get_propuesta_usuario( UsuarioPropuesta(id_estudiante=session['usuario']['id'])) if propuesta is None: return render_template("estudiante/home.html", usuario=usuario, propuesta=propuesta) pro = Propuesta_UsuarioDao().get_propuesta_codigo(UsuarioPropuesta( id_propuesta=propuesta.getId_propuesta().getId())) entregable_propuesta = Entregable_propuestaDao().get_entregable_propuesta(pro) if pro.getEstado() != 'Sustentacion': return render_template("estudiante/home.html", propuesta=pro, estudiante=propuesta, entregable=entregable_propuesta, usuario=usuario) else: trabajo = TrabajoGrado(id_propuesta=pro.getId()) t= TrabajoGradoDao().get_trabajo_id_propuesta(trabajo) flash("Ya estan asiganadas las fechas de sustentacion", "success") return render_template("estudiante/home.html", propuesta=pro, estudiante=propuesta, usuario=usuario, trabajo=t, entregable=entregable_propuesta)