This commit adds the non-courseware lms/djangoapps and lms/lib. These keys are now objects with a limited interface, and the particular internal representation is managed by the data storage layer (the modulestore). For the LMS, there should be no outward-facing changes to the system. The keys are, for now, a change to internal representation only. For Studio, the new serialized form of the keys is used in urls, to allow for further migration in the future. Co-Author: Andy Armstrong <andya@edx.org> Co-Author: Christina Roberts <christina@edx.org> Co-Author: David Baumgold <db@edx.org> Co-Author: Diana Huang <dkh@edx.org> Co-Author: Don Mitchell <dmitchell@edx.org> Co-Author: Julia Hansbrough <julia@edx.org> Co-Author: Nimisha Asthagiri <nasthagiri@edx.org> Co-Author: Sarina Canelake <sarina@edx.org> [LMS-2370]
39 lines
958 B
Python
39 lines
958 B
Python
"""
|
|
Helpers for instructor app.
|
|
"""
|
|
|
|
from xmodule.modulestore.django import modulestore
|
|
|
|
from courseware.model_data import FieldDataCache
|
|
from courseware.module_render import get_module
|
|
|
|
|
|
class DummyRequest(object):
|
|
"""Dummy request"""
|
|
|
|
META = {}
|
|
|
|
def __init__(self):
|
|
self.session = {}
|
|
self.user = None
|
|
return
|
|
|
|
def get_host(self):
|
|
"""Return a default host."""
|
|
return 'edx.mit.edu'
|
|
|
|
def is_secure(self):
|
|
"""Always insecure."""
|
|
return False
|
|
|
|
|
|
def get_module_for_student(student, usage_key, request=None):
|
|
"""Return the module for the (student, location) using a DummyRequest."""
|
|
if request is None:
|
|
request = DummyRequest()
|
|
request.user = student
|
|
|
|
descriptor = modulestore().get_item(usage_key, depth=0)
|
|
field_data_cache = FieldDataCache([descriptor], usage_key.course_key, student)
|
|
return get_module(student, request, usage_key, field_data_cache)
|