Hello,
None of my form won't submit anymore when I try my app under 1.94.5...
It seems to be related to auth problem coming from the refactoring.
Here a example of form, model and trace that occure :
Traceback (most recent call last):
File
"/home/richard/Documents/programmation/version_194-5/web2py/gluon/restricted.py",
line 188, in restricted
exec ccode in environment
File
"/home/richard/Documents/programmation/version_194-5/web2py/applications/sgddms/controllers/ref.py",
line 229, in <module>
File
"/home/richard/Documents/programmation/version_194-5/web2py/gluon/globals.py",
line 124, in <lambda>
self._caller = lambda f: f()
File
"/home/richard/Documents/programmation/version_194-5/web2py/gluon/tools.py",
line 2331, in f
return action(*a, **b)
File
"/home/richard/Documents/programmation/version_194-5/web2py/applications/sgddms/controllers/ref.py",
line 26, in create
if form.accepts(request.vars, session):
File
"/home/richard/Documents/programmation/version_194-5/web2py/gluon/sqlhtml.py",
line 1197, in accepts
self.vars.id = self.table.insert(**fields)
File
"/home/richard/Documents/programmation/version_194-5/web2py/gluon/dal.py",
line 4341, in insert
return self._db._adapter.insert(self,self._listify(fields))
File
"/home/richard/Documents/programmation/version_194-5/web2py/gluon/dal.py",
line 4334, in _listify
raise SyntaxError,'Table: missing required field: %s' % ofield.name
SyntaxError: Table: missing required field: seizure
### Model ###
# ref_fnaregistry
db.define_table('ref_fnaregistry',
Field('fnaregistry_id','id'),
Field('num_part1','string',
length=20,
notnull=True,
requires=[IS_NOT_EMPTY(error_message=T('field can\'t be empty'))],
required=True
),
Field('num_part2','string',
length=20,
notnull=True,
requires=[IS_NOT_EMPTY(error_message=T('field can\'t be empty'))],
required=True
),
Field('num_part3','string',
length=20,
notnull=True,
requires=[IS_NOT_EMPTY(error_message=T('field can\'t be empty'))],
required=True
),
Field('title','text'),
Field('att_date','date',
notnull=True,
requires=[IS_NOT_EMPTY(error_message=T('field can\'t be empty')),
IS_DATE(format=T('%Y-%m-%d'),error_message=T('valid date of
format : YYYY-MM-DD!'))],
required=True
),
Field('seizure','db.auth_user',
readable=False,
writable=False,
default=auth.user and auth.user.id,
notnull=True,
requires=[IS_NOT_EMPTY(error_message=T('field can\'t be empty'))],
required=True
),
Field('seizure_date','date',
readable=False,
writable=False,
default=request.now,
notnull=True,
requires=[IS_NOT_EMPTY(error_message=T('field can\'t be empty'))],
required=True
),
Field('last_action_by','db.auth_user',
readable=False,
writable=False,
default=auth.user and auth.user.id,
update=auth.user and auth.user.id,
notnull=True,
requires=[IS_NOT_EMPTY(error_message=T('field can\'t be empty'))],
required=True
),
Field('sdate','datetime',
readable=False,
writable=False,
default=request.now,
update=request.now,
notnull=True,
requires=[IS_NOT_EMPTY(error_message=T('field can\'t be empty'))],
required=True
),
migrate=False,
sequence_name='ref_fnaregistry_fnaregistry_id_seq',
format=lambda row: '%s-%s-%s / %s'\
%(row.num_part1.rstrip(),row.num_part2.rstrip(),row.num_part3.rstrip(),row.title.rstrip()))
### Controller ###
@auth.requires_login()
def create():
if request.args(0) in ref_tables_list:
redirection_argument=request.args(0)
if en_ui_tables_names[request.args(0)]!=None :
table_name = str.lower(en_ui_tables_names[request.args(0)])
else:
table_name = request.args(0).replace('ref_','')
page_title=T('Form for : ')
if auth.has_membership(auth.id_group('admin')):
crud.settings.formstyle='divs'
form = crud.create(db[request.args(0)])
elif auth.has_membership(auth.id_group('technician')):
crud.settings.formstyle='divs'
form = crud.create(db[request.args(0)])
elif auth.has_membership(auth.id_group('technician_c')):
crud.settings.formstyle='divs'
form = crud.create(db[request.args(0)])
else:
return
dict(form=None,page_title=page_title,table_name=table_name,\
not_allow_permission='you are not allow
(permission)',permission_denied='Permission denied')
if form.accepts(request.vars, session):
response.flash = T('form accepted')
redirect(URL(r=request, f='read/'+redirection_argument,args=
form.vars.id))
elif form.errors:
response.flash = T('form has errors')
else:
response.flash = T('please fill out the form')
return dict(form=form,page_title=page_title,table_name=table_name,\
not_allow_permission=None,permission_denied=None)
else:
redirect(URL(request.application,'default','index'))
session.flash = T('invalid request')
Should I change something??
Thanks for help
Richard