Commit a67873e2 authored by Thomas Fradet's avatar Thomas Fradet

user x cpts add dashboard and chart

parent 214437b1
......@@ -99,7 +99,11 @@ Ne pas utiliser de méthodes root, quitte à abandonner des fonctionnalités. Tr
[x] Ajout de l'information pour chaque compétence de la liste si une demande de validation est en cours (review).
[ ] Afficher la progression de l'utilisateur dans la page ou un graphique ? count_proficient_competencies_in_course_for_user
[x] Afficher la progression de l'utilisateur dans un graphique
[x] Afficher le nombre de demandes d'évaluation dans la page
[x] Le champ de recherche pour changer d'utilisateur est intégré à un encart avec le graphique.
[ ] Générer un lien vers la page cpt x users
......
......@@ -16,20 +16,14 @@ require_login($course, false, NULL);
$PAGE->set_title(get_string('title_plugin', 'block_competency_iena'));
$course_cpts = \core_competency\course_competency::list_competencies($COURSE->id);
if (count($course_cpts) === 0) {
$count_course_cpts = count($course_cpts);
if ($count_course_cpts === 0) {
$PAGE->set_heading($OUTPUT->heading($COURSE->fullname, 2, 'headingblock header outline'));
echo $OUTPUT->header();
echo "<p class='alert alert-warning'>Pour le moment, aucune compétence n'a été liée à ce cours. Pour lier des compétences au cours et les associer à des activités, rendez-vous dans la page <a href='{$CFG->wwwroot}/blocks/competency_iena/competency_iena_competencies_mgmt.php?courseid={$courseid}'>Gestion des compétences</a>. </p>";
echo $OUTPUT->footer();
} else {
$PAGE->set_heading($OUTPUT->heading($COURSE->fullname, 2, 'headingblock header outline'));
$PAGE->requires->js("/blocks/competency_iena/js/datalist-polyfill.min.js");
$PAGE->requires->js("/blocks/competency_iena/js/stud-x-cpts.js");
echo $OUTPUT->header();
// Les compétences du cours.
// $course_cpts = \core_competency\course_competency::list_competencies($COURSE->id);
// L'état des compétences du cours pour un utilisateur
$user_course_competencies = \core_competency\api::list_user_competencies_in_course($COURSE->id, $studentid);
......@@ -40,6 +34,11 @@ if (count($course_cpts) === 0) {
// L'étudiant
$student->get_student_by_id($studentid);
$PAGE->set_heading($OUTPUT->heading($student->firstname . " " . $student->lastname, 2, 'headingblock header outline'));
$PAGE->requires->js("/blocks/competency_iena/js/datalist-polyfill.min.js");
$PAGE->requires->js("/blocks/competency_iena/js/stud-x-cpts.js");
echo $OUTPUT->header();
/* Les demandes de validation de compétence (review) prises dans le cptuser car n'existent pas dans le contexte restreint à un cours. */
/* TODO : préciser sur quelles compétences ? */
$sql = "SELECT * FROM {competency_usercomp}
......@@ -48,29 +47,66 @@ if (count($course_cpts) === 0) {
$params_rev[] = $student->studentid;
$params_rev[] = 1;
$reviews_data = $DB->get_records_sql($sql, $params_rev);
// $reviews_count = count($reviews_data);
$reviews_count = count($reviews_data);
/* <<< DASHBORD >>> */
$count_proficients = 0;
foreach ($user_course_competencies as $u_c_cpt) {
if ( $u_c_cpt->get('proficiency') == 1 ) {
$count_proficients++;
}
}
/* DEBUT CONTAINER */
echo "<div class='container-fluid' id='dash-container'>";
/* <<< DASHBOARD >>> */
echo "<div class='alert alert-secondary row' style='padding-top: 1.5rem;'>"; /* Début tableau de bord. */
/* Left col */
echo "<div class='col-12 col-lg-6'>";
echo "<form action='{$CFG->wwwroot}/blocks/competency_iena/competency_iena_competencies_2.php' id='change_stud_form' class='form-inline m-b-1 alert alert-secondary'>";
echo "<h2 class='h3'>{$student->firstname} {$student->lastname}</h2>";
echo "<form action='{$CFG->wwwroot}/blocks/competency_iena/competency_iena_competencies_2.php' id='change_stud_form' class='form-inline'>";
echo "<input type='text' hidden name='courseid' value='{$courseid}'>";
echo "<span hidden id='studentid'>{$studentid}</span>";
// https://github.com/mfranzke/datalist-polyfill
/* https://github.com/mfranzke/datalist-polyfill */
echo "<label class='m-y-1 m-r-1' for='studentid_sel' style='color: black;'>Etudiant</label>";
echo "<input type='text' name='studentid' id='studentid_sel' value='' list='student_list' class='form-control'>";
echo "<input type='text' name='studentid' id='studentid_sel' value='' list='student_list' class='form-control m-r-1'>";
echo "<datalist id='student_list' title='Select student'>";
foreach ($students as $stud) {
echo "<option value='{$stud->firstname} {$stud->lastname} ({$stud->id})' data-value='{$stud->id}'>{$stud->firstname} {$stud->lastname} ({$stud->id})</option>";
}
echo "</datalist>";
echo "<div><button class='btn btn-secondary' id='prevStud'>Précédent</button>";
echo "<button class='btn btn-secondary m-l-1' id='nextStud'>Suivant</button></div>";
echo "</form>";
echo "<button class='btn btn-secondary m-l-1' id='prevStud'>Précédent</button>";
echo "<button class='btn btn-secondary m-l-1' id='nextStud'>Suivant</button>";
echo "<h2 class='h4 m-t-2'>Demandes d'évaluations <span class='badge badge-pill badge-primary' style='border-radius: 0.15rem;'>$reviews_count</span></h2>";
echo "</form>";
echo "</div>"; /* Left col END */
/* Right col */
echo "<div class='col-12 col-lg-6'>";
echo "<h2 class='h4'>Compétences validées</h2>";
$chart = new \core\chart_pie();
$proficiency_serie = new core\chart_series('', [$count_proficients, $count_course_cpts - $count_proficients]);
$chart->set_doughnut(true);
$chart->add_series($proficiency_serie);
$chart->set_labels(["Validé", "Non validé"]);
echo $OUTPUT->render($chart);
echo "</div>"; /* Right col END */
echo "</div>"; /* Fin tableau de bord */
echo "<h2>{$student->firstname} {$student->lastname}</h2>";
/* <<< COMPETENCY LIST >>> */
echo "<div class='row'>";
echo "<div class='col-12' style='padding: 0;'>";
echo "<div class='list-group'>";
foreach ($user_course_competencies as $user_course_competency) {
......@@ -101,6 +137,13 @@ if (count($course_cpts) === 0) {
}
echo "</div>";
echo "</div>";
echo "</div>"; /* Fin de la liste. */
echo "</div>"; /* FIN CONTAINER */
echo $OUTPUT->footer();
} /* Fin else condition qu'il y ait des cpt liées au cours. */
\ No newline at end of file
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment