Exemplo n.º 1
0
def questionnaire_create(request):
    questionnaire = Questionnaire()
    InlineQuestionFormset = inlineformset_factory(Questionnaire,
                                                  Question,
                                                  formset=AtLeastOneFormSet,
                                                  form=QuestionForm,
                                                  extra=1,
                                                  exclude=('questionnaire', ))

    form = QuestionnaireForm(request.POST or None, instance=questionnaire)
    formset = InlineQuestionFormset(request.POST or None,
                                    instance=questionnaire)

    if form.is_valid() and formset.is_valid():
        newQuestionnaire = form.save(commit=False)
        # set index according to existing questionnaires
        newQuestionnaire.index = Questionnaire.objects.all().aggregate(
            Max('index'))['index__max'] + 1
        newQuestionnaire.save()
        form.save_m2m()

        formset.save()

        messages.success(request, _("Successfully created questionnaire."))
        return redirect('staff:questionnaire_index')
    else:
        return render(request, "staff_questionnaire_form.html",
                      dict(form=form, formset=formset))
Exemplo n.º 2
0
def questionnaire_copy(request, questionnaire_id):
    if request.method == "POST":
        questionnaire = Questionnaire()
        QuestionFormset = inlineformset_factory(Questionnaire,
                                                Question,
                                                formset=AtLeastOneFormSet,
                                                form=QuestionForm,
                                                extra=1,
                                                exclude=('questionnaire', ))

        form = QuestionnaireForm(request.POST, instance=questionnaire)
        formset = QuestionFormset(request.POST.copy(),
                                  instance=questionnaire,
                                  save_as_new=True)

        if form.is_valid() and formset.is_valid():
            form.save()
            formset.save()

            messages.add_message(request, messages.INFO,
                                 _("Successfully created questionnaire."))
            return redirect('evap.fsr.views.questionnaire_index')
        else:
            return render_to_response("fsr_questionnaire_form.html",
                                      dict(form=form, formset=formset),
                                      context_instance=RequestContext(request))
    else:
        questionnaire = get_object_or_404(Questionnaire, id=questionnaire_id)
        QuestionFormset = inlineformset_factory(Questionnaire,
                                                Question,
                                                formset=IdLessQuestionFormSet,
                                                form=QuestionForm,
                                                extra=1,
                                                exclude=('questionnaire', ))

        form = QuestionnaireForm(instance=questionnaire)
        formset = QuestionFormset(instance=Questionnaire(),
                                  queryset=questionnaire.question_set.all())

        return render_to_response("fsr_questionnaire_form.html",
                                  dict(form=form, formset=formset),
                                  context_instance=RequestContext(request))
Exemplo n.º 3
0
def questionnaire_create(request):
    questionnaire = Questionnaire()
    QuestionFormset = inlineformset_factory(Questionnaire, Question, formset=AtLeastOneFormSet, form=QuestionForm, extra=1, exclude=('questionnaire',))

    form = QuestionnaireForm(request.POST or None, instance=questionnaire)
    formset = QuestionFormset(request.POST or None, instance=questionnaire)

    if form.is_valid() and formset.is_valid():
        form.save()
        formset.save()

        messages.add_message(request, messages.INFO, _("Successfully created questionnaire."))
        return redirect('evap.fsr.views.questionnaire_index')
    else:
        return render_to_response("fsr_questionnaire_form.html", dict(form=form, formset=formset), context_instance=RequestContext(request))
Exemplo n.º 4
0
def questionnaire_copy(request, questionnaire_id):
    if request.method == "POST":
        questionnaire = Questionnaire()
        InlineQuestionFormset = inlineformset_factory(
            Questionnaire,
            Question,
            formset=AtLeastOneFormSet,
            form=QuestionForm,
            extra=1,
            exclude=('questionnaire', ))

        form = QuestionnaireForm(request.POST, instance=questionnaire)
        formset = InlineQuestionFormset(request.POST.copy(),
                                        instance=questionnaire,
                                        save_as_new=True)

        if form.is_valid() and formset.is_valid():
            form.save()
            formset.save()

            messages.success(request, _("Successfully created questionnaire."))
            return redirect('staff:questionnaire_index')
        else:
            return render(request, "staff_questionnaire_form.html",
                          dict(form=form, formset=formset))
    else:
        questionnaire = get_object_or_404(Questionnaire, id=questionnaire_id)
        InlineQuestionFormset = inlineformset_factory(
            Questionnaire,
            Question,
            formset=AtLeastOneFormSet,
            form=QuestionForm,
            extra=1,
            exclude=('questionnaire', ))

        form = QuestionnaireForm(instance=questionnaire)
        formset = InlineQuestionFormset(
            instance=questionnaire, queryset=questionnaire.question_set.all())

        return render(request, "staff_questionnaire_form.html",
                      dict(form=form, formset=formset))