diff --git a/competency_iena_competencies_2.php b/competency_iena_competencies_2.php index fa46b9eb894d515a45cdc97689da4d34e76812fd..a007833d392062fe80cff27249312090ee103b33 100644 --- a/competency_iena_competencies_2.php +++ b/competency_iena_competencies_2.php @@ -4,6 +4,7 @@ require_once('../../config.php'); require_once('entity/block_competency_iena_student.php'); require_once('../../user/lib.php'); +require_once('lib.php'); global $COURSE, $DB, $USER, $CFG; @@ -38,37 +39,8 @@ if(isset($_GET["action"]) && $_GET['action']=="get_links"){ else{ $studentid=$USER->id; } - - $cm_ids = \core_competency\api::list_course_modules_using_competency($competencyid, $courseid); - $data=array(); - if ( count($cm_ids) !== 0 ) { - $modules=array(); - $modinfo = get_fast_modinfo($courseid); - foreach ($cm_ids as $cm_id) { - $module=new StdClass(); - //if the activity is an assignment or a quiz we'll try to redirect to the student submissions specifically - $is_assign = strpos($modinfo->cms[$cm_id]->url->out(), '/mod/assign') !== false; - $is_quiz= strpos($modinfo->cms[$cm_id]->url->out(), '/mod/quiz') !== false; - $module->url = $modinfo->cms[$cm_id]->url->out(); - $user=$DB->get_record("user", array("id"=>$studentid)); - - //for the moment we don't manage accents in names - if (has_capability('mod/assign:grade', $context = context_course::instance($courseid), $USER->id) && $is_assign) { - $module->url = $module->url . "&action=grading&tifirst=" . $user->firstname[0] . "&tilast=". $user->lastname[0]; - } - else if (has_capability('mod/quiz:grade', $context = context_course::instance($courseid), $USER->id) && $is_quiz) { - $module->url = $module->url . "&mode=responses&tifirst=" . $user->firstname[0] . "&tilast=". $user->lastname[0]; - } - $module->link_icon=$CFG->wwwroot."/theme/image.php/boost/".$modinfo->cms[$cm_id]->modname."/1/icon"; - $module->name=$modinfo->cms[$cm_id]->name; - array_push($modules, $module); - } - $data["modules"]=$modules; - $renderer = $PAGE->get_renderer('block_competency_iena'); - echo $renderer->get_linked_activities($data); - return; - } - echo "false"; + + echo(fetch_linked_activities($competencyid, $courseid, $studentid)); return; } //Si on a fait une évaluation diff --git a/competency_iena_competency_students_2.php b/competency_iena_competency_students_2.php index 3536d7f1bbdcf596b5facde3ac596cc67c82d1fb..79504a3acbe68c458ddd974e4c932d5d6811b2ea 100644 --- a/competency_iena_competency_students_2.php +++ b/competency_iena_competency_students_2.php @@ -8,6 +8,7 @@ require_once('../../config.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('lib.php'); global $COURSE, $DB, $CFG; @@ -39,6 +40,20 @@ $thingnode->make_active(); /* Liste des compétences du cours */ $course_cpts = \core_competency\course_competency::list_competencies($COURSE->id); +if(isset($_GET["action"]) && $_GET['action']=="get_links"){ + $competencyid=$_GET["competencyid"]; + $courseid=$_GET["courseid"]; + if(isset($_GET["studentid"])){ + $studentid=$_GET["studentid"]; + } + else{ + $studentid=$USER->id; + } + + echo(fetch_linked_activities($competencyid, $courseid, $studentid)); + return; +} + if(isset($_POST) && !empty($_POST)){ $studentid = required_param('studentid', PARAM_INT); @@ -258,6 +273,7 @@ if (count($course_cpts) > 0) { $course_cpts_all = $DB->get_records_sql($sql, $params); $cpt_studs = array(); + foreach ($students as $student) { $cpt_stud = new stdClass(); @@ -271,6 +287,7 @@ if (count($course_cpts) > 0) { if ( $course_cpt->userid == $student->id ) { $cpt_stud->proficiency = $course_cpt->proficiency; $cpt_stud->grade = $course_cpt->grade; + //Sortir la scale de la boucle; Ce serait bien qu'on garde juste l $cpt_stud->scale=array(); //pour chaque valeur de l'échelle, on ajoute dans un tableau pour l'étudiant avec selected @@ -290,6 +307,13 @@ if (count($course_cpts) > 0) { } break; } + else{ + $cpt_stud->scale=array(); + for($i=0; $i<count($current_cpt->scale); $i++){ + $cpt_stud->scale[$i]=array('title'=>$current_cpt->scale[$i], 'value'=>$i+1); + + } + } } @@ -351,7 +375,7 @@ if (count($course_cpts) > 0) { } $data["cpt_studs"]=array_values($cpt_studs); - //var_dump($cpt_studs); + } else{ @@ -384,7 +408,6 @@ if (count($course_cpts) > 0) { $data['link_dashboard']=$CFG->wwwroot."/blocks/competency_iena/competency_iena_students_2.php"; $data['message']=$message; - $renderer = $PAGE->get_renderer('block_competency_iena'); diff --git a/js/dropdown.js b/js/dropdown.js index b08bbdb78856041c7e7c84526f4056019a9a0414..7ae9693e2ce0a34f968fa4528ca12d0c2f4bd6b9 100644 --- a/js/dropdown.js +++ b/js/dropdown.js @@ -178,8 +178,15 @@ }); - function loadLinkedActivities(courseid, competencyid){ - user=document.getElementById('studentid_sel').value; + function loadLinkedActivities(courseid, id, source){ + if(source=="competencies"){ + competencyid=document.getElementById('competencyid_sel').value; + user=id; + } + else if(source=="students"){ + user=document.getElementById('studentid_sel').value; + competencyid=id; + } $.ajax({ url: window.location.href, type: 'GET', @@ -188,8 +195,8 @@ if(html=='false'){ html="<p><i>Il n'y a aucune activité liée</i></p>" } - $("#modal-assess-"+competencyid+" #linked-activities").html(html); - + $("#modal-assess-"+id+" #linked-activities").html(html); + } }); } diff --git a/lib.php b/lib.php index fe13a6e345434de8c11529da3988c5af3e4fdafd..ae641d03523c7bbdc85686ad304ba981cf0a2297 100644 --- a/lib.php +++ b/lib.php @@ -29,4 +29,40 @@ function duplicate_matrix_competencies($moduleid){ $DB->insert_record('block_competency_iena', array('cmid' => $activity->cmid, 'sectionid'=>$activity->section)); } +} + +function fetch_linked_activities($competencyid, $courseid, $studentid){ + global $PAGE; + global $DB; + global $USER; + global $CFG; + $cm_ids = \core_competency\api::list_course_modules_using_competency($competencyid, $courseid); + $data=array(); + if ( count($cm_ids) !== 0 ) { + $modules=array(); + $modinfo = get_fast_modinfo($courseid); + foreach ($cm_ids as $cm_id) { + $module=new StdClass(); + //if the activity is an assignment or a quiz we'll try to redirect to the student submissions specifically + $is_assign = strpos($modinfo->cms[$cm_id]->url->out(), '/mod/assign') !== false; + $is_quiz= strpos($modinfo->cms[$cm_id]->url->out(), '/mod/quiz') !== false; + $module->url = $modinfo->cms[$cm_id]->url->out(); + $user=$DB->get_record("user", array("id"=>$studentid)); + + //for the moment we don't manage accents in names + if (has_capability('mod/assign:grade', $context = context_course::instance($courseid), $USER->id) && $is_assign) { + $module->url = $module->url . "&action=grading&tifirst=" . $user->firstname[0] . "&tilast=". $user->lastname[0]; + } + else if (has_capability('mod/quiz:grade', $context = context_course::instance($courseid), $USER->id) && $is_quiz) { + $module->url = $module->url . "&mode=responses&tifirst=" . $user->firstname[0] . "&tilast=". $user->lastname[0]; + } + $module->link_icon=$CFG->wwwroot."/theme/image.php/boost/".$modinfo->cms[$cm_id]->modname."/1/icon"; + $module->name=$modinfo->cms[$cm_id]->name; + array_push($modules, $module); + } + $data["modules"]=$modules; + $renderer = $PAGE->get_renderer('block_competency_iena'); + return $renderer->get_linked_activities($data); + } + return "false"; } \ No newline at end of file diff --git a/templates/dashboard_competencies.mustache b/templates/dashboard_competencies.mustache index 9b6a5b6996a73bb9f47e938da249909980e0bb96..f1da780a988874f87db4b02eb8b78b407782f074 100644 --- a/templates/dashboard_competencies.mustache +++ b/templates/dashboard_competencies.mustache @@ -16,7 +16,7 @@ {{/review}} <span hidden id='competencyid'>{{current_cpt.id}}</span> <div id='student_dropdown' class='iena-dropdown' style='z-index: 1;'> - <input type='text' hidden name='competencyid' id='competencyid_sel' class='iena-drop-input-value' value=''> + <input type='text' hidden name='competencyid' id='competencyid_sel' class='iena-drop-input-value' value={{current_cpt.id}}> <input type='text' value='' class='form-control iena-drop-input' style='width: 300px;' placeholder='{{current_cpt.shortname}}' autocomplete='nope'><button class='btn btn-secondary' id='prevCpt' style='margin-left: 0.5rem;'>Précédent</button><button class='btn btn-secondary' id='nextCpt' style='margin-left: 0.5rem;'>Suivant</button> <div class='iena-droplist' id='competency_list'> {{#course_cpts}} @@ -81,7 +81,7 @@ <div><small class='review-badge'>Évaluation demandée</small></div> {{/review_asked}} <div class="user-competency-actions"> - <a href="#" data-toggle='modal' data-target='#modal-assess-{{id}}' class="action-icon" title="Evaluer" aria-label="Evaluation" onclick="loadLinkedActivities({{courseid}},{{id}})"><i class="icon fa fa-file-text-o fa-fw " aria-hidden="true"></i></a> + <a href="#" data-toggle='modal' data-target='#modal-assess-{{id}}' class="action-icon" title="Evaluer" aria-label="Evaluation" onclick="loadLinkedActivities({{courseid}},{{id}}, 'competencies')"><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> diff --git a/templates/dashboard_students.mustache b/templates/dashboard_students.mustache index 62775d45b45f4ff100a4aa4690495fd15f626bc4..d365519d8361e562332fe27442625ff9ec7a870f 100644 --- a/templates/dashboard_students.mustache +++ b/templates/dashboard_students.mustache @@ -11,7 +11,7 @@ <input type='text' hidden name='courseid' value='{{courseid}}'> <span hidden id='studentid'>{{student.studentid}}</span> <div id='student_dropdown' class='iena-dropdown' style='z-index: 10;'> - <input type='text' hidden name='studentid' id='studentid_sel' class='iena-drop-input-value' value=''> + <input type='text' hidden name='studentid' id='studentid_sel' class='iena-drop-input-value' value={{student.studentid}}> <input type='text' value='' class='form-control iena-drop-input' style=' width: 300px;' placeholder='{{student.firstname}} {{student.lastname}}'><button class='btn btn-secondary' id='prevStud' style=' margin-left: 0.5rem;'>Précédent</button><button class='btn btn-secondary' id='nextStud' style=' margin-left: 0.5rem;'>Suivant</button> <div class='iena-droplist' id='student_list'> {{#students}} @@ -52,7 +52,7 @@ <div><small class='review-badge'>Évaluation demandée</small></div> {{/review_asked}} <div class="user-competency-actions"> - {{#is_not_student}}<a href="#" data-toggle='modal' data-target='#modal-assess-{{id}}' class="action-icon" title="Evaluer" aria-label="Evaluation" onclick="loadLinkedActivities({{courseid}},{{id}})"><i class="icon fa fa-file-text-o fa-fw " aria-hidden="true"></i></a> + {{#is_not_student}}<a href="#" data-toggle='modal' data-target='#modal-assess-{{id}}' class="action-icon" title="Evaluer" aria-label="Evaluation" onclick="loadLinkedActivities({{courseid}},{{id}}, 'students')"><i class="icon fa fa-file-text-o fa-fw " aria-hidden="true"></i></a> {{/is_not_student}} <a href="{{link}}" 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> diff --git a/templates/linked_activities.mustache b/templates/linked_activities.mustache index c6b1d2d4ebf02605271423047d6d7f29a3514ce8..8389a460ae6ea6e548c5b54bdd0eb9683ec8a8cf 100644 --- a/templates/linked_activities.mustache +++ b/templates/linked_activities.mustache @@ -2,5 +2,8 @@ {{#modules}} <a href='{{url}}' target='_blank' class='list-group-item list-group-item-action'><img src='{{link_icon}}' style='height: 1.3rem;'><span class='align-middle'> {{name}}</span></a> {{/modules}} + {{^modules}} + Pas d'activité + {{/modules}} </div>