Hello

I am trying to implement a custom form for SQLFORM.grid

When submit is clicked the data is not inserted. I think the problem is 
when I validate form and the form.accepts is not triggered.

this is my controler

def workers():
#some code before but not relevant

grid_workers = SQLFORM.grid(query=query,
            left=db.status.on(db.workers.w_status == db.status.id),
            fields=fields, searchable=False, orderby=[db.workers.w_nick_name], 
create=True,
            deletable=False, editable=True, paginate=100, 
buttons_placement='right',
            showbuttontext=False,
            links=links,
                            ui=dict(widget='',
                                    header='',
                                    content='',
                                    default='',
                                    cornerall='',
                                    cornertop='',
                                    cornerbottom='',
                                    button='button btn btn-default',
                                    buttontext='buttontext button',
                                    buttonadd='icon plus icon-plus glyphicon 
glyphicon-plus',
                                    buttonback='icon leftarrow icon-arrow-left 
glyphicon glyphicon-arrow-left',
                                    buttonexport='icon downarrow icon-download 
glyphicon glyphicon-download',
                                    buttondelete='icon trash icon-trash 
glyphicon glyphicon-trash',
                                    buttonedit='icon pen icon-pencil glyphicon 
glyphicon-pencil',
                                    buttontable='icon rightarrow 
icon-arrow-right glyphicon glyphicon-arrow-right',
                                    buttonview='icon magnifier icon-zoom-in 
glyphicon glyphicon-eye-open',
                                    ),
                exportclasses=dict(csv=False, csv_with_hidden_cols=False,
                                               html=False, 
tsv_with_hidden_cols=False,json=False, tsv= False, xml = False))


def my_form_processing_new(form):
    print "tukej111"
    nick_name = form.vars.w_nick_name
    workers = db((db.workers.w_organization == org) & (db.workers.w_nick_name 
== nick_name) & (db.workers.w_status != 250)).select()
    partner_id = form.vars.partner_id
    if workers:
        form.errors.w_nick_name = T('Worker with this nick name already 
exists!')
    if not partner_id or partner_id == '':
        form.vars.partner_id = -1


def my_form_processing_edit(form):

    #some code not relevant ATM

   if (request.args) and (request.args[0] in ['new']):
    print "juhu"
    form = grid_workers.create_form
    #grid_workers.element('[title=Back]').parent['_href'] = URL('settings', 
'workers')
    if form.accepts(request.vars, session, onvalidation=my_form_processing_new):
        print "tukej"
        session.flash = T('Worker inserted')
        redirect(URL())
    return dict(form = form, inactive_workers=query_inactive)

if (request.args) and (request.args[0] in ['edit']):
    form = grid_workers.update_form
    #grid_workers.element('[title=Back]').parent['_href'] = URL('settings', 
'workers')
    if form.accepts(request.vars, session, onvalidation = 
my_form_processing_edit):
        my_form_processing_edit(form)
        session.flash = T('Worker updated')
        redirect(URL())
    return dict(form = form, inactive_workers=query_inactive)


return dict(grid_workers = grid_workers, inactive_workers=query_inactive)


and my view

<div class="col-md-12 " >

{{if ('new' in request.args) or ('edit' in request.args):}}
   {{=form.custom.begin}}
   Status: <div>{{=form.custom.widget.w_status}}</div>
   First name: <div>{{=form.custom.widget.w_first_name}}</div>
   Last name: <div>{{=form.custom.widget.w_last_name}}</div>
   Nick name: <div>{{=form.custom.widget.w_nick_name}}</div>
   E-mail: <div>{{=form.custom.widget.w_email}}</div>
   Work type: <div>{{=form.custom.widget.w_work_type}}</div>
   Month hour formula: <div>{{=form.custom.widget.w_hour_formula}}</div>
   Work obligation (minutes): 
<div>{{=form.custom.widget.w_day_obligation}}</div>
   Partner ID : <div>{{=form.custom.widget.partner_id}}</div>
   Comment: <div>{{=form.custom.widget.w_note}}</div>
   <div>{{=form.custom.submit}}</div>
   {{=form.custom.end}}
{{else:}}
   {{=grid_workers}}
{{pass}}
</div>



So the if form.accepts(request.vars, session, onvalidation
=my_form_processing_new) does not happen and I believe therefore the data 
is not inserted.

On create new record the print "juhu" happens but there is no further action

Any suggestions?

Thank you

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