def course_progress(request, course_slug): course = get_object_or_404(Course, slug=course_slug) is_enrolled = course.students.filter(id=request.user.id).exists() if not is_enrolled: messages.error(request, _('You are not enrolled in this course')) return HttpResponseRedirect(reverse('course_overview', args=[course_slug])) is_ready, ask_admin = is_course_ready(course) if not is_ready: return render_to_response('courses/no_content.html', { 'course': course, 'is_enrolled': is_enrolled, 'ask_admin': ask_admin, }, context_instance=RequestContext(request)) units = [] for u in get_units_available_for_user(course, request.user): unit = { 'id': u.id, 'title': u.title, 'unittype': u.unittype, 'badge_class': get_unit_badge_class(u), 'badge_tooltip': u.get_unit_type_name(), } units.append(unit) return render_to_response('courses/progress.html', { 'course': course, 'unit_list': units, 'is_enrolled': is_enrolled, # required due course nav templatetag 'is_teacher': is_teacher_test(request.user, course), }, context_instance=RequestContext(request))
def course_overview(request, course_slug): course = get_object_or_404(Course, slug=course_slug) check_user_can_view_course(course, request) if request.user.is_authenticated(): is_enrolled = course.students.filter(id=request.user.id).exists() is_teacher = is_teacher_test(request.user, course) else: is_enrolled = False is_teacher = False course_teachers = CourseTeacher.objects.filter(course=course) announcements = Announcement.objects.filter(course=course).order_by("datetime").reverse()[:5] units = get_units_available_for_user(course, request.user, True) use_old_calculus = course.slug in settings.COURSES_USING_OLD_TRANSCRIPT return render_to_response( "courses/overview.html", { "course": course, "units": units, "is_enrolled": is_enrolled, "is_teacher": is_teacher, "request": request, "course_teachers": course_teachers, "announcements": announcements, "use_old_calculus": use_old_calculus, }, context_instance=RequestContext(request), )
def get_sillabus_tree(course,user,minversion=True,incontext=False): units = [] current_mark_kq = course.get_user_mark(user) course_units = get_units_available_for_user(course, user, True) if len(course_units) > 0: if not incontext: for u in course_units: unit, current_mark_kq = get_unit_tree(u, user, current_mark_kq, minversion) units.append(unit) else: if current_mark_kq is not None: unit, current_mark_kq = get_unit_tree(current_mark_kq.unit, user, current_mark_kq, minversion) units.append(unit) else: prev = None for u in course_units: unit, current_mark_kq = get_unit_tree(u, user, current_mark_kq, minversion) if not unit['complete']: units.append(unit) return units else: prev = unit units.append(prev) return units
def course_classroom(request, course_slug): """ Main view of the course content (class). If the user is not enrolled we show him a message. If the course is not ready and the user is not admin we redirect the user to a denied access page. :permissions: login :context: course, is_enrolled, ask_admin, unit_list, is_teacher, peer_view .. versionadded:: 0.1 """ course = get_object_or_404(Course, slug=course_slug) is_enrolled = course.students.filter(id=request.user.id).exists() if not is_enrolled: messages.error(request, _("You are not enrolled in this course")) return HttpResponseRedirect(reverse("course_overview", args=[course_slug])) is_ready, ask_admin = is_course_ready(course) if not is_ready and not request.user.is_superuser: return render_to_response( "courses/no_content.html", {"course": course, "is_enrolled": is_enrolled, "ask_admin": ask_admin}, context_instance=RequestContext(request), ) units = [] for u in get_units_available_for_user(course, request.user): unit = { "id": u.id, "title": u.title, "unittype": u.unittype, "badge_class": get_unit_badge_class(u), "badge_tooltip": u.get_unit_type_name(), } units.append(unit) peer_review = { "text_max_size": settings.PEER_REVIEW_TEXT_MAX_SIZE, "file_max_size": settings.PEER_REVIEW_FILE_MAX_SIZE, } return render_to_response( "courses/classroom.html", { "course": course, "unit_list": units, "is_enrolled": is_enrolled, "is_teacher": is_teacher_test(request.user, course), "peer_review": peer_review, }, context_instance=RequestContext(request), )
def course_classroom(request, course_slug): """ Main view of the course content (class). If the user is not enrolled we show him a message. If the course is not ready and the user is not admin we redirect the user to a denied access page. :permissions: login :context: course, is_enrolled, ask_admin, unit_list, is_teacher, peer_view .. versionadded:: 0.1 """ course = get_object_or_404(Course, slug=course_slug) is_enrolled = course.students.filter(id=request.user.id).exists() if not is_enrolled: messages.error(request, _('You are not enrolled in this course')) return HttpResponseRedirect( reverse('course_overview', args=[course_slug])) is_ready, ask_admin = is_course_ready(course) if not is_ready and not request.user.is_superuser: return render_to_response('courses/no_content.html', { 'course': course, 'is_enrolled': is_enrolled, 'ask_admin': ask_admin, }, context_instance=RequestContext(request)) units = [] for u in get_units_available_for_user(course, request.user): unit = { 'id': u.id, 'title': u.title, 'unittype': u.unittype, 'badge_class': get_unit_badge_class(u), 'badge_tooltip': u.get_unit_type_name(), } units.append(unit) peer_review = { 'text_max_size': settings.PEER_REVIEW_TEXT_MAX_SIZE, 'file_max_size': settings.PEER_REVIEW_FILE_MAX_SIZE, } return render_to_response( 'courses/classroom.html', { 'course': course, 'unit_list': units, 'is_enrolled': is_enrolled, 'is_teacher': is_teacher_test(request.user, course), 'peer_review': peer_review }, context_instance=RequestContext(request))
def course_classroom(request, course_slug): """ Main view of the course content (class). If the user is not enrolled we show him a message. If the course is not ready and the user is not admin we redirect the user to a denied access page. :permissions: login :context: course, is_enrolled, ask_admin, unit_list, is_teacher, peer_view .. versionadded:: 0.1 """ course = get_course_if_user_can_view_or_404(course_slug, request) is_enrolled = course.students.filter(id=request.user.id).exists() if not is_enrolled: messages.error(request, _('You are not enrolled in this course')) return HttpResponseRedirect(reverse('course_overview', args=[course_slug])) is_ready, ask_admin = is_course_ready(course) if not is_ready and not request.user.is_superuser: return render_to_response('courses/no_content.html', { 'course': course, 'is_enrolled': is_enrolled, 'ask_admin': ask_admin, }, context_instance=RequestContext(request)) units = [] for u in get_units_available_for_user(course, request.user): unit = { 'id': u.id, 'title': u.title, 'unittype': u.unittype, 'badge_class': get_unit_badge_class(u), 'badge_tooltip': u.get_unit_type_name(), } units.append(unit) peer_review = { 'text_max_size': settings.PEER_REVIEW_TEXT_MAX_SIZE, 'file_max_size': settings.PEER_REVIEW_FILE_MAX_SIZE, } return render_to_response('courses/classroom.html', { 'course': course, 'unit_list': units, 'is_enrolled': is_enrolled, 'is_teacher': is_teacher_test(request.user, course), 'peer_review': peer_review }, context_instance=RequestContext(request))
def course_progress(request, course_slug): """ Main view for the user progress in the course. This will return the units for the user in the current course. :permissions: login :context: course, is_enrolled, ask_admin, course, unit_list, is_teacher .. versionadded:: 0.1 """ course = get_course_if_user_can_view_or_404(course_slug, request) is_enrolled = course.students.filter(id=request.user.id).exists() if not is_enrolled: messages.error(request, _('You are not enrolled in this course')) return HttpResponseRedirect( reverse('course_overview', args=[course_slug])) is_ready, ask_admin = is_course_ready(course) if not is_ready: return render_to_response('courses/no_content.html', { 'course': course, 'is_enrolled': is_enrolled, 'ask_admin': ask_admin, }, context_instance=RequestContext(request)) units = [] for u in get_units_available_for_user(course, request.user): unit = { 'id': u.id, 'title': u.title, 'unittype': u.unittype, 'badge_class': get_unit_badge_class(u), 'badge_tooltip': u.get_unit_type_name(), } units.append(unit) return render_to_response( 'courses/progress.html', { 'course': course, 'unit_list': units, 'is_enrolled': is_enrolled, # required due course nav templatetag 'is_teacher': is_teacher_test(request.user, course), }, context_instance=RequestContext(request))
def course_progress(request, course_slug): """ Main view for the user progress in the course. This will return the units for the user in the current course. :permissions: login :context: course, is_enrolled, ask_admin, course, unit_list, is_teacher .. versionadded:: 0.1 """ course = get_object_or_404(Course, slug=course_slug) is_enrolled = course.students.filter(id=request.user.id).exists() if not is_enrolled: messages.error(request, _("You are not enrolled in this course")) return HttpResponseRedirect(reverse("course_overview", args=[course_slug])) is_ready, ask_admin = is_course_ready(course) if not is_ready: return render_to_response( "courses/no_content.html", {"course": course, "is_enrolled": is_enrolled, "ask_admin": ask_admin}, context_instance=RequestContext(request), ) units = [] for u in get_units_available_for_user(course, request.user): unit = { "id": u.id, "title": u.title, "unittype": u.unittype, "badge_class": get_unit_badge_class(u), "badge_tooltip": u.get_unit_type_name(), } units.append(unit) return render_to_response( "courses/progress.html", { "course": course, "unit_list": units, "is_enrolled": is_enrolled, # required due course nav templatetag "is_teacher": is_teacher_test(request.user, course), }, context_instance=RequestContext(request), )
def course_overview(request, course_slug): """ Show the course main page. This will show the main information about the course and the 'register to this course' button. .. note:: **use_old_calculus** is a compatibility method with old evaluation methods, which allowed the normal units to be evaluated. The new system does not evaluate normal units, only tasks and exams. :context: course, units, is_enrolled, is_teacher, request, course_teachers, announcements, use_old_calculus .. versionadded:: 0.1 """ course = get_object_or_404(Course, slug=course_slug) check_user_can_view_course(course, request) if request.user.is_authenticated(): is_enrolled = course.students.filter(id=request.user.id).exists() is_teacher = is_teacher_test(request.user, course) else: is_enrolled = False is_teacher = False course_teachers = CourseTeacher.objects.filter(course=course) announcements = Announcement.objects.filter(course=course).order_by("datetime").reverse()[:5] units = get_units_available_for_user(course, request.user, True) use_old_calculus = course.slug in settings.COURSES_USING_OLD_TRANSCRIPT return render_to_response( "courses/overview.html", { "course": course, "units": units, "is_enrolled": is_enrolled, "is_teacher": is_teacher, "request": request, "course_teachers": course_teachers, "announcements": announcements, "use_old_calculus": use_old_calculus, }, context_instance=RequestContext(request), )
def course_classroom(request, course_slug): course = get_object_or_404(Course, slug=course_slug) is_enrolled = course.students.filter(id=request.user.id).exists() if not is_enrolled: return HttpResponseForbidden(_("You are not enrolled in this course")) is_ready, ask_admin = is_course_ready(course) if not is_ready: return render_to_response( "courses/no_content.html", {"course": course, "is_enrolled": is_enrolled, "ask_admin": ask_admin}, context_instance=RequestContext(request), ) units = [] for u in get_units_available_for_user(course, request.user): unit = { "id": u.id, "title": u.title, "unittype": u.unittype, "badge_class": get_unit_badge_class(u), "badge_tooltip": u.get_unit_type_name(), } units.append(unit) peer_review = { "text_max_size": settings.PEER_REVIEW_TEXT_MAX_SIZE, "file_max_size": settings.PEER_REVIEW_FILE_MAX_SIZE, } return render_to_response( "courses/classroom.html", { "course": course, "unit_list": units, "is_enrolled": is_enrolled, "is_teacher": is_teacher_test(request.user, course), "peer_review": peer_review, }, context_instance=RequestContext(request), )
def course_overview(request, course_slug): """ Show the course main page. This will show the main information about the course and the 'register to this course' button. .. note:: **use_old_calculus** is a compatibility method with old evaluation methods, which allowed the normal units to be evaluated. The new system does not evaluate normal units, only tasks and exams. :context: course, units, is_enrolled, is_teacher, request, course_teachers, announcements, use_old_calculus .. versionadded:: 0.1 """ course = get_object_or_404(Course, slug=course_slug) check_user_can_view_course(course, request) if request.user.is_authenticated(): is_enrolled = course.students.filter(id=request.user.id).exists() is_teacher = is_teacher_test(request.user, course) else: is_enrolled = False is_teacher = False course_teachers = CourseTeacher.objects.filter(course=course) announcements = Announcement.objects.filter( course=course).order_by('datetime').reverse()[:5] units = get_units_available_for_user(course, request.user, True) use_old_calculus = course.slug in settings.COURSES_USING_OLD_TRANSCRIPT return render_to_response('courses/overview.html', { 'course': course, 'units': units, 'is_enrolled': is_enrolled, 'is_teacher': is_teacher, 'request': request, 'course_teachers': course_teachers, 'announcements': announcements, 'use_old_calculus': use_old_calculus, }, context_instance=RequestContext(request))
def course_classroom(request, course_slug): course = get_object_or_404(Course, slug=course_slug) is_enrolled = course.students.filter(id=request.user.id).exists() if not is_enrolled: messages.error(request, _('You are not enrolled in this course')) return HttpResponseRedirect(reverse('course_overview', args=[course_slug])) is_ready, ask_admin = is_course_ready(course) if not is_ready: return render_to_response('courses/no_content.html', { 'course': course, 'is_enrolled': is_enrolled, 'ask_admin': ask_admin, }, context_instance=RequestContext(request)) units = [] for u in get_units_available_for_user(course, request.user): unit = { 'id': u.id, 'title': u.title, 'unittype': u.unittype, 'badge_class': get_unit_badge_class(u), 'badge_tooltip': u.get_unit_type_name(), } units.append(unit) peer_review = { 'text_max_size': settings.PEER_REVIEW_TEXT_MAX_SIZE, 'file_max_size': settings.PEER_REVIEW_FILE_MAX_SIZE, } return render_to_response('courses/classroom.html', { 'course': course, 'unit_list': units, 'is_enrolled': is_enrolled, 'is_teacher': is_teacher_test(request.user, course), 'peer_review': peer_review }, context_instance=RequestContext(request))
def course_progress(request, course_slug): course = get_object_or_404(Course, slug=course_slug) is_enrolled = course.students.filter(id=request.user.id).exists() if not is_enrolled: return HttpResponseForbidden(_("You are not enrolled in this course")) is_ready, ask_admin = is_course_ready(course) if not is_ready: return render_to_response( "courses/no_content.html", {"course": course, "is_enrolled": is_enrolled, "ask_admin": ask_admin}, context_instance=RequestContext(request), ) units = [] for u in get_units_available_for_user(course, request.user): unit = { "id": u.id, "title": u.title, "unittype": u.unittype, "badge_class": get_unit_badge_class(u), "badge_tooltip": u.get_unit_type_name(), } units.append(unit) return render_to_response( "courses/progress.html", { "course": course, "unit_list": units, "is_enrolled": is_enrolled, # required due course nav templatetag "is_teacher": is_teacher_test(request.user, course), }, context_instance=RequestContext(request), )