diff --git a/common/lib/xmodule/xmodule/modulestore/mongo/base.py b/common/lib/xmodule/xmodule/modulestore/mongo/base.py index 7568d566ee..0b7beef1ad 100644 --- a/common/lib/xmodule/xmodule/modulestore/mongo/base.py +++ b/common/lib/xmodule/xmodule/modulestore/mongo/base.py @@ -37,7 +37,7 @@ from xmodule.modulestore import ModuleStoreWriteBase, ModuleStoreEnum from xmodule.modulestore.draft_and_published import ModuleStoreDraftAndPublished, DIRECT_ONLY_CATEGORIES from opaque_keys.edx.locations import Location from xmodule.modulestore.exceptions import ItemNotFoundError, DuplicateCourseError, ReferentialIntegrityError -from xmodule.modulestore.inheritance import own_metadata, InheritanceMixin, inherit_metadata, InheritanceKeyValueStore +from xmodule.modulestore.inheritance import InheritanceMixin, inherit_metadata, InheritanceKeyValueStore from xblock.core import XBlock from opaque_keys.edx.locations import SlashSeparatedCourseKey from opaque_keys.edx.locator import CourseLocator diff --git a/common/lib/xmodule/xmodule/modulestore/split_mongo/caching_descriptor_system.py b/common/lib/xmodule/xmodule/modulestore/split_mongo/caching_descriptor_system.py index d9b74c5bde..5581363731 100644 --- a/common/lib/xmodule/xmodule/modulestore/split_mongo/caching_descriptor_system.py +++ b/common/lib/xmodule/xmodule/modulestore/split_mongo/caching_descriptor_system.py @@ -9,6 +9,7 @@ from xmodule.errortracker import exc_info_to_str from xmodule.modulestore.split_mongo import encode_key_for_mongo from ..exceptions import ItemNotFoundError from .split_mongo_kvs import SplitMongoKVS +from fs.osfs import OSFS log = logging.getLogger(__name__) @@ -34,9 +35,17 @@ class CachingDescriptorSystem(MakoDescriptorSystem): module_data: a dict mapping Location -> json that was cached from the underlying modulestore """ + # needed by capa_problem (as runtime.filestore via this.resources_fs) + if 'course' in course_entry: + root = modulestore.fs_root / course_entry['org'] / course_entry['course'] / course_entry['run'] + else: + root = modulestore.fs_root / course_entry['structure']['_id'] + root.makedirs_p() # create directory if it doesn't exist + super(CachingDescriptorSystem, self).__init__( field_data=None, load_item=self._load_item, + resources_fs = OSFS(root), **kwargs ) self.modulestore = modulestore diff --git a/common/lib/xmodule/xmodule/modulestore/split_mongo/split.py b/common/lib/xmodule/xmodule/modulestore/split_mongo/split.py index 25b8391818..10523b1a7b 100644 --- a/common/lib/xmodule/xmodule/modulestore/split_mongo/split.py +++ b/common/lib/xmodule/xmodule/modulestore/split_mongo/split.py @@ -2041,7 +2041,6 @@ class SplitMongoModuleStore(ModuleStoreWriteBase): default_class=self.default_class, error_tracker=self.error_tracker, render_template=self.render_template, - resources_fs=None, mixins=self.xblock_mixins, select=self.xblock_select, services=self.services, diff --git a/lms/djangoapps/instructor/views/instructor_dashboard.py b/lms/djangoapps/instructor/views/instructor_dashboard.py index fcbdddf5da..9daa11722b 100644 --- a/lms/djangoapps/instructor/views/instructor_dashboard.py +++ b/lms/djangoapps/instructor/views/instructor_dashboard.py @@ -13,7 +13,6 @@ from django.utils.translation import ugettext as _ from django_future.csrf import ensure_csrf_cookie from django.views.decorators.cache import cache_control from edxmako.shortcuts import render_to_response -from django.contrib.auth.models import User from django.core.urlresolvers import reverse from django.utils.html import escape from django.http import Http404, HttpResponse, HttpResponseNotFound @@ -27,7 +26,7 @@ from xmodule.modulestore.django import modulestore from xblock.field_data import DictFieldData from xblock.fields import ScopeIds from courseware.access import has_access -from courseware.courses import get_course_by_id, get_cms_course_link, get_course_with_access +from courseware.courses import get_course_by_id, get_cms_course_link from django_comment_client.utils import has_forum_access from django_comment_common.models import FORUM_ROLE_ADMINISTRATOR from student.models import CourseEnrollment @@ -35,7 +34,6 @@ from shoppingcart.models import Coupon, PaidCourseRegistration from course_modes.models import CourseMode, CourseModesArchive from student.roles import CourseFinanceAdminRole -from bulk_email.models import CourseAuthorization from class_dashboard.dashboard_data import get_section_display_name, get_array_section_has_problem from analyticsclient.client import Client