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