Hello everyone I have modified an SQLFORM.Smartgrid so when i Edit a record 
I only can modify a part of the data.
I need to make some validations, so I added a myValidation to the form (and 
it renders OK). However no validation is made on the form and 
a  response.flash with the "Success!" appears after submit the form.
In the example the error is forced so the form is not submitted

Here is some code so you can see what I am doing:
Controller documento.py
# -*- coding: utf-8 -*-
@auth.requires_login()
def nuevoDocumento():
    if 'edit' in request.args:
        print request.args
        redirect(URL('cambiarArea', 
args=(request.args[3]),vars=dict(documentoID=request.args[3])))
    form=SQLFORM.smartgrid(db.t_documentos)
    db.t_documentos.f_areaActual.readable=False
    db.t_documentos.f_areaActual.value = obtenerArea()
    return dict(form=form)

@auth.requires_login()
def cambiarArea():
    print request.args
    query = (db.t_documentos.id ==request.args[0])
    documento = db(query).select().first()
    #db.t_documentos.f_areaActual = documento[f_areaActual]
    form = SQLFORM.factory(db.t_documentos.f_areaActual)
    form.validate(onvalidation=validacionesExtra(form,documento))
    print "Nuevo!"
    if form.process().accepted:
        response.flash = 'form accepted'
    elif form.errors:
        response.flash = 'form has errors'
    #print documento.f_areaActual
    return dict(message="hello from 
documento/cambiarArea.py",documento=documento,form=form)

def obtenerArea():
    groups = db((db.auth_membership.user_id==auth.user.id)& 
(db.auth_membership.group_id==db.auth_group.id)).select(db.auth_group.role)
    for area in groups:
        if area in ["mesa", "juridico", "titulos"]:
            areaUsuario = area
            break
    query = (db.t_areas.f_nombre == area.role)
    idArea = db.t_areas.id
    ape = db(query).select(idArea).first()[idArea]
    return (ape)

def validacionesExtra(form,documento):
    form.errors.f_areaActual = 'El area Origen y Destino deben ser 
distintas'

View cambiarArea.html
{{extend 'layout.html'}}
<h1>This is the documento/cambiarArea.html template</h1>
{{=BEAUTIFY(response._vars)}}

Here is some log that tells me that the form is getting done:

<form action="#" class="form-horizontal" enctype="multipart/form-data" 
method="post"><div class="form-group" 
id="no_table_f_areaActual__row"><label class="control-label col-sm-3" 
for="no_table_f_areaActual" id="no_table_f_areaActual__label">Area 
Actual</label><div class="col-sm-9"><select class="generic-widget 
form-control" id="no_table_f_areaActual" name="f_areaActual"><option 
value=""></option><option value="2">juridico</option><option 
value="1">mesa</option><option value="3">titulos</option></select><span 
class="help-block"></span></div></div><div class="form-group" 
id="submit_record__row"><div class="col-sm-9 col-sm-offset-3"><input 
class="btn btn-primary" type="submit" value="Submit" /></div></div></form>

If you need more data, please let me know

-- 
Resources:
- http://web2py.com
- http://web2py.com/book (Documentation)
- http://github.com/web2py/web2py (Source code)
- https://code.google.com/p/web2py/issues/list (Report Issues)
--- 
You received this message because you are subscribed to the Google Groups 
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to web2py+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to