Exemple #1
0
def question_modify(request, quest_id, question_id=None, template='quest/question_modify.html'):
    quest = get_object_or_404(Questionnaire, pk=quest_id, owner=request.user)
    if question_id is None:
        question = Question()
    else:
        question = get_object_or_404(Question, pk=question_id)

    if request.method == 'POST':
        form = QuestionForm(request.POST, instance=question)
        formset = ChoiceFormSet(request.POST, instance=question)
        if form.is_valid() and formset.is_valid():
            if question_id is None:
                question = form.save()
                question.questionnaire = quest
                question.save()
            else:
                form.save()
            formset.save()
            if 'action:save' in request.POST:
                return redirect("quest.views.questionnaire_modify", quest_id=quest.pk)
            else:
                return redirect("quest.views.question_modify", quest_id=quest.pk, question_id=question.pk)
    else:
        form = QuestionForm(instance=question)
        formset = ChoiceFormSet(instance=question)

    context = RequestContext(request)
    return render_to_response(template, 
            {'form': form, 'formset': formset, 'quest': quest}, context_instance=context)
Exemple #2
0
def add_submit(request):
    if request.POST:
        title = request.POST.get('testtitle')
        data = request.POST.get('data')
        enddate = int(request.POST.get('enddate'))
        jdat = json.loads(data)
        print json.dumps(jdat, sort_keys=True, indent=4, separators=(',', ':'))
        print title
        print enddate
        tobj = Test(
            name = title,
            creator=Teacher.objects.get(user=request.user),
            enddate=datetime.datetime.now() + datetime.timedelta(days=enddate)
        )
        tobj.save()
        for q in jdat:
            ques = Question(
                    qtype = str(q[u'type']),
                    header = str(q[u'title']),
                    )
            ques.save()
            print "so far"
            for opt in q[u'options']:
                aopt = AnswerOption(text=opt[u'html'])
                print "so far far"
                aopt.save()
                ques.choices.add(aopt)
            if u'correct' in q:
                print "Correct answer",q[u'correct'][u'html']
                right = AnswerOption(text=q[u'correct'][u'html'])
                right.save()
                ques.answer = right
            else:
                print "[WARNING] No Correct Answer"
            ques.save()
            tobj.questions.add(ques)
        tobj.save()
        
        
    return HttpResponse("")