web/views/editforms.py
changeset 5658 7b9553a9db65
parent 5590 a56eb02f9ce7
child 5679 0f2ded880d01
equal deleted inserted replaced
5655:ef903fff826d 5658:7b9553a9db65
   281     __regid__ = 'doreledit'
   281     __regid__ = 'doreledit'
   282     __select__ = non_final_entity() & match_kwargs('rtype')
   282     __select__ = non_final_entity() & match_kwargs('rtype')
   283     # FIXME editableField class could be toggleable from userprefs
   283     # FIXME editableField class could be toggleable from userprefs
   284 
   284 
   285     _onclick = u"showInlineEditionForm(%(eid)s, '%(rtype)s', '%(divid)s')"
   285     _onclick = u"showInlineEditionForm(%(eid)s, '%(rtype)s', '%(divid)s')"
   286     _onsubmit = ("return inlineValidateRelationForm('%(rtype)s', '%(role)s', '%(eid)s', "
   286     _onsubmit = ("return inlineValidateRelationFormOptions('%(rtype)s', '%(eid)s', "
   287                  "'%(divid)s', %(reload)s, '%(vid)s', '%(default)s', '%(lzone)s');")
   287                  "'%(divid)s', %(options)s);")
   288     _cancelclick = "hideInlineEdit(%s,\'%s\',\'%s\')"
   288     _cancelclick = "hideInlineEdit(%s,\'%s\',\'%s\')"
   289     _defaultlandingzone = (u'<img title="%(msg)s" src="data/pen_icon.png" '
   289     _defaultlandingzone = (u'<img title="%(msg)s" src="data/pen_icon.png" '
   290                            'alt="%(msg)s"/>')
   290                            'alt="%(msg)s"/>')
   291     _landingzonemsg = _('click to edit this field')
   291     _landingzonemsg = _('click to edit this field')
   292     # default relation vids according to cardinality
   292     # default relation vids according to cardinality
   404             button_bar_class='buttonbar', display_progress_div=False)
   404             button_bar_class='buttonbar', display_progress_div=False)
   405 
   405 
   406     def _build_args(self, entity, rtype, role, formid, default, reload, lzone,
   406     def _build_args(self, entity, rtype, role, formid, default, reload, lzone,
   407                     extradata=None):
   407                     extradata=None):
   408         divid = '%s-%s-%s' % (rtype, role, entity.eid)
   408         divid = '%s-%s-%s' % (rtype, role, entity.eid)
       
   409         options = {'reload' : reload, 'default_value' : default,
       
   410                    'role' : role, 'vid' : '',
       
   411                    'lzone' : lzone}
   409         event_args = {'divid' : divid, 'eid' : entity.eid, 'rtype' : rtype,
   412         event_args = {'divid' : divid, 'eid' : entity.eid, 'rtype' : rtype,
   410                       'reload' : dumps(reload), 'default' : default, 'role' : role, 'vid' : u'',
   413                       'options' : dumps(options)}
   411                       'lzone' : lzone}
       
   412         if extradata:
   414         if extradata:
   413             event_args.update(extradata)
   415             event_args.update(extradata)
   414         return divid, event_args
   416         return divid, event_args
   415 
   417 
   416     def _build_form(self, entity, rtype, role, formid, default, reload, lzone,
   418     def _build_form(self, entity, rtype, role, formid, default, reload, lzone,
   417                   extradata=None, **formargs):
   419                   extradata=None, **formargs):
   418         divid, event_args = self._build_args(entity, rtype, role, formid, default,
   420         divid, event_args = self._build_args(entity, rtype, role, formid, default,
   419                                       reload, lzone, extradata)
   421                                              reload, lzone, extradata)
   420         onsubmit = self._onsubmit % event_args
   422         onsubmit = self._onsubmit % event_args
   421         cancelclick = self._cancelclick % (entity.eid, rtype, divid)
   423         cancelclick = self._cancelclick % (entity.eid, rtype, divid)
   422         form = self._cw.vreg['forms'].select(
   424         form = self._cw.vreg['forms'].select(
   423             formid, self._cw, entity=entity, domid='%s-form' % divid,
   425             formid, self._cw, entity=entity, domid='%s-form' % divid,
   424             cssstyle='display: none', onsubmit=onsubmit, action='#',
   426             cssstyle='display: none', onsubmit=onsubmit, action='#',
   432 class AutoClickAndEditFormView(ClickAndEditFormView):
   434 class AutoClickAndEditFormView(ClickAndEditFormView):
   433     """same as ClickAndEditFormView but checking if the view *should* be applied
   435     """same as ClickAndEditFormView but checking if the view *should* be applied
   434     by checking uicfg configuration and composite relation property.
   436     by checking uicfg configuration and composite relation property.
   435     """
   437     """
   436     __regid__ = 'reledit'
   438     __regid__ = 'reledit'
   437     _onclick = (u"loadInlineEditionForm(%(eid)s, '%(rtype)s', '%(role)s', "
   439     _onclick = (u"loadInlineEditionFormOptions(%(eid)s, '%(rtype)s', "
   438                 "'%(divid)s', %(reload)s, '%(vid)s', '%(default)s', '%(lzone)s');")
   440                 "'%(divid)s', %(options)s);")
   439 
   441 
   440     def should_edit_relation(self, entity, rschema, role, rvid):
   442     def should_edit_relation(self, entity, rschema, role, rvid):
   441         eschema = entity.e_schema
   443         eschema = entity.e_schema
   442         rtype = str(rschema)
   444         rtype = str(rschema)
   443         # XXX check autoform_section. what if 'generic'?
   445         # XXX check autoform_section. what if 'generic'?