Exemple #1
0
def question_form_update(request, evalpk, parentpk, qformpk):
    evaluation, parent, questions = get_question_structure(evalpk, parentpk)
    qform = get_object_or_404(QuestionForm, pk=qformpk)
    qfclass = QuestionFormBuilder(qform, qform.ftype)

    if request.method == "POST":
        fparams = qfclass.get_admin_params_form()(request.POST)
        fvalues = qfclass.get_admin_values_formset()(request.POST)
        if fparams.is_valid() and fvalues.is_valid():
            qfclass.admin_params_form_save(fparams)
            qfclass.admin_values_formset_save(fvalues)
            return HttpResponseRedirect(
                reverse('question-details', kwargs={'evalpk': evaluation.pk,
                                                   'parentpk': parent.pk}))
    else:
        fparams = qfclass.get_admin_params_form()()
        fvalues = qfclass.get_admin_values_formset()()

    return render(request, 'evaluation/questionform_form.html',
                          {'fparams': fparams, 'fvalues': fvalues,
                           'evaluation': evaluation, 'question': parent,
                           'questions': questions})
Exemple #2
0
def question_form_create(request, evalpk, parentpk, ftype):
    evaluation, parent, questions = get_question_structure(evalpk, parentpk)
    qfclass = QuestionFormBuilder(None, ftype)

    if request.method == "POST":
        fparams = qfclass.get_admin_params_form()(request.POST,
                                                  prefix="fparams")
        fvalues = qfclass.get_admin_values_formset()(request.POST, initial=[],
                                                     prefix="fvalues")
        form = QuestionFormForm(request.POST, prefix="qform")
        v1 = form.is_valid()
        v2 = fparams.is_valid()
        v3 = fvalues.is_valid()
        if v1 and v2 and v3:
            qform = form.save(False)
            qform.question = parent
            qform.ftype = ftype
            qform.save()
            qfclass.set_parent(qform)
            qfclass.admin_params_form_save(fparams)
            qfclass.admin_values_formset_save(fvalues)
            return HttpResponseRedirect(
                reverse('question-details', kwargs={'evalpk': evaluation.pk,
                                                   'parentpk': parent.pk}))
    else:
        form = QuestionFormForm(prefix="qform")
        fparams = qfclass.get_admin_params_form()(prefix="fparams")
        fvalues = qfclass.get_admin_values_formset()(prefix="fvalues")

    return render(request, 'evaluation/questionform_form.html',
                          {'form': form,
                           'fparams': fparams, 'fvalues': fvalues,
                           'evaluation': evaluation, 'question': parent,
                           'questions': questions})