equal
deleted
inserted
replaced
39 from logilab.mtconverter import xml_escape |
39 from logilab.mtconverter import xml_escape |
40 |
40 |
41 from cubicweb import tags |
41 from cubicweb import tags |
42 from cubicweb.appobject import AppObject |
42 from cubicweb.appobject import AppObject |
43 from cubicweb.selectors import is_instance, yes |
43 from cubicweb.selectors import is_instance, yes |
44 from cubicweb.utils import json_dumps |
44 from cubicweb.utils import json_dumps, support_args |
45 from cubicweb.web import eid_param, formwidgets as fwdgs |
45 from cubicweb.web import eid_param, formwidgets as fwdgs |
46 |
46 |
47 |
47 |
48 def checkbox(name, value, attrs='', checked=None): |
48 def checkbox(name, value, attrs='', checked=None): |
49 if checked is None: |
49 if checked is None: |
51 checked = checked and 'checked="checked"' or '' |
51 checked = checked and 'checked="checked"' or '' |
52 return u'<input type="checkbox" name="%s" value="%s" %s %s />' % ( |
52 return u'<input type="checkbox" name="%s" value="%s" %s %s />' % ( |
53 name, value, checked, attrs) |
53 name, value, checked, attrs) |
54 |
54 |
55 def field_label(form, field): |
55 def field_label(form, field): |
|
56 if callable(field.label): |
|
57 return field.label(form, field) |
56 # XXX with 3.6 we can now properly rely on 'if field.role is not None' and |
58 # XXX with 3.6 we can now properly rely on 'if field.role is not None' and |
57 # stop having a tuple for label |
59 # stop having a tuple for label |
58 if isinstance(field.label, tuple): # i.e. needs contextual translation |
60 if isinstance(field.label, tuple): # i.e. needs contextual translation |
59 return form._cw.pgettext(*field.label) |
61 return form._cw.pgettext(*field.label) |
60 return form._cw._(field.label) |
62 return form._cw._(field.label) |
131 |
133 |
132 def render_help(self, form, field): |
134 def render_help(self, form, field): |
133 help = [] |
135 help = [] |
134 descr = field.help |
136 descr = field.help |
135 if callable(descr): |
137 if callable(descr): |
136 descr = descr(form) |
138 if support_args(descr, 'form', 'field'): |
|
139 descr = descr(form, field) |
|
140 else: |
|
141 warn("[3.10] field's help callback must now take form and field as argument", |
|
142 DeprecationWarning) |
|
143 descr = descr(form) |
137 if descr: |
144 if descr: |
138 help.append('<div class="helper">%s</div>' % self._cw._(descr)) |
145 help.append('<div class="helper">%s</div>' % self._cw._(descr)) |
139 example = field.example_format(self._cw) |
146 example = field.example_format(self._cw) |
140 if example: |
147 if example: |
141 help.append('<div class="helper">(%s: %s)</div>' |
148 help.append('<div class="helper">(%s: %s)</div>' |