Hi!
I'm trying to use custom forms for the actions used internally by the 
SQLFORM.grid and that are called by the grid links. 
I got all that working but now I need to do my own data manipulation after 
the grid processes and accepts the form. However if I call 
"mygrid.update_form.accepted" nothing happens and it's because the grid's 
internal do the redirect after the update_form processing!
This preclude any form post processing outside the grid.

After a lot of research I developed the follow method to work with 
SQLFORM.grid and custom forms:

controller action: facilities_list()

    grid = SQLFORM.grid(query, args=request.args[:2], 
field_id=db.facility.id, formname='grid_facilities')

    if 'edit' in request.args:
        form = grid.update_form

        if form.accepted:
            ### custom processing here ###
            session.flash = 'Facility updated!'
            redirect(URL(request.controller, 'list'))

        response.view = '%s/facility_edit.%s' % (request.controller, 
request.extension)
        return dict(item_name=db.facility._singular, form=form)

    return dict(item_name=db.facility._singular, grid=grid)



However the code inside the block "if grid.update_form.accepted:" is never 
executed because what I explain above. 

The only solution a found was change the SQLFORM.grid code to accepts one 
more parameter "custom_form=False" (defaults to false) and in the case it's 
True (when using custom forms) it don't redirects to the referrer and 
return normally and so I can test the updated_form.accepted, do my custom 
processing and redirect by myself.

Another important behavior would be make available the referrer in the grid 
for external access like this:

        if grid.update_form.accepted:
            ### custom processing here ###
            session.flash = 'Facility updated!'
            redirect(grid.referrer)

I apologize if already there is a possible solution for this!
Thanks in advance.

-- 
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