diff --git a/classes/local/mod/assign.php b/classes/local/mod/assign.php index 1d56f54..1b47196 100644 --- a/classes/local/mod/assign.php +++ b/classes/local/mod/assign.php @@ -204,6 +204,14 @@ public function coursemodule_definition_after_data(moodleform_mod $modform, Mood } else { $form->setDefault(self::NEW_DUEDATE_FORM_FIELD, 0); } + } else { + // Otherwise if value is overridden (other is selected), then apply default overridden value. + $element = $form->getElement(self::NEW_DUEDATE_FORM_FIELD); + $submittedvalue = $form->getElementValue(self::NEW_DUEDATE_FORM_FIELD); + $exportedvalue = $element->exportValue($submittedvalue); + if (empty($exportedvalue['overridden'])) { + $form->setDefault(self::NEW_DUEDATE_FORM_FIELD, $form->getElementValue('duedate')); + } } // This is a very hacky way of making sure that duedate field is set to a new value based on data in the different field. @@ -731,7 +739,7 @@ private function build_field_prefix(string $cmid): string { * @return string */ private function build_new_element_name($cmid): string { - return self::NEW_DUEDATE_FORM_FIELD . '_' . $cmid . '_' . 'assign';; + return self::NEW_DUEDATE_FORM_FIELD . '_' . $cmid . '_' . 'assign'; } /**