From b6908e603544b32d47a01cb22db65534e1d4fc92 Mon Sep 17 00:00:00 2001 From: Myriam Delaruelle <Myriam Delaruelle@bdn-un-mdelarue.ad.univ-lorraine.fr> Date: Wed, 13 Jan 2021 14:33:38 +0100 Subject: [PATCH] fix section_format_options --- format.php | 3 +- lang/en/format_iena.php | 2 + lang/fr/format_iena.php | 2 + lib.php | 95 +++++++++++++++++++++++++++++------------ renderer.php | 2 +- styles.css | 6 +++ 6 files changed, 80 insertions(+), 30 deletions(-) diff --git a/format.php b/format.php index 4c2c016..3d38a9e 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 2bcfda3..f453114 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 4b7020f..2e01807 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 6087317..cbef072 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 937325a..138bcf6 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 d333cdc..75ea60f 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 -- GitLab