diff --git a/CHANGELOG.md b/CHANGELOG.md index 596dc9f0e66384a3ede0580845e6a4ec15a66d7b..3a20ea0d5d66a64bae42df2350081ffe5bc2ea1d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -28,7 +28,11 @@ Variable non instanciée `$this->content->text = "";`. __#### 4__ -La progression ne fonctionne plus. L'appel à la méthode suivante cause une suite d'erreur : +La progression ne fonctionne plus. L'appel à la méthode suivante cause une suite d'erreur. + +La méthode au centre de la récupération des données ne fonctionne plus et fait appel à des méthodes trop complexes. + +__Refaire l'interface de liste des cpt d'un user et des users pour une cpt : cf. "Améliorations".__ ``` php $apiComp = new \tool_lp\output\user_competency_summary_in_course($userID, $competenceId, $courseID); @@ -37,8 +41,6 @@ try { } ``` -__[ ] TODO__ - ### Page informations sur l'APC #### 2 @@ -76,3 +78,41 @@ Changement du nom du plugin (fichiers de langue). [ ] Ajout d'un bouton pour ajouter les compétences en haut du tableau. [ ] Si aucune compétence n'est liée au cours, au lieu d'afficher le tableau, afficher uniquement le bouton d'ajout d'une compétence (un seul sur les deux). + +### Page statut des compétences pour un utilisateur + +Ne pas utiliser de méthodes root, quitte à abandonner des fonctionnalités. Trop instable. + +[x] Lister les compétences de l'utilisateur +- ne trouve pas les users qui n'ont jamais eu d'évaluation sur les compétences : trouver la méthode qui les crée au passage (il y en a une dans l'api) parmi celles qui sont capables de lister les cpt des users => ou constituer la liste des cpt users d'une autre manière + +[ ] Générer un tableau ou une liste propre + +[ ] Pouvoir changer d'utilisateur via un champ de recherche dynamique +- champ intégré mais affiche un id au lieu du nom + +[ ] Pouvoir changer d'utilisateur via des boutons précédent, suivant + +[ ] Permettre de filtrer par proficiency et par grade + +[ ] Générer un lien vers la page cpt x user + +### Page statut des utilisateurs pour une compétence + +[ ] Lister l'état d'acquisitions des utilisateurs pour une compétence + +[ ] Générer un tableau ou une liste propre + +[ ] Pouvoir changer de compétence via un champ de recherche dynamique + +[ ] Pouvoir changer de compétence via des boutons précédent, suivant + +[ ] Permettre de filtrer par proficiency et par grade + +[ ] Générer un lien vers la page cpt x user + +### Page cpt x user + +[ ] Récupérer toutes les données (ne marchera sûrement ) + + diff --git a/block_competency_iena.php b/block_competency_iena.php index 51219520a83e840a50c15219844200744e4cbc15..5754b04dab39be17c2932adebd3348b2262e22be 100644 --- a/block_competency_iena.php +++ b/block_competency_iena.php @@ -54,6 +54,7 @@ class block_competency_iena extends block_base $this->content->text = ""; if (has_capability('moodle/course:update', $context = context_course::instance($COURSE->id), $USER->id)) { $this->content->text .= '<a href="' . $CFG->wwwroot . '/blocks/competency_iena/competency_iena_competencies.php?courseid=' . $COURSE->id . '" class="btn btn-primary w-100 mb-3" style="white-space: normal;">Acquisition des compétences</a>'; + $this->content->text .= '<a href="' . $CFG->wwwroot . '/blocks/competency_iena/competency_iena_competencies_2.php?courseid=' . $COURSE->id . '" class="btn btn-warning w-100 mb-3" style="white-space: normal;">Acquisition des compétences 2</a>'; $this->content->text .= '<a href="' . $CFG->wwwroot . '/blocks/competency_iena/competency_iena_competencies_mgmt.php?courseid=' . $COURSE->id . '" type="button " class="btn btn-success w-100 mb-3" style="white-space: normal;">Gérer les compétences</a>'; $this->content->text .= '<a href="' . $CFG->wwwroot . '/blocks/competency_iena/competency_iena_competency_mgmt.php?courseid=' . $COURSE->id . '" type="button " class="btn btn-secondary w-100 mb-3" style="white-space: normal;">Informations sur l\'APC</a>'; } else { diff --git a/competency_iena_competencies_2.php b/competency_iena_competencies_2.php new file mode 100644 index 0000000000000000000000000000000000000000..1ee11dad48856a10605d6705538ca57505d367f6 --- /dev/null +++ b/competency_iena_competencies_2.php @@ -0,0 +1,100 @@ +<?php + +require_once('../../config.php'); + +// ENLEVER SI NON NECESSAIRE : +require_once('entity/block_competency_iena_competency.php'); +require_once('entity/block_competency_iena_module.php'); +require_once('entity/block_competency_iena_ressource.php'); +require_once('entity/block_competency_iena_section.php'); +require_once('entity/block_competency_iena_student.php'); +require_once('entity/block_competency_iena_cron_roles.php'); +require_once('entity/block_competency_iena_cron_competency.php'); +require_once('view/view_competency_iena_competencies.php'); + + +global $COURSE, $DB, $USER, $CFG; + +$courseid = required_param('courseid', PARAM_INT); +$studentid = optional_param('studentid', $USER->id, PARAM_INT); +$url = new moodle_url('/blocks/competency_iena/competency_iena_competencies_2.php', array('courseid' => $courseid, 'studentid' => $studentid)); +$PAGE->set_pagelayout('course'); +$PAGE->set_url($url); +$course = $DB->get_record('course', array('id' => $courseid), '*', MUST_EXIST); +require_login($course, false, NULL); +$PAGE->set_title(get_string('title_plugin', 'block_competency_iena')); +$PAGE->set_heading($OUTPUT->heading($COURSE->fullname, 2, 'headingblock header outline')); +$PAGE->requires->js("/blocks/competency_iena/js/datalist-polyfill.min.js"); +echo $OUTPUT->header(); + + + +// Les étudiants. +$student = new block_competency_iena_student(); +$students = $student->get_all_students_by_course($COURSE->id); +// var_dump($students); + +// L'étudiant +$student->get_student_by_id($studentid); + +// Les compétences du cours. +// $course_cpts = \core_competency\course_competency::list_competencies($COURSE->id); +$course_cpts = \core_competency\course_competency::list_competencies($COURSE->id); +// echo "<pre>"; +// foreach ($course_cpts as $course_cpt) { +// var_dump($course_cpt); +// echo "<hr>"; +// } +// echo "</pre>"; + +// L'état des compétences du cours pour un utilisateur +$user_course_competencies = \core_competency\api::list_user_competencies_in_course($COURSE->id, $studentid); +// echo "<pre>"; +// foreach ($user_course_competencies as $user_course_competency) { +// var_dump($user_course_competency); +// echo "<hr>"; +// $cpt = new \core_competency\competency($user_course_competency->get('id')); +// var_dump($cpt->get_scale()); +// echo "<hr>"; +// echo "<hr>"; +// } +// echo "</pre>"; + +echo "<form action='{$CFG->wwwroot}/blocks/competency_iena/competency_iena_competencies_2.php'>"; +echo "<input type='text' hidden name='courseid' value='{$courseid}'>"; +// https://github.com/mfranzke/datalist-polyfill +echo "<input type='text' name='studentid' id='studentid_sel' value='' list='student_list' class='dtlst'>"; + +echo "<datalist id='student_list' title='Select student'>"; + +foreach ($students as $stud) { + echo "<option value='{$stud->id}'>{$stud->firstname} {$stud->lastname}</option>"; +} +echo "</datalist>"; +echo "<button type='submit'>Rechercher</button>"; +echo "</form>"; + +echo "<h2>{$student->firstname} {$student->lastname}</h2>"; +foreach ($user_course_competencies as $user_course_competency) { + echo "<div class='alert alert-secondary'>"; + $cpt = new \core_competency\competency($user_course_competency->get('id')); + echo "<h3 id='{$cpt->get('id')}'>{$cpt->get('shortname')}</h3>"; + $cpt_scale = $cpt->get_scale()->scale_items; + if ( $user_course_competency->get('grade') == null ) { + $eval = "Non évalué"; + } else { + $eval = $cpt_scale[$user_course_competency->get('grade') - 1]; + } + echo "<p>Evaluation : {$eval}</p>"; + $proficient = $user_course_competency->get('proficiency') == 1 ? "Oui" : "Non"; + echo "<p>Validé : {$proficient}</p>"; + echo "</div>"; +} + + + + + + + +echo $OUTPUT->footer();