equal
deleted
inserted
replaced
17 from cubicweb.selectors import entity_implements, yes |
17 from cubicweb.selectors import entity_implements, yes |
18 from cubicweb.web import eid_param |
18 from cubicweb.web import eid_param |
19 from cubicweb.web import formwidgets as fwdgs |
19 from cubicweb.web import formwidgets as fwdgs |
20 from cubicweb.web.widgets import checkbox |
20 from cubicweb.web.widgets import checkbox |
21 from cubicweb.web.formfields import HiddenInitialValueField |
21 from cubicweb.web.formfields import HiddenInitialValueField |
|
22 |
|
23 def field_label(form, field): |
|
24 # XXX with 3.6 we can now properly rely on 'if field.role is not None' and |
|
25 # stop having a tuple for label |
|
26 if isinstance(field.label, tuple): # i.e. needs contextual translation |
|
27 return form.req.pgettext(*field.label) |
|
28 return form.req._(field.label) |
|
29 |
22 |
30 |
23 |
31 |
24 class FormRenderer(AppObject): |
32 class FormRenderer(AppObject): |
25 """basic renderer displaying fields in a two columns table label | value |
33 """basic renderer displaying fields in a two columns table label | value |
26 |
34 |
85 return '\n'.join(data) |
93 return '\n'.join(data) |
86 |
94 |
87 def render_label(self, form, field): |
95 def render_label(self, form, field): |
88 if field.label is None: |
96 if field.label is None: |
89 return u'' |
97 return u'' |
90 if isinstance(field.label, tuple): # i.e. needs contextual translation |
98 label = field_label(form, field) |
91 label = self.req.pgettext(*field.label) |
|
92 else: |
|
93 label = self.req._(field.label) |
|
94 attrs = {'for': form.context[field]['id']} |
99 attrs = {'for': form.context[field]['id']} |
95 if field.required: |
100 if field.required: |
96 attrs['class'] = 'required' |
101 attrs['class'] = 'required' |
97 return tags.label(label, **attrs) |
102 return tags.label(label, **attrs) |
98 |
103 |
322 w(u'<th align="left">%s</th>' % |
327 w(u'<th align="left">%s</th>' % |
323 tags.input(type='checkbox', |
328 tags.input(type='checkbox', |
324 title=self.req._('toggle check boxes'), |
329 title=self.req._('toggle check boxes'), |
325 onclick="setCheckboxesState('eid', this.checked)")) |
330 onclick="setCheckboxesState('eid', this.checked)")) |
326 for field in subfields: |
331 for field in subfields: |
327 w(u'<th>%s</th>' % self.req._(field.label)) |
332 w(u'<th>%s</th>' % field_label(form, field)) |
328 w(u'</tr>') |
333 w(u'</tr>') |
329 super(EntityCompositeFormRenderer, self).render_fields(w, form, values) |
334 super(EntityCompositeFormRenderer, self).render_fields(w, form, values) |
330 if form.parent_form is None: |
335 if form.parent_form is None: |
331 w(u'</table>') |
336 w(u'</table>') |
332 if self._main_display_fields: |
337 if self._main_display_fields: |