diff --git a/CHANGELOG.md b/CHANGELOG.md index ad9e8efe386dfc4fade89e3304faa16630425746..68535260eee7ee2038e69154a2b9592ed449f870 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -79,9 +79,9 @@ Changement du nom du plugin (fichiers de langue). ### Page de gestion des compétences liées au cours -[ ] Ajout d'un bouton pour ajouter les compétences en haut du tableau. +[-] 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). +[-] 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 @@ -135,8 +135,6 @@ Ne pas utiliser de méthodes root, quitte à abandonner des fonctionnalités. Tr ### Page cpt x user x course -[ ] Récupérer toutes les données (ne marchera sûrement pas) - __Récupérer les données de base :__ [x] Nom de l'étudiant [x] Nom et description de la compétence @@ -145,18 +143,22 @@ __Récupérer les données de base :__ [x] Info évaluation demandée (review) [x] Evaluer un étudiant avec : évaluation, commentaire d'évaluation [x] Lever une éventuelle demande d'évaluation (review) quand on évalue -[ ] Demande et annulation de demande d'évaluation (par l'étudiant) -[ ] Historique d'évaluation en liste : essayer de récupérer l'exporteur de moodle -[ ] Historique d'évaluation en graphique +[x] Demande et annulation de demande d'évaluation (par l'étudiant) +[x] Historique d'évaluation en liste : essayer de récupérer l'exporteur de moodle +[x] Historique d'évaluation en graphique [x] Liste des modules de cours liés à l'activité avec lien vers l'activité -[ ] Etat d'achèvement du module de cours (attention de vérifier si achèvement activé à tous les niv) +[-] Etat d'achèvement du module de cours (attention de vérifier si achèvement activé à tous les niv) -[ ] Formulaire de changement d'étudiant avec les boutons précédent et suivant -[ ] Formulaire de changement de compétence avec les boutons précédent et suivant +[x] Formulaire de changement d'étudiant avec les boutons précédent et suivant +[x] Formulaire de changement de compétence avec les boutons précédent et suivant [x] Message d'erreur si l'étudiant demandé n'appartient pas au cours [x] Redirection si un étudiant essaie d'accéder à la page d'un autre étudiant + +[x] vérifier si il y a des evidences dans les 3 onglets et afficher ou non l'onglet en conséquence + + ### Page par activité Créer une page qui permet d'évaluer les compétences en lien avec une activité particulière ? Ou de lister l'acquisition des compétences pour cette activité ? @@ -166,3 +168,4 @@ Créer une page qui permet d'évaluer les compétences en lien avec une activit Changement de l'ordre et de l'apparence des boutons. Ajout d'un bouton pour aller à la vue cpt x users en plus de celui pour aller vers la vue user x cpts. Nommage : "tableaux de bord" => "par étudiant" (user x cpts) et "par compétence" (cpt x users). Ces deux listes mèneront vers le cpt x user. + diff --git a/course_competency.php b/course_competency.php index 4f527d996c53e30b7eeb95b9c021a87a9e763226..fe130c01ab56aac96eb109ce769943cc3f93d477 100644 --- a/course_competency.php +++ b/course_competency.php @@ -19,7 +19,7 @@ $PAGE->set_heading($OUTPUT->heading($COURSE->fullname, 2, 'headingblock header o $PAGE->requires->js("/blocks/competency_iena/js/datalist-polyfill.min.js"); $PAGE->requires->js("/blocks/competency_iena/js/stud-x-cpts.js"); $PAGE->requires->js("/blocks/competency_iena/js/cpt-x-studs.js"); - +$PAGE->requires->js("/blocks/competency_iena/js/cpt-stud-course.js"); /* <<< GESTION DROITS D'ACCÈS >>> */ @@ -207,14 +207,14 @@ echo "
"; echo "
"; echo "
"; echo "

Validé

"; -echo "

{$proficiency}

"; +echo "

{$proficiency}

"; echo "
"; echo "
"; /* Grade info */ echo "
"; echo "
"; echo "

Évaluation

"; -echo "

{$eval}

"; +echo "

{$eval}

"; echo "
"; echo "
"; /* Review and grade ASK and ACTION */ @@ -263,128 +263,121 @@ echo "
"; /* END evaluation info and actions row */ /* GRADES AND EVIDENCES HISTORY CHART AND LIST */ -// quelle différence -// read_user_evidence($id) -// read_evidence($evidenceid) - -// delete_user_evidence($id) - -// pour toutes les cpt -// list_user_evidence($userid) - -// lié à la compétence -// list_evidence($userid = 0, $competencyid = 0, $planid = 0, $sort = 'timecreated', -// $order = 'DESC', $skip = 0, $limit = 0) - -// list_evidence_in_course($userid = 0, $courseid = 0, $competencyid = 0, $sort = 'timecreated', - // $order = 'DESC', $skip = 0, $limit = 0) - - - -// OKOK - - - /* Utilisation des renderer du /admin/tool/lp/class/output pour obtenir toutes les données d'historique construites et organisées */ -/* Dabord dans le cours, puis dans l'absolu pour les différencier / filtrer */ +/* /admin/tool/lp/user_competency.php?id= */ $tool_lp_renderer = $PAGE->get_renderer('tool_lp'); -$user_cpt_course_data = new \tool_lp\output\user_competency_summary_in_course($studentid, $competencyid, $courseid); -$user_cpt_course_data = $user_cpt_course_data->export_for_template($tool_lp_renderer); -$course_evidences = $user_cpt_course_data->usercompetencysummary->evidence; -$course_evidences_ids = array(); -foreach ($course_evidences as $course_evidence) { - $course_evidences_ids[] = $course_evidence->id; -} - $user_competency = \core_competency\api::get_user_competency($studentid, $competencyid); $user_cpt_all_data = new \tool_lp\output\user_competency_summary($user_competency); $user_cpt_all_data = $user_cpt_all_data->export_for_template($tool_lp_renderer); $all_evidences = $user_cpt_all_data->evidence; -echo "
"; -echo "
"; -echo "

Historique

"; -echo ""; -echo "
"; -echo ";"; -echo "
"; + echo ""; + echo ""; /* evidences list col */ + echo ""; /* evidences list row */ + +} /* END IF count all evidences (course and outside) == 0 */ echo "
";
-var_dump($course_evidences_ids);
-print_r($all_evidences);
+// print_r($all_evidences);
 echo "
"; /* @@ -395,127 +388,11 @@ Remonter ces données en haut et commenter les données préalablement récupér */ - -// echo $output_lp->render($cpt_base_page); - - - - - - -/* Data */ -$course_evidencies = \core_competency\api::list_evidence_in_course($studentid, $courseid, $competencyid, $sort = 'timecreated', $order = 'DESC', $skip = 0, $limit = 0); -$all_evidencies = \core_competency\api::list_evidence($studentid, $competencyid, $planid = 0, $sort = 'timecreated', $order = 'DESC', $skip = 0, $limit = 0); - -$evidences = array(); -foreach ($course_evidencies as $course_ev) { - $ev = new stdClass(); - // echo "
";
-	// var_dump($course_ev);
-	// echo "
"; - $ev->id = $course_ev->get('id'); - $ev->usercompetencyid = $course_ev->get('usercompetencyid'); - $ev->contextid = $course_ev->get('contextid'); - $ev->actionuserid = $course_ev->get('actionuserid'); - $ev->descidentifier = $course_ev->get('descidentifier'); /* nature de l'événement */ - // $course_ev->get('actionuserid') - $ev->out = $course_ev->get_description()->out(); - $evidences[] = $ev; -} - -foreach ($evidences as $ev) { - // echo "

{$ev->out}

"; -} - -// $user_competency_summary_in_course = new \tool_lp\output\user_competency_summary_in_course($studentid, $competencyid, $courseid); -// $dataSumCourse = $user_competency_summary_in_course->export_for_template(new renderer_base(new moodle_page(), 'autre')); -// var_dump($dataSumCourse); - - -$labels = array(); -$series_data = array(); -$series_data_all = array(); - -foreach ($all_evidencies as $evidence) { - // echo ""; -} - - -// echo "
";
-// var_dump($context->__get('id'));
-// var_dump($all_evidencies);
-// var_dump($series_data);
-// var_dump($series_data_all);
-// var_dump($labels);
-// echo "
"; - -// OK OK END - - - -echo "
"; -_html('h2', "Historique d'évaluation", "h3"); - -// $chart = new core\chart_line(); -// $chart->get_yaxis(0, true)->set_labels(["Non évaluant", "Non compétent", "Compétent"]); -// $series = new core\chart_series('Donnée dans ce cours', array_reverse($series_data)); -// $series_all = new core\chart_series("Donnée dans d'autres cours", array_reverse($series_data_all)); -// $chart->add_series($series); -// $chart->add_series($series_all); -// $chart->set_labels(array_reverse($labels)); -// echo $OUTPUT->render($chart); -// echo "
"; - -// $chart = new core\chart_bar(); -// $chart->get_yaxis(0, true)->set_labels(["Non évaluant", "Non compétent", "Compétent"]); -// $series = new core\chart_series('Donnée dans ce cours', array_reverse($series_data)); -// $series_all = new core\chart_series("Donnée dans d'autres cours", array_reverse($series_data_all)); -// $chart->add_series($series); -// $chart->add_series($series_all); -// $chart->set_labels(array_reverse($labels)); -// echo $OUTPUT->render($chart); -echo "
"; - /* LINKED MODULES */ +_html("h3", "Lié à cette compétence"); if ( count($cm_ids) !== 0 ) { $modinfo = get_fast_modinfo($courseid); - _html("h3", "Lié à cette compétence"); echo "
"; foreach ($cm_ids as $cm_id) { echo " {$modinfo->cms[$cm_id]->name}"; diff --git a/js/cpt-stud-course.js b/js/cpt-stud-course.js new file mode 100644 index 0000000000000000000000000000000000000000..8941979e1a09541b4c6b56fd5155744f0047dbec --- /dev/null +++ b/js/cpt-stud-course.js @@ -0,0 +1,24 @@ +(function() { + function active_tabs(active_tab) { + var tabs = document.querySelectorAll('#hist-tabs .nav-link'); + for ( var i=0; i < tabs.length; i++ ) { + tabs[i].setAttribute('class', 'nav-link'); + } + active_tab.setAttribute('class', 'nav-link active'); + } + function filter(type) { + var list_items = document.querySelectorAll('[data-evidenceorigin]'); + for ( var j = 0; j < list_items.length; j++ ) { + if ( type.indexOf(list_items[j].dataset.evidenceorigin) != -1 ) { + list_items[j].style.display = ''; + } else { + list_items[j].style.display = 'none'; + } + } + } + window.addEventListener('load', function() { + document.getElementById('all_history_tab').addEventListener('click', function (e) { e.preventDefault(); active_tabs(e.target); filter('course and other'); }); + document.getElementById('course_history_tab').addEventListener('click', function (e) { e.preventDefault(); active_tabs(e.target); filter('course'); }); + document.getElementById('other_history_tab').addEventListener('click', function (e) { e.preventDefault(); active_tabs(e.target); filter('other'); }); + }) +})(); \ No newline at end of file