web/views/formrenderers.py
changeset 3293 69c0ba095536
parent 3023 7864fee8b4ec
parent 3275 5247789df541
child 3369 7b88d12b4ee2
equal deleted inserted replaced
3230:1d25e928c299 3293:69c0ba095536
    90         return '\n'.join(data)
    90         return '\n'.join(data)
    91 
    91 
    92     def render_label(self, form, field):
    92     def render_label(self, form, field):
    93         if field.label is None:
    93         if field.label is None:
    94             return u''
    94             return u''
    95         label = self.req._(field.label)
    95         if isinstance(field.label, tuple): # i.e. needs contextual translation
       
    96             label = self.req.pgettext(*field.label)
       
    97         else:
       
    98             label = self.req._(field.label)
    96         attrs = {'for': form.context[field]['id']}
    99         attrs = {'for': form.context[field]['id']}
    97         if field.required:
   100         if field.required:
    98             attrs['class'] = 'required'
   101             attrs['class'] = 'required'
    99         return tags.label(label, **attrs)
   102         return tags.label(label, **attrs)
   100 
   103 
   410  </table>""" % tuple(button.render(form) for button in form.form_buttons))
   413  </table>""" % tuple(button.render(form) for button in form.form_buttons))
   411         else:
   414         else:
   412             super(EntityFormRenderer, self).render_buttons(w, form)
   415             super(EntityFormRenderer, self).render_buttons(w, form)
   413 
   416 
   414     def relations_form(self, w, form):
   417     def relations_form(self, w, form):
   415         srels_by_cat = form.srelations_by_category('generic', 'add')
   418         srels_by_cat = form.srelations_by_category('generic', 'add', strict=True)
   416         if not srels_by_cat:
   419         if not srels_by_cat:
   417             return u''
   420             return u''
   418         req = self.req
   421         req = self.req
   419         _ = req._
   422         _ = req._
   420         label = u'%s :' % _('This %s' % form.edited_entity.e_schema).capitalize()
   423         __ = _
       
   424         label = u'%s :' % __('This %s' % form.edited_entity.e_schema).capitalize()
   421         eid = form.edited_entity.eid
   425         eid = form.edited_entity.eid
   422         w(u'<fieldset class="subentity">')
   426         w(u'<fieldset class="subentity">')
   423         w(u'<legend class="iformTitle">%s</legend>' % label)
   427         w(u'<legend class="iformTitle">%s</legend>' % label)
   424         w(u'<table id="relatedEntities">')
   428         w(u'<table id="relatedEntities">')
   425         for rschema, target, related in form.relations_table():
   429         for rschema, target, related in form.relations_table():
   487             if form.should_inline_relation_form(rschema, targettype, role):
   491             if form.should_inline_relation_form(rschema, targettype, role):
   488                 self.inline_relation_form(w, form, rschema, targettype, role)
   492                 self.inline_relation_form(w, form, rschema, targettype, role)
   489 
   493 
   490     def inline_relation_form(self, w, form, rschema, targettype, role):
   494     def inline_relation_form(self, w, form, rschema, targettype, role):
   491         entity = form.edited_entity
   495         entity = form.edited_entity
   492         __ = self.req.__
   496         __ = self.req.pgettext
   493         w(u'<div id="inline%sslot">' % rschema)
   497         w(u'<div id="inline%sslot">' % rschema)
   494         existant = entity.has_eid() and entity.related(rschema)
   498         existant = entity.has_eid() and entity.related(rschema)
   495         if existant:
   499         if existant:
   496             # display inline-edition view for all existing related entities
   500             # display inline-edition view for all existing related entities
   497             w(form.view('inline-edition', existant, rtype=rschema, role=role,
   501             w(form.view('inline-edition', existant, rtype=rschema, role=role,
   504         # display one explicit inline-creation view
   508         # display one explicit inline-creation view
   505         if form.should_display_inline_creation_form(rschema, existant, card):
   509         if form.should_display_inline_creation_form(rschema, existant, card):
   506             w(form.view('inline-creation', None, etype=targettype,
   510             w(form.view('inline-creation', None, etype=targettype,
   507                         peid=entity.eid, ptype=entity.e_schema,
   511                         peid=entity.eid, ptype=entity.e_schema,
   508                         rtype=rschema, role=role))
   512                         rtype=rschema, role=role))
       
   513             existant = True
   509         # we can create more than one related entity, we thus display a link
   514         # we can create more than one related entity, we thus display a link
   510         # to add new related entities
   515         # to add new related entities
   511         if form.should_display_add_new_relation_link(rschema, existant, card):
   516         if form.should_display_add_new_relation_link(rschema, existant, card):
   512             divid = "addNew%s%s%s:%s" % (targettype, rschema, role, entity.eid)
   517             divid = "addNew%s%s%s:%s" % (targettype, rschema, role, entity.eid)
   513             w(u'<div class="inlinedform" id="%s" cubicweb:limit="true">'
   518             w(u'<div class="inlinedform" id="%s" cubicweb:limit="true">'
   514               % divid)
   519               % divid)
   515             js = "addInlineCreationForm('%s', '%s', '%s', '%s')" % (
   520             js = "addInlineCreationForm('%s', '%s', '%s', '%s')" % (
   516                 entity.eid, targettype, rschema, role)
   521                 entity.eid, targettype, rschema, role)
   517             if card in '1?':
   522             if card in '1?':
   518                 js = "toggleVisibility('%s'); %s" % (divid, js)
   523                 js = "toggleVisibility('%s'); %s" % (divid, js)
       
   524             ctx = 'inlined:%s.%s.%s' % (entity.e_schema, rschema, role)
   519             w(u'<a class="addEntity" id="add%s:%slink" href="javascript: %s" >+ %s.</a>'
   525             w(u'<a class="addEntity" id="add%s:%slink" href="javascript: %s" >+ %s.</a>'
   520               % (rschema, entity.eid, js, __('add a %s' % targettype)))
   526               % (rschema, entity.eid, js, __(ctx, 'add a %s' % targettype)))
   521             w(u'</div>')
   527             w(u'</div>')
   522             w(u'<div class="trame_grise">&#160;</div>')
   528             w(u'<div class="trame_grise">&#160;</div>')
   523         w(u'</div>')
   529         w(u'</div>')
   524 
   530 
   525 
   531