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"> </div>') |
528 w(u'<div class="trame_grise"> </div>') |
523 w(u'</div>') |
529 w(u'</div>') |
524 |
530 |
525 |
531 |