コード例 #1
0
ファイル: test_viewer_tools.py プロジェクト: ukanga/onadata
    def test_get_enketo_single_submit_url(self, mocked):
        """Test get_single_submit_url.

        Ensures single submit url is being received.
        """
        request = RequestFactory().get('/')

        mocked_response = {
            "single_url": "https://enketo.ona.io/single/::XZqoZ94y",
            "code": 200
        }

        enketo_url = settings.ENKETO_URL + "/api/v2/survey/single/once"
        username = "******"
        server_url = get_form_url(request,
                                  username,
                                  settings.ENKETO_PROTOCOL,
                                  True,
                                  xform_pk=1)

        url = '{}?server_url={}&form_id={}'.format(enketo_url, server_url,
                                                   "tag_team")
        mocked.get(url, json=mocked_response)
        response = get_enketo_single_submit_url(request,
                                                username,
                                                id_string="tag_team",
                                                xform_pk=1)

        self.assertEqual(response, 'https://enketo.ona.io/single/::XZqoZ94y')
コード例 #2
0
ファイル: test_viewer_tools.py プロジェクト: onaio/onadata
    def test_get_enketo_single_submit_url(self, mocked):
        """Test get_single_submit_url.

        Ensures single submit url is being received.
        """
        request = RequestFactory().get('/')

        mocked_response = {
            "single_url": "https://enketo.ona.io/single/::XZqoZ94y",
            "code": 200
        }

        enketo_url = settings.ENKETO_URL + "/api/v2/survey/single/once"
        username = "******"
        server_url = get_form_url(
            request, username, settings.ENKETO_PROTOCOL, True, xform_pk=1)

        url = '{}?server_url={}&form_id={}'.format(
            enketo_url, server_url, "tag_team")
        mocked.get(url, json=mocked_response)
        response = get_enketo_single_submit_url(
            request, username, id_string="tag_team", xform_pk=1)

        self.assertEqual(
            response, 'https://enketo.ona.io/single/::XZqoZ94y')
コード例 #3
0
ファイル: xform_viewset.py プロジェクト: ukanga/onadata
    def enketo(self, request, **kwargs):
        """Expose enketo urls."""
        survey_type = self.kwargs.get('survey_type') or \
            request.GET.get('survey_type')
        self.object = self.get_object()
        form_url = get_form_url(request,
                                self.object.user.username,
                                protocol=settings.ENKETO_PROTOCOL,
                                xform_pk=self.object.pk,
                                generate_consistent_urls=True)

        data = {'message': _(u"Enketo not properly configured.")}
        http_status = status.HTTP_400_BAD_REQUEST

        try:
            # pass default arguments to enketo_url to prepopulate form fields
            request_vars = request.GET
            defaults = generate_enketo_form_defaults(self.object,
                                                     **request_vars)
            url = enketo_url(form_url, self.object.id_string, **defaults)
            preview_url = get_enketo_preview_url(request,
                                                 self.object.user.username,
                                                 self.object.id_string,
                                                 xform_pk=self.object.pk)
        except EnketoError as e:
            data = {'message': _(u"Enketo error: %s" % e)}
        else:
            if survey_type == 'single':
                single_submit_url = get_enketo_single_submit_url(
                    request,
                    self.object.user.username,
                    self.object.id_string,
                    xform_pk=self.object.pk)
                data = {"single_submit_url": single_submit_url}
            elif url and preview_url:
                http_status = status.HTTP_200_OK
                data = {"enketo_url": url, "enketo_preview_url": preview_url}

        return Response(data, http_status)
コード例 #4
0
ファイル: xform_viewset.py プロジェクト: onaio/onadata
    def enketo(self, request, **kwargs):
        """Expose enketo urls."""
        survey_type = self.kwargs.get('survey_type') or \
            request.GET.get('survey_type')
        self.object = self.get_object()
        form_url = get_form_url(
            request, self.object.user.username, settings.ENKETO_PROTOCOL,
            xform_pk=self.object.pk)

        data = {'message': _(u"Enketo not properly configured.")}
        http_status = status.HTTP_400_BAD_REQUEST

        try:
            # pass default arguments to enketo_url to prepopulate form fields
            request_vars = request.GET
            defaults = generate_enketo_form_defaults(
                self.object, **request_vars)
            url = enketo_url(
                form_url, self.object.id_string, **defaults)
            preview_url = get_enketo_preview_url(request,
                                                 self.object.user.username,
                                                 self.object.id_string,
                                                 xform_pk=self.object.pk)
        except EnketoError as e:
            data = {'message': _(u"Enketo error: %s" % e)}
        else:
            if survey_type == 'single':
                single_submit_url = get_enketo_single_submit_url(
                    request, self.object.user.username, self.object.id_string,
                    xform_pk=self.object.pk)
                data = {"single_submit_url": single_submit_url}
            elif url and preview_url:
                http_status = status.HTTP_200_OK
                data = {"enketo_url": url,
                        "enketo_preview_url": preview_url}

        return Response(data, http_status)