Code coverage report for src/components/performance-forecast/statistics.cjsx

Statements: 87.88% (29 / 33)      Branches: 42.86% (3 / 7)      Functions: 100% (3 / 3)      Lines: 87.88% (29 / 33)      Ignored: none     

All files » src/components/performance-forecast/ » statistics.cjsx
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                                   287× 287× 287× 287×                   287× 287×     287×   287×         287× 287× 287× 287× 1730× 1730× 287×   1730×       287×                    
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;