web/form.py
branchtls-sprint
changeset 1056 be43d95ebb52
parent 1055 b87222b63950
child 1058 c27be37daef8
equal deleted inserted replaced
1055:b87222b63950 1056:be43d95ebb52
   367         super(Select, self).__init__(attrs)
   367         super(Select, self).__init__(attrs)
   368         self.multiple = multiple
   368         self.multiple = multiple
   369         
   369         
   370     def render(self, form, field):
   370     def render(self, form, field):
   371         name, curvalues, attrs = self._render_attrs(form, field)
   371         name, curvalues, attrs = self._render_attrs(form, field)
   372         vocab = field.vocabulary(form)
       
   373         options = []
   372         options = []
   374         for label, value in vocab:
   373         for label, value in field.vocabulary(form):
   375             if value in curvalues:
   374             if value in curvalues:
   376                 options.append(tags.option(label, value=value, selected='selected'))
   375                 options.append(tags.option(label, value=value, selected='selected'))
   377             else:
   376             else:
   378                 options.append(tags.option(label, value=value))
   377                 options.append(tags.option(label, value=value))
   379         if attrs is None:
   378         if attrs is None:
   390         if values and values[0]:
   389         if values and values[0]:
   391             attrs['checked'] = u'checked'
   390             attrs['checked'] = u'checked'
   392         return name, values, attrs
   391         return name, values, attrs
   393 
   392 
   394         
   393         
   395 class Radio(FieldWidget):
   394 class Radio(Input):
   396     pass
   395     type = 'radio'
       
   396     setdomid = False
       
   397     
       
   398     def render(self, form, field):
       
   399         name, curvalues, attrs = self._render_attrs(form, field)
       
   400         options = []
       
   401         for label, value in field.vocabulary(form):
       
   402             if value in curvalues:
       
   403                 options.append(tags.input(name=name, type=self.type, value=value, checked='checked', **attrs))
       
   404             else:
       
   405                 options.append(tags.option(name=name, type=self.type, value=value, **attrs))
       
   406             options[-1] += label + '<br/>'
       
   407         return '\n'.join(options)
   397 
   408 
   398 
   409 
   399 class DateTimePicker(TextInput):
   410 class DateTimePicker(TextInput):
   400     monthnames = ('january', 'february', 'march', 'april',
   411     monthnames = ('january', 'february', 'march', 'april',
   401                   'may', 'june', 'july', 'august',
   412                   'may', 'june', 'july', 'august',