From dd14f4f270e6154d690f31eb4eb2ad79e291f2b9 Mon Sep 17 00:00:00 2001 From: Marina Glancy Date: Tue, 7 May 2019 12:01:26 +0200 Subject: [PATCH] MDL-65523 customfield_checkbox: allow to set as required --- customfield/field/checkbox/classes/data_controller.php | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/customfield/field/checkbox/classes/data_controller.php b/customfield/field/checkbox/classes/data_controller.php index be134697385..881e515ad4c 100644 --- a/customfield/field/checkbox/classes/data_controller.php +++ b/customfield/field/checkbox/classes/data_controller.php @@ -55,10 +55,13 @@ class data_controller extends \core_customfield\data_controller { $field = $this->get_field(); $config = $field->get('configdata'); $elementname = $this->get_form_element_name(); - $mform->addElement('advcheckbox', $elementname, $this->get_field()->get_formatted_name()); + // TODO MDL-65506 element 'advcheckbox' does not support 'required' rule. If checkbox is required (i.e. "agree to terms") + // then use 'checkbox' form element. + $isrequired = $field->get_configdata_property('required'); + $mform->addElement($isrequired ? 'checkbox' : 'advcheckbox', $elementname, $this->get_field()->get_formatted_name()); $mform->setDefault($elementname, $config['checkbydefault']); $mform->setType($elementname, PARAM_BOOL); - if ($field->get_configdata_property('required')) { + if ($isrequired) { $mform->addRule($elementname, null, 'required', null, 'client'); } }