Пример #1
0
def overview(request, department, number):
	try:
		course = get_object_or_404(Course, department=department.upper(), number=int(number))
	except Http404:
		return render(request, "courses/404.html", {'department': department.upper(), 'number': number})

	# We can't use it directly in the template file, it just won't work
	types = []
	for name, obj in page_types.iteritems():
		# Get all the pages associated with this page type (and this course etc)
		pages = Page.objects.filter(page_type=name, course_sem__course=course)
		types.append({'name': name, 'url': obj.get_create_url(course), 'icon': obj.get_icon(), 'long_name': obj.long_name, 'desc': obj.description, 'list_header': obj.get_list_header(), 'list_body': obj.get_list_body(), 'pages': pages})

	try:
		this_sem = CourseSemester.objects.get(course=course, term='winter', year='2011')
		this_sem_pages = this_sem.page_set.all()
	except CourseSemester.DoesNotExist:
		this_sem_pages = []

	# Get all the course semesters related to this course
	course_sems = CourseSemester.objects.filter(course=course)
	# Get all of the pages associated with this course (can't just do page_set because the foreign key is CourseSemester lol)
	all_pages = Page.objects.filter(course_sem__course=course)
	data = {
		'title': course,
		'is_watching': request.user.get_profile().is_watching(course) if request.user.is_authenticated() else False,
		'course': course,
		'page_types': types,
		'all_pages': all_pages,
		'this_sem_pages': this_sem_pages,
		'course_sems': course_sems,
		'current_sem': course.get_current_semester(),
	}
	return render(request, 'courses/overview.html', data)
Пример #2
0
def overview(request, department, number):
    try:
        course = get_object_or_404(Course, department=department, number=int(number))
    except Http404:
        return render(request, "courses/404.html", {'department': department, 'number': number})

    # We can't use it directly in the template file, it just won't work
    types = []
    num_misc_pages = 0
    for name, obj in page_types.iteritems():
        # Get all the pages associated with this page type (and this course etc)
        pages = Page.objects.filter(page_type=name, course_sem__course=course, seriespage=None)
        external_pages = ExternalPage.objects.filter(page_type=name, course=course)
        num_misc_pages += pages.count() + external_pages.count()
        pages = filter(lambda p: p.can_view(request.user), pages)
        types.append({'name': name, 'url': obj.get_create_url(course), 'icon': obj.get_icon(), 'long_name': obj.long_name, 'desc': obj.description, 'list_header': obj.get_list_header(), 'list_body': obj.get_list_body(), 'pages': pages, 'external_pages': external_pages})

    # Get all the course semesters related to this course
    course_sems = CourseSemester.objects.filter(course=course)

    data = {
        'title': course,
        'is_watching': request.user.get_profile().is_watching(course) if request.user.is_authenticated() else False,
        'course': course,
        'page_types': types,
        'has_misc_pages': num_misc_pages > 0,
        'course_sems': course_sems,
        'current_sem': course.get_current_semester(),
        'visible_series': course.series_set.visible(request.user),
    }

    return render(request, 'courses/overview.html', data)
Пример #3
0
def overview(request, course):
    # We can't use it directly in the template file, it just won't work
    types = []
    num_misc_pages = 0

    for name, obj in page_types.iteritems():
        # Get all the pages associated with this page type (and this course)
        pages = Page.objects.filter(page_type=name,
                                    course_sem__course=course,
                                    seriespage=None)
        external_pages = ExternalPage.objects.filter(page_type=name,
                                                     course=course)
        num_misc_pages += pages.count() + external_pages.count()
        pages = filter(lambda p: p.can_view(request.user), pages)
        type_data = {
            'name': name,
            'url': obj.get_create_url(course),
            'icon': obj.get_icon(),
            'long_name': obj.long_name,
            'desc': obj.description,
            'list_header': obj.get_list_header(),
            'list_body': obj.get_list_body(),
            'pages': pages,
            'external_pages': external_pages
        }
        types.append(type_data)

    # Get all the course semesters related to this course
    course_sems = CourseSemester.objects.filter(course=course)

    if request.user.is_authenticated():
        profile = request.user.get_profile()
        is_watching = profile.is_watching(course)
        is_pinned = profile.has_pinned(course)
    else:
        is_watching = False
        is_pinned = False

    return {
        'is_pinned': is_pinned,
        'title': str(course),
        'is_watching': is_watching,
        'course': course,
        'page_types': types,
        'has_misc_pages': num_misc_pages > 0,
        'course_sems': course_sems,
        'current_sem': course.get_current_semester(),
        'visible_series': course.series_set.visible(request.user),
    }
Пример #4
0
def overview(request, course):
    # We can't use it directly in the template file, it just won't work
    types = []
    num_misc_pages = 0

    for name, obj in page_types.iteritems():
        # Get all the pages associated with this page type (and this course)
        pages = Page.objects.filter(page_type=name, course_sem__course=course,
                                    seriespage=None)
        external_pages = ExternalPage.objects.filter(page_type=name,
                                                     course=course)
        num_misc_pages += pages.count() + external_pages.count()
        pages = filter(lambda p: p.can_view(request.user), pages)
        type_data = {
            'name': name,
            'url': obj.get_create_url(course),
            'icon': obj.get_icon(),
            'long_name': obj.long_name,
            'desc': obj.description,
            'list_header': obj.get_list_header(),
            'list_body': obj.get_list_body(),
            'pages': pages,
            'external_pages': external_pages
        }
        types.append(type_data)

    # Get all the course semesters related to this course
    course_sems = CourseSemester.objects.filter(course=course)

    if request.user.is_authenticated():
        profile = request.user.get_profile()
        is_watching = profile.is_watching(course)
        is_pinned = profile.has_pinned(course)
    else:
        is_watching = False
        is_pinned = False

    return {
        'is_pinned': is_pinned,
        'title': str(course),
        'is_watching': is_watching,
        'course': course,
        'page_types': types,
        'has_misc_pages': num_misc_pages > 0,
        'course_sems': course_sems,
        'current_sem': course.get_current_semester(),
        'visible_series': course.series_set.visible(request.user),
    }