web/views/editforms.py
branchstable
changeset 3953 19aefd78f61b
parent 3947 8d06bce45c02
child 3998 94cc7cad3d2d
child 4212 ab6573088b4a
equal deleted inserted replaced
3952:fbd77bda27c1 3953:19aefd78f61b
    92         for entity in self.rset.entities():
    92         for entity in self.rset.entities():
    93             # don't use outofcontext view or any other that may contain inline edition form
    93             # don't use outofcontext view or any other that may contain inline edition form
    94             w(u'<li>%s</li>' % tags.a(entity.view('textoutofcontext'),
    94             w(u'<li>%s</li>' % tags.a(entity.view('textoutofcontext'),
    95                                       href=entity.absolute_url()))
    95                                       href=entity.absolute_url()))
    96         w(u'</ul>\n')
    96         w(u'</ul>\n')
    97         w(form.form_render())
    97         w(form.render())
    98 
    98 
    99 
    99 
   100 class ClickAndEditFormView(FormViewMixIn, EntityView):
   100 class ClickAndEditFormView(FormViewMixIn, EntityView):
   101     """form used to permit ajax edition of a relation or attribute of an entity
   101     """form used to permit ajax edition of a relation or attribute of an entity
   102     in a view, if logged user have the permission to edit it.
   102     in a view, if logged user have the permission to edit it.
   201         w(u'<div id="%s-reledit" class="field" '
   201         w(u'<div id="%s-reledit" class="field" '
   202           u'onmouseout="addElementClass(jQuery(\'#%s\'), \'hidden\')" '
   202           u'onmouseout="addElementClass(jQuery(\'#%s\'), \'hidden\')" '
   203           u'onmouseover="removeElementClass(jQuery(\'#%s\'), \'hidden\')">'
   203           u'onmouseover="removeElementClass(jQuery(\'#%s\'), \'hidden\')">'
   204           % (divid, divid, divid))
   204           % (divid, divid, divid))
   205         w(u'<div id="%s-value" class="editableFieldValue">%s</div>' % (divid, value))
   205         w(u'<div id="%s-value" class="editableFieldValue">%s</div>' % (divid, value))
   206         w(form.form_render(renderer=renderer))
   206         w(form.render(renderer=renderer))
   207         w(u'<div id="%s" class="editableField hidden" onclick="%s" title="%s">' % (
   207         w(u'<div id="%s" class="editableField hidden" onclick="%s" title="%s">' % (
   208                 divid, xml_escape(self._onclick % form.event_args),
   208                 divid, xml_escape(self._onclick % form.event_args),
   209                 self.req._(self._landingzonemsg)))
   209                 self.req._(self._landingzonemsg)))
   210         w(lzone)
   210         w(lzone)
   211         w(u'</div>')
   211         w(u'</div>')
   255 
   255 
   256 class DummyForm(object):
   256 class DummyForm(object):
   257     __slots__ = ('event_args',)
   257     __slots__ = ('event_args',)
   258     def form_render(self, **_args):
   258     def form_render(self, **_args):
   259         return u''
   259         return u''
       
   260     def render(self, **_args):
       
   261         return u''
   260     def append_field(self, *args):
   262     def append_field(self, *args):
   261         pass
   263         pass
   262 
   264 
   263 class AutoClickAndEditFormView(ClickAndEditFormView):
   265 class AutoClickAndEditFormView(ClickAndEditFormView):
   264     """same as ClickAndEditFormView but checking if the view *should* be applied
   266     """same as ClickAndEditFormView but checking if the view *should* be applied
   318         self.form_title(entity)
   320         self.form_title(entity)
   319         form = self.vreg['forms'].select('edition', self.req, rset=entity.rset,
   321         form = self.vreg['forms'].select('edition', self.req, rset=entity.rset,
   320                                          row=entity.row, col=entity.col, entity=entity,
   322                                          row=entity.row, col=entity.col, entity=entity,
   321                                          submitmsg=self.submited_message())
   323                                          submitmsg=self.submited_message())
   322         self.init_form(form, entity)
   324         self.init_form(form, entity)
   323         self.w(form.form_render(formvid=u'edition'))
   325         self.w(form.render(rendervalues=dict(formvid=u'edition')))
   324 
   326 
   325     def init_form(self, form, entity):
   327     def init_form(self, form, entity):
   326         """customize your form before rendering here"""
   328         """customize your form before rendering here"""
   327         pass
   329         pass
   328 
   330 
   456         should be the eid
   458         should be the eid
   457         """
   459         """
   458         #self.form_title(entity)
   460         #self.form_title(entity)
   459         form = self.vreg['forms'].select(self.id, self.req, rset=self.rset,
   461         form = self.vreg['forms'].select(self.id, self.req, rset=self.rset,
   460                                          copy_nav_params=True)
   462                                          copy_nav_params=True)
   461         self.w(form.form_render())
   463         self.w(form.render())
   462 
   464 
   463 
   465 
   464 class InlineEntityEditionFormView(FormViewMixIn, EntityView):
   466 class InlineEntityEditionFormView(FormViewMixIn, EntityView):
   465     """
   467     """
   466     :attr peid: the parent entity's eid hosting the inline form
   468     :attr peid: the parent entity's eid hosting the inline form
   521         countkey = '%s_count' % self.rtype
   523         countkey = '%s_count' % self.rtype
   522         try:
   524         try:
   523             self.req.data[countkey] += 1
   525             self.req.data[countkey] += 1
   524         except KeyError:
   526         except KeyError:
   525             self.req.data[countkey] = 1
   527             self.req.data[countkey] = 1
   526         self.w(self.form.form_render(
   528         # XXX split kwargs into additional rendervalues / formvalues
   527             divid=divid, title=title, removejs=removejs, i18nctx=i18nctx,
   529         self.w(self.form.render(
   528             counter=self.req.data[countkey], **kwargs))
   530             rendervalues=dict(divid=divid, title=title, removejs=removejs,
       
   531                               i18nctx=i18nctx, counter=self.req.data[countkey]),
       
   532             formvalues=kwargs))
   529 
   533 
   530     def form_title(self, entity, i18nctx):
   534     def form_title(self, entity, i18nctx):
   531         return self.req.pgettext(i18nctx, 'This %s' % entity.e_schema)
   535         return self.req.pgettext(i18nctx, 'This %s' % entity.e_schema)
   532 
   536 
   533     def add_hiddens(self, form, entity):
   537     def add_hiddens(self, form, entity):