web/views/editforms.py
branchstable
changeset 2334 464c896bee65
parent 2333 1de22d3e985b
child 2335 b78249be8a4b
equal deleted inserted replaced
2333:1de22d3e985b 2334:464c896bee65
    89     __select__ = non_final_entity() & match_kwargs('rtype')
    89     __select__ = non_final_entity() & match_kwargs('rtype')
    90 
    90 
    91     # FIXME editableField class could be toggleable from userprefs
    91     # FIXME editableField class could be toggleable from userprefs
    92 
    92 
    93     _ondblclick = "showInlineEditionForm(%(eid)s, '%(rtype)s', '%(divid)s')"
    93     _ondblclick = "showInlineEditionForm(%(eid)s, '%(rtype)s', '%(divid)s')"
    94     _defaultlandingzone = u'<img title="%s" class="needsvalidation" src="data/file.gif"/>'
    94     _defaultlandingzone = u'<img title="%s" src="data/file.gif"/>'
    95     _landingzonemsg = _('double click to edit this field')
    95     _landingzonemsg = _('double click to edit this field')
    96     # default relation vids according to cardinality
    96     # default relation vids according to cardinality
    97     _one_rvid = 'incontext'
    97     _one_rvid = 'incontext'
    98     _many_rvid = 'csv'
    98     _many_rvid = 'csv'
    99 
    99 
   138                                                          fromeid=entity.eid):
   138                                                          fromeid=entity.eid):
   139                 return self.w(value)
   139                 return self.w(value)
   140             elif role == 'object' and not rschema.has_perm(self.req, 'add',
   140             elif role == 'object' and not rschema.has_perm(self.req, 'add',
   141                                                            toeid=entity.eid):
   141                                                            toeid=entity.eid):
   142                 return self.w(value)
   142                 return self.w(value)
   143             form = self._build_relation_form(entity, value, rtype, role, row, col,
   143             form = self._build_relation_form(entity, value, rtype, role, reload, row, col,
   144                                              rvid, default, escape, landing_zone)
   144                                              rvid, default, escape, landing_zone)
   145         renderer = self.vreg.select_object('formrenderers', 'base', self.req,
   145         renderer = self.vreg.select_object('formrenderers', 'base', self.req,
   146                                       entity=entity,
   146                                       entity=entity,
   147                                       display_label=False, display_help=False,
   147                                       display_label=False, display_help=False,
   148                                       display_fields=[(rtype, role)],
   148                                       display_fields=[(rtype, role)],
   149                                       table_class='', button_bar_class='buttonbar',
   149                                       table_class='', button_bar_class='buttonbar',
   150                                       display_progress_div=False)
   150                                       display_progress_div=False)
   151         self.w(form.form_render(renderer=renderer))
   151         self.w(form.form_render(renderer=renderer))
   152 
   152 
   153     def _build_relation_form(self, entity, value, rtype, role, row, col, rvid, default, escape, lzone):
   153     def _build_relation_form(self, entity, value, rtype, role, row, col, reload, rvid,
       
   154                              default, escape, lzone):
   154         lzone = lzone or self._defaultlandingzone % self.req._(self._landingzonemsg)
   155         lzone = lzone or self._defaultlandingzone % self.req._(self._landingzonemsg)
   155         value = lzone + value
   156         value = lzone + value
   156         divid = 'd%s' % make_uid('%s-%s' % (rtype, entity.eid))
   157         divid = 'd%s' % make_uid('%s-%s' % (rtype, entity.eid))
   157         event_data = {'divid' : divid, 'eid' : entity.eid, 'rtype' : rtype, 'vid' : rvid,
   158         event_data = {'divid' : divid, 'eid' : entity.eid, 'rtype' : rtype, 'vid' : rvid,
   158                       'default' : default, 'role' : role, 'escape' : escape, 'lzone' : lzone}
   159                       'reload' : reload, 'default' : default, 'role' : role,
       
   160                       'escape' : escape, 'lzone' : lzone}
   159         onsubmit = ("return inlineValidateRelationForm('%(divid)s-form', '%(rtype)s', "
   161         onsubmit = ("return inlineValidateRelationForm('%(divid)s-form', '%(rtype)s', "
   160                     "'%(role)s', '%(eid)s', '%(divid)s', '%(vid)s', '%(default)s', '%(escape)s', '%(lzone)s');"
   162                     "'%(role)s', '%(eid)s', '%(divid)s', '%(reload)s', '%(vid)s', "
       
   163                     "'%(default)s', '%(escape)s', '%(lzone)s');"
   161                     % event_data)
   164                     % event_data)
   162         cancelclick = "cancelInlineEdit(%s,\'%s\',\'%s\')" % (
   165         cancelclick = "cancelInlineEdit(%s,\'%s\',\'%s\')" % (
   163             entity.eid, rtype, divid)
   166             entity.eid, rtype, divid)
   164         form = self.vreg.select_object('forms', 'base', self.req, entity=entity,
   167         form = self.vreg.select_object('forms', 'base', self.req, entity=entity,
   165                                        domid='%s-form' % divid, cssstyle='display: none',
   168                                        domid='%s-form' % divid, cssstyle='display: none',