Exemple #1
0
    def get_practice_for_user(self, user):
        '''
        Saves the self course and fetches a corresponding Practice
        if it exists, otherwise creates one and returns it.
        '''
        self.save()

        self.update_user_records(user)
        print_terminal("Course count is %d" % self.record_count())

        try:
            # raise Practice.DoesNotExist
            practice = CoursePractice.objects.get(course=self, user=user)
            print_terminal("Retrieving pre-existing practice: [%s]" % str(practice))

        except Practice.DoesNotExist:
            practice = CoursePractice(course=self, user=user)
            practice.save()

            for record in self.get_records().filter(user=user):
                print_terminal("Adding record")
                practice.add_quiz_record(record)

            practice.save()
            print_terminal("Creating practice: practice_count[%d], course_count[%d]" % (practice.count(), self.count()))

        return practice
Exemple #2
0
    def get_practice_for_user(self, user):
        '''
        Saves the self course and fetches a corresponding Practice
        if it exists, otherwise creates one and returns it.
        '''
        self.save()

        self.update_user_records(user)
        print_terminal("Course count is %d" % self.record_count())

        try:
            # raise Practice.DoesNotExist
            practice = CoursePractice.objects.get(course=self, user=user)
            print_terminal("Retrieving pre-existing practice: [%s]" %
                           str(practice))

        except Practice.DoesNotExist:
            practice = CoursePractice(course=self, user=user)
            practice.save()

            for record in self.get_records().filter(user=user):
                print_terminal("Adding record")
                practice.add_quiz_record(record)

            practice.save()
            print_terminal(
                "Creating practice: practice_count[%d], course_count[%d]" %
                (practice.count(), self.count()))

        return practice
Exemple #3
0
def delete_solution(request, course_id, quiz_id):
    print_terminal("Entered Delete phase")
    if request.method == "GET":
        quiz_id = request.GET["quiz_id"]
        solution_index = int(request.GET["index"])

    quiz = Quiz.objects.get(id=quiz_id)
    solution = quiz.get_solution_in_index(solution_index)
    print_terminal("Fetched solution")

    success = False
    if solution.get_creator() == request.user:
        solution.delete()
        success = True

    return HttpResponse(json.dumps({"success": str(success)}), content_type="application/json")
Exemple #4
0
def practice_question(request, course_id):
    course = get_object_or_404(Course, pk=course_id)

    user = request.user
    if not is_current_user_enrolled(request, course_id):
        return HttpResponse("%s is not enrolled in %s" % (user.username, course.name))

    practice = course.get_practice_for_user(user)

    print_terminal(str(practice))

    quiz = practice.pop_quiz()
    print_terminal("Popped Quiz: %s" % str(quiz))

    context = {"quiz": quiz, "preamble": get_preamble_text()}
    return render(request, "practise_question.html", context)
Exemple #5
0
def delete_solution(request, course_id, quiz_id):
    print_terminal("Entered Delete phase")
    if request.method == 'GET':
        quiz_id = request.GET['quiz_id']
        solution_index = int(request.GET['index'])

    quiz = Quiz.objects.get(id=quiz_id)
    solution = quiz.get_solution_in_index(solution_index)
    print_terminal("Fetched solution")

    success = False
    if solution.get_creator() == request.user:
        solution.delete()
        success = True

    return HttpResponse(json.dumps({'success': str(success)}),
                        content_type="application/json")
Exemple #6
0
def practice_question(request, course_id):
    course = get_object_or_404(Course, pk=course_id)

    user = request.user
    if not is_current_user_enrolled(request, course_id):
        return HttpResponse("%s is not enrolled in %s" %
                            (user.username, course.name))

    practice = course.get_practice_for_user(user)

    print_terminal(str(practice))

    quiz = practice.pop_quiz()
    print_terminal("Popped Quiz: %s" % str(quiz))

    context = {'quiz': quiz, 'preamble': get_preamble_text()}
    return render(request, 'practise_question.html', context)