1 | The view |
---|
2 | |
---|
3 | @login_required |
---|
4 | def fragebogen(request, code): |
---|
5 | visitorgroup = get_object_or_none(VisitorGroup, code=code) |
---|
6 | if not visitorgroup: |
---|
7 | return HttpResponseRedirect('/fragebogen/?q=invalid') |
---|
8 | user = request.user |
---|
9 | FragebogenFormSet = modelformset_factory(FragebogenAnswer, form=FragebogenForm, fields=("answer",), extra=0) |
---|
10 | FragebogenFormSetOptional = modelformset_factory(FragebogenAnswer, form=FragebogenOptionalAnswerForm, fields=("answer",), extra=0) |
---|
11 | daten_online_quesion = Question.objects.get(id=91) |
---|
12 | answers = FragebogenAnswer.objects.filter(user=user) |
---|
13 | #logging.debug('Answers: %s \n' % answers) |
---|
14 | if not answers: |
---|
15 | singleanswer_questions = Question.objects.select_related('choice').filter(category__gte=100, handler__in=[30,31]) |
---|
16 | for question in singleanswer_questions: |
---|
17 | answer=FragebogenAnswer() |
---|
18 | answer.question = question |
---|
19 | answer.user = user |
---|
20 | answer.visitorgroup = visitorgroup |
---|
21 | answer.save() |
---|
22 | answers = FragebogenAnswer.objects.filter(user=user) |
---|
23 | if request.method == 'POST': |
---|
24 | internet_formset = FragebogenFormSet(request.POST, queryset=answers.filter(question__category=100).order_by('-question__ordering'), prefix='internet') |
---|
25 | games_formset = FragebogenFormSet(request.POST, queryset=answers.filter(question__category=110).order_by('question__ordering'), prefix='games') |
---|
26 | communities_formset = FragebogenFormSetOptional(request.POST, queryset=answers.filter(question__category=120, question__handler__in=[30,31]).order_by('question__ordering'), prefix='communities') |
---|
27 | communities_frage_form = FragebogenMultipleAnswersForm(request.POST, question=daten_online_quesion) |
---|
28 | handy_formset = FragebogenFormSet(request.POST, queryset=answers.filter(question__category=130).order_by('question__ordering'), prefix='handy') |
---|
29 | interessenform = InteressenForm(request.POST) |
---|
30 | |
---|
31 | if internet_formset.is_valid() and games_formset.is_valid()\ |
---|
32 | and communities_formset.is_valid() and handy_formset.is_valid()\ |
---|
33 | and interessenform.is_valid() and communities_frage_form.is_valid(): |
---|
34 | |
---|
35 | internet_formset.save() |
---|
36 | games_formset.save() |
---|
37 | communities_formset.save() |
---|
38 | handy_formset.save() |
---|
39 | processMultipleChoiceForm(request, form=communities_frage_form, visitorgroup=visitorgroup) #Verwaltet Datenbankeinträge |
---|
40 | weg = interesse(interessenform) |
---|
41 | UserProfile.objects.filter(user=request.user).update(weg=weg) |
---|
42 | |
---|
43 | return HttpResponseRedirect('/fragebogen/danke/') |
---|
44 | else: |
---|
45 | |
---|
46 | internet_formset = FragebogenFormSet(queryset=answers.filter(question__category=100).order_by('-question__ordering'), prefix='internet') |
---|
47 | games_formset = FragebogenFormSet(queryset=answers.filter(question__category=110).order_by('question__ordering'), prefix='games') |
---|
48 | communities_formset = FragebogenFormSetOptional(queryset=answers.filter(question__category=120, question__handler__in=[30,31]).order_by('question__ordering'), prefix='communities') |
---|
49 | communities_frage_form = FragebogenMultipleAnswersForm(question=daten_online_quesion) |
---|
50 | handy_formset = FragebogenFormSet(queryset=answers.filter(question__category=130).order_by('question__ordering'), prefix='handy') |
---|
51 | interessenform = InteressenForm() |
---|
52 | |
---|
53 | |
---|
54 | |
---|
55 | The Diff: |
---|
56 | |
---|
57 | if request.method == 'POST': |
---|
58 | - internet_formset = FragebogenFormSet(request.POST, prefix='internet') |
---|
59 | - games_formset = FragebogenFormSet(request.POST, prefix='games') |
---|
60 | - communities_formset = FragebogenFormSetOptional(request.POST, prefix='communities') |
---|
61 | + internet_formset = FragebogenFormSet(request.POST, queryset=answers.filter(question__category=100).order_by('-question__ordering'), prefix='internet') |
---|
62 | + games_formset = FragebogenFormSet(request.POST, queryset=answers.filter(question__category=110).order_by('question__ordering'), prefix='games') |
---|
63 | + communities_formset = FragebogenFormSetOptional(request.POST, queryset=answers.filter(question__category=120, question__handler__in=[30,31]).order_by('question__ordering'), prefix='communities') |
---|
64 | communities_frage_form = FragebogenMultipleAnswersForm(request.POST, question=daten_online_quesion) |
---|
65 | - handy_formset = FragebogenFormSet(request.POST, prefix='handy') |
---|
66 | + handy_formset = FragebogenFormSet(request.POST, queryset=answers.filter(question__category=130).order_by('question__ordering'), prefix='handy') |
---|
67 | interessenform = InteressenForm(request.POST) |
---|
68 | + |
---|
69 | if internet_formset.is_valid() and games_formset.is_valid()\ |
---|
70 | and communities_formset.is_valid() and handy_formset.is_valid()\ |
---|
71 | and interessenform.is_valid() and communities_frage_form.is_valid(): |
---|
72 | @@ -121,12 +133,13 @@ def fragebogen(request, code): |
---|
73 | games_formset.save() |
---|
74 | communities_formset.save() |
---|
75 | handy_formset.save() |
---|
76 | - #processMultipleChoiceForm(request, form=communities_frage_form, visitorgroup=visitorgroup) #Verwaltet Datenbankeinträge |
---|
77 | + processMultipleChoiceForm(request, form=communities_frage_form, visitorgroup=visitorgroup) #Verwaltet Datenbankeinträge |
---|
78 | weg = interesse(interessenform) |
---|
79 | UserProfile.objects.filter(user=request.user).update(weg=weg) |
---|
80 | - return HttpResponseRedirect('/fragebogen/danke/') |
---|
81 | + |
---|
82 | + return HttpResponseRedirect('/fragebogen/danke/') |
---|