Esempio n. 1
0
def course_progress(request, course_slug):
    course = get_object_or_404(Course, slug=course_slug)
    unit_list = get_list_or_404(Unit, course=course)

    units = []
    for u in unit_list:
        unit = {
            'id': u.id,
            'title': u.title,
            'unittype': u.unittype,
            'badge_class': unit_badge_classes[u.unittype],
        }
        units.append(unit)

    is_enrolled = course.students.filter(id=request.user.id).exists()
    if not is_enrolled:
        return HttpResponseForbidden(_('You are not enrolled in this course'))

    show_material = show_material_checker(course, request.user)
    if not show_material:
        return HttpResponseForbidden(_('You are enrolled in this course but it has not yet begun') + course.start_date.strftime(' (%d / %m / %Y)'))

    return render_to_response('courses/progress.html', {
        'course': course,
        'unit_list': units,
        'is_enrolled': is_enrolled, #required due course nav templatetag
        'show_material': show_material,
        'is_teacher': is_teacher_test(request.user, course),
    }, context_instance=RequestContext(request))
Esempio n. 2
0
def course_progress(request, course_slug):
    course = get_object_or_404(Course, slug=course_slug)
    unit_list = get_list_or_404(Unit, course=course)

    units = []
    for u in unit_list:
        unit = {
            'id': u.id,
            'title': u.title,
            'unittype': u.unittype,
            'badge_class': unit_badge_classes[u.unittype],
        }
        units.append(unit)

    is_enrolled = course.students.filter(id=request.user.id).exists()
    if not is_enrolled:
        return HttpResponseForbidden(_('You are not enrolled in this course'))

    show_material = show_material_checker(course, request.user)
    if not show_material:
        return HttpResponseForbidden(
            _('You are enrolled in this course but it has not yet begun') +
            course.start_date.strftime(' (%d / %m / %Y)'))

    return render_to_response(
        'courses/progress.html',
        {
            'course': course,
            'unit_list': units,
            'is_enrolled': is_enrolled,  #required due course nav templatetag
            'show_material': show_material,
            'is_teacher': is_teacher_test(request.user, course),
        },
        context_instance=RequestContext(request))
Esempio n. 3
0
def course_overview(request, course_slug):
    course = get_object_or_404(Course, slug=course_slug)

    show_material = False
    if request.user.is_authenticated():
        is_enrolled = course.students.filter(id=request.user.id).exists()
        is_teacher = is_teacher_test(request.user, course)
        if is_enrolled:
            show_material = show_material_checker(course, request.user)
    else:
        is_enrolled = False
        is_teacher = False

    if request.method == 'POST':
        if not is_enrolled:
            is_member = course.institutions.is_member(request.user)
            if not is_member:
                institutions = [i.name for i in course.institutions.all()]
                error(
                    request,
                    _(u'Unfortunately, this course is only available for '
                      u'%(institutions)s. Change your e-mail or contact to a '
                      u'teacher.') %
                    {'institutions': u", ".join(institutions)})
            else:
                course.students.add(request.user)
                course.save()
                success(
                    request,
                    _(u'Congratulations, you have successfully enroll in the course %(course)s'
                      ) % {'course': unicode(course)})
        else:
            course.students.remove(request.user)
            course.save()
            success(
                request,
                _(u'You have successfully unenroll in the course %(course)s') %
                {'course': unicode(course)})
        return HttpResponseRedirect(
            reverse('course_overview', args=(course.slug, )))

    announcements = Announcement.objects.filter(
        course=course).order_by('datetime').reverse()[:5]

    return render_to_response('courses/overview.html', {
        'course': course,
        'is_enrolled': is_enrolled,
        'show_material': show_material,
        'is_teacher': is_teacher,
        'request': request,
        'announcements': announcements,
    },
                              context_instance=RequestContext(request))
Esempio n. 4
0
def course_overview(request, course_slug):
    course = get_object_or_404(Course, slug=course_slug)

    show_material = False
    if request.user.is_authenticated():
        is_enrolled = course.students.filter(id=request.user.id).exists()
        is_teacher = is_teacher_test(request.user, course)
        if is_enrolled:
            show_material = show_material_checker(course, request.user)
    else:
        is_enrolled = False
        is_teacher = False

    if request.method == 'POST':
        if not is_enrolled:
            is_member = course.institutions.is_member(request.user)
            if not is_member:
                institutions = [i.name for i in course.institutions.all()]
                error(request,
                      _(u'Unfortunately, this course is only available for '
                        u'%(institutions)s. Change your e-mail or contact to a '
                        u'teacher.')
                        % {'institutions': u", ".join(institutions)})
            else:
                course.students.add(request.user)
                course.save()
                success(request,
                        _(u'Congratulations, you have successfully enroll in the course %(course)s')
                        % {'course': unicode(course)})
        else:
            course.students.remove(request.user)
            course.save()
            success(request,
                    _(u'You have successfully unenroll in the course %(course)s')
                    % {'course': unicode(course)})
        return HttpResponseRedirect(reverse('course_overview',
                                            args=(course.slug, )))

    announcements = Announcement.objects.filter(course=course).order_by('datetime').reverse()[:5]

    return render_to_response('courses/overview.html', {
            'course': course,
            'is_enrolled': is_enrolled,
            'show_material': show_material,
            'is_teacher': is_teacher,
            'request': request,
            'announcements': announcements,
            }, context_instance=RequestContext(request))