Пример #1
0
    def get_participant_links(self):
        participant_urls = []
        room_base_url = add_params_to_url(reverse('assign_visitor_to_room'), {'room': self.name})
        if self.has_participant_labels():
            for label in self.get_participant_labels():
                params = {'participant_label': label}
                if self.use_secure_urls:
                    params['hash'] = make_hash(label)
                participant_url = add_params_to_url(room_base_url, params)
                participant_urls.append(participant_url)
        else:
            participant_urls = [room_base_url]

        return participant_urls
Пример #2
0
    def get_participant_links(self):
        participant_urls = []
        room_base_url = add_params_to_url(reverse('assign_visitor_to_room'),
                                          {'room': self.name})
        if self.has_participant_labels():
            for label in self.get_participant_labels():
                params = {'participant_label': label}
                if self.use_secure_urls:
                    params['hash'] = make_hash(label)
                participant_url = add_params_to_url(room_base_url, params)
                participant_urls.append(participant_url)
        else:
            participant_urls = [room_base_url]

        return participant_urls
Пример #3
0
    def test_missing_hash(self):
        br = self.browser
        url_without_hash = add_params_to_url(URL_PARTICIPANT_SECURE_URLS,
                                             {'participant_label': LABEL_REAL})

        br.visit(url_without_hash)
        self.assertEqual(br.status_code, 404)
Пример #4
0
    def get_context_data(self, **kwargs):
        context = super(PersistentLabURLs, self).get_context_data(**kwargs)

        # default session stuff
        default_session_base_url = self.request.build_absolute_uri(
            reverse('assign_visitor_to_default_session'))
        default_session_example_urls = []
        for i in range(1, 20):
            data_urls = add_params_to_url(
                default_session_base_url, {
                    'participant_label':
                    'PC-{}'.format(i),
                    'access_code_for_default_session':
                    settings.ACCESS_CODE_FOR_DEFAULT_SESSION
                })
            default_session_example_urls.append(data_urls)
        global_singleton = GlobalSingleton.objects.get()
        default_session = global_singleton.default_session

        context.update({
            'default_session_example_urls':
            default_session_example_urls,
            'access_code_for_default_session':
            (otree.constants_internal.access_code_for_default_session),
            'participant_label':
            otree.constants_internal.participant_label,
            'default_session':
            default_session,
        })
        return context
Пример #5
0
    def get_context_data(self, **kwargs):
        context = super(PersistentLabURLs, self).get_context_data(**kwargs)

        # default session stuff
        from otree.views.concrete import AssignVisitorToDefaultSession
        default_session_base_url = self.request.build_absolute_uri(
            AssignVisitorToDefaultSession.url()
        )
        default_session_example_urls = []
        for i in range(1, 20):
            data_urls = add_params_to_url(
                default_session_base_url,
                {otree.constants_internal.participant_label: 'P{}'.format(i)})
            default_session_example_urls.append(data_urls)
        global_singleton = GlobalSingleton.objects.get()
        default_session = global_singleton.default_session

        context.update({
            'default_session_example_urls': default_session_example_urls,
            'access_code_for_default_session': (
                otree.constants_internal.access_code_for_default_session
            ),
            'participant_label': otree.constants_internal.participant_label,
            'default_session': default_session,
        })
        return context
Пример #6
0
    def get_context_data(self, **kwargs):
        context = super(PersistentLabURLs, self).get_context_data(**kwargs)

        # default session stuff
        default_session_base_url = self.request.build_absolute_uri(
            reverse('assign_visitor_to_default_session')
        )
        default_session_example_urls = []
        for i in range(1, 20):
            data_urls = add_params_to_url(
                default_session_base_url,
                {
                    'participant_label': 'PC-{}'.format(i),
                    'access_code_for_default_session':
                    settings.ACCESS_CODE_FOR_DEFAULT_SESSION
                }
            )
            default_session_example_urls.append(data_urls)
        global_singleton = GlobalSingleton.objects.get()
        default_session = global_singleton.default_session

        context.update({
            'default_session_example_urls': default_session_example_urls,
            'access_code_for_default_session': (
                otree.constants_internal.access_code_for_default_session
            ),
            'participant_label': otree.constants_internal.participant_label,
            'default_session': default_session,
        })
        return context
Пример #7
0
    def get_context_data(self, **kwargs):
        context = super(PersistentLabURLs, self).get_context_data(**kwargs)

        # default session stuff
        from otree.views.concrete import AssignVisitorToDefaultSession
        default_session_base_url = self.request.build_absolute_uri(
            AssignVisitorToDefaultSession.url())
        default_session_example_urls = []
        for i in range(1, 20):
            data_urls = add_params_to_url(
                default_session_base_url,
                {otree.constants_internal.participant_label: 'P{}'.format(i)})
            default_session_example_urls.append(data_urls)
        global_singleton = GlobalSingleton.objects.get()
        default_session = global_singleton.default_session

        context.update({
            'default_session_example_urls':
            default_session_example_urls,
            'access_code_for_default_session':
            (otree.constants_internal.access_code_for_default_session),
            'participant_label':
            otree.constants_internal.participant_label,
            'default_session':
            default_session,
        })
        return context
Пример #8
0
    def test_wrong_hash(self):
        url_wrong_hash = add_params_to_url(URL_PARTICIPANT_SECURE_URLS, {
            'participant_label': LABEL_REAL,
            'hash': 'fakehash'
        })

        br = self.browser
        br.visit(url_wrong_hash)
        self.assertEqual(br.status_code, 404)
Пример #9
0
    def test_wrong_hash(self):
        url_wrong_hash = add_params_to_url(
            URL_PARTICIPANT_SECURE_URLS,
            {'participant_label': LABEL_REAL, 'hash': 'fakehash'}
        )

        br = self.browser
        br.visit(url_wrong_hash)
        self.assertEqual(br.status_code, 404)
Пример #10
0
    def test_missing_hash(self):
        br = self.browser
        url_without_hash = add_params_to_url(
            URL_PARTICIPANT_SECURE_URLS,
            {'participant_label': LABEL_REAL}
        )

        br.visit(url_without_hash)
        self.assertEqual(br.status_code, 404)
Пример #11
0
    def get(self, request):
        assignment_id = self.request.GET.get('assignmentId')
        if assignment_id and assignment_id != 'ASSIGNMENT_ID_NOT_AVAILABLE':
            url_start = reverse('MTurkStart', args=(self.session.code,))
            url_start = add_params_to_url(url_start, {
                'assignmentId': self.request.GET['assignmentId'],
                'workerId': self.request.GET['workerId']})
            return HttpResponseRedirect(url_start)

        context = self.get_context_data()
        return self.render_to_response(context)
Пример #12
0
    def get(self, request, *args, **kwargs):
        assignment_id = self.request.GET["assignmentId"] if "assignmentId" in self.request.GET else ""
        if assignment_id and assignment_id != "ASSIGNMENT_ID_NOT_AVAILABLE":
            url_start = reverse("MTurkStart", args=(self.session.code,))
            url_start = add_params_to_url(
                url_start, {"assignmentId": self.request.GET["assignmentId"], "workerId": self.request.GET["workerId"]}
            )
            return HttpResponseRedirect(url_start)

        context = super(MTurkLandingPage, self).get_context_data(**kwargs)
        return self.render_to_response(context)
Пример #13
0
    def get(self, request, *args, **kwargs):
        assignment_id = self.request.GET.get('assignmentId')
        if assignment_id and assignment_id != 'ASSIGNMENT_ID_NOT_AVAILABLE':
            url_start = reverse('MTurkStart', args=(self.session.code,))
            url_start = add_params_to_url(url_start, {
                'assignmentId': self.request.GET['assignmentId'],
                'workerId': self.request.GET['workerId']})
            return HttpResponseRedirect(url_start)

        context = self.get_context_data()
        return self.render_to_response(context)
Пример #14
0
    def get(self, request, *args, **kwargs):
        assignment_id = (self.request.GET['assignmentId']
                         if 'assignmentId' in self.request.GET else '')
        if assignment_id and assignment_id != 'ASSIGNMENT_ID_NOT_AVAILABLE':
            url_start = reverse('MTurkStart', args=(self.session.code, ))
            url_start = add_params_to_url(
                url_start, {
                    'assignmentId': self.request.GET['assignmentId'],
                    'workerId': self.request.GET['workerId']
                })
            return HttpResponseRedirect(url_start)

        context = super(MTurkLandingPage, self).get_context_data(**kwargs)
        return self.render_to_response(context)
Пример #15
0
    def get_participant_urls(self, request):
        participant_urls = []
        room_base_url = reverse('AssignVisitorToRoom', args=(self.name, ))
        room_base_url = request.build_absolute_uri(room_base_url)

        if self.has_participant_labels():
            for label in self.get_participant_labels():
                params = {'participant_label': label}
                if self.use_secure_urls:
                    params['hash'] = make_hash(label)
                participant_url = add_params_to_url(room_base_url, params)
                participant_urls.append(participant_url)

        return participant_urls
Пример #16
0
    def get_participant_urls(self, request):
        participant_urls = []
        room_base_url = reverse('AssignVisitorToRoom', args=(self.name,))
        room_base_url = request.build_absolute_uri(room_base_url)

        if self.has_participant_labels():
            for label in self.get_participant_labels():
                params = {'participant_label': label}
                if self.use_secure_urls:
                    params['hash'] = make_hash(label)
                participant_url = add_params_to_url(room_base_url, params)
                participant_urls.append(participant_url)

        return participant_urls
Пример #17
0
    def test_has_session_but_missing_hash(self):

        create_session(
            'simple',
            # make it 6 so that we can test if the participant is reassigned
            # if they open their start link again (1/6 chance)
            num_participants=1,
            room_name=settings.ROOM_WITH_SECURE_URLS_NAME,
        )

        url_without_hash = add_params_to_url(URL_PARTICIPANT_SECURE_URLS,
                                             {'participant_label': LABEL_REAL})

        br = self.browser
        br.visit(url_without_hash)
        self.assertEqual(br.status_code, 404)
Пример #18
0
    def test_has_session_but_missing_hash(self):

        create_session(
            'simple',
            # make it 6 so that we can test if the participant is reassigned
            # if they open their start link again (1/6 chance)
            num_participants=1,
            room_name=settings.ROOM_WITH_SECURE_URLS_NAME,
        )

        url_without_hash = add_params_to_url(
            URL_PARTICIPANT_SECURE_URLS,
            {'participant_label': LABEL_REAL}
        )

        br = self.browser
        br.visit(url_without_hash)
        self.assertEqual(br.status_code, 404)