def __call__(self, field, **kwargs): kwargs.setdefault("id", field.id) if self.multiple: kwargs["multiple"] = True html = ["<select %s>" % html_params(name=field.name, **kwargs)] for val, label, selected in field.iter_choices(): if callable(val): html.append("<optgroup label='%s'>" % escape(text_type(label))) for child_val, child_label, child_selected in val(): html.append( Select.render_option(child_val, child_label, child_selected)) html.append("</optgroup>") else: html.append(Select.render_option(val, label, selected)) html.append("</select>") return HTMLString("".join(html))
def __call__(self, field, **kwargs): kwargs.setdefault('id', field.id) if self.multiple: kwargs['multiple'] = True html = ['<select %s>' % html_params(name=field.name, **kwargs)] for val, label, selected in field.iter_choices(): if callable(val): html.append('<optgroup label="%s">' % escape(text_type(label))) for child_val, child_label, child_selected in val(): html.append(Select.render_option(child_val, child_label, child_selected)) html.append('</optgroup>') else: html.append(Select.render_option(val, label, selected)) html.append('</select>') return HTMLString(''.join(html))
def render_option(cls, value, label, selected, **kwargs): if value is None: return HTMLString('<option></option>') return Select.render_option(value, label, selected, **kwargs)
def render_option(self, value, label, selected, **kwargs): if self.labelizer: label = self.labelizer(label) return wtfSelect.render_option(value, label, selected, **kwargs)