diff --git a/format.php b/format.php index 4c2c016bcbc6bb64357bcc98745ea42e609d9007..3d38a9e4172481abbd0282068a81ecf43931ef25 100644 --- a/format.php +++ b/format.php @@ -63,10 +63,9 @@ course_create_sections_if_missing($course, 0); $renderer = $PAGE->get_renderer('format_iena'); if (!empty($displaysection)) { - echo "on passe là"; + $renderer->print_single_section_page($course, null, null, null, null, $displaysection); } else { - echo "on passe plutôt là, section vide"; $renderer->switch_mode($course); diff --git a/lang/en/format_iena.php b/lang/en/format_iena.php index 2bcfda3064113feeea69a466394689ca965c0af8..f4531142c4d89243145d6a29e235ce513e6c12fb 100644 --- a/lang/en/format_iena.php +++ b/lang/en/format_iena.php @@ -81,4 +81,6 @@ By definition an unnamed section is displayed as <strong>section [N]</strong>.'; $string['hide_section'] = 'HIDE section '; $string['show_section'] = 'SHOW section '; $string['aboutcourse'] = 'About this course'; + + $string['modalite_help'] = 'Pour avoir de l\'aide sur les modalités'; diff --git a/lang/fr/format_iena.php b/lang/fr/format_iena.php index 4b7020fcac44edd2dfb787f0aff8ff9495b239ab..2e0180734538c0be130e82a51e6adda3457642ff 100644 --- a/lang/fr/format_iena.php +++ b/lang/fr/format_iena.php @@ -81,4 +81,6 @@ By definition an unnamed section is displayed as <strong>section [N]</strong>.'; $string['hide_section'] = 'CACHER la section '; $string['show_section'] = 'MONTRER la section '; $string['aboutcourse'] = 'À propos de ce cours'; + $string['modalite'] = 'Modalité ?'; + $string['modalite_help'] = 'Pour avoir de l\'aide sur les modalités'; diff --git a/lib.php b/lib.php index 6087317ba7c3b05f235b6bc0460869646d02b8a8..cbef07238d6417dccd80c7940f90de357b41b95c 100644 --- a/lib.php +++ b/lib.php @@ -122,6 +122,10 @@ 'daterendu'=>array( 'label'=>"Date rendu", 'type'=>PARAM_INT + ), + 'daysnotif'=>array( + 'label'=>"Notification", + 'type'=>PARAM_INT ) ); @@ -176,34 +180,71 @@ if ($forsection) { $mform->removeElement('presence', false); $mform->removeElement('daterendu', false); + $mform->removeElement('daysnotif', false); $sectionclass = new stdClass(); $sectionclass->id=optional_param('id', 0, PARAM_INT); $section_config=$this->get_format_options($sectionclass); - + + $mform->addElement('header', 'nameforyourheaderelement', 'Format hybride'); $radioarray=array(); $radioarray[] = $mform->createElement('radio', 'presence', '', 'Distance', 2); $radioarray[] = $mform->createElement('radio', 'presence', '', 'Présentiel', 1); $radioarray[] = $mform->createElement('radio', 'presence', '', 'Aucune', 0); - $mform->addGroup($radioarray, 'Modalité', 'Modalité', array(' '), false); + $mform->addGroup($radioarray, 'modalite', 'Modalité', array(' '), false); + + $mform->addHelpButton('modalite', 'modalite', 'format_iena'); $datearray=array(); $datearray[] = $mform->createElement('date_time_selector', 'daterendu', ''); $datearray[] = $mform->createElement('checkbox', 'daterenducheck', 'Activer'); - $mform->addGroup($datearray, 'groupdate', 'Date d\'échéance ou date du cours', array(' '), false); - //$mform->disabledIf('daterendu', 'daterenducheck'); + $mform->addGroup($datearray, 'groupdate', 'Date d\'échéance', array(' '), false); $mform->disabledIf('groupdate', 'daterenducheck'); + + //On montre le groupe seulement si à distance + $mform->hideIf('groupdate', 'presence', 'neq', 2); + //$mform->hideIf('groupdate', 'id_presence_2', 'notchecked'); + $datearray=array(); + $datearray[] = $mform->createElement('date_time_selector', 'daterendu2', ''); + $datearray[] = $mform->createElement('checkbox', 'daterenducheck2', 'Activer'); + $mform->addGroup($datearray, 'groupdate2', 'Date du cours', array(' '), false); + $mform->disabledIf('groupdate2', 'daterenducheck2'); + //On montre le groupe si pas distance + $mform->hideIf('groupdate2', 'presence', 'eq', 2); + + $daysarray=array(); + $days=array(0=>0, 1=>1, 2=>2, 3=>3, 4=>4, 5=>5); + $daysarray[] = $mform->createElement('select', 'daysnotif', "jours avant la séance", $days); + $daysarray[]=$mform->createElement('html', ' <span id="days-text">jours avant la séance</span>'); + $daysarray[] = $mform->createElement('checkbox', 'selectdayscheck', 'Activer'); + $mform->addGroup($daysarray, 'groupdays', 'Notification', array(' '), false); + $mform->disabledIf('groupdays', 'selectdayscheck'); + - if($section_config && $section_config['presence']){ + if($section_config['presence']){ $mform->setDefault('presence', $section_config['presence']); } - if($section_config && $section_config['daterendu']){ - $mform->setDefault('daterendu', $section_config['daterendu']); - $mform->setDefault('daterenducheck', "1"); + if($section_config['daterendu']){ + if(isset($section_config['presence']) && $section_config['presence']==2){ + $mform->setDefault('daterendu', $section_config['daterendu']); + $mform->setDefault('daterenducheck', "1"); + } + else if(isset($section_config['presence'])){ + $mform->setDefault('daterendu2', $section_config['daterendu']); + $mform->setDefault('daterenducheck2', "1"); + } + } + var_dump($section_config); + if(isset($section_config['daysnotif']) && $section_config['daysnotif'] > -1){ + $mform->setDefault('selectdays', $section_config['daysnotif']); + $mform->setDefault('selectdayscheck', "1"); + } + + //$mform->addElement('html', ' </div></fieldset>'); //$mform->setType('numsections', PARAM_INT); @@ -211,18 +252,6 @@ //array_unshift($elements, $element); } - // Re-order things. - /*if ($forsection) { - $mform->insertElementBefore($mform->removeElement('automaticenddate', false), 'idnumber'); - $mform->disabledIf('enddate', 'automaticenddate', 'checked'); - foreach ($elements as $key => $element) { - if ($element->getName() == 'automaticenddate') { - unset($elements[$key]); - } - } - $elements = array_values($elements); - }*/ - return $elements; } @@ -242,19 +271,31 @@ public function update_section_format_options($data) { global $DB; - $data = (array)$data; - $section_config=$this->get_format_options($data['id']); + $objectSection=new stdClass(); + $objectSection->id=$data["id"]; + $section_config=$this->get_format_options($objectSection); + + //$data = (array)$data; //if a date was set but we want to remove it - if(!isset($data['daterenducheck'])){ - if(array_key_exists('daterendu', $data)){ - $data['daterendu']='NULL'; + if(!isset($data['daterenducheck']) && !isset($data['daterenducheck2'])){ + if(array_key_exists('daterendu', $section_config) && !empty($section_config['daterendu'])){ + $data['daterendu']=NULL; } else{ unset($data['daterendu']); } } - unset($data['daterenducheck']); - + else if(isset($data['daterenducheck2'])){ + $data['daterendu']=$data['daterendu2']; + } + if(!isset($data['selectdayscheck'])){ + if(array_key_exists('daysnotif', $section_config) && $section_config['daysnotif']>-1){ + $data['daysnotif']=-1; + } + else{ + unset($data['daysnotif']); + } + } return $this->update_format_options($data, $data['id']); } diff --git a/renderer.php b/renderer.php index 937325a9fe1944c8f4a7936231bd49051ede3ca5..138bcf6922179cd4c01d79720280546312f2b2f3 100644 --- a/renderer.php +++ b/renderer.php @@ -187,7 +187,7 @@ class format_iena_renderer extends format_topics_renderer{ } } - if (isset($param_section->daterendu)) { + if (isset($param_section->daterendu) && $param_section->daterendu != 0) { //$section->dateUp = date_create($param_section->date_rendu); $section->dateUp = new DateTime("@$param_section->daterendu"); diff --git a/styles.css b/styles.css index d333cdcd3eac249a6b0599fa174f3e1b36e2bc80..75ea60f8ac90d52725321476aa7a93c7fd37eaf0 100644 --- a/styles.css +++ b/styles.css @@ -499,4 +499,10 @@ ul.nav.navbar-nav.ml-auto { #title-summary-iena #summary-collapse.collapsing { height: 4rem; +} + + + +#days-text{ + margin:0 20px 0 5px; } \ No newline at end of file