diff --git a/CHANGELOG.md b/CHANGELOG.md index c62dabdccda9a1553132dd47cfb742199ef48676..efc9e9d420f40987f970c4e205f30ee96fa4ec3a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -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 diff --git a/competency_iena_competencies_2.php b/competency_iena_competencies_2.php index c5cd18d22df0a290b03a1623e69f11e85a507585..0e17053574e360cc096a84ed868e235106552300 100644 --- a/competency_iena_competencies_2.php +++ b/competency_iena_competencies_2.php @@ -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