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

Reply via email to