# HG changeset patch # User sylvain.thenault@logilab.fr # Date 1239809074 -7200 # Node ID 01bb5b727fe35aeee4350cf131acb887c744fc18 # Parent fd5bd1a63c3fff9e7bb0014c752fe2c2e2306e64 set dom id on the first input of radio choices diff -r fd5bd1a63c3f -r 01bb5b727fe3 web/formwidgets.py --- a/web/formwidgets.py Wed Apr 15 17:24:12 2009 +0200 +++ b/web/formwidgets.py Wed Apr 15 17:24:34 2009 +0200 @@ -203,19 +203,19 @@ input will be generated for each possible value. """ type = 'radio' - setdomid = False # by default, don't set id attribute on radio input def render(self, form, field): name, curvalues, attrs = self._render_attrs(form, field) + domid = attrs.pop('id', None) options = [] - for label, value in field.vocabulary(form): + for i, (label, value) in enumerate(field.vocabulary(form)): + iattrs = attrs.copy() + if i == 0 and domid is not None: + iattrs['id'] = domid if value in curvalues: - tag = tags.input(name=name, type=self.type, value=value, - checked='checked', **attrs) - else: - tag = tags.input(name=name, type=self.type, value=value, **attrs) - tag += label + '
' - options.append(tag) + iattrs['checked'] = u'checked' + tag = tags.input(name=name, type=self.type, value=value, **iattrs) + options.append(tag + label + '
') return '\n'.join(options)