Commit d7ee0387 by Calen Pennington

Make staff histograms work again

parent c837cf79
import json
import logging
from lxml import etree
from django.conf import settings
from django.http import Http404
from django.http import HttpResponse
from lxml import etree
from django.conf import settings
from keystore.django import keystore
from mitxmako.shortcuts import render_to_string
from models import StudentModule, StudentModuleCache
from keystore.django import keystore
log = logging.getLogger("mitx.courseware")
......@@ -247,6 +244,9 @@ def get_module(user, request, location, student_module_cache, position=None):
module = descriptor.xmodule_constructor(system)(instance_state, shared_state)
if settings.MITX_FEATURES.get('DISPLAY_HISTOGRAMS_TO_STAFF') and user.is_staff:
module = add_histogram(module)
# If StudentModule for this instance wasn't already in the database,
# and this isn't a guest user, create it.
if user.is_authenticated():
......@@ -272,6 +272,24 @@ def get_module(user, request, location, student_module_cache, position=None):
return (module, instance_module, shared_module, descriptor.type)
def add_histogram(module):
original_get_html = module.get_html
def get_html():
module_id = module.id
print "Rendering Histogram for ", module_id
histogram = grade_histogram(module_id)
print histogram
render_histogram = len(histogram) > 0
staff_context = {'definition': json.dumps(module.definition, indent=4),
'element_id': module.location.html_id(),
'histogram': json.dumps(histogram),
'render_histogram': render_histogram,
'module_content': original_get_html()}
return render_to_string("staff_problem_info.html", staff_context)
module.get_html = get_html
return module
def render_x_module(user, module, student_module_cache, position=None):
''' Generic module for extensions. This renders to HTML.
......
${module_content}
<div class="staff_info">
${xml | h}
${definition | h}
</div>
%if render_histogram:
<div id="histogram_${module_id}" class="histogram" data-histogram="${histogram}"></div>
<div id="histogram_${element_id}" class="histogram" data-histogram="${histogram}"></div>
%endif
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