Commit 75338568 authored by Thomas Fradet's avatar Thomas Fradet

cpt refactorisation

parent 0b9f4b14
......@@ -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 )
......@@ -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 {
......
<?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();
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