Make staff problem histogram work again
This commit is contained in:
@@ -1,3 +1,4 @@
|
||||
import json
|
||||
import logging
|
||||
|
||||
from lxml import etree
|
||||
@@ -137,6 +138,7 @@ def render_x_module(user, request, xml_module, module_object_preload):
|
||||
render_histogram = len(histogram) > 0
|
||||
content=content+render_to_string("staff_problem_info.html", {'xml':etree.tostring(xml_module),
|
||||
'module_id' : module_id,
|
||||
'histogram': json.dumps(histogram),
|
||||
'render_histogram' : render_histogram})
|
||||
|
||||
content = {'content':content,
|
||||
|
||||
@@ -66,7 +66,7 @@
|
||||
return this.calculator.calculate();
|
||||
});
|
||||
it('send data to /calculate', function() {
|
||||
return expect($.getJSON).toHaveBeenCalledWith('/calculate', {
|
||||
return expect($.getWithPrefix).toHaveBeenCalledWith('/calculate', {
|
||||
equation: '1+2'
|
||||
}, jasmine.any(Function));
|
||||
});
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
$('#feedback_subject').val('Awesome!');
|
||||
$('#feedback_message').val('This site is really good.');
|
||||
$('#feedback_button').click();
|
||||
return expect($.post).toHaveBeenCalledWith('/send_feedback', {
|
||||
return expect($.postWithPrefix).toHaveBeenCalledWith('/send_feedback', {
|
||||
subject: 'Awesome!',
|
||||
message: 'This site is really good.',
|
||||
url: window.location.href
|
||||
|
||||
@@ -22,3 +22,7 @@ class @Courseware
|
||||
$('.course-content .problems-wrapper').each ->
|
||||
id = $(this).attr('id').replace(/problem_/, '')
|
||||
new Problem id, $(this).data('url')
|
||||
$('.course-content .histogram').each ->
|
||||
id = $(this).attr('id').replace(/histogram_/, '')
|
||||
new Histogram id, $(this).data('histogram')
|
||||
|
||||
|
||||
@@ -202,6 +202,10 @@ div.course-wrapper {
|
||||
padding-bottom: 0;
|
||||
}
|
||||
|
||||
.histogram {
|
||||
width: 200px;
|
||||
height: 150px;
|
||||
}
|
||||
|
||||
ul {
|
||||
list-style: disc outside none;
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
// Generated by CoffeeScript 1.3.2-pre
|
||||
(function() {
|
||||
|
||||
describe('Navigation', function() {
|
||||
|
||||
35
templates/coffee/src/histogram.coffee
Normal file
35
templates/coffee/src/histogram.coffee
Normal file
@@ -0,0 +1,35 @@
|
||||
class @Histogram
|
||||
constructor: (@id, @rawData) ->
|
||||
@xTicks = []
|
||||
@yTicks = []
|
||||
@data = []
|
||||
@calculate()
|
||||
@render()
|
||||
|
||||
calculate: ->
|
||||
for [score, count] in @rawData
|
||||
log_count = Math.log(count + 1)
|
||||
@data.push [score, log_count]
|
||||
@xTicks.push [score, score.toString()]
|
||||
@yTicks.push [log_count, count.toString()]
|
||||
|
||||
render: ->
|
||||
$.plot $("#histogram_#{@id}"), [
|
||||
data: @data
|
||||
bars:
|
||||
show: true
|
||||
align: 'center'
|
||||
lineWidth: 0
|
||||
fill: 1.0
|
||||
color: "#b72121"
|
||||
],
|
||||
xaxis:
|
||||
min: -1
|
||||
max: Math.max $.map(@xTicks, (data) -> data[0] + 1)
|
||||
ticks: @xTicks
|
||||
tickLength: 0
|
||||
yaxis:
|
||||
min: 0.0
|
||||
max: Math.max $.map(@yTicks, (data) -> data[0] * 1.1)
|
||||
ticks: @yTicks
|
||||
labelWidth: 50
|
||||
@@ -1,40 +0,0 @@
|
||||
<%!
|
||||
import json
|
||||
import math
|
||||
%>
|
||||
|
||||
|
||||
var rawData = ${json.dumps(histogram)};
|
||||
|
||||
var maxx = 1;
|
||||
var maxy = 1.5;
|
||||
var xticks = Array();
|
||||
var yticks = Array();
|
||||
var data = Array();
|
||||
for (var i = 0; i < rawData.length; i++) {
|
||||
var score = rawData[i][0];
|
||||
var count = rawData[i][1];
|
||||
var log_count = Math.log(count + 1);
|
||||
|
||||
data.push( [score, log_count] );
|
||||
|
||||
xticks.push( [score, score.toString()] );
|
||||
yticks.push( [log_count, count.toString()] );
|
||||
|
||||
maxx = Math.max( score + 1, maxx );
|
||||
maxy = Math.max(log_count*1.1, maxy );
|
||||
}
|
||||
|
||||
$.plot($("#histogram_${module_id}"), [{
|
||||
data: data,
|
||||
bars: { show: true,
|
||||
align: 'center',
|
||||
lineWidth: 0,
|
||||
fill: 1.0 },
|
||||
color: "#b72121",
|
||||
}],
|
||||
{
|
||||
xaxis: {min: -1, max: maxx, ticks: xticks, tickLength: 0},
|
||||
yaxis: {min: 0.0, max: maxy, ticks: yticks, labelWidth: 50},
|
||||
}
|
||||
);
|
||||
@@ -2,5 +2,5 @@
|
||||
${xml | h}
|
||||
</div>
|
||||
%if render_histogram:
|
||||
<div id="histogram_${module_id}" style="width:200px;height:150px"></div>
|
||||
<div id="histogram_${module_id}" class="histogram" data-histogram="${histogram}"></div>
|
||||
%endif
|
||||
|
||||
Reference in New Issue
Block a user