Esempio n. 1
0
    def form_valid(self, form):
        Questions = form.instance.QuestionSet.Questions.all()
        request = self.request.POST
        form.clean()
        for question in Questions:
            if request.__contains__(str(
                    question.pk)) and request.get(str(question.pk)) != '':
                if Answer.objects.filter(Question=question.pk,
                                         Survey=form.instance.pk).exists():
                    newAnswear = Answer.objects.get(Question=question.pk,
                                                    Survey=form.instance.pk)
                    newAnswear.Options.clear()
                else:
                    newAnswear = Answer(Question=question,
                                        Survey=form.instance)
                    newAnswear.save()
                if question.InputType.pk == settings.TEXT_ID:
                    newAnswear.Text = request.get(str(question.pk))
                if question.InputType.pk == settings.NUMERIC_ID:
                    newAnswear.Numeric = request.get(str(question.pk))
                if question.InputType.pk == settings.BOOL_ID:
                    newAnswear.Bool = bool(int(request.get(str(question.pk))))
                if question.InputType.pk == settings.OPTIONS_ID:
                    for option in request.getlist(str(question.pk)):
                        selectedOption = GetOption(option)
                        newAnswear.Options.add(selectedOption)
                newAnswear.save()
            else:
                if Answer.objects.filter(Question=question.pk,
                                         Survey=form.instance.pk).exists():
                    Answer.objects.filter(Question=question.pk,
                                          Survey=form.instance.pk).delete()

        return super(FillSurvey, self).form_valid(form)