Char field plugin. """ uid = UID name = _("IP address") group = _("Fields") form = IPAddressInputForm def get_form_field_instances(self): """ Get form field instances. """ widget_attrs = { 'class': theme.form_element_html_class, 'placeholder': self.data.placeholder, } kwargs = { 'label': self.data.label, 'help_text': self.data.help_text, 'initial': self.data.initial, 'required': self.data.required, 'widget': TextInput(attrs=widget_attrs), } if self.data.max_length: kwargs['max_length'] = self.data.max_length return [(self.data.name, GenericIPAddressField, kwargs)] form_element_plugin_registry.register(IPAddressInputPlugin)
from __future__ import absolute_import from fobi.base import form_element_plugin_registry from .base import PasswordInputPlugin __title__ = 'fobi.contrib.plugins.form_elements.fields.' \ 'password.fobi_form_elements' __author__ = 'Artur Barseghyan <*****@*****.**>' __copyright__ = '2014-2019 Artur Barseghyan' __license__ = 'GPL 2.0/LGPL 2.1' __all__ = ('PasswordInputPlugin',) form_element_plugin_registry.register(PasswordInputPlugin)
group = _("Fields") form = EmailInputForm def get_form_field_instances(self): """ Get form field instances. """ widget_attrs = { 'class': theme.form_element_html_class, 'type': 'email', 'placeholder': self.data.placeholder, } kwargs = { 'label': self.data.label, 'help_text': self.data.help_text, 'initial': self.data.initial, 'required': self.data.required, 'widget': TextInput(attrs=widget_attrs), } if self.data.max_length: kwargs['max_length'] = self.data.max_length return [(self.data.name, EmailField, kwargs)] # For backwards compatibility EmailPlugin = EmailInputPlugin form_element_plugin_registry.register(EmailInputPlugin)
'class': theme.form_element_html_class, 'type': 'number', 'placeholder': self.data.placeholder, } kwargs = { 'label': self.data.label, 'help_text': self.data.help_text, 'initial': self.data.initial, 'required': self.data.required, } if self.data.max_value: kwargs['max_value'] = self.data.max_value widget_attrs['max'] = self.data.max_value if self.data.min_value: kwargs['min_value'] = self.data.min_value widget_attrs['min'] = self.data.min_value if self.data.max_digits: kwargs['max_digits'] = self.data.max_digits widget_attrs['max'] = self.data.max_value if self.data.decimal_places: kwargs['decimal_places'] = self.data.decimal_places widget_attrs['min'] = self.data.min_value kwargs['widget'] = NumberInput(attrs=widget_attrs) return [(self.data.name, DecimalField, kwargs)] form_element_plugin_registry.register(DecimalInputPlugin)
Char field plugin. """ uid = UID name = _("Text") group = _("Fields") form = TextInputForm def get_form_field_instances(self, request=None): """ Get form field instances. """ widget_attrs = { 'class': theme.form_element_html_class, 'placeholder': self.data.placeholder, } kwargs = { 'label': self.data.label, 'help_text': self.data.help_text, 'initial': self.data.initial, 'required': self.data.required, 'widget': TextInput(attrs=widget_attrs), } if self.data.max_length: kwargs['max_length'] = self.data.max_length return [(self.data.name, CharField, kwargs)] form_element_plugin_registry.register(TextInputPlugin)
uid = UID name = _("Regex") group = _("Fields") form = RegexInputForm def get_form_field_instances(self): """ Get form field instances. """ widget_attrs = { 'class': theme.form_element_html_class, 'placeholder': self.data.placeholder, } kwargs = { 'label': self.data.label, 'help_text': self.data.help_text, 'regex': self.data.regex, 'initial': self.data.initial, 'required': self.data.required, 'widget': TextInput(attrs=widget_attrs), } if self.data.max_length: kwargs['max_length'] = self.data.max_length return [(self.data.name, RegexField, kwargs)] form_element_plugin_registry.register(RegexInputPlugin)
group = _("Content") form = ContentVideoForm def post_processor(self): """ Always the same. """ self.data.name = "{0}_{1}".format(self.uid, uuid4()) def get_form_field_instances(self): """ Get form field instances. """ width, height = self.data.size.split('x') kwargs = { 'initial': '<div class="video-wrapper">{0}</div>'.format( render_video(self.data.url, width, height) ), 'required': False, 'label': '', } form_field_instances = [] form_field_instances.append((self.data.name, NoneField, kwargs)) return form_field_instances form_element_plugin_registry.register(ContentVideoPlugin)
from __future__ import absolute_import from fobi.base import form_element_plugin_registry from .base import DurationInputPlugin __title__ = 'fobi.contrib.plugins.form_elements.fields.duration.' \ 'fobi_form_elements' __author__ = 'Artur Barseghyan <*****@*****.**>' __copyright__ = '2014-2019 Artur Barseghyan' __license__ = 'GPL 2.0/LGPL 2.1' __all__ = ('DurationInputPlugin',) form_element_plugin_registry.register(DurationInputPlugin)
'class': theme.form_element_html_class, 'type': 'number', 'placeholder': self.data.placeholder, } field_kwargs = { 'label': self.data.label, 'help_text': self.data.help_text, 'initial': self.data.initial, 'required': self.data.required, } if self.data.max_value: field_kwargs['max_value'] = self.data.max_value widget_attrs['max'] = self.data.max_value if self.data.min_value: field_kwargs['min_value'] = self.data.min_value widget_attrs['min'] = self.data.min_value if self.data.max_digits: field_kwargs['max_digits'] = self.data.max_digits widget_attrs['max'] = self.data.max_value if self.data.decimal_places: field_kwargs['decimal_places'] = self.data.decimal_places widget_attrs['min'] = self.data.min_value field_kwargs['widget'] = NumberInput(attrs=widget_attrs) return [(self.data.name, DecimalField, field_kwargs)] form_element_plugin_registry.register(DecimalInputPlugin)
theme = get_theme(request=None, as_instance=True) class HiddenInputPlugin(FormFieldPlugin): """ Hidden field plugin. """ uid = UID name = _("Hidden") group = _("Fields") form = HiddenInputForm is_hidden = True def get_form_field_instances(self, request=None): """ Get form field instances. """ kwargs = { 'label': self.data.label, 'initial': self.data.initial, 'required': self.data.required, 'widget': HiddenInput(attrs={'class': theme.form_element_html_class}), } if self.data.max_length: kwargs['max_length'] = self.data.max_length return [(self.data.name, CharField, kwargs)] #return [(self.data.name, (CharField, TextInput), kwargs)] form_element_plugin_registry.register(HiddenInputPlugin)
Char field plugin. """ uid = UID name = _("IP address") group = _("Fields") form = IPAddressInputForm def get_form_field_instances(self, request=None): """ Get form field instances. """ widget_attrs = { 'class': theme.form_element_html_class, 'placeholder': self.data.placeholder, } kwargs = { 'label': self.data.label, 'help_text': self.data.help_text, 'initial': self.data.initial, 'required': self.data.required, 'widget': TextInput(attrs=widget_attrs), } if self.data.max_length: kwargs['max_length'] = self.data.max_length return [(self.data.name, GenericIPAddressField, kwargs)] form_element_plugin_registry.register(IPAddressInputPlugin)
from fobi.base import FormFieldPlugin, form_element_plugin_registry, get_theme from .forms import TemperatureCForm theme = get_theme(request=None, as_instance=True) class TemperatureCPlugin(FormFieldPlugin): """TemperatureCPlugin.""" uid = "temperature_c" name = "Temperature, Celcius" form = TemperatureCForm group = "Survey Metadata" # Group to which the plugin belongs to def get_form_field_instances(self, request=None, form_entry=None, form_element_entries=None, **kwargs): field_kwargs = { 'required': self.data.required, 'label': self.data.label, 'widget': forms.widgets.NumberInput(attrs={ 'class': theme.form_element_html_class, 'type': 'number'}) } return [(self.data.name, forms.FloatField, field_kwargs)] form_element_plugin_registry.register(TemperatureCPlugin)
class HiddenInputPlugin(FormFieldPlugin): """ Hidden field plugin. """ uid = UID name = _("Hidden") group = _("Fields") form = HiddenInputForm is_hidden = True def get_form_field_instances(self, request=None): """ Get form field instances. """ kwargs = { 'label': self.data.label, 'initial': self.data.initial, 'required': self.data.required, 'widget': HiddenInput(attrs={'class': theme.form_element_html_class}), } if self.data.max_length: kwargs['max_length'] = self.data.max_length return [(self.data.name, CharField, kwargs)] #return [(self.data.name, (CharField, TextInput), kwargs)] form_element_plugin_registry.register(HiddenInputPlugin)
from __future__ import absolute_import from fobi.base import form_element_plugin_registry from .base import URLInputPlugin __title__ = 'fobi.contrib.plugins.form_elements.fields.url.fobi_form_elements' __author__ = 'Artur Barseghyan <*****@*****.**>' __copyright__ = '2014-2018 Artur Barseghyan' __license__ = 'GPL 2.0/LGPL 2.1' __all__ = ('URLInputPlugin', ) form_element_plugin_registry.register(URLInputPlugin)
from django import forms from fobi.base import FormFieldPlugin, form_element_plugin_registry from .forms import HouseholdTenureForm class HouseholdTenurePlugin(FormFieldPlugin): """HouseholdTenurePlugin.""" uid = "household_tenure" name = "How many years have you lived at your current address?" form = HouseholdTenureForm group = "Intercept" # Group to which the plugin belongs to def get_form_field_instances(self, request=None, form_entry=None, form_element_entries=None, **kwargs): field_kwargs = { 'required': self.data.required, 'label': self.data.label, 'widget': forms.widgets.NumberInput(attrs={}), } return [(self.data.name, forms.IntegerField, field_kwargs)] form_element_plugin_registry.register(HouseholdTenurePlugin)
from ..fields import ObservationalField from .forms import AgeObservationalForm class AgeObservationalPlugin(FormFieldPlugin): """AgeObservationalPlugin.""" uid = "age_observational" name = "Age" form = AgeObservationalForm group = "Observational" # Group to which the plugin belongs to def get_form_field_instances(self, request=None, form_entry=None, form_element_entries=None, **kwargs): choice_level = 'AGE_{}_CHOICES'.format(self.data.detail_level.upper()) choices = getattr(sys.modules[__name__], choice_level) field_kwargs = { 'required': self.data.required, 'label': self.data.label, 'choices': choices, 'widget': ObservationalWidget(choices=choices) } return [(self.data.name, ObservationalField, field_kwargs)] form_element_plugin_registry.register(AgeObservationalPlugin)
} return [(self.data.name, ModelChoiceField, kwargs)] def __submit_plugin_form_data(self, form_entry, request, form): """ Submit plugin form data/process. :param fobi.models.FormEntry form_entry: Instance of ``fobi.models.FormEntry``. :param django.http.HttpRequest request: :param django.forms.Form form: """ # Get the object obj = form.cleaned_data.get(self.data.name, None) if obj: # Handle the upload admin_url = admin_change_url(app_label=obj._meta.app_label, module_name=obj._meta.module_name, object_id=obj.pk) repr = '<a href="{0}">{1}</a>'.format(admin_url, str(obj)) # Overwrite ``cleaned_data`` of the ``form`` with object qualifier. form.cleaned_data[self.data.name] = repr # It's critically important to return the ``form`` with updated ``cleaned_data`` return form form_element_plugin_registry.register(SelectMultipleModelObjectsInputPlugin)
from __future__ import absolute_import from fobi.base import form_element_plugin_registry from .base import ContentRichTextPlugin __title__ = 'fobi.contrib.plugins.form_elements.content.content_richtext.' \ 'fobi_form_elements' __author__ = 'Frantisek Holop <*****@*****.**>' __copyright__ = 'RIPE NCC' __license__ = 'GPL 2.0/LGPL 2.1' __all__ = ('ContentRichTextPlugin', ) form_element_plugin_registry.register(ContentRichTextPlugin)
from ..forms import TRANSPORTATION_CHOICES from .forms import TransportationForm class TransportationPlugin(FormFieldPlugin): """TransportationPlugin.""" uid = "transportation" name = "How did you travel here?" form = TransportationForm group = "Intercept" # Group to which the plugin belongs to def get_form_field_instances(self, request=None, form_entry=None, form_element_entries=None, **kwargs): field_kwargs = { 'required': self.data.required, 'label': self.data.label, 'widget': forms.widgets.Select(attrs={}), 'choices': TRANSPORTATION_CHOICES, } return [(self.data.name, forms.ChoiceField, field_kwargs)] form_element_plugin_registry.register(TransportationPlugin)
form = DateDropDownInputForm def get_form_field_instances(self): """ Get form field instances. """ widget_attrs = { 'class': theme.form_element_html_class, 'type': 'date', } years = None if self.data.year_min and self.data.year_max: years = range(self.data.year_min, self.data.year_max) kwargs = { 'label': self.data.label, 'help_text': self.data.help_text, 'initial': self.data.initial, #'input_formats': self.data.input_formats, 'required': self.data.required, 'widget': SelectDateWidget(attrs=widget_attrs, years=years), } #if self.data.input_formats: # kwargs['input_formats'] = self.data.input_formats return [(self.data.name, DateField, kwargs)] form_element_plugin_registry.register(DateDropDownInputPlugin)
class TextareaPlugin(FormFieldPlugin): """ Char field plugin. """ uid = UID name = _("Textarea") group = _("Fields") form = TextareaForm def get_form_field_instances(self): """ Get form field instances. """ widget_attrs = { 'class': theme.form_element_html_class, 'placeholder': self.data.placeholder, } kwargs = { 'label': self.data.label, 'help_text': self.data.help_text, 'initial': self.data.initial, 'required': self.data.required, 'widget': Textarea(attrs=widget_attrs) } return [(self.data.name, CharField, kwargs)] form_element_plugin_registry.register(TextareaPlugin)
from __future__ import absolute_import from fobi.base import form_element_plugin_registry from .base import DateDropDownInputPlugin __title__ = 'fobi.contrib.plugins.form_elements.fields.' \ 'date_drop_down.fobi_form_elements' __author__ = 'Artur Barseghyan <*****@*****.**>' __copyright__ = '2014-2019 Artur Barseghyan' __license__ = 'GPL 2.0/LGPL 2.1' __all__ = ('DateDropDownInputPlugin',) form_element_plugin_registry.register(DateDropDownInputPlugin)
from __future__ import absolute_import from fobi.base import form_element_plugin_registry from .base import DummyPlugin __title__ = 'fobi.contrib.plugins.form_elements.test.dummy.fobi_form_elements' __author__ = 'Artur Barseghyan <*****@*****.**>' __copyright__ = '2014-2019 Artur Barseghyan' __license__ = 'GPL 2.0/LGPL 2.1' __all__ = ('DummyPlugin',) form_element_plugin_registry.register(DummyPlugin)
from __future__ import absolute_import from fobi.base import form_element_plugin_registry from .base import HoneypotInputPlugin __title__ = 'fobi.contrib.plugins.form_elements.security.' \ 'honeypot.fobi_form_elements' __author__ = 'Artur Barseghyan <*****@*****.**>' __copyright__ = '2014-2019 Artur Barseghyan' __license__ = 'GPL 2.0/LGPL 2.1' __all__ = ('HoneypotInputPlugin', ) form_element_plugin_registry.register(HoneypotInputPlugin)
ReCaptcha field plugin. """ uid = UID name = _("ReCaptcha") group = _("Security") form = ReCaptchaInputForm def get_form_field_instances(self): """ Get form field instances. """ widget_attrs = { 'class': theme.form_element_html_class, #'placeholder': self.data.placeholder, } kwargs = { 'label': self.data.label, 'help_text': self.data.help_text, #'initial': self.data.initial, 'required': self.data.required, 'widget': ReCaptchaWidget(attrs=widget_attrs), } return [(self.data.name, ReCaptchaField, kwargs)] # Register only if safe to use. if DJANGO_RECAPTCHA_INSTALLED and not DJANGO_SIMPLE_CAPTCHA_INSTALLED: form_element_plugin_registry.register(ReCaptchaInputPlugin)
from ..forms import RACE_CHOICES from .forms import RaceForm class RacePlugin(FormFieldPlugin): """RacePlugin.""" uid = "race" name = "Which race or ethnicity best describes you?" form = RaceForm group = "Intercept" # Group to which the plugin belongs to def get_form_field_instances(self, request=None, form_entry=None, form_element_entries=None, **kwargs): field_kwargs = { 'required': self.data.required, 'label': self.data.label, 'widget': forms.widgets.Select(attrs={}), 'choices': RACE_CHOICES, } return [(self.data.name, forms.ChoiceField, field_kwargs)] form_element_plugin_registry.register(RacePlugin)
from __future__ import absolute_import from fobi.base import form_element_plugin_registry from .base import URLInputPlugin __title__ = 'fobi.contrib.plugins.form_elements.fields.url.fobi_form_elements' __author__ = 'Artur Barseghyan <*****@*****.**>' __copyright__ = '2014-2019 Artur Barseghyan' __license__ = 'GPL 2.0/LGPL 2.1' __all__ = ('URLInputPlugin',) form_element_plugin_registry.register(URLInputPlugin)
from __future__ import absolute_import from fobi.base import form_element_plugin_registry from .base import RegexInputPlugin __title__ = 'fobi.contrib.plugins.form_elements.fields.' \ 'regex.fobi_form_elements' __author__ = 'Artur Barseghyan <*****@*****.**>' __copyright__ = '2014-2019 Artur Barseghyan' __license__ = 'GPL 2.0/LGPL 2.1' __all__ = ('RegexInputPlugin',) form_element_plugin_registry.register(RegexInputPlugin)
if obj: value = None # Should be returned as repr if SUBMIT_VALUE_AS == SUBMIT_VALUE_AS_REPR: value = safe_text(obj) elif SUBMIT_VALUE_AS == SUBMIT_VALUE_AS_VAL: value = '{0}.{1}.{2}'.format( obj._meta.app_label, obj._meta.module_name, obj.pk ) else: # Handle the submitted form value value = '{0}.{1}.{2}.{3}'.format( obj._meta.app_label, obj._meta.module_name, obj.pk, safe_text(obj) ) values.append(value) # Overwrite ``cleaned_data`` of the ``form`` with object qualifier. form.cleaned_data[self.data.name] = json.dumps(values) # It's critically important to return the ``form`` with updated # ``cleaned_data`` return form form_element_plugin_registry.register(SelectMultipleModelObjectsInputPlugin)
form = FloatInputForm def get_form_field_instances(self, request=None): """ Get form field instances. """ widget_attrs = { 'class': theme.form_element_html_class, 'type': 'number', 'placeholder': self.data.placeholder, } kwargs = { 'label': self.data.label, 'help_text': self.data.help_text, 'initial': self.data.initial, 'required': self.data.required, } if self.data.max_value: kwargs['max_value'] = self.data.max_value widget_attrs['max'] = self.data.max_value if self.data.min_value: kwargs['min_value'] = self.data.min_value widget_attrs['min'] = self.data.min_value kwargs['widget'] = NumberInput(attrs=widget_attrs) return [(self.data.name, FloatField, kwargs)] form_element_plugin_registry.register(FloatInputPlugin)
class RadioInputPlugin(FormFieldPlugin): """ Radio field plugin. """ uid = UID name = _("Radio") group = _("Fields") form = RadioInputForm def get_form_field_instances(self): """ Get form field instances. """ choices = get_select_field_choices(self.data.choices) widget_attrs = {'class': theme.form_radio_element_html_class} kwargs = { 'label': self.data.label, 'help_text': self.data.help_text, 'initial': self.data.initial, 'required': self.data.required, 'choices': choices, 'widget': RadioSelect(attrs=widget_attrs), } return [(self.data.name, ChoiceField, kwargs)] form_element_plugin_registry.register(RadioInputPlugin)
def post_processor(self): """ Always the same. """ self.data.name = "{0}_{1}".format(self.uid, uuid4()) def get_form_field_instances(self): """ Get form field instances. """ width, height = self.data.size.split('x') kwargs = { 'initial': '<div class="video-wrapper">{0}</div>'.format( render_video(self.data.url, width, height)), 'required': False, 'label': '', } form_field_instances = [] form_field_instances.append((self.data.name, NoneField, kwargs)) return form_field_instances form_element_plugin_registry.register(ContentVideoPlugin)
from __future__ import absolute_import from fobi.base import form_element_plugin_registry from .base import EmailInputPlugin __title__ = 'fobi.contrib.plugins.form_elements.fields.' \ 'email.fobi_form_elements' __author__ = 'Artur Barseghyan <*****@*****.**>' __copyright__ = '2014-2018 Artur Barseghyan' __license__ = 'GPL 2.0/LGPL 2.1' __all__ = ('EmailInputPlugin', ) form_element_plugin_registry.register(EmailInputPlugin)
from __future__ import absolute_import from fobi.base import form_element_plugin_registry from .base import NullBooleanSelectPlugin __title__ = 'fobi.contrib.plugins.form_elements.fields.' \ 'null_boolean.fobi_form_elements' __author__ = 'Artur Barseghyan <*****@*****.**>' __copyright__ = '2014-2017 Artur Barseghyan' __license__ = 'GPL 2.0/LGPL 2.1' __all__ = ('NullBooleanSelectPlugin', ) form_element_plugin_registry.register(NullBooleanSelectPlugin)
from ..widgets import ObservationalWidget from ..fields import ObservationalField from .forms import ObjectsObservationalForm class ObjectsObservationalPlugin(FormFieldPlugin): """ObjectsObservationalPlugin.""" uid = "objects_observational" name = "Objects" form = ObjectsObservationalForm group = "Observational" # Group to which the plugin belongs to def get_form_field_instances(self, request=None, form_entry=None, form_element_entries=None, **kwargs): choices = OBJECTS_BASIC_CHOICES field_kwargs = { 'required': self.data.required, 'label': self.data.label, 'choices': choices, 'widget': ObservationalWidget(choices=choices) } return [(self.data.name, ObservationalField, field_kwargs)] form_element_plugin_registry.register(ObjectsObservationalPlugin)
from __future__ import absolute_import from fobi.base import form_element_plugin_registry from .base import ( DJANGO_RECAPTCHA_INSTALLED, DJANGO_SIMPLE_CAPTCHA_INSTALLED, ReCaptchaInputPlugin, ) __title__ = 'fobi.contrib.plugins.form_elements.security.' \ 'recaptcha.fobi_form_elements' __author__ = 'Artur Barseghyan <*****@*****.**>' __copyright__ = '2014-2019 Artur Barseghyan' __license__ = 'GPL 2.0/LGPL 2.1' __all__ = ('ReCaptchaInputPlugin', ) # Register only if safe to use. if DJANGO_RECAPTCHA_INSTALLED and not DJANGO_SIMPLE_CAPTCHA_INSTALLED: form_element_plugin_registry.register(ReCaptchaInputPlugin)
""" uid = UID name = _("Date") group = _("Fields") form = DateInputForm def get_form_field_instances(self): """ Get form field instances. """ widget_attrs = { 'class': theme.form_element_html_class, 'type': 'date', } kwargs = { 'label': self.data.label, 'help_text': self.data.help_text, 'initial': self.data.initial, #'input_formats': self.data.input_formats, 'required': self.data.required, 'widget': DateInput(attrs=widget_attrs), } #if self.data.input_formats: # kwargs['input_formats'] = self.data.input_formats return [(self.data.name, DateField, kwargs)] form_element_plugin_registry.register(DateInputPlugin)
from __future__ import absolute_import from fobi.base import form_element_plugin_registry from .base import TextareaPlugin __title__ = 'fobi.contrib.plugins.form_elements.fields.' \ 'textarea.fobi_form_elements' __author__ = 'Artur Barseghyan <*****@*****.**>' __copyright__ = '2014-2017 Artur Barseghyan' __license__ = 'GPL 2.0/LGPL 2.1' __all__ = ('TextInputPlugin', ) form_element_plugin_registry.register(TextareaPlugin)
Content text plugin. """ uid = UID name = _("Content text") group = _("Content") form = ContentTextForm def post_processor(self): """ Always the same. """ self.data.name = "{0}_{1}".format(self.uid, uuid4()) def get_form_field_instances(self): """ Get form field instances. """ kwargs = { 'initial': "<p>{0}</p>".format(smart_str(self.data.text)), 'required': False, 'label': '', } form_field_instances = [] form_field_instances.append((self.data.name, NoneField, kwargs)) return form_field_instances form_element_plugin_registry.register(ContentTextPlugin)
class TimeStopPlugin(FormFieldPlugin): """TimeStopPlugin.""" uid = "time_stop" name = "Stop Time" form = TimeStopForm group = "Survey Metadata" # Group to which the plugin belongs to def get_form_field_instances(self, request=None, form_entry=None, form_element_entries=None, **kwargs): field_kwargs = { 'required': self.data.required, 'label': self.data.label, 'widget': forms.widgets.TextInput(attrs={ 'class': theme.form_element_html_class, 'type': 'time' }), } return [(self.data.name, forms.TimeField, field_kwargs)] form_element_plugin_registry.register(TimeStopPlugin)
} return [(self.data.name, ChoiceField, field_kwargs)] def submit_plugin_form_data(self, form_entry, request, form, form_element_entries=None, **kwargs): """Submit plugin form data/process. :param fobi.models.FormEntry form_entry: Instance of ``fobi.models.FormEntry``. :param django.http.HttpRequest request: :param django.forms.Form form: """ # Get the object value = form.cleaned_data.get(self.data.name, None) if value: choices = dict(get_select_field_choices(self.data.choices)) # Handle the submitted form value value = '{0}'.format(safe_text(choices.get(value))) # Overwrite ``cleaned_data`` of the ``form`` with object qualifier. form.cleaned_data[self.data.name] = value # It's critically important to return the ``form`` with updated # ``cleaned_data`` return form form_element_plugin_registry.register(RadioInputPlugin, force=True)
from __future__ import absolute_import from fobi.base import form_element_plugin_registry from .base import DurationInputPlugin __title__ = 'fobi.contrib.plugins.form_elements.fields.duration.' \ 'fobi_form_elements' __author__ = 'Artur Barseghyan <*****@*****.**>' __copyright__ = '2014-2017 Artur Barseghyan' __license__ = 'GPL 2.0/LGPL 2.1' __all__ = ('DurationInputPlugin',) form_element_plugin_registry.register(DurationInputPlugin)
# kwargs['input_formats'] = self.data.input_formats return [(self.data.name, DateField, kwargs)] def submit_plugin_form_data(self, form_entry, request, form): """ Submit plugin form data/process. :param fobi.models.FormEntry form_entry: Instance of ``fobi.models.FormEntry``. :param django.http.HttpRequest request: :param django.forms.Form form: """ # In case if we should submit value as is, we don't return anything. # In other cases, we proceed further. # Get the object value = form.cleaned_data.get(self.data.name, None) try: value = value.strftime("%Y-%m-%d") except Exception as err: pass # Overwrite ``cleaned_data`` of the ``form`` with object qualifier. form.cleaned_data[self.data.name] = value return form form_element_plugin_registry.register(DateInputPlugin)
from ..forms import EDUCATION_CHOICES from .forms import EducationForm class EducationPlugin(FormFieldPlugin): """EducationPlugin.""" uid = "education" name = "What is your highest formal degree of education?" form = EducationForm group = "Intercept" # Group to which the plugin belongs to def get_form_field_instances(self, request=None, form_entry=None, form_element_entries=None, **kwargs): field_kwargs = { 'required': self.data.required, 'label': self.data.label, 'widget': forms.widgets.Select(attrs={}), 'choices': EDUCATION_CHOICES, } return [(self.data.name, forms.ChoiceField, field_kwargs)] form_element_plugin_registry.register(EducationPlugin)
crop = get_crop_filter(self.data.fit_method) if FIT_METHOD_FIT_WIDTH == self.data.fit_method: thumb_size = (width, 0) elif FIT_METHOD_FIT_HEIGHT == self.data.fit_method: thumb_size = (0, height) else: thumb_size = (width, height) context = { 'plugin': self, 'MEDIA_URL': settings.MEDIA_URL, 'crop': crop, 'thumb_size': thumb_size } rendered_image = render_to_string('content_image/render.html', context) kwargs = { 'initial': rendered_image, 'required': False, 'label': '', } form_field_instances = [] form_field_instances.append((self.data.name, NoneField, kwargs)) return form_field_instances form_element_plugin_registry.register(ContentImagePlugin)
from __future__ import absolute_import from fobi.base import form_element_plugin_registry from .base import SelectInputPlugin __title__ = 'fobi.contrib.plugins.form_elements.fields.' \ 'select.fobi_form_elements' __author__ = 'Artur Barseghyan <*****@*****.**>' __copyright__ = '2014-2019 Artur Barseghyan' __license__ = 'GPL 2.0/LGPL 2.1' __all__ = ('SelectInputPlugin',) form_element_plugin_registry.register(SelectInputPlugin)
choices = dict(get_select_field_choices(self.data.choices)) # Returned value ret_values = [] for value in values: # Handle the submitted form value if value in choices: label = safe_text(choices.get(value)) # Should be returned as repr if SUBMIT_VALUE_AS == SUBMIT_VALUE_AS_REPR: value = label # Should be returned as mix else: value = "{0} ({1})".format(label, value) ret_values.append(value) # Overwrite ``cleaned_data`` of the ``form`` with object # qualifier. form.cleaned_data[self.data.name] = ret_values # It's critically important to return the ``form`` with updated # ``cleaned_data`` return form form_element_plugin_registry.register(CheckboxSelectMultipleInputPlugin)
from __future__ import absolute_import from fobi.base import form_element_plugin_registry from .base import NullBooleanSelectPlugin __title__ = 'fobi.contrib.plugins.form_elements.fields.' \ 'null_boolean.fobi_form_elements' __author__ = 'Artur Barseghyan <*****@*****.**>' __copyright__ = '2014-2019 Artur Barseghyan' __license__ = 'GPL 2.0/LGPL 2.1' __all__ = ('NullBooleanSelectPlugin',) form_element_plugin_registry.register(NullBooleanSelectPlugin)
from __future__ import absolute_import from fobi.base import form_element_plugin_registry from .base import RangeSelectInputPlugin __title__ = 'fobi.contrib.plugins.form_elements.fields.range_select.' \ 'fobi_form_elements' __author__ = 'Artur Barseghyan <*****@*****.**>' __copyright__ = '2014-2017 Artur Barseghyan' __license__ = 'GPL 2.0/LGPL 2.1' __all__ = ('RangeSelectInputPlugin', ) form_element_plugin_registry.register(RangeSelectInputPlugin)
from __future__ import absolute_import from fobi.base import form_element_plugin_registry from .base import HoneypotInputPlugin __title__ = 'fobi.contrib.plugins.form_elements.security.' \ 'honeypot.fobi_form_elements' __author__ = 'Artur Barseghyan <*****@*****.**>' __copyright__ = '2014-2019 Artur Barseghyan' __license__ = 'GPL 2.0/LGPL 2.1' __all__ = ('HoneypotInputPlugin',) form_element_plugin_registry.register(HoneypotInputPlugin)
} return [(self.data.name, ModelChoiceField, kwargs)] def submit_plugin_form_data(self, form_entry, request, form): """ Submit plugin form data/process. :param fobi.models.FormEntry form_entry: Instance of ``fobi.models.FormEntry``. :param django.http.HttpRequest request: :param django.forms.Form form: """ # Get the object obj = form.cleaned_data.get(self.data.name, None) if obj: # Handle the submitted form value value = '{0}'.format( safe_text(obj) ) # Overwrite ``cleaned_data`` of the ``form`` with object qualifier. form.cleaned_data[self.data.name] = value # It's critically important to return the ``form`` with updated # ``cleaned_data`` return form form_element_plugin_registry.register(SelectModelObjectInputPlugin, force=True)
uid = UID name = _("Integer") group = _("Fields") form = IntegerInputForm def get_form_field_instances(self): """ Get form field instances. """ widget_attrs = {"class": theme.form_element_html_class, "type": "number", "placeholder": self.data.placeholder} kwargs = { "label": self.data.label, "help_text": self.data.help_text, "initial": self.data.initial, "required": self.data.required, } if self.data.max_value: kwargs["max_value"] = self.data.max_value widget_attrs["max"] = self.data.max_value if self.data.min_value: kwargs["min_value"] = self.data.min_value widget_attrs["min"] = self.data.min_value kwargs["widget"] = NumberInput(attrs=widget_attrs) return [(self.data.name, IntegerField, kwargs)] form_element_plugin_registry.register(IntegerInputPlugin)
from __future__ import absolute_import from fobi.base import form_element_plugin_registry from .base import SelectMultipleWithMaxInputPlugin __title__ = 'fobi.contrib.plugins.form_elements.fields.' \ 'select_multiple_with_max.fobi_form_elements' __author__ = 'Artur Barseghyan <*****@*****.**>' __copyright__ = '2014-2019 Artur Barseghyan' __license__ = 'GPL 2.0/LGPL 2.1' __all__ = ('SelectMultipleWithMaxInputPlugin',) form_element_plugin_registry.register(SelectMultipleWithMaxInputPlugin)
PhoneNumber field plugin. """ name = _("PhoneNumber") group = _("Fields") form = PhoneNumberForm uid = UID def get_form_field_instances(self, request=None): """ Get form field instances. """ widget_attrs = { 'class': theme.form_element_html_class, 'placeholder': self.data.placeholder, } kwargs = { 'label': self.data.label, 'help_text': self.data.help_text, 'initial': self.data.initial, 'required': self.data.required, 'widget': PhoneNumberPrefixWidget(attrs=widget_attrs), } if self.data.max_length: kwargs['max_length'] = self.data.max_length return [(self.data.name, PhoneNumberField, kwargs)] form_element_plugin_registry.register(PhoneNumberPlugin)
# In other cases, we proceed further. if SUBMIT_VALUE_AS != SUBMIT_VALUE_AS_VAL: # Get the object value = form.cleaned_data.get(self.data.name, None) # Get choices choices = dict(get_select_field_choices(self.data.choices)) if value in choices: # Handle the submitted form value label = safe_text(choices.get(value)) # Should be returned as repr if SUBMIT_VALUE_AS == SUBMIT_VALUE_AS_REPR: value = label # Should be returned as mix else: value = "{0} ({1})".format(label, value) # Overwrite ``cleaned_data`` of the ``form`` with object # qualifier. form.cleaned_data[self.data.name] = value # It's critically important to return the ``form`` with updated # ``cleaned_data`` return form form_element_plugin_registry.register(RadioInputPlugin)
:param django.forms.Form form: """ # In case if we should submit value as is, we don't return anything. # In other cases, we proceed further. # Get the object obj = form.cleaned_data.get(self.data.name, None) if obj: value = None # Should be returned as repr if SUBMIT_VALUE_AS == SUBMIT_VALUE_AS_REPR: value = safe_text(obj) elif SUBMIT_VALUE_AS == SUBMIT_VALUE_AS_VAL: value = '{0}.{1}.{2}'.format(obj._meta.app_label, obj._meta.module_name, obj.pk) else: # Handle the submitted form value value = '{0}.{1}.{2}.{3}'.format(obj._meta.app_label, obj._meta.module_name, obj.pk, safe_text(obj)) # Overwrite ``cleaned_data`` of the ``form`` with object qualifier. form.cleaned_data[self.data.name] = value # It's critically important to return the ``form`` with updated # ``cleaned_data`` return form form_element_plugin_registry.register(SelectModelObjectInputPlugin)
from __future__ import absolute_import from fobi.base import form_element_plugin_registry from .base import SelectMPTTModelObjectInputPlugin __title__ = 'fobi.contrib.plugins.form_elements.fields.' \ 'select_mptt_model_object.fobi_form_elements' __author__ = 'Artur Barseghyan <*****@*****.**>' __copyright__ = '2014-2019 Artur Barseghyan' __license__ = 'GPL 2.0/LGPL 2.1' __all__ = ('SelectMPTTModelObjectInputPlugin',) form_element_plugin_registry.register(SelectMPTTModelObjectInputPlugin)