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
,ReadOnlyModelViewSet
GET, 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'>,)¶
- queryset¶
- 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
,GenericViewSet
Implements 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'>)¶
- queryset¶
- 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:
BrowsableAPIRenderer
View 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
,ReadOnlyModelViewSet
ChartsViewSet: /charts api endpoint for chart data and chart widgets
- filter_backends = (<class 'onadata.libs.filters.AnonDjangoObjectPermissionFilter'>,)¶
- lookup_field = 'pk'¶
- permission_classes = [<class 'onadata.apps.api.permissions.XFormPermissions'>]¶
- queryset¶
- 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
,GenericViewSet
This 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'>,)¶
- queryset¶
- regenerate_auth_token(request, *args, **kwargs)¶
Implements the /regenerate_auth_token endpoint
Allows a user to expire and create a new API Token.
- reset(request, *args, **kwargs)¶
Implements the /reset endpoint
Allows a user to reset and change their password.
- 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:
DataViewSet
Authenticated 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
,ModelViewSet
This 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.AnonDjangoObjectPermissionFilter'>, <class 'onadata.libs.filters.XFormOwnerFilter'>, <class 'onadata.libs.filters.DataFilter'>)¶
- 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'¶
- queryset¶
- 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)¶
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
kwargs
is 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
,ModelViewSet
A simple ViewSet for viewing and editing DataViews.
- 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
- 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'>]¶
- queryset¶
- 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.apply_filters(instance_qs, filters)¶
Apply filters on a queryset
- 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.filter_to_field_lookup(filter_string)¶
Converts a =, < or > to a django field lookup
- 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_field_lookup(column, filter_string)¶
Convert filter_string + column into a field lookup expression
- onadata.apps.api.viewsets.dataview_viewset.get_filter_kwargs(filters)¶
Apply filters on a queryset
- onadata.apps.api.viewsets.dataview_viewset.get_form_field_chart_url(url, field)¶
Returns a chart’s
url
with the field_namefield
parameter 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
- pagination_class¶
alias of
StandardPageNumberPagination
- perform_destroy(instance)¶
Override perform_detroy method
- permission_classes = (<class 'onadata.apps.api.permissions.DjangoObjectPermissionsIgnoreModelPerm'>,)¶
- queryset¶
- 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
,ReadOnlyModelViewSet
The /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'>]¶
- queryset¶
- 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
,GenericViewSet
FloipViewSet: create, list, retrieve, destroy
- filter_backends = (<class 'onadata.libs.filters.AnonDjangoObjectPermissionFilter'>, <class 'onadata.libs.filters.PublicDatasetsFilter'>)¶
- 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'>]¶
- queryset¶
- 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:
JSONRenderer
Render 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 MetaData objects.
- class onadata.apps.api.viewsets.media_viewset.MediaViewSet(**kwargs)¶
Bases:
AuthenticateHeaderMixin
,CacheControlMixin
,ETagsMixin
,DefaultBaseViewset
,ReadOnlyModelViewSet
A 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'>,)¶
- queryset¶
- 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
,GenericViewSet
Merged XForms viewset: create, list, retrieve, destroy
- data(request, *args, **kwargs)¶
Return data from the merged xforms
- filter_backends = (<class 'onadata.libs.filters.AnonDjangoObjectPermissionFilter'>, <class 'onadata.libs.filters.PublicDatasetsFilter'>)¶
- 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'>]¶
- queryset¶
- 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
,GenericViewSet
Provides 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'>]¶
- queryset¶
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
,ModelViewSet
List, 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'>,)¶
- queryset¶
- 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
,ModelViewSet
The /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'>]¶
- queryset¶
- 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
,ModelViewSet
The /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_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'>,)¶
- queryset¶
- 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(**kwargs)¶
Bases:
AuthenticateHeaderMixin
,CacheControlMixin
,ETagsMixin
,ObjectLookupMixin
,DefaultBaseViewset
,ModelViewSet
List, 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'>)¶
- lookup_field = 'user'¶
- members(request, *args, **kwargs)¶
Return organization members.
- permission_classes = [<class 'onadata.apps.api.permissions.OrganizationProfilePermissions'>]¶
- queryset¶
- retrieve(request, *args, **kwargs)¶
Get organization from cache or db
- 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
,ReadOnlyModelViewSet
This 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
pk
when used.
- get_object()¶
Returns the Instance object using the
pk
anddataid
lookup 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'¶
- queryset¶
- 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(**kwargs)¶
Bases:
AuthenticateHeaderMixin
,CacheControlMixin
,ETagsMixin
,LabelsMixin
,ProfilerMixin
,DefaultBaseViewset
,ModelViewSet
List, Retrieve, Update, Create Project and Project Forms.
- 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'>)¶
- 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 ‘prepared’ prefetched queryset for GET requests.
- get_serializer_class()¶
Return BaseProjectSerializer class when listing projects.
- invitations(request, *args, **kwargs)¶
List, Create. Update project invitations
- list(request, *args, **kwargs)¶
Returns a list of projects
- lookup_field = 'pk'¶
- pagination_class¶
alias of
StandardPageNumberPagination
- permission_classes = [<class 'onadata.apps.api.permissions.ProjectPermissions'>]¶
- queryset¶
- 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
,ReadOnlyModelViewSet
The /api/v1/stats API endpoint implementaion.
- filter_backends = (<class 'onadata.libs.filters.AnonDjangoObjectPermissionFilter'>,)¶
- 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'>]¶
- queryset¶
- 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
,ModelViewSet
Submission 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'>]¶
- queryset¶
- 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
,ReadOnlyModelViewSet
Provides 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'>,)¶
- 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'>]¶
- queryset¶
- 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
,ModelViewSet
This 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'>]¶
- queryset¶
- 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(**kwargs)¶
Bases:
AuthenticateHeaderMixin
,CacheControlMixin
,ETagsMixin
,ObjectLookupMixin
,DefaultBaseViewset
,ModelViewSet
List, 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'¶
- 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'>]¶
- queryset¶
- 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)¶
Accpet’s 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
,ReadOnlyModelViewSet
This 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'¶
- permission_classes = [<class 'onadata.apps.api.permissions.UserViewSetPermissions'>]¶
- queryset¶
- search_fields = ('=email',)¶
- 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
,ModelViewSet
Expose and persist charts and corresponding data.
- filter_backends = (<class 'onadata.libs.filters.WidgetFilter'>,)¶
- 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.
- 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'>]¶
- queryset¶
- 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:
XFormListViewSet
OpenRosa 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
,ReadOnlyModelViewSet
OpenRosa 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'>,)¶
- queryset¶
- 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:
JSONParser
Flow 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
,DefaultBaseViewset
,GenericViewSet
XFormSubmissionViewSet class
- authentication_classes = (<class 'onadata.libs.authentication.DigestAuthentication'>, <class 'rest_framework.authentication.BasicAuthentication'>, <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'¶
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
,ModelViewSet
Publish XLSForms, List, Retrieve Published Forms.
- 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.
- 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'>)¶
- 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'¶
- queryset¶
- 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
result
is a dict and has a type.
- onadata.apps.api.viewsets.xform_viewset.upload_to_survey_draft(filename, username)¶
Return the
filename
in theusername
survey-drafts directory.
- onadata.apps.api.viewsets.xform_viewset.value_for_type(form, field, value)¶
Returns a boolean value for the
field
of typeBooleanField
otherwise returns the samevalue
back.