diff --git a/entity/course_format_iena_completion.php b/entity/course_format_iena_completion.php index b3880a37bb7b2f4ce84eb3d27b26682f31892fda..25f59446aa7fe6ab433a71b07508bfbb6abfbdb5 100644 --- a/entity/course_format_iena_completion.php +++ b/entity/course_format_iena_completion.php @@ -29,8 +29,8 @@ class course_format_iena_completion { /** * Get completion by sections - * @param type $section_names - * @param type $idSection + * @param array $section_names + * @param array $idSection * @return type */ public static function get_completion_by_section($section_names, $idSection) { @@ -49,6 +49,7 @@ class course_format_iena_completion { $modinfos_cms = $fast_modinfo->get_cms(); $modules = []; + //Il récupère les modules qui ne sont pas en cours de suppression, qui ont l'achèvement d'activité, et qui sont visibles pour l'user foreach ($modinfos_cms as $cm) { $module = $completion->get_data($cm, true, $USER->id, $fast_modinfo); $module->url = "$CFG->wwwroot/mod/$cm->modname/view.php?id=$cm->id"; diff --git a/entity/course_format_iena_section_ressources.php b/entity/course_format_iena_section_ressources.php index 0bb06ec59622b1216abd70d72eb03d8448282862..30e4fcd0cd550d354f832434428342ebeb0556fa 100644 --- a/entity/course_format_iena_section_ressources.php +++ b/entity/course_format_iena_section_ressources.php @@ -124,21 +124,6 @@ AND visibleoncoursepage = 1 AND completion != 0', array($id_section)); } - - // if ($course->restrictedbreadcrum == 1) { - // // ne requête que les sections qui possèdent des activités suivies dans le suivi de progression pour la barre de progression - // $requete = $DB->get_records_sql('SELECT cm.id FROM {course_modules} as cm - // INNER JOIN {format_iena_settings} as iena on cm.id = iena.cmid - // WHERE cm.section = ? - // AND cm.visible = 1 - // AND iena.hide = 1 - // AND cm.deletioninprogress = 0 - // AND cm.completion != 0', array($id_section)); - // } else { - // $requete = $DB->get_records_sql('SELECT id FROM {course_modules} WHERE section = ? AND deletioninprogress = 0 - // AND visible = 1 - // AND completion != 0', array($id_section)); - // } $ressources = array(); $i = 0; diff --git a/renderer.php b/renderer.php index bc665d1da2d0964b907cbfa54a5249e3e856ed9b..6e3b78cf4393fb3079cdb46241e29d303f2a69f3 100644 --- a/renderer.php +++ b/renderer.php @@ -131,16 +131,16 @@ class format_iena_renderer extends format_topics_renderer{ /** * Add style attributes, classes (useless?), format section summary and add the hidden/restricted message - * @param type $section - * @param type $course - * @param type $onsectionpage + * @param StdClass $section + * @param StdClass $course + * @param bool $onsectionpage * @param type|null $sectionreturn * @param type|bool $iena * @param type $groups * @return type */ - protected function get_section_header($section, $course, $onsectionpage, $sectionreturn = null, $iena = false, $groups=false){ - + protected function get_section_header($section, $course, $onsectionpage, $mods, $sectionreturn = null, $iena = false, $groups=false){ + global $PAGE, $CFG, $COURSE, $USER; $section_entity = new course_format_iena_sections(); $o = ''; @@ -218,13 +218,20 @@ class format_iena_renderer extends format_topics_renderer{ } else { $section->date = ""; } - + //Bouton de suivi dans chaque section : si pas d'activités suivies on n'affiche pas le bouton if (has_capability('course/iena:suivi', $context = context_course::instance($COURSE->id), $USER->id)) { $ressources_entity = new course_format_iena_section_ressources(); - $modules = $ressources_entity->get_ressources_completion_on_by_id_section($section->id); - $nb_modules = count($modules); - if($nb_modules>0){ + //$modules = $ressources_entity->get_ressources_completion_on_by_id_section($section->id); + $display_button=false; + foreach ($mods->get_cms() as $cm) { + if($cm->completion>0 && $cm->section==$section->id){ + $display_button=true; + break; + } + } + //$nb_modules = count($modules); + if($display_button){ //si trop d'étudiants on va afficher le premier groupe dans le suivi if($this->count_students($context)>299 && count($groups)>0){ $section->link_suivi = $CFG->wwwroot . "/course/format/iena/suivi_unit.php?courseid=" . $COURSE->id . "§ionid=" . $section->id . "&groupid=".reset($groups)->id; @@ -238,8 +245,7 @@ class format_iena_renderer extends format_topics_renderer{ } - - + return $section; } @@ -746,7 +752,7 @@ class format_iena_renderer extends format_topics_renderer{ continue; } if (!$thissection->available && !empty($thissection->availableinfo)) { - $thissection= $this->get_section_header($thissection, $course, false, 0, $groups); + $thissection= $this->get_section_header($thissection, $course, false,$modinfo, 0, $groups); continue; } @@ -756,7 +762,7 @@ class format_iena_renderer extends format_topics_renderer{ continue; } } - $thissection=$this->get_section_header($thissection, $course, false, 0, true, $groups); + $thissection=$this->get_section_header($thissection, $course, false, $modinfo,0, true, $groups); if ($thissection->uservisible) { $thissection->resources= $this->courserenderer->course_section_cm_list($course, $thissection, 0); @@ -778,6 +784,7 @@ class format_iena_renderer extends format_topics_renderer{ if($editing){ $sections['link_add_sections']=new moodle_url('/course/changenumsections.php', ['courseid' => $course->id, 'insertsection' => 0, 'increase' => false, 'sesskey' => sesskey(), 'sectionreturn' => 0]); } + echo $this->get_view_iena_new($course, $nameSections, $idSections); echo $this->render_from_template('format_iena/sections', $sections);