From 905199b5ebd7f346654a6b71ad986e4b30e736c1 Mon Sep 17 00:00:00 2001 From: Chris Dodge Date: Wed, 27 Feb 2013 22:37:13 -0500 Subject: [PATCH] restore metadata inheritance. Fix lms jump computation on the Studio index page. This gets expensive. --- cms/djangoapps/contentstore/utils.py | 7 +++++-- cms/djangoapps/contentstore/views.py | 4 ++-- common/lib/xmodule/xmodule/modulestore/mongo.py | 5 +++-- 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/cms/djangoapps/contentstore/utils.py b/cms/djangoapps/contentstore/utils.py index b14dd8b353..9c5bd5c553 100644 --- a/cms/djangoapps/contentstore/utils.py +++ b/cms/djangoapps/contentstore/utils.py @@ -75,12 +75,15 @@ def get_course_for_item(location): return courses[0] -def get_lms_link_for_item(location, preview=False): +def get_lms_link_for_item(location, course_id=None, preview=False): + if course_id is None: + course_id = get_course_id(location) + if settings.LMS_BASE is not None: lms_link = "//{preview}{lms_base}/courses/{course_id}/jump_to/{location}".format( preview='preview.' if preview else '', lms_base=settings.LMS_BASE, - course_id=get_course_id(location), + course_id= course_id, location=Location(location) ) else: diff --git a/cms/djangoapps/contentstore/views.py b/cms/djangoapps/contentstore/views.py index 639f2258e0..b55dc13e58 100644 --- a/cms/djangoapps/contentstore/views.py +++ b/cms/djangoapps/contentstore/views.py @@ -114,7 +114,7 @@ def index(request): """ List all courses available to the logged in user """ - courses = modulestore().get_items(['i4x', None, None, 'course', None]) + courses = modulestore('direct').get_items(['i4x', None, None, 'course', None]) # filter out courses that we don't have access too def course_filter(course): @@ -132,7 +132,7 @@ def index(request): course.location.org, course.location.course, course.location.name]), - get_lms_link_for_item(course.location)) + get_lms_link_for_item(course.location, course_id=course.location.course_id)) for course in courses], 'user': request.user, 'disable_course_creation': settings.MITX_FEATURES.get('DISABLE_COURSE_CREATION', False) and not request.user.is_staff diff --git a/common/lib/xmodule/xmodule/modulestore/mongo.py b/common/lib/xmodule/xmodule/modulestore/mongo.py index d1fbfd48d9..fb050b4988 100644 --- a/common/lib/xmodule/xmodule/modulestore/mongo.py +++ b/common/lib/xmodule/xmodule/modulestore/mongo.py @@ -3,6 +3,7 @@ import sys import logging import copy import time +import traceback from bson.son import SON from fs.osfs import OSFS @@ -289,8 +290,8 @@ class MongoModuleStore(ModuleStoreBase): # if we are loading a course object, there is no parent to inherit the metadata from # so don't bother getting it - #if item['location']['category'] != 'course': - # metadata_inheritance_tree = self.get_cached_metadata_inheritance_tree(Location(item['location']), 300) + if item['location']['category'] != 'course': + metadata_inheritance_tree = self.get_cached_metadata_inheritance_tree(Location(item['location']), 300) # TODO (cdodge): When the 'split module store' work has been completed, we should remove # the 'metadata_inheritance_tree' parameter