{% extends "layout/basic.html" %} {% block content %} {% macro card(title, value, sub, level, href, linkText) %} {% set levelColor = { 'ok': '#25ad40', 'warn': '#f39800', 'bad': '#fb5555' } %}
{{ title }}
{{ value }}
{{ sub }}
{% if href %}{% endif %}
{% endmacro %}

{{ _('Course health') }}

{% if groups.length %}
{% endif %}
{{ card(_('Submission rate'), deliveredPct + '%', deliveredCount + ' / ' + totalStudents + ' ' + _('students'), deliveredLevel, url('stats_activity', query={group:group or ''}), _('Activity')) }} {{ card(_('Inactive students'), inactiveCount, inactivePct + '% · ' + _('over {0} days').format(inactiveDays), inactiveLevel, url('stats_activity', query={group:group or ''}), _('Details')) }} {{ card(_('Problematic problems'), hardCount, _('low success rate'), hardLevel, url('stats_problems'), _('Calibration')) }} {{ card(_('Stuck (student, problem)'), stuckPairs, _('5+ failed attempts'), stuckLevel, url('stats'), _('Dashboard')) }}

{{ _('Problematic problems') }}

{%- for p in hardProblems -%} {%- endfor -%} {%- if not hardProblems.length -%} {%- endif -%}
{{ _('Problem') }}{{ _('Success rate') }}{{ _('Solvers') }} / {{ _('Attempters') }}
{{ p.pid }} — {{ p.title }} {{ p.successRate }}% {{ p.solvers }} / {{ p.attempters }} {{ _('Report') }}
{{ _('No problematic problems right now.') }}

{{ _('Announcements') }}

{{ _('{0} active announcements.').format(noticeCount) }}

{{ _('Manage announcements') }} »
{% endblock %}