make university profile pages also use get_courses_by_university

This commit is contained in:
ichuang
2012-08-04 11:03:54 -04:00
parent fb7b48e10a
commit d50af5765e
3 changed files with 8 additions and 2 deletions

View File

@@ -41,6 +41,7 @@ class XmlDescriptor(XModuleDescriptor):
# to definition_from_xml, and from the xml returned by definition_to_xml
metadata_attributes = ('format', 'graceperiod', 'showanswer', 'rerandomize',
'start', 'due', 'graded', 'display_name', 'url_name', 'hide_from_toc',
'ispublic', # if True, then course is listed for all users; see
# VS[compat] Remove once unused.
'name', 'slug')

View File

@@ -135,6 +135,11 @@ def has_staff_access_to_course(user,course):
return True
return False
def has_access_to_course(user,course):
if course.metadata.get('ispublic'):
return True
return has_staff_access_to_course(user,course)
def get_courses_by_university(user):
'''
Returns dict of lists of courses available, keyed by course.org (ie university).
@@ -150,7 +155,7 @@ def get_courses_by_university(user):
universities = defaultdict(list)
for course in courses:
if settings.MITX_FEATURES.get('ENABLE_LMS_MIGRATION'):
if not has_staff_access_to_course(user,course):
if not has_access_to_course(user,course):
continue
universities[course.org].append(course)
return universities

View File

@@ -289,7 +289,7 @@ def university_profile(request, org_id):
raise Http404("University Profile not found for {0}".format(org_id))
# Only grab courses for this org...
courses = [c for c in all_courses if c.org == org_id]
courses = get_courses_by_university(request.user)[org_id]
context = dict(courses=courses, org_id=org_id)
template_file = "university_profile/{0}.html".format(org_id).lower()