add template course_log - refs #2681

pull/2818/head
Alex Aragón 7 years ago
parent 6a0308aae4
commit ed916e45b6
  1. 12
      main/admin/settings.lib.php
  2. 2
      main/inc/lib/dashboard.lib.php
  3. 229
      main/template/default/tracking/tracking_course_log.html.twig
  4. 4
      main/tracking/courseLog.php

@ -151,7 +151,7 @@ function handlePlugins()
// Plugins NOT installed
echo Display::page_subheader(get_lang('Plugins'));
echo '<form class="form-horizontal" name="plugins" method="post" action="'.api_get_self().'?category='.Security::remove_XSS($_GET['category']).'&sec_token='.$token.'">';
echo '<table class="data_table">';
echo '<table class="table table-hover">';
echo '<tr>';
echo '<th width="20px">';
echo get_lang('Action');
@ -192,17 +192,17 @@ function handlePlugins()
$pluginRow .= '<p>'.$plugin_info['comment'].'</p>';
$pluginRow .= '<p>'.get_lang('Author').': '.$plugin_info['author'].'</p>';
$pluginRow .= '<div class="btn-group">';
$pluginRow .= '<div class="btn-group btn-group-sm">';
if (in_array($pluginName, $installed_plugins)) {
$pluginRow .= Display::url(
'<em class="fa fa-cogs"></em> '.get_lang('Configure'),
'configure_plugin.php?name='.$pluginName,
['class' => 'btn btn-default']
['class' => 'btn btn-primary']
);
$pluginRow .= Display::url(
'<em class="fa fa-th-large"></em> '.get_lang('Regions'),
'settings.php?category=Regions&name='.$pluginName,
['class' => 'btn btn-default']
['class' => 'btn btn-primary']
);
}
@ -211,7 +211,7 @@ function handlePlugins()
"<em class='fa fa-file-text-o'></em> readme.txt",
api_get_path(WEB_PLUGIN_PATH).$pluginName."/readme.txt",
[
'class' => 'btn btn-default ajax',
'class' => 'btn btn-primary ajax',
'data-title' => $plugin_info['title'],
'data-size' => 'lg',
'_target' => '_blank',
@ -225,7 +225,7 @@ function handlePlugins()
"<em class='fa fa-file-text-o'></em> README.md",
api_get_path(WEB_AJAX_PATH).'plugin.ajax.php?a=md_to_html&plugin='.$pluginName,
[
'class' => 'btn btn-default ajax',
'class' => 'btn btn-primary ajax',
'data-title' => $plugin_info['title'],
'data-size' => 'lg',
'_target' => '_blank',

@ -31,7 +31,7 @@ class DashboardManager
$table_cols = ['name', 'version', 'description'];
echo Display::page_subheader(get_lang('DashboardPlugins'));
echo '<form name="plugins" method="post" action="'.api_get_self().'?category='.Security::remove_XSS($_GET['category']).$tokenCondition.'">';
echo '<table class="data_table">';
echo '<table class="table table-hover">';
echo '<tr>';
echo '<th width="50px">'.get_lang('Enabled').'</th>';
echo '<th width="250px">'.get_lang('Name').'</th>';

@ -0,0 +1,229 @@
<!-- tracking course log -->
<script>
window.onload = function() {
var scoreStudent = document.getElementById("chart-score").getContext('2d');
var lastAccess = document.getElementById("chart-access").getContext('2d');
var jsonfile = {{ json_time_student }};
var labels = [];
var times = [];
Object.keys(jsonfile).forEach(function(key) {
//Names
labels.push(jsonfile[key].fullname);
//Time plataform total
times.push(jsonfile[key].total_time);
});
var myChartAccess = new Chart(lastAccess, {
type: 'line',
data: {
labels: labels,
datasets: [{
data: times,
borderColor: "#3ba557",
backgroundColor: "#3ba557",
borderWidth: 1,
fill: false,
label: '{{ "Minutes"|get_lang|e('js') }}',
}]
},
options: {
legend:{
display: false
},
scales: {
xAxes:[{
position: "bottom",
scaleLabel: {
display: true,
labelString: '{{ "Students"|get_lang|e('js') }}',
},
ticks: {
display: false
}
}],
yAxes: [{
position: "left",
scaleLabel: {
display: true,
labelString: '{{ "Minutes"|get_lang|e('js') }}',
}
}]
}
}
});
var myChartScore = new Chart(scoreStudent, {
type: 'bar',
data: {
labels: ["0-9%", "10-19%", "20-29%", "30-39%", "40-49%", "50-59%", "60-69%", "70-79%", "80-89%", "90-100%"],
datasets: [{
label: '{{ "NumberOfUsers"|get_lang|e('js') }}',
data: {{ score_distribution }},
backgroundColor: {{ chart_colors }},
borderColor: {{ chart_colors }},
borderWidth: 1,
fill: false
}]
},
options: {
legend:{
display: false
},
scales: {
yAxes: [{
position: "left",
scaleLabel: {
display: true,
labelString: '{{ "NumberOfUsers"|get_lang|e('js') }}',
},
ticks: {
display: true,
min: 0,
stepSize: 1
}
}],
xAxes:[{
position: "bottom",
scaleLabel: {
display: true,
labelString: "{{ 'PercentileScoresDistribution'|get_lang|e('js') }}",
},
gridLines: {
display: true
},
ticks: {
display: false,
}
}],
}
}
});
};
</script>
<div class="tracking-course-summary">
<div class="row">
<div class="col-lg-3 col-sm-3">
<div class="panel panel-default tracking tracking-student">
<div class="panel-body">
<span class="tracking-icon">
<i class="fa fa-graduation-cap" aria-hidden="true"></i>
</span>
<div class="tracking-info">
<div class="tracking-text"> {{ "NumberOfUsers"|get_lang }}</div>
<div class="tracking-number">
{{ number_students }}
</div>
</div>
</div>
</div>
</div>
<div class="col-lg-3 col-sm-3">
<div class="panel panel-default tracking tracking-lessons">
<div class="panel-body">
<span class="tracking-icon">
<i class="fa fa-book" aria-hidden="true"></i>
</span>
<div class="tracking-info">
<div class="tracking-text"> {{ "CourseProgress"|get_lang }}</div>
<div class="tracking-number">
{{ students_completed_lp }}/{{ number_students }}
</div>
</div>
</div>
</div>
</div>
<div class="col-lg-3 col-sm-3">
<div class="panel panel-default tracking tracking-exercise">
<div class="panel-body">
<span class="tracking-icon">
<i class="fa fa-heartbeat" aria-hidden="true"></i>
</span>
<div class="tracking-info">
<div class="tracking-text"> {{ "ExerciseAverage"|get_lang }}</div>
<div class="tracking-number">
{{ students_test_score }}%
</div>
</div>
</div>
</div>
</div>
<div class="col-lg-3 col-sm-3">
<div class="panel panel-default tracking tracking-certificate">
<div class="panel-body">
<span class="tracking-icon">
<i class="fa fa-id-card-o" aria-hidden="true"></i>
</span>
<div class="tracking-info">
<div class="tracking-text"> {{ "CountCertificates"|get_lang }}</div>
<div class="tracking-number">
{{ certificate_count }}/{{ number_students }}
</div>
</div>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-md-4">
<div class="panel panel-default">
<div class="panel-body">
<div class="tracking-chart">
<h4 class="tracking-box-title">{{ 'PercentileScoresDistribution'|get_lang }}</h4>
<canvas id="chart-score"></canvas>
</div>
</div>
</div>
</div>
<div class="col-md-4">
<div class="panel panel-default tracking-top-student">
<div class="panel-body">
<h4 class="tracking-box-title">{{ 'OutstandingStudents'|get_lang }}</h4>
<ul class="list-top">
{% for student in top_students %}
{% set counter = counter + 1 %}
{% if counter <= 3 %}
<li>
<div class="avatar">
<span class="round">
<img
title="{{ student.fullname }}"
alt="{{ student.fullname }}"
src="{{ student.avatar }}"
width="40px">
</span>
</div>
<div class="info">
<h3 class="name">{{ student.fullname }}</h3>
<div class="progress">
<div
class="progress-bar progress-bar-success progress-bar-striped"
role="progressbar"
aria-valuenow="{{ student.score }}" aria-valuemin="0"
aria-valuemax="100" style="width: {{ student.score }}%;">
{{ student.score }}%
</div>
</div>
</div>
</li>
{% endif %}
{% endfor %}
</ul>
<span class="tracking-box-legend">
{{ 'ProgressObtainedFromLPProgressAndTestsAverage'|get_lang }}
</span>
</div>
</div>
</div>
<div class="col-md-4">
<div class="panel panel-default">
<div class="panel-body">
<h4 class="tracking-box-title">{{ "TotalTimeSpentInTheCourse"|get_lang }}</h4>
<canvas id="chart-access"></canvas>
</div>
</div>
</div>
</div>
</div>

@ -20,7 +20,7 @@ $from = isset($_GET['from']) ? $_GET['from'] : null;
// Starting the output buffering when we are exporting the information.
$export_csv = isset($_GET['export']) && $_GET['export'] == 'csv' ? true : false;
$_course = api_get_course_info();
$htmlHeadXtra[] = api_get_js('chartjs/Chart.min.js');
$htmlHeadXtra[] = ' ';
@ -404,7 +404,7 @@ if ($nbStudents > 0) {
$tpl->assign('number_students', $nbStudents);
$tpl->assign('top_students', $userScoreList);
$trackingSummaryLayout = $tpl->get_template('tracking/tracking_course_log.tpl');
$trackingSummaryLayout = $tpl->get_template('tracking/tracking_course_log.html.twig');
$content = $tpl->fetch($trackingSummaryLayout);
echo $content;

Loading…
Cancel
Save