Commit 2e422b2c by David Ormsbee

Merge pull request #11492 from edx/ormsbee/inline_capa

Move rendering of capa problems inline
parents 890d1bfd 13682e46
......@@ -19,6 +19,8 @@ from django.template.context import _builtin_context_processors
from django.utils.module_loading import import_string
from util.request import safe_get_host
from request_cache.middleware import RequestCache
REQUEST_CONTEXT = threading.local()
......@@ -51,6 +53,12 @@ def get_template_request_context():
request = getattr(REQUEST_CONTEXT, "request", None)
if not request:
return None
request_cache_dict = RequestCache.get_request_cache().data
cache_key = "edxmako_request_context"
if cache_key in request_cache_dict:
return request_cache_dict[cache_key]
context = RequestContext(request)
context['is_secure'] = request.is_secure()
context['site'] = safe_get_host(request)
......@@ -62,4 +70,6 @@ def get_template_request_context():
for processor in get_template_context_processors():
context.update(processor(request))
request_cache_dict[cache_key] = context
return context
......@@ -33,7 +33,6 @@ def marketing_link(name):
possible URLs for certain links. This function is to decides
which URL should be provided.
"""
# link_map maps URLs from the marketing site to the old equivalent on
# the Django site
link_map = settings.MKTG_URL_LINK_MAP
......
......@@ -399,6 +399,7 @@ class CapaMixin(CapaFields):
'ajax_url': self.runtime.ajax_url,
'progress_status': Progress.to_js_status_str(progress),
'progress_detail': Progress.to_js_detail_str(progress),
'content': self.get_problem_html(encapsulate=False)
})
def check_button_name(self):
......
......@@ -5,6 +5,7 @@ class @Problem
@id = @el.data('problem-id')
@element_id = @el.attr('id')
@url = @el.data('url')
@content = @el.data('content')
# has_timed_out and has_response are used to ensure that are used to
# ensure that we wait a minimum of ~ 1s before transitioning the check
......@@ -12,7 +13,7 @@ class @Problem
@has_timed_out = false
@has_response = false
@render()
@render(@content)
$: (selector) ->
$(selector, @el)
......
<div id="problem_${element_id}" class="problems-wrapper" data-problem-id="${id}" data-url="${ajax_url}" data-progress_status="${progress_status}" data-progress_detail="${progress_detail}"></div>
<div id="problem_${element_id}" class="problems-wrapper" data-problem-id="${id}" data-url="${ajax_url}" data-progress_status="${progress_status}" data-progress_detail="${progress_detail}" data-content="${content | h}"></div>
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