Skip to content
Snippets Groups Projects
Commit 75338568 authored by Thomas Fradet's avatar Thomas Fradet
Browse files

cpt refactorisation

parent 0b9f4b14
No related branches found
No related tags found
No related merge requests found
......@@ -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();
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment