Beispiel #1
0
 def post(self, request, poll_hash):
     try:
         poll_controller = PollController(poll_hash)
         poll_controller.add_answer(request.POST)
         return render(request, "questionnaire/confirm.html", context={"poll_name": poll_controller.poll.name})
     except Exception as e:
         print(e)
Beispiel #2
0
    def setUp(self):
        user = get_user_model().objects.create_user(username='******',
                                                    password='******')

        questions = [{
            "question_name": "question1",
            "question_type": "Linear Scale",
            "question_required": True,
            "question_choice": {
                "value_min": 2,
                "value_max": 7
            }
        }, {
            "question_name": "question2",
            "question_type": "Long Answer",
            "question_required": False,
            "question_choice": {
                "value": "lorem ipsum"
            }
        }]

        poll = PollController.create_poll(author=user,
                                          name='poll1',
                                          questions=questions)
        self.poll_controller = PollController(poll.hash)
Beispiel #3
0
    def delete(self, request):
        try:
            poll_controller = PollController(
                poll_hash=request.body.decode("utf-8"))
            poll_controller.delete_poll()
        except Exception as e:
            print(e)
            return JsonResponse({"status": "Could not delete poll"},
                                status=400)

        return JsonResponse({"status": "Successfully removed poll"})
Beispiel #4
0
    def post(self, request):
        try:
            data = json.loads(request.body)
            PollController.create_poll(data["title"], request.user,
                                       data["poll"])
        except Exception as e:
            print(e)
            return JsonResponse({"status": "Could not add new poll"},
                                status=400)

        return JsonResponse({
            "redirect": reverse("polls"),
            "status": "Successfully added new poll"
        })
Beispiel #5
0
class PollControllerTest(TestCase):
    def setUp(self):
        user = get_user_model().objects.create_user(username='******',
                                                    password='******')

        questions = [{
            "question_name": "question1",
            "question_type": "Linear Scale",
            "question_required": True,
            "question_choice": {
                "value_min": 2,
                "value_max": 7
            }
        }, {
            "question_name": "question2",
            "question_type": "Long Answer",
            "question_required": False,
            "question_choice": {
                "value": "lorem ipsum"
            }
        }]

        poll = PollController.create_poll(author=user,
                                          name='poll1',
                                          questions=questions)
        self.poll_controller = PollController(poll.hash)

    def test_questions_length(self):
        questions = self.poll_controller.get_all_questions()

        self.assertEqual(questions.count(), 2)

    def test_questions_text(self):
        questions = self.poll_controller.get_all_questions()

        texts = ["question1", "question2"]

        for question, text in zip(questions, texts):
            with self.subTest(question=question, text=text):
                self.assertEqual(question.question_text, text)

    def test_questions_required(self):
        questions = self.poll_controller.get_all_questions()
        required = [True, False]

        for question, req in zip(questions, required):
            with self.subTest(question=question, req=req):
                self.assertEqual(question.required, req)
Beispiel #6
0
 def get_context_data(self, **kwargs):
     context = super().get_context_data(**kwargs)
     context["poll"] = PollController(poll_hash=self.kwargs["poll_hash"]).poll
     return context
Beispiel #7
0
 def get_queryset(self):
     questions = PollController(poll_hash=self.kwargs["poll_hash"]).get_all_questions()
     result = [self._get_question_data(question) for question in questions]
     return {"questions": result}
Beispiel #8
0
 def get_queryset(self):
     return PollController.get_author_polls(author=self.request.user)
Beispiel #9
0
 def get_queryset(self):
     return PollController(self.kwargs["poll_hash"]).get_all_answers()