def create_checkbox(setting, kwargs, extra): kwargs['widget'] = forms.CheckboxSelectMultiple() kwargs['choices'] = extra.get('choices', []) if extra.get('min') or extra.get('max'): kwargs['validators'] = [ ValidateChoicesNum(extra.pop('min', 0), extra.pop('max', 0)) ] if setting.python_type == 'int': return forms.TypedMultipleChoiceField(coerce='int', **kwargs) else: return forms.MultipleChoiceField(**kwargs)
class LabelForm(forms.ModelForm): name = forms.CharField(label=_("Label name"), validators=[validate_sluggable()]) css_class = forms.CharField( label=_("CSS class"), required=False, help_text=_("Optional CSS clas used to style this label.")) forums = AdminForumMultipleChoiceField( label=_('Forums'), required=False, widget=forms.CheckboxSelectMultiple(), help_text=_('Select forums this label will be available in.')) class Meta: model = Label fields = ['name', 'css_class', 'forums'] def clean_name(self): data = self.cleaned_data['name'] self.instance.set_name(data) return data