| 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76 | 2×
2×
2×
2×
2×
2×
2×
2×
2×
2×
2×
287×
287×
287×
287×
287×
287×
287×
287×
287×
287×
287×
287×
1730×
1730×
287×
1730×
287×
2×
| var BS, ChapterSectionType, CurrentUserStore, React, Router, SpyMode, Statistics, _, pluralize;
React = require('react');
BS = require('react-bootstrap');
Router = require('react-router');
_ = require('underscore');
SpyMode = require('openstax-react-components').SpyMode;
CurrentUserStore = require('../../flux/current-user').CurrentUserStore;
ChapterSectionType = require('./chapter-section-type');
pluralize = require('pluralize');
pluralize.addIrregularRule(' has', ' have');
Statistics = React.createClass({displayName: "Statistics",
propTypes: {
courseId: React.PropTypes.string.isRequired,
roleId: React.PropTypes.string,
section: ChapterSectionType.isRequired,
displaying: React.PropTypes.string.isRequired
},
getWorkedText: function(role) {
var count, total;
count = this.props.section.clue.unique_learner_count;
total = this.props.section.questions_answered_count;
switch (role) {
case 'teacher':
return (pluralize(' students', count, true)) + " " + (pluralize(' has', count)) + " worked " + (pluralize(' problems', total, true));
case 'student':
return (pluralize(' problems', total, true)) + " worked in this " + this.props.displaying;
case 'teacher-student':
return (pluralize(' problems', total, true)) + " worked";
}
},
render: function() {
var key, role, value;
Iif (this.props.roleId != null) {
role = 'teacher-student';
} else {
role = CurrentUserStore.getCourseRole(this.props.courseId, true);
}
return React.createElement("div", {
"className": 'statistics'
}, React.createElement(SpyMode.Content, {
"className": "clue"
}, React.createElement("ul", null, (function() {
var ref, results;
ref = this.props.section.clue;
results = [];
for (key in ref) {
value = ref[key];
if (_.isArray(value)) {
value = value.join(' ');
}
results.push(React.createElement("li", {
"key": key
}, React.createElement("strong", null, key), ": ", value));
}
return results;
}).call(this))), React.createElement("div", {
"className": 'amount-worked'
}, React.createElement("span", {
"className": 'count'
}, this.getWorkedText(role))));
}
});
module.exports = Statistics;
|