diff --git a/competency_iena_competencies_mgmt.php b/competency_iena_competencies_mgmt.php index f6d26c608a656f2a6abef094f567d2214a9865ac..b9cbf3d510d6f631e0310bc102a8ecf5c01322fd 100644 --- a/competency_iena_competencies_mgmt.php +++ b/competency_iena_competencies_mgmt.php @@ -21,6 +21,8 @@ //$requete = $DB->get_record_sql('SELECT course FROM {block_competency_iena} WHERE id = ?', array($courseid)); $PAGE->set_url($url); + + if(!has_capability('moodle/course:update', $context = context_course::instance($courseid), $USER->id)){ $editmode=false; } @@ -134,6 +136,9 @@ $PAGE->set_title(get_string('title_plugin', 'block_competency_iena')); $PAGE->set_heading($OUTPUT->heading($COURSE->fullname, 2, 'headingblock header outline')); + $coursenode = $PAGE->navigation->find($courseid, navigation_node::TYPE_COURSE); + $thingnode = $coursenode->add(get_string('manage_comp', 'block_competency_iena')); + $thingnode->make_active(); $PAGE->requires->js(new \moodle_url('https://code.jquery.com/jquery-3.3.1.min.js'),true); diff --git a/competency_iena_competency_students_2.php b/competency_iena_competency_students_2.php index cc0b8c667faf0ec334c1c3aa4ca6145cbcfcd410..ba2b6673d48f137c88ea64a944af8d31d84dea1f 100644 --- a/competency_iena_competency_students_2.php +++ b/competency_iena_competency_students_2.php @@ -110,7 +110,7 @@ if (count($course_cpts) > 0) { $scale_for_labels[] = "Non évalués"; /* Graphique MOODLE */ $chart_assess = new core\chart_bar(); - $grade_serie = new core\chart_series('', $grade_scale_counter); + $grade_serie = new core\chart_series(get_string('students'), $grade_scale_counter); $chart_assess->add_series($grade_serie); $chart_assess->set_labels($scale_for_labels); @@ -216,6 +216,7 @@ if (count($course_cpts) > 0) { $cpt_studs = array(); foreach ($students as $student) { + $cpt_stud = new stdClass(); $cpt_stud->id = $student->id; $cpt_stud->firstname = $student->firstname; @@ -227,6 +228,17 @@ if (count($course_cpts) > 0) { if ( $course_cpt->userid == $student->id ) { $cpt_stud->proficiency = $course_cpt->proficiency; $cpt_stud->grade = $course_cpt->grade; + $cpt_stud->scale=array(); + //pour chaque valeur de l'échelle, on ajoute dans un tableau pour l'étudiant avec selected + + for($i=0; $i<count($current_cpt->scale); $i++){ + $cpt_stud->scale[$i]=array('title'=>$current_cpt->scale[$i], 'value'=>$i+1); + if($i+1 ==$cpt_stud->grade){ + $cpt_stud->scale[$i]['selected']='selected'; + } + + } + foreach ($reviews_data as $review) { if ( $review->userid == $student->id ) { $cpt_stud->review = $review->status; @@ -235,7 +247,9 @@ if (count($course_cpts) > 0) { } break; } + } + array_push($cpt_studs, $cpt_stud); } @@ -276,7 +290,7 @@ if (count($course_cpts) > 0) { $cpt_stud->grade_d = $cpt_stud->grade == NULL ? "-" : $current_cpt->scale[$cpt_stud->grade - 1]; $cpt_stud->proficiency_d = $cpt_stud->proficiency == 1 ? get_string("yes") : get_string("no"); - $data["link_cpt"]=$CFG->wwwroot."/blocks/competency_iena/course_competency.php?courseid=".$courseid."&studentid=".$cpt_stud->id."&competencyid=".$current_cpt->id; + $cpt_stud->link_cpt=$CFG->wwwroot."/blocks/competency_iena/course_competency.php?courseid=".$courseid."&studentid=".$cpt_stud->id."&competencyid=".$current_cpt->id; } $data["cpt_studs"]=$cpt_studs; @@ -301,6 +315,7 @@ if (count($course_cpts) > 0) { $data["options_grade"]=$options_grade; $data["options_proficiency"]=$options_proficiency; $data["options_review"]=$options_review; + $data['link_dashboard']=$CFG->wwwroot."/blocks/competency_iena/competency_iena_students_2.php"; diff --git a/templates/dashboard_competencies.mustache b/templates/dashboard_competencies.mustache index 52eb9719a18644dc09ef75cf614e4bad008958d9..06030f6c708d25c5a0f0a7d06f3b780e25c7eae9 100644 --- a/templates/dashboard_competencies.mustache +++ b/templates/dashboard_competencies.mustache @@ -70,15 +70,55 @@ <div class='row'> <div class='col-12' style='padding: 0;'> {{#cpt_studs}} - <a href='{{link_cpt}}' class='list-group-item list-group-item-action{{proficient_class}}'> + <div class='list-group-item list-group-item-action{{proficient_class}}'> <div class='d-flex w-100 justify-content-between'> <h3 class='mb-1 iena-cpt-action-title h5'>{{firstname}} {{lastname}}</h3> - {{#cpt_studs.review}} - <div><small class='review-badge'>Évaluation demandée</small></div> - {{/cpt_studs.review}} + + <div class="iena-right-competency"> + {{#cpt_studs.review}} + <div><small class='review-badge'>Évaluation demandée</small></div> + {{/cpt_studs.review}} + <div class="user-competency-actions"> + <a href="#" data-toggle='modal' data-target='#modal-assess-{{id}}' class="action-icon" title="Evaluer" aria-label="Evaluation"><i class="icon fa fa-file-text-o fa-fw " aria-hidden="true"></i></a> + + <a href="{{link_cpt}}" class="action-icon" title="Détails" aria-label="{{#str}} eval, block_competency_iena {{/str}}"><i class="icon fa fa-search-plus fa-fw " aria-hidden="true"></i></a> + </div> + </div> + </div> + <p class='small' style='margin-bottom: 0;'> + Évaluation : <span class="iena-label-assess">{{grade_d}}</span> + Acquis : <span class="iena-label-assess">{{proficiency_d}}</span> </p> + + </div> + <div class='modal fade' id="modal-assess-{{id}}" tabindex='-1' role='dialog' aria-labelledby='exampleModalScrollableTitle' aria-hidden='true'> + <div class='modal-dialog modal-dialog-scrollable modal-dialog-centered' role='document'> + <div class='modal-content'> + <div class='modal-header'> + <h5 class='modal-title'>{{#str}} eval, block_competency_iena {{/str}}</h5> + <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}}'> + <div class='form-group'><div class='form-group'> + <label>Évaluation</label> + <select name='grade' class='form-control'> + {{#scale}} + <option value='{{value}}'{{selected}}>{{title}}</option> + {{/scale}} + </select> + </div> + <div class='form-group'> + <textarea name='note' class='form-control' placeholder="Commentaire d'évaluation"></textarea> + </div> + <button type='submit' class='btn btn-primary'>Évaluer</button> + </form> + + + </div> + </div> + </div> </div> - <p class='small' style='margin-bottom: 0;'>Évaluation : {{grade_d}} / Acquis : {{proficiency_d}}</p> - </a> + </div> {{/cpt_studs}} {{^cpt_studs}} <div class='alert alert-warning'>Aucun étudiant ne correspond à la sélection. </div>