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 and onadata.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

share(request, *args, **kwargs)

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 the username survey-drafts directory.

onadata.apps.api.viewsets.xform_viewset.value_for_type(form, field, value)

Returns a boolean value for the field of type BooleanField otherwise returns the same value back.