web/formwidgets.py
branchtls-sprint
changeset 1336 2e552353c42a
parent 1330 92343a468e2a
child 1337 828bbf500bcc
equal deleted inserted replaced
1335:1ad1a174da77 1336:2e552353c42a
   165         
   165         
   166     def render(self, form, field):
   166     def render(self, form, field):
   167         name, curvalues, attrs = self._render_attrs(form, field)
   167         name, curvalues, attrs = self._render_attrs(form, field)
   168         options = []
   168         options = []
   169         for label, value in field.vocabulary(form):
   169         for label, value in field.vocabulary(form):
   170             if value in curvalues:
   170             if value is None:
       
   171                 # handle separator
       
   172                 options.append(u'<optgroup label="%s"/>' % (label or ''))
       
   173             elif value in curvalues:
   171                 options.append(tags.option(label, value=value, selected='selected'))
   174                 options.append(tags.option(label, value=value, selected='selected'))
   172             else:
   175             else:
   173                 options.append(tags.option(label, value=value))
   176                 options.append(tags.option(label, value=value))
   174         return tags.select(name=name, multiple=self.multiple,
   177         return tags.select(name=name, multiple=self.multiple,
   175                            options=options, **attrs)
   178                            options=options, **attrs)