Commit b4585ffe by Matthew Mongeau

Course navigation work

parent 79b9ba8f
......@@ -67,7 +67,7 @@ def info(request, course_id=None):
# We're bypassing the templating system for this part. We should cache
# this.
sections = ["updates", "handouts", "guest_updates", "guest_handouts"]
sections_to_content = {}
sections_to_content = { 'course': course }
for section in sections:
filename = section + ".html"
with open(course.path / "info" / filename) as f:
......
......@@ -44,6 +44,7 @@ class I4xSystem(object):
filestore - A filestore ojbect. Defaults to an instance of OSFS based at
settings.DATA_DIR.
'''
self.course = course
self.ajax_url = ajax_url
self.track_function = track_function
self.filestore = filestore
......
......@@ -70,7 +70,7 @@ def gradebook(request):
if 'course_admin' not in user_groups(request.user):
raise Http404
coursename = multicourse_settings.get_coursename_from_request(request)
course = settings.COURSES_BY_ID[course_id]
student_objects = User.objects.all()[:100]
student_info = []
......@@ -89,15 +89,15 @@ def gradebook(request):
'realname': UserProfile.objects.get(user=student).name
})
return render_to_response('gradebook.html', {'students': student_info})
return render_to_response('gradebook.html', {'students': student_info, 'course': course})
@login_required
@cache_control(no_cache=True, no_store=True, must_revalidate=True)
def profile(request, student_id=None):
def profile(request, course_id=None, student_id=None):
''' User profile. Show username, location, etc, as well as grades .
We need to allow the user to change some of these settings .'''
course = settings.COURSES_BY_ID[course_id]
if student_id is None:
student = request.user
else:
......@@ -197,12 +197,16 @@ def index(request, course=None, chapter=None, section=None,
if not settings.COURSEWARE_ENABLED:
return redirect('/')
course = clean(get_course(request, course))
if not multicourse_settings.is_valid_course(course):
return redirect('/')
# course = clean(get_course(request, course))
# if not multicourse_settings.is_valid_course(course):
# return redirect('/')
try:
course = settings.COURSES_BY_ID[course_id]
except KeyError:
raise Http404("Course not found")
# keep track of current course being viewed in django's request.session
request.session['coursename'] = course
request.session['coursename'] = course.title
chapter = clean(chapter)
section = clean(section)
......@@ -210,7 +214,8 @@ def index(request, course=None, chapter=None, section=None,
context = {
'csrf': csrf(request)['csrf_token'],
'accordion': render_accordion(request, course, chapter, section),
'COURSE_TITLE': multicourse_settings.get_course_title(course),
'COURSE_TITLE': course.title,
'course': course,
'init': '',
'content': ''
}
......
from django.contrib.auth.decorators import login_required
from mitxmako.shortcuts import render_to_response
from django.conf import settings
@login_required
def index(request, page=0):
return render_to_response('staticbook.html',{'page':int(page)})
def index(request, course_id=None, page=0):
course = settings.COURSES_BY_ID[course_id]
return render_to_response('staticbook.html',{'page':int(page), 'course': course})
def index_shifted(request, page):
return index(request, int(page)+24)
......@@ -6,19 +6,22 @@ def url_class(url):
return "active"
return ""
%>
<%!
from django.core.urlresolvers import reverse
%>
<nav class="${active_page} course-material">
<div class="inner-wrapper">
<ol class="course-tabs">
<li class="courseware"><a href="${ MITX_ROOT_URL }/courseware/" class="${url_class('courseware')}">Courseware</a></li>
<li class="info"><a href="${ MITX_ROOT_URL }/info" class="${url_class('info')}">Course Info</a></li>
<li class="courseware"><a href="${reverse('courseware', args=[course.id])}" class="${url_class('courseware')}">Courseware</a></li>
<li class="info"><a href="${reverse('info', args=[course.id])}" class="${url_class('info')}">Course Info</a></li>
% if user.is_authenticated():
<li class="book"><a href="${ MITX_ROOT_URL }/book" class="${url_class('book')}">Textbook</a></li>
<li class="book"><a href="${reverse('book', args=[course.id])}" class="${url_class('book')}">Textbook</a></li>
<li class="discussion"><a href="${ MITX_ROOT_URL }/discussion/questions/">Discussion</a></li>
% endif
<li class="wiki"><a href="${ MITX_ROOT_URL }/wiki/view/" class="${url_class('wiki')}">Wiki</a></li>
<li class="wiki"><a href="${reverse('wiki_root')}" class="${url_class('wiki')}">Wiki</a></li>
% if user.is_authenticated():
<li class="profile"><a href="${ MITX_ROOT_URL }/profile" class="${url_class('profile')}">Profile</a></li>
<li class="profile"><a href="${reverse('profile', args=[course.id])}" class="${url_class('profile')}">Profile</a></li>
% endif
</ol>
</div>
......
......@@ -49,11 +49,10 @@ if settings.PERFSTATS:
if settings.COURSEWARE_ENABLED:
urlpatterns += (
url(r'^courseware/$', 'courseware.views.index', name="courseware"),
url(r'^wiki/', include('simplewiki.urls')),
url(r'^masquerade/', include('masquerade.urls')),
url(r'^courseware/(?P<course>[^/]*)/(?P<chapter>[^/]*)/(?P<section>[^/]*)/(?P<position>[^/]*)$', 'courseware.views.index'),
url(r'^courseware/(?P<course>[^/]*)/(?P<chapter>[^/]*)/(?P<section>[^/]*)/$', 'courseware.views.index', name="courseware_section"),
# url(r'^courseware/(?P<course>[^/]*)/(?P<chapter>[^/]*)/(?P<section>[^/]*)/$', 'courseware.views.index', name="courseware_section"),
url(r'^courseware/(?P<course>[^/]*)/(?P<chapter>[^/]*)/$', 'courseware.views.index', name="courseware_chapter"),
url(r'^courseware/(?P<course>[^/]*)/$', 'courseware.views.index', name="courseware_course"),
url(r'^jumpto/(?P<probname>[^/]+)/$', 'courseware.views.jump_to'),
......@@ -74,8 +73,12 @@ if settings.COURSEWARE_ENABLED:
# Multicourse related:
url(r'^courses$', 'courseware.views.courses'),
url(r'^courses/(?P<course_id>[^/]*)/info$', 'util.views.info'),
url(r'^courses/(?P<course_id>[^/]*)/courseware$', 'courseware.views.index'),
url(r'^courses/(?P<course_id>[^/]*)/info$', 'util.views.info', name="info"),
url(r'^courses/(?P<course_id>[^/]*)/book$', 'staticbook.views.index', name="book"),
url(r'^courses/(?P<course_id>[^/]*)/courseware/?$', 'courseware.views.index', name="courseware"),
url(r'^courses/(?P<course_id>[^/]*)/courseware/(?P<chapter>[^/]*)/(?P<section>[^/]*)/$', 'courseware.views.index', name="courseware_section"),
url(r'^courses/(?P<course_id>[^/]*)/profile$', 'courseware.views.profile', name="profile"),
url(r'^courses/(?P<course_id>[^/]*)/profile/(?P<student_id>[^/]*)/$', 'courseware.views.profile'),
)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment