Commit 5f612c78 by Victor Shnayder

Oops. Make modx_dispatch and xqueue callback work again.

- use get_instance, not get_item
- finish the id->location rename for modx_dispatch arg
parent de4abe30
...@@ -173,7 +173,7 @@ def get_module(user, request, location, student_module_cache, course_id, positio ...@@ -173,7 +173,7 @@ def get_module(user, request, location, student_module_cache, course_id, positio
# Setup system context for module instance # Setup system context for module instance
ajax_url = reverse('modx_dispatch', ajax_url = reverse('modx_dispatch',
kwargs=dict(course_id=course_id, kwargs=dict(course_id=course_id,
id=descriptor.location.url(), location=descriptor.location.url(),
dispatch=''), dispatch=''),
) )
...@@ -268,7 +268,7 @@ def get_instance_module(user, module, student_module_cache): ...@@ -268,7 +268,7 @@ def get_instance_module(user, module, student_module_cache):
else: else:
return None return None
def get_shared_instance_module(user, module, student_module_cache): def get_shared_instance_module(course_id, user, module, student_module_cache):
""" """
Return shared_module is a StudentModule specific to all modules with the same Return shared_module is a StudentModule specific to all modules with the same
'shared_state_key' attribute, or None if the module does not elect to 'shared_state_key' attribute, or None if the module does not elect to
...@@ -276,7 +276,7 @@ def get_shared_instance_module(user, module, student_module_cache): ...@@ -276,7 +276,7 @@ def get_shared_instance_module(user, module, student_module_cache):
""" """
if user.is_authenticated(): if user.is_authenticated():
# To get the shared_state_key, we need to descriptor # To get the shared_state_key, we need to descriptor
descriptor = modulestore().get_item(module.location) descriptor = modulestore().get_instance(course_id, module.location)
shared_state_key = getattr(module, 'shared_state_key', None) shared_state_key = getattr(module, 'shared_state_key', None)
if shared_state_key is not None: if shared_state_key is not None:
...@@ -317,7 +317,7 @@ def xqueue_callback(request, course_id, userid, id, dispatch): ...@@ -317,7 +317,7 @@ def xqueue_callback(request, course_id, userid, id, dispatch):
user = User.objects.get(id=userid) user = User.objects.get(id=userid)
student_module_cache = StudentModuleCache.cache_for_descriptor_descendents( student_module_cache = StudentModuleCache.cache_for_descriptor_descendents(
user, modulestore().get_item(id), depth=0, select_for_update=True) user, modulestore().get_instance(course_id, id), depth=0, select_for_update=True)
instance = get_module(user, request, id, student_module_cache, course_id) instance = get_module(user, request, id, student_module_cache, course_id)
if instance is None: if instance is None:
log.debug("No module {0} for user {1}--access denied?".format(id, user)) log.debug("No module {0} for user {1}--access denied?".format(id, user))
...@@ -387,7 +387,7 @@ def modx_dispatch(request, dispatch, location, course_id): ...@@ -387,7 +387,7 @@ def modx_dispatch(request, dispatch, location, course_id):
p[fileinput_id] = inputfiles p[fileinput_id] = inputfiles
student_module_cache = StudentModuleCache.cache_for_descriptor_descendents( student_module_cache = StudentModuleCache.cache_for_descriptor_descendents(
request.user, modulestore().get_item(course_id, location)) request.user, modulestore().get_instance(course_id, location))
instance = get_module(request.user, request, location, student_module_cache, course_id) instance = get_module(request.user, request, location, student_module_cache, course_id)
if instance is None: if instance is None:
...@@ -397,7 +397,7 @@ def modx_dispatch(request, dispatch, location, course_id): ...@@ -397,7 +397,7 @@ def modx_dispatch(request, dispatch, location, course_id):
raise Http404 raise Http404
instance_module = get_instance_module(request.user, instance, student_module_cache) instance_module = get_instance_module(request.user, instance, student_module_cache)
shared_module = get_shared_instance_module(request.user, instance, student_module_cache) shared_module = get_shared_instance_module(course_id, request.user, instance, student_module_cache)
# Don't track state for anonymous users (who don't have student modules) # Don't track state for anonymous users (who don't have student modules)
if instance_module is not None: if instance_module is not None:
......
...@@ -100,7 +100,7 @@ if settings.COURSEWARE_ENABLED: ...@@ -100,7 +100,7 @@ if settings.COURSEWARE_ENABLED:
url(r'^masquerade/', include('masquerade.urls')), url(r'^masquerade/', include('masquerade.urls')),
url(r'^jump_to/(?P<location>.*)$', 'courseware.views.jump_to', name="jump_to"), url(r'^jump_to/(?P<location>.*)$', 'courseware.views.jump_to', name="jump_to"),
url(r'^courses/(?P<course_id>[^/]+/[^/]+/[^/]+)/modx/(?P<id>.*?)/(?P<dispatch>[^/]*)$', url(r'^courses/(?P<course_id>[^/]+/[^/]+/[^/]+)/modx/(?P<location>.*?)/(?P<dispatch>[^/]*)$',
'courseware.module_render.modx_dispatch', 'courseware.module_render.modx_dispatch',
name='modx_dispatch'), name='modx_dispatch'),
url(r'^courses/(?P<course_id>[^/]+/[^/]+/[^/]+)/xqueue/(?P<userid>[^/]*)/(?P<id>.*?)/(?P<dispatch>[^/]*)$', url(r'^courses/(?P<course_id>[^/]+/[^/]+/[^/]+)/xqueue/(?P<userid>[^/]*)/(?P<id>.*?)/(?P<dispatch>[^/]*)$',
...@@ -158,18 +158,18 @@ if settings.COURSEWARE_ENABLED: ...@@ -158,18 +158,18 @@ if settings.COURSEWARE_ENABLED:
if settings.WIKI_ENABLED: if settings.WIKI_ENABLED:
from wiki.urls import get_pattern as wiki_pattern from wiki.urls import get_pattern as wiki_pattern
from django_notify.urls import get_pattern as notify_pattern from django_notify.urls import get_pattern as notify_pattern
# Note that some of these urls are repeated in course_wiki.course_nav. Make sure to update # Note that some of these urls are repeated in course_wiki.course_nav. Make sure to update
# them together. # them together.
urlpatterns += ( urlpatterns += (
# First we include views from course_wiki that we use to override the default views. # First we include views from course_wiki that we use to override the default views.
# They come first in the urlpatterns so they get resolved first # They come first in the urlpatterns so they get resolved first
url('^wiki/create-root/$', 'course_wiki.views.root_create', name='root_create'), url('^wiki/create-root/$', 'course_wiki.views.root_create', name='root_create'),
url(r'^wiki/', include(wiki_pattern())), url(r'^wiki/', include(wiki_pattern())),
url(r'^notify/', include(notify_pattern())), url(r'^notify/', include(notify_pattern())),
# These urls are for viewing the wiki in the context of a course. They should # These urls are for viewing the wiki in the context of a course. They should
# never be returned by a reverse() so they come after the other url patterns # never be returned by a reverse() so they come after the other url patterns
url(r'^courses/(?P<course_id>[^/]+/[^/]+/[^/]+)/course_wiki/?$', url(r'^courses/(?P<course_id>[^/]+/[^/]+/[^/]+)/course_wiki/?$',
......
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