__all__ = ('RadioInputForm',) from django import forms from django.utils.translation import ugettext_lazy as _ from fobi.base import BaseFormFieldPluginForm, get_theme from fobi.helpers import validate_initial_for_choices theme = get_theme(request=None, as_instance=True) class RadioInputForm(forms.Form, BaseFormFieldPluginForm): """ Form for ``RadioInputPlugin``. """ plugin_data_fields = [ ("label", ""), ("name", ""), ("choices", ""), ("help_text", ""), ("initial", ""), ("required", False) ] label = forms.CharField( label = _("Label"), required = True, widget = forms.widgets.TextInput(attrs={'class': theme.form_element_html_class}) ) name = forms.CharField( label = _("Name"), required = True, widget = forms.widgets.TextInput(attrs={'class': theme.form_element_html_class}) ) choices = forms.CharField( label = _("Choices"), required = False, help_text = _("Enter single values/pairs per line. Example:
" "    1
" "    2
" "    alpha, Alpha
" "    beta, Beta
" "    omega" "

" "It finally transforms into the following HTML code:
" '    <select id="id_NAME_OF_THE_ELEMENT" name="NAME_OF_THE_ELEMENT">
' '        <option value="1">1</option>
' '        <option value="2">2</option>
' '        <option value="alpha">Alpha</option>
' '        <option value="beta">Beta</option>
' '        <option value="omega">omega</option>
' '    </select>' "
"), widget = forms.widgets.Textarea(attrs={'class': theme.form_element_html_class}) ) help_text = forms.CharField( label = _("Help text"), required = False, widget = forms.widgets.Textarea(attrs={'class': theme.form_element_html_class}) ) initial = forms.CharField( label = _("Initial"), required = False, widget = forms.widgets.TextInput(attrs={'class': theme.form_element_html_class}) ) required = forms.BooleanField( label = _("Required"), required = False, widget = forms.widgets.CheckboxInput(attrs={'class': theme.form_element_checkbox_html_class}) ) def clean_initial(self): """ Validating the initial value. """ return validate_initial_for_choices(self, 'choices', 'initial')