Example #1
0
def add_quiz(request, quiz_id=None):
    """To add a new quiz in the database.
    Create a new quiz and store it."""

    user = request.user
    ci = RequestContext(request)
    if not user.is_authenticated() or not is_moderator(user):
        raise Http404("You are not allowed to view this page!")
    if request.method == "POST":
        form = QuizForm(request.POST)
        if form.is_valid():
            if quiz_id is None:
                form.save()
                return redirect("/manage/")
                # to be changed later
                # return redirect("/manage/designquestionpaper")
            else:
                d = Quiz.objects.get(id=quiz_id)
                sd = datetime.datetime.strptime(form["start_date"].data, "%Y-%m-%d").date()
                st = datetime.datetime.strptime(form["start_time"].data, "%H:%M:%S").time()
                ed = datetime.datetime.strptime(form["end_date"].data, "%Y-%m-%d").date()
                et = datetime.datetime.strptime(form["end_time"].data, "%H:%M:%S").time()
                d.start_date_time = datetime.datetime.combine(sd, st)
                d.end_date_time = datetime.datetime.combine(ed, et)
                d.duration = form["duration"].data
                d.active = form["active"].data
                d.description = form["description"].data
                d.pass_criteria = form["pass_criteria"].data
                d.attempts_allowed = form["attempts_allowed"].data
                d.time_between_attempts = form["time_between_attempts"].data
                d.save()
                # quiz = Quiz.objects.get(id=quiz_id)
                return redirect("/manage/")
                # to be changed later
                # return redirect("/manage/showquiz")
        else:
            return render_to_response("add_quiz.html", {"form": form}, context_instance=ci)
    else:
        if quiz_id is None:
            form = QuizForm()
            return render_to_response("add_quiz.html", {"form": form}, context_instance=ci)
        else:
            d = Quiz.objects.get(id=quiz_id)
            form = QuizForm()
            form.initial["start_date"] = d.start_date_time.date()
            form.initial["start_time"] = d.start_date_time.time()
            form.initial["end_date"] = d.end_date_time.date()
            form.initial["end_time"] = d.end_date_time.time()
            form.initial["duration"] = d.duration
            form.initial["description"] = d.description
            form.initial["active"] = d.active
            form.initial["pass_criteria"] = d.pass_criteria
            form.initial["attempts_allowed"] = d.attempts_allowed
            form.initial["time_between_attempts"] = d.time_between_attempts
            return render_to_response("add_quiz.html", {"form": form}, context_instance=ci)