Commit 480cf61d authored by Thomas Fradet's avatar Thomas Fradet

stud cpts list

parent a476004f
......@@ -84,14 +84,12 @@ Changement du nom du plugin (fichiers de langue).
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
[x] Pouvoir changer d'utilisateur via un champ de recherche dynamique
[ ] Pouvoir changer d'utilisateur via des boutons précédent, suivant
[x] Pouvoir changer d'utilisateur via des boutons précédent, suivant
[ ] Permettre de filtrer par proficiency et par grade
......
......@@ -25,6 +25,7 @@ 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");
$PAGE->requires->js("/blocks/competency_iena/js/stud-x-cpts.js");
echo $OUTPUT->header();
......@@ -60,28 +61,38 @@ $user_course_competencies = \core_competency\api::list_user_competencies_in_cour
// }
// echo "</pre>";
echo "<form action='{$CFG->wwwroot}/blocks/competency_iena/competency_iena_competencies_2.php'>";
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 "<input type='text' hidden name='courseid' value='{$courseid}'>";
echo "<span hidden id='studentid'>{$studentid}</span>";
// https://github.com/mfranzke/datalist-polyfill
echo "<input type='text' name='studentid' id='studentid_sel' value='' list='student_list' class='dtlst'>";
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 "<datalist id='student_list' title='Select student'>";
foreach ($students as $stud) {
echo "<option value='{$stud->id}'>{$stud->firstname} {$stud->lastname}</option>";
echo "<option value='{$stud->firstname} {$stud->lastname} ({$stud->id})' data-value='{$stud->id}'>{$stud->firstname} {$stud->lastname} ({$stud->id})</option>";
}
echo "</datalist>";
echo "<button type='submit'>Rechercher</button>";
$change_stud_url = $CFG->wwwroot."/blocks/competency_iena/competency_iena_competencies_2.php?courseid=".$courseid."&studentid=";
// echo "<a href='{$change_stud_url}' class='btn btn-secondary m-l-1' id='prevStud'>Précédent</a>";
// echo "<a href='{$change_stud_url}' class='btn btn-secondary m-l-1' id='nextStud'>Suivant</a>";
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 "</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'));
$cpt = new \core_competency\competency($user_course_competency->get('competencyid'));
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é";
$eval = "-";
} else {
$eval = $cpt_scale[$user_course_competency->get('grade') - 1];
}
......
(function() {
window.onload = function () {
var opts = document.getElementById('student_list').childNodes;
var studentid = document.getElementById('studentid').innerHTML;
for (var i = 0; i < opts.length; i++) {
if (opts[i].dataset.value === studentid) {
var prev = opts[i - 1] === undefined ? false : opts[i - 1].dataset.value;
var next = opts[i + 1] === undefined ? false : opts[i + 1].dataset.value;
if (prev === false) {
document.getElementById('prevStud').setAttribute('disabled', 'disabled');
} else {
// document.getElementById('prevStud').href += prev;
document.getElementById('prevStud').dataset.prev = prev;
document.getElementById('prevStud').onclick = function () {
document.getElementById('studentid_sel').value = document.getElementById('prevStud').dataset.prev;
}
}
if (next === false) {
document.getElementById('nextStud').setAttribute('disabled', 'disabled');
} else {
// document.getElementById('nextStud').href += next;
document.getElementById('nextStud').dataset.next = next;
document.getElementById('nextStud').onclick = function () {
document.getElementById('studentid_sel').value = document.getElementById('nextStud').dataset.next;
}
}
}
}
};
// remplace le nom de l'étu par son id dans la valeur de l'input puis soumet le formulaire
document.getElementById('studentid_sel').oninput = function (e) {
var val = document.getElementById('studentid_sel').value;
var opts = document.getElementById('student_list').childNodes;
for (var i = 0; i < opts.length; i++) {
if (opts[i].value === val) {
document.getElementById('studentid_sel').value = opts[i].dataset.value;
document.getElementById('change_stud_form').submit();
}
}
};
})()
\ 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