web/views/editforms.py
changeset 3479 d4fbf41adb5b
parent 3478 f043f71017a3
child 3485 e867ae952fc0
equal deleted inserted replaced
3478:f043f71017a3 3479:d4fbf41adb5b
   126         return self._cw.vreg['formrenderers'].select(
   126         return self._cw.vreg['formrenderers'].select(
   127             'base', self._cw, entity=entity, display_label=False,
   127             'base', self._cw, entity=entity, display_label=False,
   128             display_help=False, table_class='',
   128             display_help=False, table_class='',
   129             button_bar_class='buttonbar', display_progress_div=False)
   129             button_bar_class='buttonbar', display_progress_div=False)
   130 
   130 
   131     def _build_form(self, entity, rtype, role, formid, default, onsubmit, reload,
   131     def _build_form(self, entity, rtype, role, default, onsubmit, reload,
   132                   extradata=None, **formargs):
   132                   extradata=None, **formargs):
   133         divid = 'd%s' % make_uid('%s-%s' % (rtype, entity.eid))
   133         divid = 'd%s' % make_uid('%s-%s' % (rtype, entity.eid))
   134         event_data = {'divid' : divid, 'eid' : entity.eid, 'rtype' : rtype,
   134         event_data = {'divid' : divid, 'eid' : entity.eid, 'rtype' : rtype,
   135                       'reload' : dumps(reload), 'default' : default}
   135                       'reload' : dumps(reload), 'default' : default}
   136         if extradata:
   136         if extradata:
   137             event_data.update(extradata)
   137             event_data.update(extradata)
   138         onsubmit %= event_data
   138         onsubmit %= event_data
   139         cancelclick = "hideInlineEdit(%s,\'%s\',\'%s\')" % (entity.eid, rtype,
   139         cancelclick = "hideInlineEdit(%s,\'%s\',\'%s\')" % (entity.eid, rtype,
   140                                                             divid)
   140                                                             divid)
   141         form = self._cw.vreg['forms'].select(
   141         form = self._cw.vreg['forms'].select(
   142             formid, self._cw, entity=entity, domid='%s-form' % divid,
   142             'edition', self._cw, entity=entity, domid='%s-form' % divid,
   143             cssstyle='display: none', onsubmit=onsubmit, action='#',
   143             cssstyle='display: none', onsubmit=onsubmit, action='#',
   144             display_fields=[(rtype, role)],
   144             display_fields=[(rtype, role)],
   145             form_buttons=[SubmitButton(), Button(stdmsgs.BUTTON_CANCEL,
   145             form_buttons=[SubmitButton(), Button(stdmsgs.BUTTON_CANCEL,
   146                                                  onclick=cancelclick)],
   146                                                  onclick=cancelclick)],
   147             **formargs)
   147             **formargs)
   186             else:
   186             else:
   187                 value = default
   187                 value = default
   188             onsubmit = ("return inlineValidateRelationForm('%(rtype)s', '%(role)s', '%(eid)s', "
   188             onsubmit = ("return inlineValidateRelationForm('%(rtype)s', '%(role)s', '%(eid)s', "
   189                         "'%(divid)s', %(reload)s, '%(vid)s', '%(default)s', '%(lzone)s');")
   189                         "'%(divid)s', %(reload)s, '%(vid)s', '%(default)s', '%(lzone)s');")
   190             form = self._build_form(
   190             form = self._build_form(
   191                 entity, rtype, role, 'base', default, onsubmit, reload,
   191                 entity, rtype, role, default, onsubmit, reload,
   192                 dict(vid=rvid, role=role, lzone=lzone))
   192                 dict(vid=rvid, role=role, lzone=lzone))
   193             field = guess_field(entity.e_schema, schema.rschema(rtype), role)
       
   194             form.append_field(field)
       
   195             self.relation_form(lzone, value, form,
   193             self.relation_form(lzone, value, form,
   196                                self._build_renderer(entity, rtype, role))
   194                                self._build_renderer(entity, rtype, role))
   197 
   195 
   198     def should_edit_attribute(self, entity, rschema, role, form):
   196     def should_edit_attribute(self, entity, rschema, role, form):
   199         rtype = str(rschema)
   197         rtype = str(rschema)