fobi.contrib.apps.drf_integration package¶
Subpackages¶
- fobi.contrib.apps.drf_integration.form_elements package
- Subpackages
- fobi.contrib.apps.drf_integration.form_elements.content package
- Subpackages
- fobi.contrib.apps.drf_integration.form_elements.content.content_image package
- fobi.contrib.apps.drf_integration.form_elements.content.content_image_url package
- Submodules
- fobi.contrib.apps.drf_integration.form_elements.content.content_image_url.apps module
- fobi.contrib.apps.drf_integration.form_elements.content.content_image_url.base module
- fobi.contrib.apps.drf_integration.form_elements.content.content_image_url.fobi_integration_form_elements module
- Module contents
- fobi.contrib.apps.drf_integration.form_elements.content.content_markdown package
- Submodules
- fobi.contrib.apps.drf_integration.form_elements.content.content_markdown.apps module
- fobi.contrib.apps.drf_integration.form_elements.content.content_markdown.base module
- fobi.contrib.apps.drf_integration.form_elements.content.content_markdown.fobi_integration_form_elements module
- Module contents
- fobi.contrib.apps.drf_integration.form_elements.content.content_richtext package
- Submodules
- fobi.contrib.apps.drf_integration.form_elements.content.content_richtext.apps module
- fobi.contrib.apps.drf_integration.form_elements.content.content_richtext.base module
- fobi.contrib.apps.drf_integration.form_elements.content.content_richtext.fobi_integration_form_elements module
- Module contents
- fobi.contrib.apps.drf_integration.form_elements.content.content_text package
- fobi.contrib.apps.drf_integration.form_elements.content.content_video package
- Module contents
- Subpackages
- fobi.contrib.apps.drf_integration.form_elements.fields package
- Subpackages
- fobi.contrib.apps.drf_integration.form_elements.fields.boolean package
- fobi.contrib.apps.drf_integration.form_elements.fields.checkbox_select_multiple package
- Submodules
- fobi.contrib.apps.drf_integration.form_elements.fields.checkbox_select_multiple.apps module
- fobi.contrib.apps.drf_integration.form_elements.fields.checkbox_select_multiple.base module
- fobi.contrib.apps.drf_integration.form_elements.fields.checkbox_select_multiple.fobi_integration_form_elements module
- Module contents
- fobi.contrib.apps.drf_integration.form_elements.fields.date package
- fobi.contrib.apps.drf_integration.form_elements.fields.date_drop_down package
- fobi.contrib.apps.drf_integration.form_elements.fields.datetime package
- fobi.contrib.apps.drf_integration.form_elements.fields.decimal package
- fobi.contrib.apps.drf_integration.form_elements.fields.duration package
- fobi.contrib.apps.drf_integration.form_elements.fields.email package
- fobi.contrib.apps.drf_integration.form_elements.fields.file package
- fobi.contrib.apps.drf_integration.form_elements.fields.float package
- fobi.contrib.apps.drf_integration.form_elements.fields.hidden package
- fobi.contrib.apps.drf_integration.form_elements.fields.input package
- fobi.contrib.apps.drf_integration.form_elements.fields.integer package
- fobi.contrib.apps.drf_integration.form_elements.fields.ip_address package
- fobi.contrib.apps.drf_integration.form_elements.fields.null_boolean package
- fobi.contrib.apps.drf_integration.form_elements.fields.password package
- fobi.contrib.apps.drf_integration.form_elements.fields.radio package
- fobi.contrib.apps.drf_integration.form_elements.fields.range_select package
- fobi.contrib.apps.drf_integration.form_elements.fields.regex package
- fobi.contrib.apps.drf_integration.form_elements.fields.select package
- fobi.contrib.apps.drf_integration.form_elements.fields.select_model_object package
- Submodules
- fobi.contrib.apps.drf_integration.form_elements.fields.select_model_object.apps module
- fobi.contrib.apps.drf_integration.form_elements.fields.select_model_object.base module
- fobi.contrib.apps.drf_integration.form_elements.fields.select_model_object.fobi_integration_form_elements module
- Module contents
- fobi.contrib.apps.drf_integration.form_elements.fields.select_multiple package
- Submodules
- fobi.contrib.apps.drf_integration.form_elements.fields.select_multiple.apps module
- fobi.contrib.apps.drf_integration.form_elements.fields.select_multiple.base module
- fobi.contrib.apps.drf_integration.form_elements.fields.select_multiple.fobi_integration_form_elements module
- Module contents
- fobi.contrib.apps.drf_integration.form_elements.fields.select_multiple_model_objects package
- Submodules
- fobi.contrib.apps.drf_integration.form_elements.fields.select_multiple_model_objects.apps module
- fobi.contrib.apps.drf_integration.form_elements.fields.select_multiple_model_objects.base module
- fobi.contrib.apps.drf_integration.form_elements.fields.select_multiple_model_objects.fobi_integration_form_elements module
- Module contents
- fobi.contrib.apps.drf_integration.form_elements.fields.select_multiple_with_max package
- Submodules
- fobi.contrib.apps.drf_integration.form_elements.fields.select_multiple_with_max.apps module
- fobi.contrib.apps.drf_integration.form_elements.fields.select_multiple_with_max.base module
- fobi.contrib.apps.drf_integration.form_elements.fields.select_multiple_with_max.fobi_integration_form_elements module
- Module contents
- fobi.contrib.apps.drf_integration.form_elements.fields.slider package
- fobi.contrib.apps.drf_integration.form_elements.fields.slug package
- fobi.contrib.apps.drf_integration.form_elements.fields.text package
- fobi.contrib.apps.drf_integration.form_elements.fields.textarea package
- fobi.contrib.apps.drf_integration.form_elements.fields.time package
- fobi.contrib.apps.drf_integration.form_elements.fields.url package
- Module contents
- Subpackages
- fobi.contrib.apps.drf_integration.form_elements.content package
- Module contents
- Subpackages
- fobi.contrib.apps.drf_integration.form_handlers package
Submodules¶
fobi.contrib.apps.drf_integration.apps module¶
fobi.contrib.apps.drf_integration.base module¶
- class fobi.contrib.apps.drf_integration.base.DRFIntegrationFormElementPluginProcessor(*args, **kwargs)[source]¶
Bases:
fobi.base.IntegrationFormElementPluginProcessor
Django REST framework field instance processor.
- class fobi.contrib.apps.drf_integration.base.DRFSubmitPluginFormDataMixin[source]¶
Bases:
object
Submit plugin form data mixin.
- submit_plugin_form_data(form_element_plugin, form_entry, request, serializer, form_element_entries=None, **kwargs)[source]¶
Submit plugin form data.
Called on form submission (when user actually posts the data to assembled form).
- Parameters
form_element_plugin –
form_entry (fobi.models.FormEntry) – Instance of
fobi.models.FormEntry
.request (django.http.HttpRequest) –
serializer (rest_framework.serializers.Serializer) –
form_element_entries (iterable) –
- fobi.contrib.apps.drf_integration.base.get_cleaned_data(serializer, keys_to_remove=[], values_to_remove=[])[source]¶
Get cleaned data.
Gets cleaned data, having the trash (fields without values) filtered out.
- Parameters
serializer –
keys_to_remove (iterable) –
values_to_remove (iterable) –
- Return dict
- fobi.contrib.apps.drf_integration.base.get_field_name_to_label_map(serializer, keys_to_remove=[], values_to_remove=[])[source]¶
Get field name to label map.
- Parameters
serializer –
keys_to_remove (iterable) –
values_to_remove (iterable) –
- Return dict
- fobi.contrib.apps.drf_integration.base.get_processed_serializer_data(serializer, form_element_entries)[source]¶
Gets processed serializer data.
Simply fires both
fobi.base.get_cleaned_data
andfobi.base.get_field_name_to_label_map
functions and returns the result.- Parameters
serializer –
form_element_entries (iterable) – Iterable of form element entries.
- Return tuple
- fobi.contrib.apps.drf_integration.base.run_form_handlers(form_entry, request, serializer, form_element_entries=None)[source]¶
Run form handlers.
- Parameters
form_entry (fobi.models.FormEntry) –
request (django.http.HttpRequest) –
serializer (rest_framework.serializers.Serializer) –
form_element_entries (iterable) –
- Return tuple
List of success responses, list of error responses
- fobi.contrib.apps.drf_integration.base.submit_plugin_form_data(form_entry, request, serializer, form_element_entries=None, **kwargs)[source]¶
Submit plugin form data for all plugins.
- Parameters
form_entry (fobi.models.FormEntry) – Instance of
fobi.models.FormEntry
.request (django.http.HttpRequest) –
serializer (rest_framework.serializers.Serializer) –
form_element_entries (iterable) –
fobi.contrib.apps.drf_integration.dynamic module¶
- fobi.contrib.apps.drf_integration.dynamic.assemble_serializer_class(form_entry, request=None, origin=None, origin_kwargs_update_func=None, origin_return_func=None, form_element_entries=None, has_value=None, declared_fields=None, declared_fields_metadata=None)[source]¶
Assemble a serializer class by given entry.
- Parameters
form_entry –
base_class –
request (django.http.HttpRequest) –
origin (string) –
origin_kwargs_update_func (callable) –
origin_return_func (callable) –
form_element_entries (iterable) – If given, used instead of
form_entry.formelemententry_set.all
(no additional database hit).has_value (bool) –
fobi.contrib.apps.drf_integration.fields module¶
- class fobi.contrib.apps.drf_integration.fields.ContentImageField(*args, **kwargs)[source]¶
Bases:
fobi.contrib.apps.drf_integration.fields.NoneField
Content image field.
- class fobi.contrib.apps.drf_integration.fields.ContentMarkdownField(*args, **kwargs)[source]¶
Bases:
fobi.contrib.apps.drf_integration.fields.NoneField
Content markdown field.
- class fobi.contrib.apps.drf_integration.fields.ContentRichTextField(*args, **kwargs)[source]¶
Bases:
fobi.contrib.apps.drf_integration.fields.NoneField
Content rich text field.
- class fobi.contrib.apps.drf_integration.fields.ContentTextField(*args, **kwargs)[source]¶
Bases:
fobi.contrib.apps.drf_integration.fields.NoneField
Content text field.
- class fobi.contrib.apps.drf_integration.fields.ContentVideoField(*args, **kwargs)[source]¶
Bases:
fobi.contrib.apps.drf_integration.fields.NoneField
Content video field.
- class fobi.contrib.apps.drf_integration.fields.ModelChoiceField(*args, **kwargs)[source]¶
Bases:
rest_framework.fields.ChoiceField
,fobi.contrib.apps.drf_integration.fields.ModelChoiceFieldMixin
Model choice field.
- class fobi.contrib.apps.drf_integration.fields.ModelMultipleChoiceField(*args, **kwargs)[source]¶
Bases:
rest_framework.fields.MultipleChoiceField
,fobi.contrib.apps.drf_integration.fields.ModelChoiceFieldMixin
Model choice field.
- class fobi.contrib.apps.drf_integration.fields.MultipleChoiceWithMaxField(*args, **kwargs)[source]¶
Bases:
rest_framework.fields.MultipleChoiceField
MultipleChoiceWithMaxField.
- default_error_messages = {'empty': 'This selection may not be empty.', 'invalid_choice': '"{input}" is not a valid choice.', 'max_choices': 'Max number of choices reached.', 'not_a_list': 'Expected a list of items but got type "{input_type}".'}¶
- class fobi.contrib.apps.drf_integration.fields.NoneField(*args, **kwargs)[source]¶
Bases:
rest_framework.fields.Field
NoneField.
- default_empty_html = ''¶
- default_error_messages = {}¶
- initial = ''¶
fobi.contrib.apps.drf_integration.helpers module¶
fobi.contrib.apps.drf_integration.metadata module¶
- class fobi.contrib.apps.drf_integration.metadata.FobiMetaData[source]¶
Bases:
rest_framework.metadata.SimpleMetadata
Meta data for better representation of the form elements.
- get_field_info(field)[source]¶
Get field info.
Given an instance of a serializer field, return a dictionary of metadata about it.
- label_lookup = <rest_framework.utils.field_mapping.ClassLookupDict object>¶
fobi.contrib.apps.drf_integration.serializers module¶
- class fobi.contrib.apps.drf_integration.serializers.FormEntrySerializer(*args, **kwargs)[source]¶
Bases:
rest_framework.serializers.ModelSerializer
FormEntry serializer (read-only).
Used for detail and list views.
fobi.contrib.apps.drf_integration.urls module¶
fobi.contrib.apps.drf_integration.utils module¶
- fobi.contrib.apps.drf_integration.utils.get_serializer_class(form_entry, request=None, has_value=None, declared_fields=None)[source]¶
Get assembled serializer class.
- Parameters
form_entry (fobi.models.FormEntry) –
request (django.http.HttpRequest) –
has_value (bool) –
declared_fields (list) –
- Return django.forms.Form
fobi.contrib.apps.drf_integration.views module¶
- class fobi.contrib.apps.drf_integration.views.FobiFormEntryViewSet(**kwargs)[source]¶
Bases:
rest_framework.mixins.RetrieveModelMixin
,rest_framework.mixins.UpdateModelMixin
,rest_framework.mixins.ListModelMixin
,rest_framework.viewsets.GenericViewSet
FormEntry view set.
- basename = None¶
- description = None¶
- detail = None¶
- get_queryset()[source]¶
Get queryset.
We show all forms to authenticated users and show only public forms to non-authenticated users.
- lookup_field = 'slug'¶
- lookup_url_kwarg = 'slug'¶
- metadata_class¶
alias of
fobi.contrib.apps.drf_integration.metadata.FobiMetaData
- name = None¶
- permission_classes = [<class 'rest_framework.permissions.AllowAny'>]¶
- queryset¶
- suffix = None¶