onadata.apps.api.viewsets package¶
Subpackages¶
Submodules¶
onadata.apps.api.viewsets.attachment_viewset module¶
The /api/v1/attachments API implementation.
- class onadata.apps.api.viewsets.attachment_viewset.AttachmentViewSet(**kwargs)¶
Bases:
AuthenticateHeaderMixin,CacheControlMixin,ETagsMixin,ReadOnlyModelViewSetGET, List attachments implementation.
- content_negotiation_class¶
alias of
MediaFileContentNegotiation
- count(request, *args, **kwargs)¶
Returns the number of attachments the user has access to.
- filter_backends = (<class 'onadata.libs.filters.AttachmentFilter'>, <class 'onadata.libs.filters.AttachmentTypeFilter'>)¶
- list(request, *args, **kwargs)¶
- lookup_field = 'pk'¶
- pagination_class¶
alias of
StandardPageNumberPagination
- permission_classes = (<class 'onadata.apps.api.permissions.AttachmentObjectPermissions'>,)¶
- renderer_classes = (<class 'rest_framework.renderers.JSONRenderer'>, <class 'rest_framework.renderers.BrowsableAPIRenderer'>, <class 'onadata.libs.renderers.renderers.MediaFileRenderer'>)¶
- retrieve(request, *args, **kwargs)¶
- serializer_class¶
alias of
AttachmentSerializer
- onadata.apps.api.viewsets.attachment_viewset.get_attachment_data(attachment, suffix)¶
Returns attachment file contents.
onadata.apps.api.viewsets.briefcase_viewset module¶
The /briefcase API implementation.
- class onadata.apps.api.viewsets.briefcase_viewset.BriefcaseViewset(**kwargs)¶
Bases:
CreateModelMixin,RetrieveModelMixin,ListModelMixin,GenericViewSetImplements the [Briefcase Aggregate API]( https://code.google.com/p/opendatakit/wiki/BriefcaseAggregateAPI).
- authentication_classes = (<class 'onadata.libs.authentication.DigestAuthentication'>, <class 'rest_framework.authentication.TokenAuthentication'>)¶
- create(request, *args, **kwargs)¶
Accepts an XForm XML and publishes it as a form.
- filter_backends = (<class 'onadata.libs.filters.AnonDjangoObjectPermissionFilter'>,)¶
- filter_queryset(queryset)¶
Filters an XForm submission instances using ODK Aggregate query parameters.
- get_object(queryset=None)¶
Returns an Instance submission object for the given UUID.
- list(request, *args, **kwargs)¶
Returns a list of submissions with reference submission download.
- manifest(request, *args, **kwargs)¶
Returns list of media content.
- media(request, *args, **kwargs)¶
Returns a single media content.
- permission_classes = (<class 'rest_framework.permissions.IsAuthenticated'>, <class 'onadata.apps.api.permissions.ViewDjangoObjectPermissions'>)¶
- renderer_classes = (<class 'onadata.libs.renderers.renderers.TemplateXMLRenderer'>, <class 'rest_framework.renderers.BrowsableAPIRenderer'>)¶
- retrieve(request, *args, **kwargs)¶
Returns a single submission XML for download.
- serializer_class¶
alias of
XFormListSerializer
- template_name = 'openrosa_response.xml'¶
onadata.apps.api.viewsets.charts_viewset module¶
/charts api endpoint for chart data and chart widgets
- class onadata.apps.api.viewsets.charts_viewset.ChartBrowsableAPIRenderer¶
Bases:
BrowsableAPIRendererView chart for specific fields in a form or dataset.
- get_content(renderer, data, accepted_media_type, renderer_context)¶
Get the content as if it had been rendered by the default non-documenting renderer.
- get_default_renderer(view)¶
Return an instance of the first valid renderer. (Don’t use another documenting renderer.)
- class onadata.apps.api.viewsets.charts_viewset.ChartsViewSet(**kwargs)¶
Bases:
AnonymousUserPublicFormsMixin,AuthenticateHeaderMixin,CacheControlMixin,ETagsMixin,ReadOnlyModelViewSetChartsViewSet: /charts api endpoint for chart data and chart widgets
- filter_backends = (<class 'onadata.libs.filters.AnonDjangoObjectPermissionFilter'>, <class 'onadata.libs.filters.ActiveXFormOrganizationFilter'>)¶
- lookup_field = 'pk'¶
- permission_classes = [<class 'onadata.apps.api.permissions.XFormPermissions'>]¶
- renderer_classes = (<class 'onadata.libs.renderers.renderers.DecimalJSONRenderer'>, <class 'onadata.apps.api.viewsets.charts_viewset.ChartBrowsableAPIRenderer'>, <class 'rest_framework.renderers.TemplateHTMLRenderer'>)¶
- retrieve(request, *args, **kwargs)¶
- serializer_class¶
alias of
ChartSerializer
- onadata.apps.api.viewsets.charts_viewset.get_form_field_chart_url(url, field)¶
Append ‘field_name’ to a given url
onadata.apps.api.viewsets.connect_viewset module¶
The /api/v1/user API implementation
User authentication API support to access API tokens.
- class onadata.apps.api.viewsets.connect_viewset.ConnectViewSet(**kwargs)¶
Bases:
CreateModelMixin,AuthenticateHeaderMixin,CacheControlMixin,ETagsMixin,ObjectLookupMixin,GenericViewSetThis endpoint allows you retrieve the authenticated user’s profile info.
- create(request, *args, **kwargs)¶
- expire(request, *args, **kwargs)¶
Implements the /expire endpoint
Allows a user to expire a TempToken.
- list(request, *args, **kwargs)¶
Implements the List endpoint - returns authentication tokens for current user.
- lookup_field = 'user'¶
- odk_token(request, *args, **kwargs)¶
Implements the /odk_token endpoint
Allows a user to get or create or expire an ODKToken for use with ODK Collect.
- permission_classes = (<class 'onadata.apps.api.permissions.ConnectViewsetPermissions'>,)¶
- regenerate_auth_token(request, *args, **kwargs)¶
Implements the /regenerate_auth_token endpoint
Allows a user to expire and create a new API Token.
- serializer_class¶
alias of
UserProfileWithTokenSerializer
- starred(request, *args, **kwargs)¶
Return projects starred for this user.
- onadata.apps.api.viewsets.connect_viewset.user_profile_w_token_response(request, status_code)¶
Returns authenticated user profile
onadata.apps.api.viewsets.data_viewset module¶
The /data API endpoint.
- class onadata.apps.api.viewsets.data_viewset.AuthenticatedDataViewSet(**kwargs)¶
Bases:
DataViewSetAuthenticated requests only.
- permission_classes = (<class 'onadata.apps.api.permissions.ConnectViewsetPermissions'>,)¶
- class onadata.apps.api.viewsets.data_viewset.DataViewSet(**kwargs)¶
Bases:
AnonymousUserPublicFormsMixin,AuthenticateHeaderMixin,ETagsMixin,CacheControlMixin,DefaultBaseViewset,ModelViewSetThis endpoint provides access to submitted data.
- data_count = None¶
- destroy(request, *args, **kwargs)¶
Deletes submissions data.
- enketo(request, *args, **kwargs)¶
Data Enketo URLs endpoint
- extra_lookup_fields = None¶
- filter_backends = (<class 'onadata.libs.filters.DataAnonDjangoObjectPermissionFilter'>, <class 'onadata.libs.filters.XFormOwnerFilter'>, <class 'onadata.libs.filters.DataFilter'>, <class 'onadata.libs.filters.ActiveXFormOrganizationFilter'>)¶
- filter_queryset(queryset, view=None)¶
Returns and filters queryset based on context and query params.
- get_object(queryset=None)¶
Returns the appropriate object based on context.
- get_serializer_class()¶
Returns appropriate serializer class based on context.
- history(request, *args, **kwargs)¶
Return submission history.
- labels(request, *args, **kwargs)¶
Data labels API endpoint.
- list(request, *args, **kwargs)¶
Returns list of data API endpoints for different forms.
- lookup_field = 'pk'¶
- lookup_fields = ('pk', 'dataid')¶
- paginate_queryset(queryset)¶
Returns a paginated queryset.
- pagination_class¶
alias of
CountOverridablePageNumberPagination
- permission_classes = (<class 'onadata.apps.api.permissions.XFormPermissions'>,)¶
- public_data_endpoint = 'public'¶
- renderer_classes = [<class 'rest_framework.renderers.JSONRenderer'>, <class 'rest_framework_jsonp.renderers.JSONPRenderer'>, <class 'rest_framework_csv.renderers.CSVRenderer'>, <class 'onadata.libs.renderers.renderers.XLSRenderer'>, <class 'onadata.libs.renderers.renderers.XLSXRenderer'>, <class 'onadata.libs.renderers.renderers.CSVRenderer'>, <class 'onadata.libs.renderers.renderers.CSVZIPRenderer'>, <class 'onadata.libs.renderers.renderers.SAVZIPRenderer'>, <class 'onadata.libs.renderers.renderers.InstanceXMLRenderer'>, <class 'onadata.libs.renderers.renderers.SurveyRenderer'>, <class 'onadata.libs.renderers.renderers.GeoJsonRenderer'>, <class 'onadata.libs.renderers.renderers.KMLRenderer'>, <class 'onadata.libs.renderers.renderers.OSMRenderer'>, <class 'onadata.libs.renderers.renderers.FLOIPRenderer'>]¶
- retrieve(request, *args, **kwargs)¶
Returns API data for the targeted object.
- serializer_class¶
alias of
DataSerializer
- set_object_list(query, fields, sort, start, limit, is_public_request, is_encrypted, decryption_status)¶
Set the submission instances queryset.
- onadata.apps.api.viewsets.data_viewset.delete_instance(instance, user)¶
Function that calls Instance.set_deleted and catches any exception that may occur.
- Parameters:
instance
user
- Returns:
- onadata.apps.api.viewsets.data_viewset.get_data_and_form(kwargs)¶
Checks if the dataid in
kwargsis a valid integer.
onadata.apps.api.viewsets.dataview_viewset module¶
The /dataview API endpoint implementation.
- class onadata.apps.api.viewsets.dataview_viewset.DataViewViewSet(**kwargs)¶
Bases:
AuthenticateHeaderMixin,CacheControlMixin,ETagsMixin,DefaultBaseViewset,ModelViewSetA simple ViewSet for viewing and editing DataViews.
- bbox(request, *args, **kwargs)¶
Return the bounding box of the dataview’s geolocated submissions.
Applies the dataview’s query filter to match the rows form_tiles() would serve. Shape:
{"bbox": [min_lng, min_lat, max_lng, max_lat] | null}.nullwhen the filtered set has no geolocated rows. Cached and busted on submission create/edit/delete for the underlying xform.
- charts(request, *args, **kwargs)¶
Returns the charts data for the given dataview.
- data(request, format='json', **kwargs)¶
Retrieve the data from the xform using this dataview
- destroy(request, *args, **kwargs)¶
Soft deletes the the dataview.
- export_async(request, *args, **kwargs)¶
Initiate’s exports asynchronously.
- form(request, format='json', **kwargs)¶
Returns the form as either json, xml or XLS linked the dataview.
- form_details(request, *args, **kwargs)¶
Returns the dataview’s form API data.
- get_serializer_class()¶
Get a serializer class based on request format
- get_serializer_context()¶
Extra context provided to the serializer class.
- list(request, *args, **kwargs)¶
List endpoint for Filtered datasets
- lookup_field = 'pk'¶
- pagination_class¶
alias of
StandardPageNumberPagination
- permission_classes = [<class 'onadata.apps.api.permissions.DataViewViewsetPermissions'>]¶
- renderer_classes = [<class 'rest_framework.renderers.JSONRenderer'>, <class 'rest_framework_jsonp.renderers.JSONPRenderer'>, <class 'rest_framework_csv.renderers.CSVRenderer'>, <class 'onadata.libs.renderers.renderers.XLSRenderer'>, <class 'onadata.libs.renderers.renderers.XLSXRenderer'>, <class 'onadata.libs.renderers.renderers.CSVRenderer'>, <class 'onadata.libs.renderers.renderers.CSVZIPRenderer'>, <class 'onadata.libs.renderers.renderers.SAVZIPRenderer'>, <class 'onadata.libs.renderers.renderers.ZipRenderer'>, <class 'onadata.libs.renderers.renderers.GeoJsonRenderer'>]¶
- serializer_class¶
alias of
DataViewSerializer
- xlsx_export(request, *args, **kwargs)¶
Returns the data views XLS export files.
- onadata.apps.api.viewsets.dataview_viewset.dataview_post_delete_callback(sender, instance, **kwargs)¶
Clear project cache post dataview delete.
- onadata.apps.api.viewsets.dataview_viewset.dataview_post_save_callback(sender, instance=None, created=False, **kwargs)¶
Clear project cache post dataview save.
- onadata.apps.api.viewsets.dataview_viewset.get_dataview_instances(dataview)¶
Get all instances that belong to ths dataview
- onadata.apps.api.viewsets.dataview_viewset.get_form_field_chart_url(url, field)¶
Returns a chart’s
urlwith the field_namefieldparameter appended to it.
onadata.apps.api.viewsets.entity_list_viewset module¶
ViewSet for EntityList actions
- class onadata.apps.api.viewsets.entity_list_viewset.EntityListViewSet(**kwargs)¶
Bases:
CacheControlMixin,ETagsMixin,DefaultBaseViewset,GenericViewSet,ListModelMixin,CreateModelMixin,RetrieveModelMixin,DestroyModelMixin- create(request, *args, **kwargs)¶
Override create method
- download(request, *args, **kwargs)¶
Provides download action for dataset
- entities(request, *args, **kwargs)¶
list, create, retrieve, update, destroy actions for Entities
- entities_search_fields = ['uuid', 'json']¶
- filter_backends = (<class 'onadata.libs.filters.AnonUserEntityListFilter'>, <class 'onadata.libs.filters.EntityListProjectFilter'>)¶
- get_serializer_class()¶
Override get_serializer_class method
- get_serializer_context()¶
Override get_serializer_context method
- import_entities(request, *args, **kwargs)¶
Imports entities from a CSV file
- pagination_class¶
alias of
StandardPageNumberPagination
- perform_destroy(instance)¶
Override perform_detroy method
- permission_classes = (<class 'onadata.apps.api.permissions.EntityListPermissions'>,)¶
- properties(request, *args, **kwargs)¶
Provides properties action for dataset.
- retrieve(request, *args, **kwargs)¶
Override retrieve method
- serializer_class¶
alias of
EntityListSerializer
onadata.apps.api.viewsets.export_viewset module¶
The /api/v1/exports API implementation.
List, Create, Update, Destroy Export model objects.
- class onadata.apps.api.viewsets.export_viewset.ExportViewSet(**kwargs)¶
Bases:
DestroyModelMixin,ReadOnlyModelViewSetThe /api/v1/exports API implementation.
List, Create, Update, Destroy Export model objects.
- authentication_classes = [<class 'onadata.libs.authentication.DigestAuthentication'>, <class 'onadata.libs.authentication.TempTokenAuthentication'>, <class 'onadata.libs.authentication.EnketoTokenAuthentication'>, <class 'oauth2_provider.contrib.rest_framework.authentication.OAuth2Authentication'>, <class 'rest_framework.authentication.SessionAuthentication'>, <class 'rest_framework.authentication.TokenAuthentication'>, <class 'onadata.libs.authentication.TempTokenURLParameterAuthentication'>]¶
- filter_backends = (<class 'onadata.libs.filters.ExportFilter'>,)¶
- permission_classes = [<class 'onadata.apps.api.permissions.ExportDjangoObjectPermission'>]¶
- renderer_classes = [<class 'rest_framework.renderers.JSONRenderer'>, <class 'rest_framework_jsonp.renderers.JSONPRenderer'>, <class 'rest_framework_csv.renderers.CSVRenderer'>, <class 'onadata.libs.renderers.renderers.CSVRenderer'>, <class 'onadata.libs.renderers.renderers.CSVZIPRenderer'>, <class 'onadata.libs.renderers.renderers.KMLRenderer'>, <class 'onadata.libs.renderers.renderers.OSMExportRenderer'>, <class 'onadata.libs.renderers.renderers.SAVZIPRenderer'>, <class 'onadata.libs.renderers.renderers.XLSRenderer'>, <class 'onadata.libs.renderers.renderers.XLSXRenderer'>, <class 'onadata.libs.renderers.renderers.ZipRenderer'>]¶
- retrieve(request, *args, **kwargs)¶
- serializer_class¶
alias of
ExportSerializer
onadata.apps.api.viewsets.floip_viewset module¶
FloipViewSet: API endpoint for /api/floip
- class onadata.apps.api.viewsets.floip_viewset.FloipViewSet(**kwargs)¶
Bases:
CreateModelMixin,DestroyModelMixin,ListModelMixin,RetrieveModelMixin,UpdateModelMixin,GenericViewSetFloipViewSet: create, list, retrieve, destroy
- filter_backends = (<class 'onadata.libs.filters.AnonDjangoObjectPermissionFilter'>, <class 'onadata.libs.filters.PublicDatasetsFilter'>, <class 'onadata.libs.filters.ActiveXFormOrganizationFilter'>)¶
- get_object()¶
Returns the object the view is displaying.
You may want to override this if you need to provide non-standard queryset lookups. Eg if objects are referenced using multiple keyword arguments in the url conf.
- get_serializer_class()¶
Return the class to use for the serializer. Defaults to using self.serializer_class.
You may want to override this if you need to provide different serializations depending on the incoming request.
(Eg. admins get full serialization, others get basic serialization)
- get_success_headers(data)¶
- lookup_field = 'uuid'¶
- pagination_class¶
alias of
PageNumberPagination
- parser_classes = (<class 'rest_framework_json_api.parsers.JSONParser'>,)¶
- permission_classes = [<class 'onadata.apps.api.permissions.XFormPermissions'>]¶
- renderer_classes = (<class 'onadata.apps.api.viewsets.floip_viewset.FlowResultsJSONRenderer'>,)¶
- responses(request, uuid=None)¶
Flow Results Responses endpoint.
- serializer_class¶
alias of
FloipSerializer
- class onadata.apps.api.viewsets.floip_viewset.FlowResultsJSONRenderer¶
Bases:
JSONRendererRender JSON API format with uuid.
- classmethod build_json_resource_obj(fields, resource, resource_instance, resource_name, serializer, force_type_resolution=False)¶
Build a JSON resource object using the id as it appears in the resource.
onadata.apps.api.viewsets.media_viewset module¶
The /api/v1/media API implementation.
List, Create, Update, Delete Attachment objects.
- class onadata.apps.api.viewsets.media_viewset.MediaViewSet(**kwargs)¶
Bases:
AuthenticateHeaderMixin,CacheControlMixin,ETagsMixin,DefaultBaseViewset,ReadOnlyModelViewSetA view to redirect to actual attachments url
- filter_backends = (<class 'onadata.libs.filters.AttachmentFilter'>, <class 'onadata.libs.filters.AttachmentTypeFilter'>)¶
- list(request, *args, **kwargs)¶
Action NOT IMPLEMENTED. It is only needed because of the automatic URL routing in /api/v1/
- lookup_field = 'pk'¶
- permission_classes = (<class 'onadata.apps.api.permissions.AttachmentObjectPermissions'>,)¶
- retrieve(request, *args, **kwargs)¶
Redirect to final attachment url
param pk: the attachment id query param filename: the filename of the attachment is required and must match query param suffix: (optional) - specify small | medium | large to
return resized images.
return HttpResponseRedirect: redirects to final image url
onadata.apps.api.viewsets.merged_xform_viewset module¶
MergedXFormViewSet: API endpoint for /api/merged-datasets
- class onadata.apps.api.viewsets.merged_xform_viewset.MergedXFormViewSet(**kwargs)¶
Bases:
CreateModelMixin,DestroyModelMixin,ListModelMixin,RetrieveModelMixin,GenericViewSetMerged XForms viewset: create, list, retrieve, destroy
- bbox(request, *args, **kwargs)¶
Return the bounding box across all xforms in this merged dataset.
Shape:
{"bbox": [min_lng, min_lat, max_lng, max_lat] | null}. Matches the xform set form_tiles() serves when called withmerged_dataset_id. Cached and busted whenever a submission to any member xform is created, edited, or deleted.
- data(request, *args, **kwargs)¶
Return data from the merged xforms
- filter_backends = (<class 'onadata.libs.filters.AnonDjangoObjectPermissionFilter'>, <class 'onadata.libs.filters.PublicDatasetsFilter'>, <class 'onadata.libs.filters.ActiveXFormOrganizationFilter'>)¶
- form(*args, **kwargs)¶
Return XForm JSON, XLS or XML representing
- get_serializer_class()¶
Get appropriate serializer class
- list(request, *args, **kwargs)¶
List endpoint for Merged XForms
- pagination_class¶
alias of
StandardPageNumberPagination
- permission_classes = [<class 'onadata.apps.api.permissions.XFormPermissions'>]¶
- renderer_classes = [<class 'rest_framework.renderers.JSONRenderer'>, <class 'rest_framework_jsonp.renderers.JSONPRenderer'>, <class 'rest_framework_csv.renderers.CSVRenderer'>, <class 'onadata.libs.renderers.renderers.StaticXMLRenderer'>, <class 'onadata.libs.renderers.renderers.GeoJsonRenderer'>]¶
- serializer_class¶
alias of
MergedXFormSerializer
onadata.apps.api.viewsets.messaging_stats_viewset module¶
API Endpoint implementation for Messaging statistics
- class onadata.apps.api.viewsets.messaging_stats_viewset.MessagingStatsViewSet(**kwargs)¶
Bases:
ListModelMixin,GenericViewSetProvides a count of each unique messaging event grouped by either day, month or year.
The endpoint accepts the following query parameters:
group_by: field to group events by day, month or year
- target_type: field to be used to determine the target
object type i.e xform, project
target_id: field used to identify the target object
verb: field used to filter returned responses by a specific verb
- timestamp: used to filter by actions that occurred in a specific time. This
query parameter support date time lookups i.e timestamp__day, timestamp__year.
Example:
GET /api/v1/stats/messaging?target_id=1&target_type=xform&group_by=day
- {
“submission_edited”: 10, “submission_created”: 5, “submission_deleted”: 15, “group”: “2023-02-17”
}
]¶
- SUPPORTED_GROUP_BY = {'day': 'YYYY-MM-DD', 'month': 'MM-YYYY', 'year': 'YYYY'}¶
- filter_backends = [<class 'onadata.apps.messaging.filters.TargetTypeFilterBackend'>, <class 'onadata.apps.messaging.filters.TargetIDFilterBackend'>, <class 'django_filters.rest_framework.backends.DjangoFilterBackend'>]¶
- filterset_class¶
alias of
ActionFilterSet
- list(request, *args, **kwargs)¶
- permission_classes = [<class 'rest_framework.permissions.IsAuthenticated'>, <class 'onadata.apps.messaging.permissions.TargetObjectPermissions'>]¶
onadata.apps.api.viewsets.metadata_viewset module¶
The /api/v1/metadata API implementation.
List, Create, Update, Delete MetaData objects.
- class onadata.apps.api.viewsets.metadata_viewset.MetaDataViewSet(**kwargs)¶
Bases:
AuthenticateHeaderMixin,CacheControlMixin,ETagsMixin,DefaultBaseViewset,ModelViewSetList, Create, Update, Delete MetaData objects.
- content_negotiation_class¶
alias of
MediaFileContentNegotiation
- filter_backends = (<class 'onadata.libs.filters.MetaDataFilter'>,)¶
- permission_classes = (<class 'onadata.apps.api.permissions.MetaDataObjectPermissions'>,)¶
- renderer_classes = (<class 'rest_framework.renderers.JSONRenderer'>, <class 'rest_framework.renderers.BrowsableAPIRenderer'>, <class 'onadata.libs.renderers.renderers.MediaFileRenderer'>)¶
- retrieve(request, *args, **kwargs)¶
- serializer_class¶
alias of
MetaDataSerializer
onadata.apps.api.viewsets.note_viewset module¶
The /api/v1/notes API implementation.
List, Create, Update, Delete Note objects.
- class onadata.apps.api.viewsets.note_viewset.NoteViewSet(**kwargs)¶
Bases:
AuthenticateHeaderMixin,CacheControlMixin,ETagsMixin,DefaultBaseViewset,ModelViewSetThe /api/v1/notes API implementation.
List, Create, Update, Delete Note objects.
- destroy(request, *args, **kwargs)¶
- filter_backends = (<class 'onadata.libs.filters.NoteFilter'>, <class 'rest_framework_guardian.filters.ObjectPermissionsFilter'>)¶
- get_object()¶
Returns the object the view is displaying.
You may want to override this if you need to provide non-standard queryset lookups. Eg if objects are referenced using multiple keyword arguments in the url conf.
- permission_classes = [<class 'onadata.apps.api.permissions.ViewDjangoObjectPermissions'>, <class 'rest_framework.permissions.IsAuthenticated'>]¶
- retrieve(request, *args, **kwargs)¶
- serializer_class¶
alias of
NoteSerializer
onadata.apps.api.viewsets.open_data_viewset module¶
The /api/v1/open-data implementation.
- class onadata.apps.api.viewsets.open_data_viewset.OpenDataViewSet(**kwargs)¶
Bases:
ETagsMixin,CacheControlMixin,DefaultBaseViewset,ModelViewSetThe /api/v1/open-data API endpoint.
- MAX_INSTANCES_PER_REQUEST = 1000¶
- data(request, **kwargs)¶
Streams submission data response matching uuid in the request.
- destroy(request, *args, **kwargs)¶
Deletes an OpenData object.
- flatten_xform_columns(json_of_columns_fields)¶
Flattens a json of column fields and the result is set to a class variable.
- flattened_dict = {}¶
- get_queryset()¶
Scope capabilities by action and XForm authorization.
- get_serializer_class()¶
Return UUIDs only from a successful authorized create.
- get_streaming_response(data)¶
Get a StreamingHttpResponse response object
- get_tableau_column_headers()¶
Retrieve columns headers that are valid in tableau.
- get_tableau_type(xform_type)¶
Returns a tableau-supported type based on a xform type.
- lookup_field = 'uuid'¶
- pagination_class¶
alias of
StandardPageNumberPagination
- permission_classes = (<class 'onadata.apps.api.permissions.OpenDataViewSetPermissions'>,)¶
- schema(request, **kwargs)¶
Tableau schema - headers and table alias.
- serializer_class¶
alias of
OpenDataSerializer
- uuid(request, *args, **kwargs)¶
Respond with the OpenData uuid.
- onadata.apps.api.viewsets.open_data_viewset.process_tableau_data(data, xform)¶
Streamlines the row header fields with the column header fields for the same form. Handles Flattening repeat data for tableau
- onadata.apps.api.viewsets.open_data_viewset.replace_special_characters_with_underscores(data)¶
Replaces special characters with underscores.
onadata.apps.api.viewsets.organization_profile_viewset module¶
The /api/v1/orgs API implementation
List, Retrieve, Update, Create/Register Organizations.
- class onadata.apps.api.viewsets.organization_profile_viewset.OrganizationProfileViewSet(*args, **kwargs)¶
Bases:
AuthenticateHeaderMixin,CacheControlMixin,ETagsMixin,ObjectLookupMixin,RevisionMixin,DefaultBaseViewset,ModelViewSetList, Retrieve, Update, Create/Register Organizations.
- create(request, *args, **kwargs)¶
Create and cache organization
- destroy(request, *args, **kwargs)¶
Clear cache and destroy organization
- filter_backends = (<class 'onadata.libs.filters.OrganizationPermissionFilter'>, <class 'onadata.libs.filters.OrganizationsSharedWithUserFilter'>)¶
- get_serializer_class()¶
Override get_serializer_class method
- lookup_field = 'user'¶
- members(request, *args, **kwargs)¶
Return organization members.
- permission_classes = [<class 'onadata.apps.api.permissions.OrganizationProfilePermissions'>]¶
- retrieve(request, *args, **kwargs)¶
Get organization from cache or db
- rotate_key(request, *args, **kwargs)¶
Manually rotate KMS key.
- serializer_class¶
alias of
OrganizationSerializer
- update(request, *args, **kwargs)¶
Update org in cache and db
- onadata.apps.api.viewsets.organization_profile_viewset.serializer_from_settings()¶
Return the OrganizationSerializer either from settings or the default.
onadata.apps.api.viewsets.osm_viewset module¶
The osm API endpoint.
- class onadata.apps.api.viewsets.osm_viewset.OsmViewSet(**kwargs)¶
Bases:
AuthenticateHeaderMixin,CacheControlMixin,ETagsMixin,DefaultBaseViewset,ReadOnlyModelViewSetThis endpoint provides public access to OSM submitted data in OSM format. No authentication is required. Where:
pk - the form unique identifier
dataid - submission data unique identifier
owner - username of the owner(user/organization) of the data point
## GET JSON List of data end points
Lists the data endpoints accessible to requesting user, for anonymous access a list of public data endpoints is returned.
<pre class=”prettyprint”> <b>GET</b> /api/v1/osm </pre>
> Example > > curl -X GET https://ona.io/api/v1/osm
## OSM
- The .osm file format concatenates all the files for a form or individual
submission. When the .json endpoint is accessed, the individual osm files are listed on the _attachments key.
### OSM endpoint for all osm files uploaded to a form concatenated.
<pre class=”prettyprint”> <b>GET</b> /api/v1/osm/<code>{pk}</code>.osm </pre>
> Example > > curl -X GET https://ona.io/api/v1/osm/28058.osm
### OSM endpoint with all osm files for a specific submission concatenated.
<pre class=”prettyprint”> <b>GET</b> /api/v1/osm/<code>{pk}</code>/<code>{data_id}</code>.osm </pre>
> Example > > curl -X GET https://ona.io/api/v1/osm/28058/20.osm
- extra_lookup_fields = None¶
- filter_queryset(queryset)¶
Filters the queryset using the
pkwhen used.
- get_object()¶
Returns the Instance object using the
pkanddataidlookup values.
- get_serializer_class()¶
Returns the OSMSiteMapSerializer class when list API is invoked.
- list(request, *args, **kwargs)¶
Returns a list of URLs to the individual XForm OSM data.
- lookup_field = 'pk'¶
- lookup_fields = ('pk', 'dataid')¶
- permission_classes = (<class 'rest_framework.permissions.AllowAny'>,)¶
- public_data_endpoint = 'public'¶
- renderer_classes = [<class 'onadata.libs.renderers.renderers.OSMRenderer'>, <class 'rest_framework.renderers.JSONRenderer'>]¶
- retrieve(request, *args, **kwargs)¶
Returns a single Instance JSON object API response
- serializer_class¶
alias of
OSMSerializer
onadata.apps.api.viewsets.project_viewset module¶
The /projects API endpoint implementation.
- class onadata.apps.api.viewsets.project_viewset.ProjectViewSet(*args, **kwargs)¶
Bases:
AuthenticateHeaderMixin,CacheControlMixin,ETagsMixin,LabelsMixin,ProfilerMixin,RevisionMixin,DefaultBaseViewset,ModelViewSetList, Retrieve, Update, Create Project and Project Forms.
- api_version = 'v1'¶
- destroy(request, *args, **kwargs)¶
Soft deletes a project
- extra_lookup_fields = None¶
- filter_backends = (<class 'onadata.libs.filters.AnonUserProjectFilter'>, <class 'onadata.libs.filters.ProjectOwnerFilter'>, <class 'onadata.libs.filters.TagFilter'>, <class 'onadata.libs.filters.ActiveProjectOrganizationFilter'>)¶
- forms(request, **kwargs)¶
Add a form to a project or list forms for the project.
The request key xls_file holds the XLSForm file object.
- get_queryset()¶
Use the active-organization prefetched queryset.
- invitations(request, *args, **kwargs)¶
List, Create. Update project invitations
- lookup_field = 'pk'¶
- pagination_class¶
alias of
StandardPageNumberPagination
- permission_classes = [<class 'onadata.apps.api.permissions.ProjectPermissions'>]¶
- resend_invitation(request, *args, **kwargs)¶
Resend a project invitation object
- retrieve(request, *args, **kwargs)¶
Retrieve single project
- revoke_invitation(request, *args, **kwargs)¶
Revoke a project invitation object
- serializer_class¶
alias of
ProjectSerializer
Allow sharing of a project to a user.
- star(request, *args, **kwargs)¶
Allows to add a user that stars a project.
- update(request, *args, **kwargs)¶
Updates project properties and set’s cache with the updated records.
onadata.apps.api.viewsets.stats_viewset module¶
The /api/v1/stats API endpoint implementaion.
- class onadata.apps.api.viewsets.stats_viewset.StatsViewSet(**kwargs)¶
Bases:
AuthenticateHeaderMixin,CacheControlMixin,ETagsMixin,AnonymousUserPublicFormsMixin,DefaultBaseViewset,ReadOnlyModelViewSetThe /api/v1/stats API endpoint implementaion.
- filter_backends = (<class 'onadata.libs.filters.AnonDjangoObjectPermissionFilter'>, <class 'onadata.libs.filters.ActiveXFormOrganizationFilter'>)¶
- get_serializer_class()¶
Return the class to use for the serializer. Defaults to using self.serializer_class.
You may want to override this if you need to provide different serializations depending on the incoming request.
(Eg. admins get full serialization, others get basic serialization)
- lookup_field = 'pk'¶
- permission_classes = [<class 'onadata.apps.api.permissions.XFormPermissions'>]¶
- serializer_class¶
alias of
StatsSerializer
onadata.apps.api.viewsets.submission_review_viewset module¶
Submission Review Viewset Module
- class onadata.apps.api.viewsets.submission_review_viewset.SubmissionReviewViewSet(**kwargs)¶
Bases:
AuthenticateHeaderMixin,CacheControlMixin,ETagsMixin,BulkCreateMixin,DefaultBaseViewset,ModelViewSetSubmission Review ViewSet class
- create(request, *args, **kwargs)¶
Custom create method. Handle bulk create
- destroy(request, *args, **kwargs)¶
Custom destroy method
- filter_backends = (<class 'django_filters.rest_framework.backends.DjangoFilterBackend'>,)¶
- filterset_fields = ('instance', 'created_by', 'status')¶
- permission_classes = [<class 'onadata.apps.api.permissions.SubmissionReviewPermissions'>]¶
- serializer_class¶
alias of
SubmissionReviewSerializer
onadata.apps.api.viewsets.submissionstats_viewset module¶
The /api/v1/stats/submissions API endpoint implementation.
- class onadata.apps.api.viewsets.submissionstats_viewset.SubmissionStatsViewSet(**kwargs)¶
Bases:
AnonymousUserPublicFormsMixin,AuthenticateHeaderMixin,CacheControlMixin,ETagsMixin,DefaultBaseViewset,ReadOnlyModelViewSetProvides submissions counts grouped by a specified field. It accepts query parameters group and name. Default result is grouped by _submission_time, hence you get submission counts per day. If a date field is used as the group, the result will be grouped by day.
group - field to group submission counts by
name - name to be applied to the group on results
Example:
GET /api/v1/stats/submissions/1? group=_submission_time&name=day_of_submission
Response:
[ { "count": 8, "day_of_submission": "2013-11-15", }, { "count": 99, "day_of_submission": "2013-11-16", }, { "count": 133, "day_of_submission": "2013-11-17", }, { "count": 162, "day_of_submission": "2013-11-18", }, { "count": 102, "day_of_submission": "2013-11-19", } ]
- filter_backends = (<class 'onadata.libs.filters.AnonDjangoObjectPermissionFilter'>, <class 'onadata.libs.filters.ActiveXFormOrganizationFilter'>)¶
- get_serializer_class()¶
Return the class to use for the serializer. Defaults to using self.serializer_class.
You may want to override this if you need to provide different serializations depending on the incoming request.
(Eg. admins get full serialization, others get basic serialization)
- lookup_field = 'pk'¶
- permission_classes = [<class 'onadata.apps.api.permissions.XFormPermissions'>]¶
- serializer_class¶
alias of
SubmissionStatsSerializer
onadata.apps.api.viewsets.team_viewset module¶
The /teams API endpoint implementation.
- class onadata.apps.api.viewsets.team_viewset.TeamViewSet(**kwargs)¶
Bases:
AuthenticateHeaderMixin,CacheControlMixin,ETagsMixin,DefaultBaseViewset,ModelViewSetThis endpoint allows you to create, update and view team information.
- extra_lookup_fields = None¶
- filter_backends = (<class 'rest_framework_guardian.filters.ObjectPermissionsFilter'>, <class 'onadata.libs.filters.TeamOrgFilter'>)¶
- lookup_field = 'pk'¶
- members(request, *args, **kwargs)¶
Returns members of an organization.
- permission_classes = [<class 'rest_framework.permissions.DjangoObjectPermissions'>]¶
- serializer_class¶
alias of
TeamSerializer
Performs sharing a team project operations.
onadata.apps.api.viewsets.user_profile_viewset module¶
UserProfileViewSet module.
- class onadata.apps.api.viewsets.user_profile_viewset.UserProfileViewSet(*args, **kwargs)¶
Bases:
AuthenticateHeaderMixin,CacheControlMixin,ETagsMixin,ObjectLookupMixin,RevisionMixin,DefaultBaseViewset,ModelViewSetList, Retrieve, Update, Create/Register users.
- change_password(request, *args, **kwargs)¶
Change user’s password.
- create(request, *args, **kwargs)¶
Create and cache user profile
- filter_backends = (<class 'onadata.libs.filters.UserProfileFilter'>, <class 'rest_framework.filters.OrderingFilter'>)¶
- get_object(queryset=None)¶
Lookup user profile by pk or username
- lookup_field = 'user'¶
- lookup_value_regex = '(?:[\\w.-]+(?<!\\.json)(?<!\\.xml)(?<!\\.csv)(?<!\\.jsonp)(?<!\\.yaml)(?<!\\.html)(?<!\\.api))|\\+?[\\d.\\-]+|(?:[\\w.%+-]+@[\\w.-]+\\.[a-zA-Z]{2,}(?<!\\.json)(?<!\\.xml)(?<!\\.csv)(?<!\\.jsonp)(?<!\\.yaml)(?<!\\.html)(?<!\\.api))'¶
- monthly_submissions(request, *args, **kwargs)¶
Get the total number of submissions for a user
- ordering = ('user__username',)¶
- partial_update(request, *args, **kwargs)¶
Allows for partial update of the user profile data.
- permission_classes = [<class 'onadata.apps.api.permissions.UserProfilePermissions'>]¶
- retrieve(request, *args, **kwargs)¶
Get user profile from cache or db
- send_verification_email(request, *args, **kwargs)¶
Sends verification email on user profile registration.
- serializer_class¶
alias of
UserProfileSerializer
- update(request, *args, **kwargs)¶
Update user in cache and db
- verify_email(request, *args, **kwargs)¶
Accepts email verification token and marks the profile as verified.
- onadata.apps.api.viewsets.user_profile_viewset.change_password_attempts(request)¶
Track number of login attempts made by user within a specified amount of time
- onadata.apps.api.viewsets.user_profile_viewset.check_if_key_exists(a_key, expected_dict)¶
Return True or False if a_key exists in the expected_dict dictionary.
- onadata.apps.api.viewsets.user_profile_viewset.check_user_lockout(request)¶
Returns the error object with lockout error message.
- onadata.apps.api.viewsets.user_profile_viewset.replace_key_value(lookup, new_value, expected_dict)¶
Replaces the value matching the key ‘lookup’ in the ‘expected_dict’ with the new value ‘new_value’.
- onadata.apps.api.viewsets.user_profile_viewset.serializer_from_settings()¶
Return a serilizer class configured in settings.PROFILE_SERIALIZER or default to UserProfileSerializer.
- onadata.apps.api.viewsets.user_profile_viewset.set_is_email_verified(profile, is_email_verified)¶
Sets is_email_verified value in the profile’s metadata object.
onadata.apps.api.viewsets.user_viewset module¶
Users /users API endpoint.
- class onadata.apps.api.viewsets.user_viewset.UserViewSet(**kwargs)¶
Bases:
AuthenticateHeaderMixin,DefaultBaseViewset,CacheControlMixin,ETagsMixin,ReadOnlyModelViewSetThis endpoint allows you to list and retrieve user’s first and last names.
- filter_backends = (<class 'rest_framework.filters.SearchFilter'>, <class 'onadata.libs.filters.UserNoOrganizationsFilter'>)¶
- get_object()¶
Lookup a username by pk else use lookup_field
- lookup_field = 'username'¶
- lookup_value_regex = '(?:[\\w.-]+(?<!\\.json)(?<!\\.xml)(?<!\\.csv)(?<!\\.jsonp)(?<!\\.yaml)(?<!\\.html)(?<!\\.api))|\\+?[\\d.\\-]+|(?:[\\w.%+-]+@[\\w.-]+\\.[a-zA-Z]{2,}(?<!\\.json)(?<!\\.xml)(?<!\\.csv)(?<!\\.jsonp)(?<!\\.yaml)(?<!\\.html)(?<!\\.api))'¶
- permission_classes = [<class 'onadata.apps.api.permissions.UserViewSetPermissions'>]¶
- search_fields = ('=email', 'username')¶
- serializer_class¶
alias of
UserSerializer
onadata.apps.api.viewsets.widget_viewset module¶
Expose and persist charts and corresponding data.
- class onadata.apps.api.viewsets.widget_viewset.WidgetViewSet(**kwargs)¶
Bases:
AuthenticateHeaderMixin,CacheControlMixin,ETagsMixin,DefaultBaseViewset,ModelViewSetExpose and persist charts and corresponding data.
- filter_backends = (<class 'onadata.libs.filters.WidgetFilter'>,)¶
- get_object(queryset=None)¶
Returns the object the view is displaying.
You may want to override this if you need to provide non-standard queryset lookups. Eg if objects are referenced using multiple keyword arguments in the url conf.
- list(request, *args, **kwargs)¶
- lookup_field = 'pk'¶
- permission_classes = [<class 'onadata.apps.api.permissions.WidgetViewSetPermissions'>]¶
- serializer_class¶
alias of
WidgetSerializer
onadata.apps.api.viewsets.xform_list_viewset module¶
OpenRosa Form List API - https://docs.getodk.org/openrosa-form-list/
- class onadata.apps.api.viewsets.xform_list_viewset.PreviewXFormListViewSet(**kwargs)¶
Bases:
XFormListViewSetOpenRosa Form List API - for preview purposes only
- filter_backends = (<class 'onadata.libs.filters.AnonDjangoObjectPermissionFilter'>,)¶
- permission_classes = (<class 'rest_framework.permissions.AllowAny'>,)¶
- class onadata.apps.api.viewsets.xform_list_viewset.XFormListViewSet(**kwargs)¶
Bases:
ETagsMixin,DefaultBaseViewset,ReadOnlyModelViewSetOpenRosa Form List API - https://docs.getodk.org/openrosa-form-list/
- authentication_classes = (<class 'onadata.libs.authentication.DigestAuthentication'>, <class 'onadata.libs.authentication.EnketoTokenAuthentication'>, <class 'rest_framework.authentication.TokenAuthentication'>)¶
- content_negotiation_class¶
alias of
MediaFileContentNegotiation
- filter_backends = (<class 'onadata.libs.filters.XFormListObjectPermissionFilter'>, <class 'onadata.libs.filters.XFormListXFormPKFilter'>, <class 'django_filters.rest_framework.backends.DjangoFilterBackend'>)¶
- filter_queryset(queryset)¶
Given a queryset, filter it with whichever filter backend is in use.
You are unlikely to want to override this method, although you may need to call it either from a list view, or from a custom get_object method if you want to apply the configured filtering backend to the default queryset.
- filterset_class¶
alias of
FormIDFilter
- get_object()¶
Returns the object the view is displaying.
You may want to override this if you need to provide non-standard queryset lookups. Eg if objects are referenced using multiple keyword arguments in the url conf.
- get_serializer(*args, **kwargs)¶
Return the serializer instance that should be used for validating and deserializing input, and for serializing output.
- get_serializer_class()¶
Return the class to use for the serializer
- list(request, *args, **kwargs)¶
- manifest(request, *args, **kwargs)¶
A manifest defining additional supporting objects.
- media(request, *args, **kwargs)¶
Returns the media file contents.
- permission_classes = (<class 'rest_framework.permissions.AllowAny'>,)¶
- renderer_classes = (<class 'onadata.libs.renderers.renderers.XFormListRenderer'>,)¶
- retrieve(request, *args, **kwargs)¶
- serializer_class¶
alias of
XFormListSerializer
- template_name = 'api/xformsList.xml'¶
- throttle_scope = 'xformlist'¶
onadata.apps.api.viewsets.xform_submission_viewset module¶
XFormSubmissionViewSet module
- class onadata.apps.api.viewsets.xform_submission_viewset.FLOIPParser¶
Bases:
JSONParserFlow Results JSON parser.
- media_type = 'application/vnd.org.flowinterop.results+json'¶
- renderer_classes¶
alias of
FLOIPRenderer
- class onadata.apps.api.viewsets.xform_submission_viewset.XFormSubmissionViewSet(**kwargs)¶
Bases:
AuthenticateHeaderMixin,OpenRosaHeadersMixin,CreateModelMixin,UpdateModelMixin,DefaultBaseViewset,GenericViewSetXFormSubmissionViewSet class
- authentication_classes = (<class 'onadata.libs.authentication.DigestAuthentication'>, <class 'onadata.libs.authentication.LockoutBasicAuthentication'>, <class 'rest_framework.authentication.TokenAuthentication'>, <class 'onadata.libs.authentication.EnketoTokenAuthentication'>)¶
- create(request, *args, **kwargs)¶
- filter_backends = (<class 'onadata.libs.filters.AnonDjangoObjectPermissionFilter'>,)¶
- get_serializer(*args, **kwargs)¶
Pass many=True flag if data is a list.
- get_serializer_class()¶
Returns the serializer class to be used based on content_type.
- handle_exception(exc)¶
Handles exceptions thrown by handler method and returns appropriate error response.
- parser_classes = (<class 'onadata.apps.api.viewsets.xform_submission_viewset.FLOIPParser'>, <class 'rest_framework.parsers.JSONParser'>, <class 'rest_framework.parsers.FormParser'>, <class 'rest_framework.parsers.MultiPartParser'>)¶
- permission_classes = (<class 'rest_framework.permissions.AllowAny'>, <class 'onadata.apps.api.permissions.IsAuthenticatedSubmission'>)¶
- renderer_classes = (<class 'onadata.libs.renderers.renderers.TemplateXMLRenderer'>, <class 'rest_framework.renderers.JSONRenderer'>, <class 'rest_framework.renderers.BrowsableAPIRenderer'>, <class 'onadata.libs.renderers.renderers.FLOIPRenderer'>)¶
- serializer_class¶
alias of
SubmissionSerializer
- template_name = 'submission.xml'¶
- throttle_scope = 'submission'¶
- update(request, *args, **kwargs)¶
Handle submission edit requests.
Uses the SubmissionSerializer to handle decryption of encrypted submissions and save the edit via safe_create_instance.
onadata.apps.api.viewsets.xform_viewset module¶
The /forms API endpoint.
- class onadata.apps.api.viewsets.xform_viewset.XFormViewSet(**kwargs)¶
Bases:
AnonymousUserPublicFormsMixin,CacheControlMixin,AuthenticateHeaderMixin,ETagsMixin,LabelsMixin,DefaultBaseViewset,ModelViewSetPublish XLSForms, List, Retrieve Published Forms.
- bbox(request, *args, **kwargs)¶
Return the bounding box of all geolocated submissions.
Shape:
{"bbox": [min_lng, min_lat, max_lng, max_lat] | null}.nullwhen the form has no geolocated submissions. Used by the frontend tile map to fit the viewport on load without fetching the full submission set. Cached and busted on submission create/edit/delete.
- clone(request, *args, **kwargs)¶
Clone/duplicate an existing form.
- create(request, *args, **kwargs)¶
Support XLSForm publishing endpoint POST /api/v1/forms.
- create_async(request, *args, **kwargs)¶
Temporary Endpoint for Async form creation
- csv_import(request, *args, **kwargs)¶
Endpoint for CSV data imports Calls
onadata.libs.utils.csv_import.submit_csv()for POST requests passing the request.FILES.get(‘csv_file’) upload for import and :py:func:onadata.libs.utils.csv_import.get_async_csv_submission_status for GET requests passing job_uuid query param for job progress polling
- data_import(request, *args, **kwargs)¶
Endpoint for CSV and XLS data imports Calls
onadata.libs.utils.csv_import.submit_csv()for POST requests passing the request.FILES.get(‘csv_file’) upload for import and :py:func:onadata.libs.utils.csv_import.get_async_csv_submission_status for GET requests passing job_uuid query param for job progress polling andonadata.libs.utils.csv_import.submission_xls_to_csv()for POST request passing the request.FILES.get(‘xls_file’) upload for import if xls_file is provided instead of csv_file
- delete_async(request, *args, **kwargs)¶
Delete asynchronous endpoint /api/v1/forms/{pk}/delete_async.
- destroy(request, *args, **kwargs)¶
Soft deletes a form - DELETE /api/v1/forms/{pk}
- enketo(request, **kwargs)¶
Expose enketo urls.
URLs are persisted in the MetaData table. On the first request the Enketo API is called and the result is stored; subsequent requests are served directly from the database. When form-default query params are present the Enketo API is always called (each combination produces unique URLs that are not persisted).
- Query params:
- survey_type –
"single"for single-submit URL only, "preview"for preview URL only, omit for all URLs.- show_preview –
"true"for preview URL only (legacy; equivalent to
survey_type=preview).
<field>=value – pre-populate form fields (skips persistence).
- survey_type –
- export_async(request, *args, **kwargs)¶
Returns the status of an async export.
- extra_lookup_fields = None¶
- filter_backends = (<class 'onadata.libs.filters.EnketoAnonDjangoObjectPermissionFilter'>, <class 'onadata.libs.filters.TagFilter'>, <class 'onadata.libs.filters.XFormOwnerFilter'>, <class 'django_filters.rest_framework.backends.DjangoFilterBackend'>, <class 'onadata.libs.filters.ActiveXFormOrganizationFilter'>)¶
- filterset_fields = ('instances_with_osm',)¶
- form(request, **kwargs)¶
Returns the XLSForm in any of JSON, XML, XLS(X), CSV formats.
- get_serializer_class()¶
Return the class to use for the serializer. Defaults to using self.serializer_class.
You may want to override this if you need to provide different serializations depending on the incoming request.
(Eg. admins get full serialization, others get basic serialization)
- list(request, *args, **kwargs)¶
List forms API endpoint GET /api/v1/forms.
- login(request, **kwargs)¶
Authenticate and redirect to URL in return query parameter.
- lookup_field = 'pk'¶
- pagination_class¶
alias of
StandardPageNumberPagination
- partial_update(request, *args, **kwargs)¶
Partial update of a form’s properties.
- permission_classes = [<class 'onadata.apps.api.permissions.XFormPermissions'>]¶
- public_forms_endpoint = 'public'¶
- renderer_classes = [<class 'rest_framework.renderers.JSONRenderer'>, <class 'rest_framework_jsonp.renderers.JSONPRenderer'>, <class 'rest_framework_csv.renderers.CSVRenderer'>, <class 'onadata.libs.renderers.renderers.XLSRenderer'>, <class 'onadata.libs.renderers.renderers.XLSXRenderer'>, <class 'onadata.libs.renderers.renderers.CSVRenderer'>, <class 'onadata.libs.renderers.renderers.CSVZIPRenderer'>, <class 'onadata.libs.renderers.renderers.SAVZIPRenderer'>, <class 'onadata.libs.renderers.renderers.SurveyRenderer'>, <class 'onadata.libs.renderers.renderers.OSMExportRenderer'>, <class 'onadata.libs.renderers.renderers.ZipRenderer'>, <class 'onadata.libs.renderers.renderers.GoogleSheetsRenderer'>]¶
- retrieve(request, *args, **kwargs)¶
Returns a forms properties.
- serializer_class¶
alias of
XFormSerializer
Perform form sharing.
- survey_preview(request, **kwargs)¶
Handle survey preview XLSForms.
- updatable_fields = {'description', 'downloadable', 'require_auth', 'shared', 'shared_data', 'title'}¶
- versions(request, *args, **kwargs)¶
Returns all form versions.
- onadata.apps.api.viewsets.xform_viewset.get_survey_dict(csv_name)¶
Returns the a CSV XLSForm file into a python object.
- onadata.apps.api.viewsets.xform_viewset.get_survey_xml(csv_name)¶
Creates and returns the XForm XML from a CSV XLSform.
- onadata.apps.api.viewsets.xform_viewset.parse_webform_return_url(return_url, request)¶
Given a webform url and request containing authentication information extract authentication data encoded in the url and validate using either this data or data in the request. Construct a proper return URL, which has stripped the authentication data, to return the user.
- onadata.apps.api.viewsets.xform_viewset.result_has_error(result)¶
Returns True if the
resultis a dict and has a type.
- onadata.apps.api.viewsets.xform_viewset.upload_to_survey_draft(filename, username)¶
Return the
filenamein theusernamesurvey-drafts directory.
- onadata.apps.api.viewsets.xform_viewset.value_for_type(form, field, value)¶
Returns a boolean value for the
fieldof typeBooleanFieldotherwise returns the samevalueback.