From 0c6ae4c0096a1cec65c01a0efac5dd41b4ba1ff3 Mon Sep 17 00:00:00 2001 From: Myriam Delaruelle <Myriam Delaruelle@bdn-un-mdelarue.ad.univ-lorraine.fr> Date: Tue, 12 Oct 2021 14:10:30 +0200 Subject: [PATCH] fix assignment from competency dashboard --- competency_iena_competency_students_2.php | 72 ++++++++++++++++++++++- templates/dashboard_competencies.mustache | 8 +-- 2 files changed, 73 insertions(+), 7 deletions(-) diff --git a/competency_iena_competency_students_2.php b/competency_iena_competency_students_2.php index ba2b667..66d5a4c 100644 --- a/competency_iena_competency_students_2.php +++ b/competency_iena_competency_students_2.php @@ -39,8 +39,51 @@ $thingnode->make_active(); /* Liste des compétences du cours */ $course_cpts = \core_competency\course_competency::list_competencies($COURSE->id); -if (count($course_cpts) > 0) { +if(isset($_POST) && !empty($_POST)){ + + $studentid = required_param('studentid', PARAM_INT); + $competencyid = required_param('competencyid', PARAM_INT); + + + $sql_rev = "SELECT * FROM {competency_usercomp} WHERE userid = ? AND competencyid = ? AND status = ?"; + $reviews_data = $DB->get_records_sql($sql_rev, [$studentid, $competencyid, 1]); + $review_asked = count($reviews_data) > 0 ? true : false; + + + /* <<< POST >>> */ + + /* POST EVALUATION */ + + if ( isset($_POST['grade']) ) { + $note = $_POST['note']; + \core_competency\api::grade_competency_in_course($courseid, $studentid, $competencyid, $_POST['grade'], $note); + if ( $review_asked ) { + \core_competency\api::user_competency_start_review($studentid, $competencyid); + \core_competency\api::user_competency_stop_review($studentid, $competencyid); + /* Refresh review data */ + $reviews_data = $DB->get_records_sql($sql_rev, [$studentid, $competencyid, 1]); + $review_asked = count($reviews_data) > 0 ? true : false; + } + } + + /* POST REVIEW */ + + if ( isset($_POST['review']) ) { + if ( $_POST['review'] == 'request' ) { + \core_competency\api::user_competency_request_review($studentid, $competencyid); + } elseif ( $_POST['review'] == 'cancel' ) { + \core_competency\api::user_competency_cancel_review_request($studentid, $competencyid); + } + /* Refresh review data */ + $reviews_data = $DB->get_records_sql($sql_rev, [$studentid, $competencyid, 1]); + $review_asked = count($reviews_data) > 0 ? true : false; + } + +} + +if (count($course_cpts) > 0) { + $message='Cliquez sur le bouton "Chercher" pour afficher des étudiants.'; $current_cpt = new stdClass(); foreach ($course_cpts as $course_cpt) { $current_cpt->id = $course_cpt->get('id'); @@ -252,6 +295,7 @@ if (count($course_cpts) > 0) { array_push($cpt_studs, $cpt_stud); } + if ( isset($_GET['review']) && $_GET['review'] == 'yes' ) { $cpt_studs = array_filter($cpt_studs, function ($stud) { @@ -291,15 +335,36 @@ if (count($course_cpts) > 0) { $cpt_stud->proficiency_d = $cpt_stud->proficiency == 1 ? get_string("yes") : get_string("no"); $cpt_stud->link_cpt=$CFG->wwwroot."/blocks/competency_iena/course_competency.php?courseid=".$courseid."&studentid=".$cpt_stud->id."&competencyid=".$current_cpt->id; - + $cpt_stud->link_assess=$CFG->wwwroot."/blocks/competency_iena/competency_iena_competency_students_2.php?courseid=".$courseid."&studentid=".$cpt_stud->id."&competencyid=".$current_cpt->id; + if(isset($grade)){ + $cpt_stud->link_assess.="&grade=".$grade; + } + if(isset($proficiency)){ + $cpt_stud->link_assess.="&grade=".$proficiency; + } + if(isset($review)){ + $cpt_stud->link_assess.="&grade=".$review; + } + + //Rajouter les paramètres pour l'url pour retourner; + //L'évaluation ne marche pas } - $data["cpt_studs"]=$cpt_studs; + $data["cpt_studs"]=array_values($cpt_studs); + //var_dump($cpt_studs); + } + else{ + + $message="Aucun étudiant ne correspond à la sélection."; + } } else { /* if all filters are not set ( ! isset GET... ) dont display the stud list */ + } + + $data["count_course_cpts"]=count($course_cpts); $data["link_switch_cpt"]=$CFG->wwwroot."/blocks/competency_iena/competency_iena_competency_students_2.php"; $data["courseid"]=$courseid; @@ -316,6 +381,7 @@ if (count($course_cpts) > 0) { $data["options_proficiency"]=$options_proficiency; $data["options_review"]=$options_review; $data['link_dashboard']=$CFG->wwwroot."/blocks/competency_iena/competency_iena_students_2.php"; + $data['message']=$message; diff --git a/templates/dashboard_competencies.mustache b/templates/dashboard_competencies.mustache index 06030f6..1793b54 100644 --- a/templates/dashboard_competencies.mustache +++ b/templates/dashboard_competencies.mustache @@ -1,6 +1,6 @@ <h2>{{# str }} dashboard_competencies, block_competency_iena{{/ str }}</h2> {{#count_course_cpts}} - <div class='container-fluid' id='dash-container'> + <div class='container-fluid'> <div class='alert row' style='padding: 0; background-color: inherit; color: inherit;'> <div class='col-12' style='padding-left: 0;'> <form action='{{link_switch_cpt}}' id='change_cpt_form' class='form-inline' autocomplete='off' style='display: block;height: 1.5rem;'> @@ -67,7 +67,7 @@ </form> </div> </div> - <div class='row'> + <div class='row' id='dash-container'> <div class='col-12' style='padding: 0;'> {{#cpt_studs}} <div class='list-group-item list-group-item-action{{proficient_class}}'> @@ -98,7 +98,7 @@ <button type='button' class='close' data-dismiss='modal' aria-label='Close'><span aria-hidden='true'>×</span></button> </div> <div class='modal-body'> - <form method='post' action='{{link_dashboard}}?courseid={{courseid}}&studentid={{cpt_studs.id}}&competencyid={{competencyid}}'> + <form method='post' action='{{link_assess}}'> <div class='form-group'><div class='form-group'> <label>Évaluation</label> <select name='grade' class='form-control'> @@ -121,7 +121,7 @@ </div> {{/cpt_studs}} {{^cpt_studs}} - <div class='alert alert-warning'>Aucun étudiant ne correspond à la sélection. </div> + <div class='alert alert-warning'>{{message}}</div> {{/cpt_studs}} </div> </div> -- GitLab