onadata.apps.api.viewsets.submissionstats_viewset module

Module contents

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