Exemplo n.º 1
0
def editarsolicitud():
    """ Funcion para editar registros de la tabla Solicitud""" 
    if not current_user.is_authenticated():
        flash('Debe loguearse primeramente!!!!', 'loggin')
        return render_template('index.html')

    today = datetime.date.today()
    pro = db_session.query(Proyecto).filter_by(id=session['pry']).first()
    if  request.args.get('id') == None:
        id_sol= request.form.get('id')
    else:
        id_sol=request.args.get('id')
    s = db_session.query(SolicitudCambio).filter_by(id=id_sol).filter_by(id_proyecto=session['pry']).first()
    itemssol=  db_session.query(Item).from_statement("select * from item where id in(select id_item from solicitud_item where id_solicitud="+str(id_sol)+")")  
    form = SolicitudFormulario(request.form,s)
    solicitud = db_session.query(SolicitudCambio).filter_by(id=id_sol).filter_by(id_proyecto=session['pry']).first()  
    form.fecha.data = today
    form.id_proyecto.data = pro.nombre
    form.id_usuario.data = current_user.usuario
    form.cant_votos.data = 0
    if pro.estado != 'P' :
        flash('No se pueden editar Solicitudes a un Proyecto que no se encuentre En Progreso','info')
        return render_template('solicitud/administrarsolicitud.html')
    if solicitud.estado != 'N' :
        flash('No se pueden modificar Solicitudes que hayan sido enviadas para su Aprobacion','info')
        return render_template('solicitud/administrarsolicitud.html')
    if solicitud.estado=='N':
        form.estado.data='Nueva'
    if request.method == 'POST' and form.validate():
        try:
            form.populate_obj(solicitud)
            if form.estado.data=='Nueva':
                solicitud.estado='N'
            solicitud.id_proyecto=pro.id
            solicitud.id_usuario=current_user.id
            db_session.merge(solicitud)
            db_session.commit()
            return redirect('/solicitud/administrarsolicitud')
        except DatabaseError, e:
            flash('Error en la Base de Datos' + e.args[0],'error')
            return render_template('solicitud/editarsolicitud.html', form=form, items=itemssol)