onadata.apps.api.viewsets.xform_viewset module¶
Module contents¶
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.