onadata.libs.serializers package¶
Subpackages¶
- onadata.libs.serializers.fields package
- Submodules
- onadata.libs.serializers.fields.hyperlinked_multi_identity_field module
- onadata.libs.serializers.fields.hyperlinked_multi_related_field module
- onadata.libs.serializers.fields.instance_related_field module
- onadata.libs.serializers.fields.json_field module
- onadata.libs.serializers.fields.organization_field module
- onadata.libs.serializers.fields.project_field module
- onadata.libs.serializers.fields.project_related_field module
- onadata.libs.serializers.fields.team_field module
- onadata.libs.serializers.fields.utils module
- onadata.libs.serializers.fields.xform_field module
- onadata.libs.serializers.fields.xform_related_field module
- Module contents
Submodules¶
onadata.libs.serializers.attachment_serializer module¶
Attachments serializer.
- class onadata.libs.serializers.attachment_serializer.AttachmentSerializer(*args, **kwargs)¶
Bases:
HyperlinkedModelSerializerAttachments serializer
- class Meta¶
Bases:
object- fields = ('url', 'filename', 'mimetype', 'field_xpath', 'id', 'xform', 'instance', 'download_url', 'small_download_url', 'medium_download_url')¶
- model¶
alias of
Attachment
- get_download_url(obj)¶
Return attachment download url.
- get_field_xpath(obj)¶
Return question xpath
- get_medium_download_url(obj)¶
Return attachment download url for resized medium image.
- get_small_download_url(obj)¶
Return attachment download url for resized small image.
- get_xform(obj)¶
Return xform_id - old forms xform id is in submission instance xform_id
- onadata.libs.serializers.attachment_serializer.dict_key_for_value(_dict, value)¶
This function is used to get key by value in a dictionary
- onadata.libs.serializers.attachment_serializer.get_path(data, question_name, path_list)¶
A recursive function that returns the xpath of a media file :param json data: JSON representation of xform :param string question_name: Name of media file being searched for :param list path_list: Contains the names that make up the xpath :return: an xpath which is a string or None if name cannot be found :rtype: string or None
onadata.libs.serializers.chart_serializer module¶
Chart serializer.
- class onadata.libs.serializers.chart_serializer.ChartSerializer(*args, **kwargs)¶
Bases:
HyperlinkedModelSerializerChart serializer
onadata.libs.serializers.clone_xform_serializer module¶
Clone an XForm serializer.
- class onadata.libs.serializers.clone_xform_serializer.CloneXFormSerializer(*args, **kwargs)¶
Bases:
SerializerClone an xform serializer class
- create(validated_data)¶
Uses the CloneXForm class to clone/copy an XForm.
Returns the CloneXForm instance.
- update(instance, validated_data)¶
- validate_username(value)¶
Check that the username exists
onadata.libs.serializers.data_serializer module¶
Submission data serializers module.
- class onadata.libs.serializers.data_serializer.BaseRapidProSubmissionSerializer(*args, **kwargs)¶
Bases:
SubmissionSuccessMixin,SerializerBase Rapidpro SubmissionSerializer - Implements the basic functionalities of a Rapidpro webhook serializer
- create(validated_data)¶
- update(instance, validated_data)¶
- validate(attrs)¶
Validate that the XForm ID is passed in view kwargs
- class onadata.libs.serializers.data_serializer.DataInstanceSerializer(*args, **kwargs)¶
Bases:
ModelSerializerDataInstanceSerializer class - for json field data representation on the Instance (submission) model.
- to_representation(instance)¶
Object instance -> Dict of primitive datatypes.
- class onadata.libs.serializers.data_serializer.DataInstanceXMLSerializer(*args, **kwargs)¶
Bases:
ModelSerializerDataInstanceXMLSerializer class - for XML field data representation on the Instance model.
- to_representation(instance)¶
Object instance -> Dict of primitive datatypes.
- class onadata.libs.serializers.data_serializer.DataSerializer(*args, **kwargs)¶
Bases:
HyperlinkedModelSerializerDataSerializer class - used for the list view to show id, id_string, title and description.
- class onadata.libs.serializers.data_serializer.FLOIPListSerializer(*args, **kwargs)¶
Bases:
ListSerializerCustom ListSerializer for a FLOIP submission.
- create(*args)¶
- update(instance, validated_data)¶
- class onadata.libs.serializers.data_serializer.FLOIPSubmissionSerializer(*args, **kwargs)¶
Bases:
SubmissionSuccessMixin,SerializerFLOIP SubmmissionSerializer - Handles a row of FLOIP specification format.
- class Meta¶
Bases:
objectCall the list serializer class to create an instance.
- list_serializer_class¶
alias of
FLOIPListSerializer
- create(validated_data)¶
- run_validators(value)¶
Add read_only fields with defaults to value before running validators.
- to_internal_value(data)¶
Overrides validating rows in list data.
- update(instance, validated_data)¶
- validate(attrs)¶
Custom list data validator.
- class onadata.libs.serializers.data_serializer.InstanceHistorySerializer(*args, **kwargs)¶
Bases:
ModelSerializerInstanceHistorySerializer class - for the json field data representation.
- class Meta¶
Bases:
object- fields = ('json',)¶
- model¶
alias of
InstanceHistory
- to_representation(instance)¶
Object instance -> Dict of primitive datatypes.
- class onadata.libs.serializers.data_serializer.JSONSubmissionSerializer(*args, **kwargs)¶
Bases:
SubmissionSuccessMixin,SerializerJSON SubmissionSerializer - handles JSON submission data.
- create(*args)¶
- update(instance, validated_data)¶
- validate(attrs)¶
Custom submission validator in request data.
- class onadata.libs.serializers.data_serializer.JsonDataSerializer(*args, **kwargs)¶
Bases:
SerializerJSON DataSerializer class - for json field data representation.
- create(validated_data)¶
- to_representation(instance)¶
Object instance -> Dict of primitive datatypes.
- update(instance, validated_data)¶
- class onadata.libs.serializers.data_serializer.OSMSerializer(*args, **kwargs)¶
Bases:
SerializerOSM Serializer - represents OSM data.
- create(validated_data)¶
- property data¶
Returns the serialized data on the serializer.
- to_representation(instance)¶
Return a list of osm file objects from attachments.
- update(instance, validated_data)¶
- class onadata.libs.serializers.data_serializer.OSMSiteMapSerializer(*args, **kwargs)¶
Bases:
SerializerOSM SiteMap Serializer.
- create(validated_data)¶
- to_representation(instance)¶
Return a list of osm file objects from attachments.
- update(instance, validated_data)¶
- class onadata.libs.serializers.data_serializer.RapidProJSONSubmissionSerializer(*args, **kwargs)¶
Bases:
BaseRapidProSubmissionSerializerRapidpro SubmissionSerializer - handles RapidPro JSON webhook posts
- create(*args)¶
- update(instance, validated_data)¶
- class onadata.libs.serializers.data_serializer.RapidProSubmissionSerializer(*args, **kwargs)¶
Bases:
BaseRapidProSubmissionSerializerRapidpro SubmissionSerializer - handles Rapidpro webhook post.
- create(*args)¶
- update(instance, validated_data)¶
- class onadata.libs.serializers.data_serializer.SubmissionSerializer(*args, **kwargs)¶
Bases:
SubmissionSuccessMixin,SerializerXML SubmissionSerializer - handles creating a submission from XML.
- create(*args)¶
- update(*args)¶
- validate(attrs)¶
- class onadata.libs.serializers.data_serializer.SubmissionSuccessMixin¶
Bases:
objectSubmissionSuccessMixin - prepares submission success data/message.
- to_representation(instance)¶
Returns a dict with a successful submission message.
- class onadata.libs.serializers.data_serializer.TableauDataSerializer(*args, **kwargs)¶
Bases:
ModelSerializerTableauDataSerializer class - cleans out instance fields.
- to_representation(instance)¶
Object instance -> Dict of primitive datatypes.
- onadata.libs.serializers.data_serializer.create_submission(request, username, data_dict, xform_id, gen_uuid: bool = False)¶
Returns validated data object instances
- onadata.libs.serializers.data_serializer.get_request_and_username(context)¶
Returns request object and username
onadata.libs.serializers.dataview_serializer module¶
The DataViewSerializer - manage DataView objects.
- class onadata.libs.serializers.dataview_serializer.DataViewMinimalSerializer(*args, **kwargs)¶
Bases:
HyperlinkedModelSerializerThe DataViewMinimalSerializer - manage DataView objects.
- class Meta¶
Bases:
object- fields = ('dataviewid', 'name', 'url', 'xform', 'project', 'columns', 'query', 'matches_parent', 'date_created', 'instances_with_geopoints', 'date_modified')¶
- to_representation(instance)¶
Object instance -> Dict of primitive datatypes.
- class onadata.libs.serializers.dataview_serializer.DataViewSerializer(*args, **kwargs)¶
Bases:
HyperlinkedModelSerializerThe DataViewSerializer - manage DataView objects.
- class Meta¶
Bases:
object- fields = ('dataviewid', 'name', 'xform', 'project', 'columns', 'query', 'matches_parent', 'count', 'instances_with_geopoints', 'last_submission_time', 'has_hxl_support', 'url', 'date_created')¶
- validators = [<UniqueTogetherValidator(queryset=<QuerySet model=logger.DataView>, fields=('name', 'xform'))>]¶
- create(validated_data)¶
We have a bit of extra checking around this in order to provide descriptive messages when something goes wrong, but this method is essentially just:
return ExampleModel.objects.create(**validated_data)
If there are many to many fields present on the instance then they cannot be set until the model is instantiated, in which case the implementation is like so:
example_relationship = validated_data.pop(‘example_relationship’) instance = ExampleModel.objects.create(**validated_data) instance.example_relationship = example_relationship return instance
The default implementation also does not handle nested relationships. If you want to support writable nested relationships you’ll need to write an explicit .create() method.
- get_count(obj)¶
Returns the submission count for the data view,
- get_has_hxl_support(obj)¶
Returns true if a DataView has columns with HXL tags.
- get_instances_with_geopoints(obj)¶
Returns True if a DataView has submissions with geopoints.
- get_last_submission_time(obj)¶
Returns the last submission timestamp.
- to_representation(instance)¶
Object instance -> Dict of primitive datatypes.
- update(instance, validated_data)¶
- validate(attrs)¶
- validate_columns(value)¶
Checks the
valueis a list.
- validate_query(value)¶
Checks if the query filters in
valueare known.
- validate_xform(value)¶
Prevent changing a DataView’s source XForm after creation.
- onadata.libs.serializers.dataview_serializer.match_columns(data, instance=None)¶
Checks if the fields in two forms are a match.
- onadata.libs.serializers.dataview_serializer.validate_date(value)¶
Returns True if the
valueis a date string.
- onadata.libs.serializers.dataview_serializer.validate_datetime(value)¶
Returns True if the
valueis a datetime string.
onadata.libs.serializers.entity_serializer module¶
Entities serializer module.
- class onadata.libs.serializers.entity_serializer.EntityArraySerializer(*args, **kwargs)¶
Bases:
EntitySerializerSerializer for a list of Entities
- get_url(obj)¶
Returns the URL to an Entity list.
- class onadata.libs.serializers.entity_serializer.EntityDeleteSerializer(*args, **kwargs)¶
Bases:
SerializerSerializer for deleting Entities
- save(**kwargs)¶
- validate_entity_ids(ids)¶
- class onadata.libs.serializers.entity_serializer.EntityListArraySerializer(*args, **kwargs)¶
Bases:
HyperlinkedModelSerializerSerializer for an array of EntityList
- class Meta¶
Bases:
object- fields = ('url', 'id', 'name', 'project', 'public', 'date_created', 'date_modified', 'num_registration_forms', 'num_follow_up_forms', 'num_entities')¶
- model¶
alias of
EntityList
- get_num_entities(obj: EntityList) int¶
Returns number of Entities in the dataset
Adds cached counter to database counter
- get_num_follow_up_forms(obj: EntityList) int¶
Returns number of FollowUpForms consuming Entities from dataset
- get_num_registration_forms(obj: EntityList) int¶
Returns number of RegistrationForms for EntityList object
- class onadata.libs.serializers.entity_serializer.EntityListDetailSerializer(*args, **kwargs)¶
Bases:
EntityListArraySerializerSerializer for EntityList detail
- class Meta¶
Bases:
object- fields = ('id', 'name', 'project', 'public', 'date_created', 'date_modified', 'num_registration_forms', 'num_follow_up_forms', 'num_entities', 'registration_forms', 'follow_up_forms')¶
- model¶
alias of
EntityList
- class onadata.libs.serializers.entity_serializer.EntityListSerializer(*args, **kwargs)¶
Bases:
ModelSerializerDefault Serializer for EntityList
- class Meta¶
Bases:
object- fields = ('id', 'name', 'project', 'date_created', 'date_modified')¶
- model¶
alias of
EntityList
- read_only_fields = ('date_created', 'date_modified')¶
- validators = [<UniqueTogetherValidator(queryset=<QuerySet model=logger.EntityList>, fields=['name', 'project'])>]¶
- class onadata.libs.serializers.entity_serializer.EntitySerializer(*args, **kwargs)¶
Bases:
ModelSerializerSerializer for Entity
- class Meta¶
Bases:
object- fields = ('id', 'uuid', 'date_created', 'date_modified', 'json', 'label', 'data')¶
- read_only_fields = ('json',)¶
- create(validated_data)¶
Override create
- to_representation(instance)¶
Object instance -> Dict of primitive datatypes.
- update(instance, validated_data)¶
Override update
- validate(attrs)¶
Override validate
- validate_data(value)¶
Validate and cast data field values to strings
- validate_uuid(value)¶
Validate uuid field
- class onadata.libs.serializers.entity_serializer.FollowUpFormInlineSerializer(*args, **kwargs)¶
Bases:
HyperlinkedModelSerializerInline serializer for FollowUpForm
- class Meta¶
Bases:
object- fields = ('title', 'xform', 'id_string')¶
- model¶
alias of
FollowUpForm
- class onadata.libs.serializers.entity_serializer.ImportEntitiesSerializer(*args, **kwargs)¶
Bases:
SerializerSerializer for importing entities
- validate_csv_file(value)¶
Validate csv_file field
- class onadata.libs.serializers.entity_serializer.PropertySerializer(*args, **kwargs)¶
Bases:
ModelSerializerSerializer for EntityList property
- class Meta¶
Bases:
object- fields = ('name', 'entity_list')¶
- model¶
alias of
EntityListProperty
- validators = [<UniqueTogetherValidator(queryset=<QuerySet model=logger.EntityListProperty>, fields=['name', 'entity_list'])>]¶
- create(validated_data)¶
We have a bit of extra checking around this in order to provide descriptive messages when something goes wrong, but this method is essentially just:
return ExampleModel.objects.create(**validated_data)
If there are many to many fields present on the instance then they cannot be set until the model is instantiated, in which case the implementation is like so:
example_relationship = validated_data.pop(‘example_relationship’) instance = ExampleModel.objects.create(**validated_data) instance.example_relationship = example_relationship return instance
The default implementation also does not handle nested relationships. If you want to support writable nested relationships you’ll need to write an explicit .create() method.
- validate(attrs)¶
- class onadata.libs.serializers.entity_serializer.RegistrationFormInlineSerializer(*args, **kwargs)¶
Bases:
HyperlinkedModelSerializerInline serializer for RegistrationForm
- class Meta¶
Bases:
object- fields = ('title', 'xform', 'id_string', 'save_to')¶
- model¶
alias of
RegistrationForm
- get_save_to(obj: RegistrationForm) list[str]¶
Returns the save_to fields defined in the XLSForm
onadata.libs.serializers.export_serializer module¶
The ExportSerializer class - create, list exports.
- class onadata.libs.serializers.export_serializer.ExportSerializer(*args, **kwargs)¶
Bases:
HyperlinkedModelSerializerThe ExportSerializer class - create, list exports.
- class Meta¶
Bases:
object- fields = ('id', 'job_status', 'type', 'task_id', 'xform', 'date_created', 'filename', 'options', 'export_url', 'error_message')¶
- get_export_url(obj)¶
Returns the export download URL.
- get_job_status(obj)¶
Returns export async status text.
- get_type(obj)¶
Returns export type - CSV,XLS,…
onadata.libs.serializers.floip_serializer module¶
FloipSerializer module.
- class onadata.libs.serializers.floip_serializer.FloipListSerializer(*args, **kwargs)¶
Bases:
HyperlinkedModelSerializerFloipListSerializer class.
- class onadata.libs.serializers.floip_serializer.FloipSerializer(*args, **kwargs)¶
Bases:
HyperlinkedModelSerializerFloipSerializer class.
- class Meta¶
Bases:
object- fields = ('url', 'id', 'id_string', 'title', 'profile', 'created', 'modified', 'flow_results_specification_version', 'resources')¶
- create(validated_data)¶
We have a bit of extra checking around this in order to provide descriptive messages when something goes wrong, but this method is essentially just:
return ExampleModel.objects.create(**validated_data)
If there are many to many fields present on the instance then they cannot be set until the model is instantiated, in which case the implementation is like so:
example_relationship = validated_data.pop(‘example_relationship’) instance = ExampleModel.objects.create(**validated_data) instance.example_relationship = example_relationship return instance
The default implementation also does not handle nested relationships. If you want to support writable nested relationships you’ll need to write an explicit .create() method.
- get_flow_results_specification_version(value)¶
Returns the flow results specification version.
- get_profile(value)¶
Returns the data-package profile.
- get_resources(value)¶
Returns empty dict, a dummy holder for the eventually generated data package resources.
- to_representation(instance)¶
Object instance -> Dict of primitive datatypes.
- update(instance, validated_data)¶
- class onadata.libs.serializers.floip_serializer.FlowResultsResponse(session_id, responses, duplicates=None)¶
Bases:
objectFLowResultsResponse class to hold a list of submission ids.
- duplicates = 0¶
- id = None¶
- responses = []¶
- class onadata.libs.serializers.floip_serializer.FlowResultsResponseSerializer(*args, **kwargs)¶
Bases:
SerializerFlowResultsResponseSerializer for handling publishing of Flow Results Response package.
- create(validated_data)¶
- update(instance, validated_data)¶
- class onadata.libs.serializers.floip_serializer.ReadOnlyUUIDField(*args, **kwargs)¶
Bases:
ReadOnlyFieldCustom ReadOnlyField for UUID
- to_internal_value(data)¶
Transform the incoming primitive data into a native value.
- to_representation(value)¶
Transform the outgoing native value into primitive data.
- onadata.libs.serializers.floip_serializer.parse_responses(responses, session_id_index=3, question_index=4, answer_index=5, contact_id_index=2)¶
Returns individual submission for all responses in a flow-results responses package.
onadata.libs.serializers.geojson_serializer module¶
The GeoJsonSerializer class - uses the GeoJSON structure for submission data.
- class onadata.libs.serializers.geojson_serializer.GeoJsonListSerializer(*args, **kwargs)¶
Bases:
GeoJsonSerializerCreates a FeatureCollections
- to_representation(instance)¶
Serialize objects -> primitives.
- class onadata.libs.serializers.geojson_serializer.GeoJsonSerializer(*args, **kwargs)¶
Bases:
GeoFeatureModelSerializerThe GeoJsonSerializer class - uses the GeoJSON structure for submission data.
- class Meta¶
Bases:
object- fields = ('id', 'xform')¶
- geo_field = 'geom'¶
- id_field = False¶
- lookup_field = 'pk'¶
- to_representation(instance)¶
Serialize objects -> primitives.
- class onadata.libs.serializers.geojson_serializer.GeometryField(*args, **kwargs)¶
Bases:
GeometryFieldThe GeometryField class - representation for single GeometryField.
- to_representation(value)¶
Transform the outgoing native value into primitive data.
- onadata.libs.serializers.geojson_serializer.create_feature(instance, geo_field, fields)¶
Create a geojson feature from a single instance
- onadata.libs.serializers.geojson_serializer.geometry_from_dataview(dataview, instance_data)¶
Return a geometry collection containing selected DataView points.
- onadata.libs.serializers.geojson_serializer.geometry_from_string(points, simple_style)¶
Takes a string, returns a geometry object. simple_style param allows building geojson that adheres to the simplestyle-spec
- onadata.libs.serializers.geojson_serializer.is_polygon(point_list)¶
Takes a list of tuples and determines if it is a polygon
onadata.libs.serializers.merged_xform_serializer module¶
MergedXFormSerializer class
- class onadata.libs.serializers.merged_xform_serializer.CanMergeXForms¶
Bases:
objectValidate the user administers the project of every xform being merged and that the xforms are mergeable.
The checks run sequentially, stopping at the first failure. DRF runs every field validator and combines their errors, so as separate validators
has_matching_fieldswould reveal the fields of an xform the user cannot read even when the permission check fails.- message = 'You do not have permission to merge one or more of these forms.'¶
- requires_context = True¶
- class onadata.libs.serializers.merged_xform_serializer.MergedXFormSerializer(*args, **kwargs)¶
Bases:
HyperlinkedModelSerializerMergedXForm Serializer to create and update merged datasets
- class Meta¶
Bases:
object- fields = ('url', 'id', 'xforms', 'name', 'project', 'title', 'num_of_submissions', 'last_submission_time', 'uuid')¶
- model¶
alias of
MergedXForm
- write_only_fields = ('uuid',)¶
- create(validated_data)¶
We have a bit of extra checking around this in order to provide descriptive messages when something goes wrong, but this method is essentially just:
return ExampleModel.objects.create(**validated_data)
If there are many to many fields present on the instance then they cannot be set until the model is instantiated, in which case the implementation is like so:
example_relationship = validated_data.pop(‘example_relationship’) instance = ExampleModel.objects.create(**validated_data) instance.example_relationship = example_relationship return instance
The default implementation also does not handle nested relationships. If you want to support writable nested relationships you’ll need to write an explicit .create() method.
- get_last_submission_time(obj)¶
Return datetime of last submission from all forms
- get_num_of_submissions(obj)¶
Return number of submissions either from the aggregate ‘number_of_submissions’ in the queryset or from the xform field ‘num_of_submissions’.
- validate_project(value)¶
Validate the user can add a form to the project
- class onadata.libs.serializers.merged_xform_serializer.XFormListField(*args, **kwargs)¶
Bases:
ManyRelatedFieldXFormSerializer
- to_representation(iterable)¶
Transform the outgoing native value into primitive data.
- class onadata.libs.serializers.merged_xform_serializer.XFormSerializer¶
Bases:
HyperlinkedModelSerializer
- onadata.libs.serializers.merged_xform_serializer.get_merged_xform_survey(xforms)¶
Genertates a new pyxform survey object from the intersection of fields of the xforms being merged.
- Parameters:
xforms – A list of XForms of at least length 2.
- onadata.libs.serializers.merged_xform_serializer.has_matching_fields(value)¶
Validate we have some matching fields in the xforms being merged.
- onadata.libs.serializers.merged_xform_serializer.minimum_two_xforms(value)¶
Validate at least 2 xforms are provided
onadata.libs.serializers.metadata_serializer module¶
MetaData Serializer
- class onadata.libs.serializers.metadata_serializer.MetaDataSerializer(*args, **kwargs)¶
Bases:
HyperlinkedModelSerializerMetaData HyperlinkedModelSerializer
- class Meta¶
Bases:
object- fields = ('id', 'xform', 'project', 'instance', 'data_value', 'data_type', 'data_file', 'extra_data', 'data_file_type', 'media_url', 'file_hash', 'url', 'date_created')¶
- create(validated_data)¶
We have a bit of extra checking around this in order to provide descriptive messages when something goes wrong, but this method is essentially just:
return ExampleModel.objects.create(**validated_data)
If there are many to many fields present on the instance then they cannot be set until the model is instantiated, in which case the implementation is like so:
example_relationship = validated_data.pop(‘example_relationship’) instance = ExampleModel.objects.create(**validated_data) instance.example_relationship = example_relationship return instance
The default implementation also does not handle nested relationships. If you want to support writable nested relationships you’ll need to write an explicit .create() method.
- get_content_object(validated_data)¶
Returns the validated ‘xform’ or ‘project’ or ‘instance’ ids being linked to the metadata.
- get_media_url(obj)¶
Returns media URL for given metadata
- to_representation(instance)¶
Use the filename-aware URL for both uploaded-file URL fields.
- update(instance, validated_data)¶
- validate(attrs)¶
Validate url if we are adding a media uri instead of a media file
- onadata.libs.serializers.metadata_serializer.create_xform_meta_permissions(data_value, xform)¶
Creates and updates xform meta permissions.
- Parameters:
data_value – example: “editor-no-download|dataentry-only|readonly-no-download”
xform – The xform object for which to set metadata
- Returns:
The created metadata object
- Raises:
serializers.ValidationError – If the permissions format is invalid
- onadata.libs.serializers.metadata_serializer.get_linked_object(parts)¶
Returns an XForm or DataView object
Raises 404 Exception if object is not found. Raises serializers.ValidationError if the format of the linked object is not valid.
onadata.libs.serializers.monthly_submissions_serializer module¶
Monthly submissions serializer
- class onadata.libs.serializers.monthly_submissions_serializer.MonthlySubmissionsListSerializer(*args, **kwargs)¶
Bases:
ListSerializerMonthly submissions serializer
- to_representation(data)¶
List of object instances -> List of dicts of primitive datatypes.
- update(instance, validated_data)¶
- class onadata.libs.serializers.monthly_submissions_serializer.MonthlySubmissionsSerializer(*args, **kwargs)¶
Bases:
SerializerMonthly submissions serializer
- class Meta¶
Bases:
object- list_serializer_class¶
alias of
MonthlySubmissionsListSerializer
- create(validated_data)¶
- to_representation(instance)¶
Returns the total number of private/public submissions for a user
- update(instance, validated_data)¶
onadata.libs.serializers.note_serializer module¶
Note Serializers Module
- class onadata.libs.serializers.note_serializer.NoteSerializer(*args, **kwargs)¶
Bases:
ModelSerializerNoteSerializer class
- class Meta¶
Bases:
objectMeta Options for NoteSerializer
- fields = ('id', 'note', 'instance', 'instance_field', 'created_by', 'date_created', 'date_modified', 'owner')¶
- create(validated_data)¶
We have a bit of extra checking around this in order to provide descriptive messages when something goes wrong, but this method is essentially just:
return ExampleModel.objects.create(**validated_data)
If there are many to many fields present on the instance then they cannot be set until the model is instantiated, in which case the implementation is like so:
example_relationship = validated_data.pop(‘example_relationship’) instance = ExampleModel.objects.create(**validated_data) instance.example_relationship = example_relationship return instance
The default implementation also does not handle nested relationships. If you want to support writable nested relationships you’ll need to write an explicit .create() method.
- get_owner(obj)¶
Custom method return the username of Note creator
- validate(attrs)¶
onadata.libs.serializers.open_data_serializer module¶
The OpenDataSerializer class - create/list OpenData model data.
- class onadata.libs.serializers.open_data_serializer.OpenDataCreateSerializer(*args, **kwargs)¶
Bases:
OpenDataSerializerCreate serializer that returns a capability UUID once to its creator.
- class onadata.libs.serializers.open_data_serializer.OpenDataSerializer(*args, **kwargs)¶
Bases:
ModelSerializerThe OpenDataSerializer class - create/list OpenData model data.
- create(validated_data)¶
We have a bit of extra checking around this in order to provide descriptive messages when something goes wrong, but this method is essentially just:
return ExampleModel.objects.create(**validated_data)
If there are many to many fields present on the instance then they cannot be set until the model is instantiated, in which case the implementation is like so:
example_relationship = validated_data.pop(‘example_relationship’) instance = ExampleModel.objects.create(**validated_data) instance.example_relationship = example_relationship return instance
The default implementation also does not handle nested relationships. If you want to support writable nested relationships you’ll need to write an explicit .create() method.
- update(instance, validated_data)¶
- validate_data_type(value)¶
OpenData capabilities are only supported for XForms.
- onadata.libs.serializers.open_data_serializer.get_data(request_data, update=False)¶
return a namedtuple with error, message and data values.
- onadata.libs.serializers.open_data_serializer.get_manageable_xforms(user)¶
Return active XForms the user is allowed to change.
onadata.libs.serializers.organization_member_serializer module¶
The OrganizationMemberSerializer - manages a users access in an organization
- class onadata.libs.serializers.organization_member_serializer.OrganizationMemberSerializer(*args, **kwargs)¶
Bases:
SerializerThe OrganizationMemberSerializer - manages a users access in an organization
- create(validated_data)¶
- property data¶
- update(instance, validated_data)¶
- validate(attrs)¶
- validate_role(value)¶
check that the role exists
- validate_username(value)¶
Check that the username exists
onadata.libs.serializers.organization_serializer module¶
Organization Serializer
- class onadata.libs.serializers.organization_serializer.KMSKeyInlineSerializer(*args, **kwargs)¶
Bases:
ModelSerializerSerializer for KMSKey model.
- class Meta¶
Bases:
object- fields = ('id', 'description', 'date_created', 'is_active', 'is_expired', 'expiry_date', 'grace_end_date', 'is_automatic')¶
- model¶
alias of
KMSKey
- get_is_automatic(obj)¶
Whether the key was created automatically.
- class onadata.libs.serializers.organization_serializer.OrganizationSerializer(*args, **kwargs)¶
Bases:
HyperlinkedModelSerializerOrganization profile serializer
- class Meta¶
Bases:
object- exclude = ('created_by', 'is_organization', 'organization')¶
- model¶
alias of
OrganizationProfile
- owner_only_fields = ('metadata', 'email', 'encryption_keys')¶
- create(validated_data)¶
Create an organization profile.
- get_encryption_keys(obj)¶
Get the encryption keys for organization.
- get_users(obj)¶
Return organization members.
- update(instance, validated_data)¶
Update organization profile properties.
- validate_org(value)¶
Validate organization name.
onadata.libs.serializers.project_invitation_serializer module¶
Project invitations serializer
- class onadata.libs.serializers.project_invitation_serializer.ProjectInvitationResendSerializer(*args, **kwargs)¶
Bases:
ProjectInvitationUpdateBaseSerializerSerializer for resending a project invitation
- save(**kwargs)¶
- validate_invitation_id(invitation_id)¶
Validate invitation_id field
- class onadata.libs.serializers.project_invitation_serializer.ProjectInvitationRevokeSerializer(*args, **kwargs)¶
Bases:
ProjectInvitationUpdateBaseSerializerSerializer for revoking a project invitation
- save(**kwargs)¶
- validate_invitation_id(invitation_id)¶
Validate invitation_id field
- class onadata.libs.serializers.project_invitation_serializer.ProjectInvitationSerializer(*args, **kwargs)¶
Bases:
ModelSerializerSerializer for ProjectInvitation model object
- class Meta¶
Bases:
object- extra_kwargs = {'project': {'write_only': True}}¶
- fields = ('id', 'email', 'project', 'role', 'status')¶
- model¶
alias of
ProjectInvitation
- read_only_fields = ('status',)¶
- create(validated_data)¶
We have a bit of extra checking around this in order to provide descriptive messages when something goes wrong, but this method is essentially just:
return ExampleModel.objects.create(**validated_data)
If there are many to many fields present on the instance then they cannot be set until the model is instantiated, in which case the implementation is like so:
example_relationship = validated_data.pop(‘example_relationship’) instance = ExampleModel.objects.create(**validated_data) instance.example_relationship = example_relationship return instance
The default implementation also does not handle nested relationships. If you want to support writable nested relationships you’ll need to write an explicit .create() method.
- update(instance, validated_data)¶
- validate_email(email)¶
Validate email field
- validate_role(role)¶
Validate role field
onadata.libs.serializers.project_serializer module¶
Project Serializer module.
- class onadata.libs.serializers.project_serializer.BaseProjectSerializer(*args, **kwargs)¶
Bases:
PublicProjectFieldsMixin,HyperlinkedModelSerializerBaseProjectSerializer class.
- class Meta¶
Bases:
object- fields = ['url', 'projectid', 'owner', 'created_by', 'metadata', 'starred', 'users', 'forms', 'public', 'tags', 'num_datasets', 'last_submission_date', 'teams', 'name', 'date_created', 'date_modified', 'deleted_at']¶
- get_forms(obj)¶
Return list of xforms in the project.
- get_last_submission_date(obj)¶
Return the most recent submission date to any of the projects datasets.
- get_num_datasets(obj)¶
Return the number of datasets attached to the project.
- get_starred(obj)¶
Return True if request user has starred this project.
- get_teams(obj)¶
Return the teams with access to the project.
- get_users(obj)¶
Return a list of users and organizations that have access to the project.
- class onadata.libs.serializers.project_serializer.BaseProjectXFormSerializer(*args, **kwargs)¶
Bases:
XFormEntityListsMixin,HyperlinkedModelSerializerBaseProjectXFormSerializer class.
- class onadata.libs.serializers.project_serializer.ProjectSerializer(*args, **kwargs)¶
Bases:
PublicProjectFieldsMixin,HyperlinkedModelSerializerProjectSerializer class - creates and updates a project.
- class Meta¶
Bases:
object- fields = ['url', 'projectid', 'name', 'owner', 'created_by', 'metadata', 'starred', 'users', 'forms', 'public', 'tags', 'num_datasets', 'last_submission_date', 'teams', 'data_views', 'date_created', 'date_modified']¶
- create(*args)¶
We have a bit of extra checking around this in order to provide descriptive messages when something goes wrong, but this method is essentially just:
return ExampleModel.objects.create(**validated_data)
If there are many to many fields present on the instance then they cannot be set until the model is instantiated, in which case the implementation is like so:
example_relationship = validated_data.pop(‘example_relationship’) instance = ExampleModel.objects.create(**validated_data) instance.example_relationship = example_relationship return instance
The default implementation also does not handle nested relationships. If you want to support writable nested relationships you’ll need to write an explicit .create() method.
- get_data_views(obj)¶
Return a list of filtered datasets.
- get_forms(obj)¶
Return list of xforms in the project.
- get_last_submission_date(obj)¶
Return the most recent submission date to any of the projects datasets.
- get_num_datasets(obj)¶
Return the number of datasets attached to the project.
- get_starred(obj)¶
Return True if request user has starred this project.
- get_teams(obj)¶
Return the teams with access to the project.
- get_users(obj)¶
Return a list of users and organizations that have access to the project.
- update(instance, validated_data)¶
Update project properties.
- validate(attrs)¶
Validate the project name does not exist and the user has the permissions to create a project in the organization.
- validate_metadata(value)¶
Validate metadaata is a valid JSON value.
- validate_public(value)¶
Validate the public field
- class onadata.libs.serializers.project_serializer.ProjectXFormSerializer(*args, **kwargs)¶
Bases:
BaseProjectXFormSerializerProjectXFormSerializer class - to return project xform info.
- class Meta¶
Bases:
object- fields = ('name', 'formid', 'id_string', 'num_of_submissions', 'downloadable', 'encrypted', 'is_managed', 'published_by_formbuilder', 'last_submission_time', 'date_created', 'url', 'last_updated_at', 'is_merged_dataset', 'contributes_entities_to', 'consumes_entities_from')¶
- get_published_by_formbuilder(obj)¶
Returns true if the form was published by formbuilder.
- class onadata.libs.serializers.project_serializer.PublicProjectFieldsMixin¶
Bases:
objectRemove project administration fields when a requester only has access because the project is public.
- get_fields()¶
Return serializer fields, excluding internal fields for public access.
- is_public_access(instance)¶
Return True if the request should receive the public-safe shape.
- public_excluded_fields = {'created_by', 'metadata', 'owner', 'teams', 'users'}¶
- to_representation(instance)¶
Remove internal fields from public-only list items.
- onadata.libs.serializers.project_serializer.can_add_project_to_profile(user, organization)¶
Check if user has permission to add a project to a profile.
- onadata.libs.serializers.project_serializer.get_last_submission_date(project)¶
Return the most recent submission date to any of the projects datasets.
- Parameters:
project – The project to find the last submission date for.
- onadata.libs.serializers.project_serializer.get_num_datasets(project)¶
Return the number of datasets attached to the project.
- Parameters:
project – The project to find datasets for.
- onadata.libs.serializers.project_serializer.get_project_xforms(project)¶
Returns an XForm queryset from project. The prefetched xforms_prefetch or xform_set.filter() queryset.
- onadata.libs.serializers.project_serializer.get_team_permissions(team, project)¶
Return team permissions.
- onadata.libs.serializers.project_serializer.get_teams(project)¶
Return the teams with access to the project.
- onadata.libs.serializers.project_serializer.get_users(project, context, all_perms=True)¶
Return a list of users and organizations that have access to the project.
- onadata.libs.serializers.project_serializer.is_starred(project, request)¶
Return True if the request.user has starred this project.
- onadata.libs.serializers.project_serializer.set_owners_permission(user, project)¶
Give the user owner permission
onadata.libs.serializers.restservices_serializer module¶
The RestServiceSerializer class - create, list a rest service.
- class onadata.libs.serializers.restservices_serializer.RestServiceSerializer(*args, **kwargs)¶
Bases:
ModelSerializerThe RestServiceSerializer class - create, list a rest service.
- class Meta¶
Bases:
object- fields = ('id', 'xform', 'name', 'service_url', 'date_created', 'date_modified', 'active', 'inactive_reason')¶
- model¶
alias of
RestService
onadata.libs.serializers.stats_serializer module¶
Stats API endpoint serializer.
- class onadata.libs.serializers.stats_serializer.StatsInstanceSerializer(*args, **kwargs)¶
Bases:
SerializerThe stats instance serializer - calls the relevant statistical functions and returns the results against form data submissions.
- to_representation(instance)¶
Returns the result of the selected stats function.
- class onadata.libs.serializers.stats_serializer.StatsSerializer(*args, **kwargs)¶
Bases:
HyperlinkedModelSerializerStats serializer for use with the list API endpoint, summary of the stats endpoints.
- class onadata.libs.serializers.stats_serializer.SubmissionStatsInstanceSerializer(*args, **kwargs)¶
Bases:
SerializerSubmissions stats instance serializer - provides submission summary stats.
- property data¶
Return the data as a list with ReturnList instead of a python object.
- to_representation(instance)¶
Returns submissions stats grouped by a specified field.
- class onadata.libs.serializers.stats_serializer.SubmissionStatsSerializer(*args, **kwargs)¶
Bases:
HyperlinkedModelSerializerSubmission stats serializer for use with the list API endpoint, summary of the submission stats endpoints.
onadata.libs.serializers.submission_review_serializer module¶
Submission Review Serializer Module
- class onadata.libs.serializers.submission_review_serializer.SubmissionReviewSerializer(*args, **kwargs)¶
Bases:
ModelSerializerSubmissionReviewSerializer Class
- class Meta¶
Bases:
objectMeta Options for SubmissionReviewSerializer
- fields = ('id', 'instance', 'created_by', 'status', 'date_created', 'note', 'date_modified')¶
- model¶
alias of
SubmissionReview
- create(validated_data)¶
Custom create method for SubmissionReviewSerializer
- update(instance, validated_data)¶
Custom update method for SubmissionReviewSerializer
- validate(attrs)¶
Custom Validate Method for SubmissionReviewSerializer
onadata.libs.serializers.tag_list_serializer module¶
Tags list serializer module.
onadata.libs.serializers.team_serializer module¶
The TeamSerializer class - access and update Team model objects.
- class onadata.libs.serializers.team_serializer.TeamSerializer(*args, **kwargs)¶
Bases:
SerializerThe TeamSerializer class - access and update Team model objects.
- create(validated_data)¶
- get_projects(obj)¶
Organization Projects with default role
- get_users(obj)¶
Returns a users in a team.
- update(instance, validated_data)¶
onadata.libs.serializers.textit_serializer module¶
The TextItSerializer - supports creating TextIt integration service.
- class onadata.libs.serializers.textit_serializer.TextItSerializer(*args, **kwargs)¶
Bases:
SerializerThe TextItSerializer - supports creating TextIt integration service.
- create(validated_data)¶
- to_representation(instance)¶
Object instance -> Dict of primitive datatypes.
- update(instance, validated_data)¶
onadata.libs.serializers.user_profile_serializer module¶
UserProfile Serializers.
- class onadata.libs.serializers.user_profile_serializer.UserProfileSerializer(*args, **kwargs)¶
Bases:
HyperlinkedModelSerializerUserProfile serializer.
- class Meta¶
Bases:
object- fields = ('id', 'is_org', 'url', 'username', 'password', 'first_name', 'last_name', 'email', 'city', 'country', 'organization', 'website', 'twitter', 'gravatar', 'require_auth', 'user', 'metadata', 'joined_on', 'name')¶
- model¶
alias of
UserProfile
- owner_only_fields = ('metadata',)¶
- create(*args)¶
We have a bit of extra checking around this in order to provide descriptive messages when something goes wrong, but this method is essentially just:
return ExampleModel.objects.create(**validated_data)
If there are many to many fields present on the instance then they cannot be set until the model is instantiated, in which case the implementation is like so:
example_relationship = validated_data.pop(‘example_relationship’) instance = ExampleModel.objects.create(**validated_data) instance.example_relationship = example_relationship return instance
The default implementation also does not handle nested relationships. If you want to support writable nested relationships you’ll need to write an explicit .create() method.
- get_is_org(obj)¶
Returns True if it is an organization profile.
- to_representation(instance)¶
Serialize objects -> primitives.
- update(instance, validated_data)¶
Update user properties.
- validate(attrs)¶
- validate_email(value)¶
Checks if user with the same email has already been registered.
- validate_twitter(value)¶
Checks if the twitter handle is valid.
- validate_username(value)¶
Validate username.
- class onadata.libs.serializers.user_profile_serializer.UserProfileWithTokenSerializer(*args, **kwargs)¶
Bases:
HyperlinkedModelSerializerUser Profile Serializer that includes the users API Tokens.
- class Meta¶
Bases:
object- fields = ('url', 'username', 'name', 'email', 'city', 'country', 'organization', 'website', 'twitter', 'gravatar', 'require_auth', 'user', 'api_token', 'temp_token')¶
- model¶
alias of
UserProfile
- get_api_token(obj)¶
Returns user’s API Token.
- get_temp_token(obj)¶
This should return a valid temp token for this user profile.
- onadata.libs.serializers.user_profile_serializer.get_audit_values(profile, fields)¶
Returns the current values of the audited
fieldsonprofile.Each field is an attribute path on the profile, e.g.
user.email; the values are keyed by the attribute name.
- onadata.libs.serializers.user_profile_serializer.send_profile_updated_message(profile, old_values, fields, user)¶
Audit logs the audited
fieldsofprofilechanged sinceold_values.Each changed field maps to its old and new value, except contact fields which are recorded without their values.
onadata.libs.serializers.user_serializer module¶
The UserSerializer class - Users serializer
onadata.libs.serializers.widget_serializer module¶
Widget serializer
- class onadata.libs.serializers.widget_serializer.GenericRelatedField(*args, **kwargs)¶
Bases:
HyperlinkedRelatedFieldGenericRelatedField - handle related field relations for XForm and DataView
- default_error_messages = {'incorrect_match': '`{input}` is not a valid relation.'}¶
- to_internal_value(data)¶
Verifies that
datais a valid URL.
- to_representation(value)¶
Set’s the self.view_name based on the type of
value.
- use_pk_only_optimization()¶
- class onadata.libs.serializers.widget_serializer.WidgetSerializer¶
Bases:
HyperlinkedModelSerializer- class Meta¶
Bases:
objectMeta model - specifies the fields in the Model Widget for the serializer
- fields = ('id', 'url', 'key', 'title', 'description', 'widget_type', 'order', 'view_type', 'column', 'group_by', 'content_object', 'data', 'aggregation', 'metadata')¶
- get_data(obj)¶
Return the Widget.query_data(obj)
- validate(attrs)¶
Validate the effective widget fields for creates and updates.
- validate_content_object(value)¶
Validate if a user is the owner f the organization.
onadata.libs.serializers.xform_serializer module¶
XForm model serialization.
- class onadata.libs.serializers.xform_serializer.MultiLookupIdentityField(*args, **kwargs)¶
Bases:
HyperlinkedIdentityFieldCustom HyperlinkedIdentityField that supports multiple lookup fields.
Credits: https://stackoverflow.com/a/31161585
- get_url(obj, view_name, request, format)¶
Returns URL to the given object.
- lookup_fields = (('pk', 'pk'),)¶
- class onadata.libs.serializers.xform_serializer.XFormBaseSerializer(*args, **kwargs)¶
Bases:
XFormMixin,HyperlinkedModelSerializerXForm base serializer.
- class Meta¶
Bases:
object- fields = ('url', 'project', 'formid', 'title', 'id_string', 'sms_id_string', 'version', 'uuid', 'date_created', 'date_modified', 'last_updated_at', 'description', 'downloadable', 'owner', 'created_by', 'public', 'public_data', 'public_key', 'require_auth', 'tags', 'enketo_url', 'enketo_preview_url', 'enketo_single_submit_url', 'num_of_submissions', 'num_of_pending_decryption_submissions', 'num_of_decrypted_submissions', 'last_submission_time', 'xls_available', 'allows_sms', 'encrypted', 'bamboo_dataset', 'instances_with_geopoints', 'instances_with_osm', 'has_hxl_support', 'hash', 'is_merged_dataset', 'is_instance_json_regenerated', 'is_managed', 'contributes_entities_to', 'consumes_entities_from', 'data_views', 'users')¶
- read_only_fields = ('date_created', 'date_modified', 'encrypted', 'bamboo_dataset', 'last_submission_time', 'is_merged_dataset', 'xls_available', 'is_managed')¶
- class onadata.libs.serializers.xform_serializer.XFormCreateSerializer(*args, **kwargs)¶
Bases:
XFormSerializerXForm serializer that is only relevant during the XForm publishing process.
- class Meta¶
Bases:
Meta- fields = ('url', 'project', 'formid', 'title', 'id_string', 'sms_id_string', 'version', 'uuid', 'date_created', 'date_modified', 'last_updated_at', 'description', 'downloadable', 'owner', 'created_by', 'public', 'public_data', 'public_key', 'require_auth', 'tags', 'enketo_url', 'enketo_preview_url', 'enketo_single_submit_url', 'num_of_submissions', 'submission_count_for_today', 'num_of_pending_decryption_submissions', 'num_of_decrypted_submissions', 'last_submission_time', 'xls_available', 'allows_sms', 'encrypted', 'bamboo_dataset', 'instances_with_geopoints', 'instances_with_osm', 'has_hxl_support', 'hash', 'is_merged_dataset', 'is_instance_json_regenerated', 'is_managed', 'enable_kms_encryption', 'contributes_entities_to', 'consumes_entities_from', 'form_versions', 'data_views', 'metadata', 'users', 'has_id_string_changed')¶
- get_has_id_string_changed(obj)¶
Returns the value of
obj.has_id_string_changed
- class onadata.libs.serializers.xform_serializer.XFormEntityListsMixin¶
Bases:
objectMixin for the EntityLists an XForm contributes to or consumes from
- class onadata.libs.serializers.xform_serializer.XFormListSerializer(*args, **kwargs)¶
Bases:
SerializerXForm serializer for OpenRosa form list API.
- get_manifest_url(obj)¶
Return manifest URL.
- get_url(obj)¶
Returns XForm download URL.
- class onadata.libs.serializers.xform_serializer.XFormManifestSerializer(*args, **kwargs)¶
Bases:
SerializerXForm Manifest serializer class.
- get_filename(obj)¶
Returns media filename.
- get_hash(obj)¶
Returns MD5 hash based on last_submission_time for a media linked form.
- get_url(obj)¶
Return media download URL.
- class onadata.libs.serializers.xform_serializer.XFormMixin¶
Bases:
XFormEntityListsMixinXForm mixins
- get_data_views(obj)¶
Returns a list of filtered datasets linked to the form.
- get_enketo_preview_url(obj)¶
Returns preview Enketo URL for given
obj.
- get_enketo_single_submit_url(obj)¶
Returns single submit Enketo URL for given
obj.
- get_enketo_url(obj)¶
Returns Enketo URL for given
obj.
- get_last_submission_time(obj)¶
Return datetime of last submission
If a form is a merged dataset then it is picked from the list of forms attached to that merged dataset.
- get_num_of_pending_decryption_submissions(obj)¶
Return the number of submissions pending decryption for the form.
- get_num_of_submissions(obj)¶
Returns number of submissions.
- get_users(obj)¶
Returns a list of users based on XForm permissions.
- get_xls_available(obj)¶
Returns True if
obj.xls.urlis not None, indicates XLS is present.
- class onadata.libs.serializers.xform_serializer.XFormSerializer(*args, **kwargs)¶
Bases:
XFormBaseSerializerXForm model serializer
- class Meta¶
Bases:
Meta- fields = ('url', 'project', 'formid', 'title', 'id_string', 'sms_id_string', 'version', 'uuid', 'date_created', 'date_modified', 'last_updated_at', 'description', 'downloadable', 'owner', 'created_by', 'public', 'public_data', 'public_key', 'require_auth', 'tags', 'enketo_url', 'enketo_preview_url', 'enketo_single_submit_url', 'num_of_submissions', 'submission_count_for_today', 'num_of_pending_decryption_submissions', 'num_of_decrypted_submissions', 'last_submission_time', 'xls_available', 'allows_sms', 'encrypted', 'bamboo_dataset', 'instances_with_geopoints', 'instances_with_osm', 'has_hxl_support', 'hash', 'is_merged_dataset', 'is_instance_json_regenerated', 'is_managed', 'enable_kms_encryption', 'contributes_entities_to', 'consumes_entities_from', 'form_versions', 'data_views', 'metadata', 'users')¶
- get_form_versions(obj)¶
Returns all form versions.
- get_metadata(obj)¶
Returns XForn
objmetadata.
- update(instance, validated_data)¶
- validate_public(value)¶
Validate the public field
- validate_public_data(value)¶
Validate the public_data field
- validate_public_key(value)¶
Checks that the given RSA public key is a valid key by trying to use the key data to create an RSA key object using the cryptography package
- class onadata.libs.serializers.xform_serializer.XFormVersionListSerializer(*args, **kwargs)¶
Bases:
ModelSerializerXFormVersion list API serializer
- class Meta¶
Bases:
object- exclude = ('json', 'xls', 'id')¶
- model¶
alias of
XFormVersion
- onadata.libs.serializers.xform_serializer.user_to_username(item)¶
Replaces the item[“user”] user object with the to user.username.