예제 #1
0
def uncomplete_task(request, task_id):
    """Uncompletes a task."""
    task = get_object_or_404(Task, pk=task_id)
    task_progress = task.progress_for_user(request.user)
    if task_progress:
        task_progress.delete()
        # Log dropping of task
        CourseLog.drop_task(request.user)

        # Uncomplete the lesson if it has already been completed
        lesson_progress = task.lesson.progress_for_user(request.user)
        if lesson_progress and lesson_progress.completed:
            lesson_progress.completed = None
            lesson_progress.save()

        # Uncomplete the course if it has already been completed
        course_progress = task.lesson.course.progress_for_user(request.user)
        if course_progress and course_progress.completed:
            course_progress.completed = None

        course_progress.calc_progress(request.user)
        course_progress.save()

    return HttpResponseRedirect(
        reverse('lesson', args=(task.lesson.course.slug, task.lesson.slug,))
    )
예제 #2
0
def uncomplete_task(request, task_id):
    """Uncompletes a task."""
    task = get_object_or_404(Task, pk=task_id)
    task_progress = task.progress_for_user(request.user)
    if task_progress:
        task_progress.delete()
        # Log dropping of task
        CourseLog.drop_task(request.user)

        # Uncomplete the lesson if it has already been completed
        lesson_progress = task.lesson.progress_for_user(request.user)
        if lesson_progress and lesson_progress.completed:
            lesson_progress.completed = None
            lesson_progress.save()

        # Uncomplete the course if it has already been completed
        course_progress = task.lesson.course.progress_for_user(request.user)
        if course_progress and course_progress.completed:
            course_progress.completed = None

        course_progress.calc_progress(request.user)
        course_progress.save()

    return HttpResponseRedirect(
        reverse('lesson', args=(
            task.lesson.course.slug,
            task.lesson.slug,
        )))
예제 #3
0
def complete_task(request, task_id):
    """Completes a task."""
    task = get_object_or_404(Task, pk=task_id)

    # Check to see if a user isn't already enrolled in the course
    course_progress = task.lesson.course.progress_for_user(request.user)
    if not course_progress:
        course_progress = task.lesson.course.enroll(request.user)

    # Grab the lesson progress
    lesson_progress = task.lesson.progress_for_user(request.user)
    if not lesson_progress:
        # If the lesson progress doesn't exist, create it
        LessonProgress.objects.create(user=request.user, lesson=task.lesson)
        # Log the course was started
        CourseLog.start_lesson(request.user)

    # Check to see if a user hasn't already completed the task.
    # If they are just ignore and redirect.
    task_progress = task.progress_for_user(request.user)
    if not task_progress:
        task.complete(request.user, course_progress)

    return HttpResponseRedirect(reverse('lesson', args=(task.lesson.course.slug,
                                                        task.lesson.slug,)))
예제 #4
0
def complete_task(request, task_id):
    """Completes a task."""
    task = get_object_or_404(Task, pk=task_id)

    # Check to see if a user isn't already enrolled in the course
    course_progress = task.lesson.course.progress_for_user(request.user)
    if not course_progress:
        course_progress = task.lesson.course.enroll(request.user)

    # Grab the lesson progress
    lesson_progress = task.lesson.progress_for_user(request.user)
    if not lesson_progress:
        # If the lesson progress doesn't exist, create it
        LessonProgress.objects.create(user=request.user, lesson=task.lesson)
        # Log the course was started
        CourseLog.start_lesson(request.user)

    # Check to see if a user hasn't already completed the task.
    # If they are just ignore and redirect.
    task_progress = task.progress_for_user(request.user)
    if not task_progress:
        task.complete(request.user, course_progress)

    return HttpResponseRedirect(
        reverse('lesson', args=(
            task.lesson.course.slug,
            task.lesson.slug,
        )))