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
,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.