Skip to content

Commit

Permalink
GH-779 Fix application of json values from template
Browse files Browse the repository at this point in the history
 1. Coding style fixes.
 2. Remove only fields that really have to be removed.
 3. Preparation of editor field takes place only if we have all required
    data.
  • Loading branch information
davidszkiba committed Dec 23, 2024
1 parent e90b995 commit 8397d32
Showing 1 changed file with 18 additions and 26 deletions.
44 changes: 18 additions & 26 deletions classes/testenvironment.php
Original file line number Diff line number Diff line change
Expand Up @@ -271,18 +271,9 @@ public function apply_jsonsaved_values(array &$formdefaultvalues) {
];
}

$updatescales = $formdefaultvalues['catquiz_catscales'] ?? null != $jsonobject['catquiz_catscales'];
if ($updatescales) {
if (($formdefaultvalues['triggered_button'] ?? null) === "reloadTestForm") {
$clearfields = [
'catquiz_subscalecheckbox_',
'feedback_scaleid_limit_',
'feedbackeditor_scaleid_',
'enrolment_message_checkbox_',
'catquiz_courses_',
'catquiz_group_',
'feedbacklegend_scaleid_',
'wb_colourpicker_',
'catquiz_scalereportcheckbox_',
];
foreach ($formdefaultvalues as $key => $val) {
foreach ($clearfields as $field) {
Expand All @@ -296,7 +287,8 @@ public function apply_jsonsaved_values(array &$formdefaultvalues) {
foreach ($jsonobject as $key => $value) {

// Never overwrite a few values.
if (in_array($key, [
if (
in_array($key, [
'id',
'instance',
'name',
Expand All @@ -322,8 +314,8 @@ public function apply_jsonsaved_values(array &$formdefaultvalues) {
'conditionfieldgroup',
'downloadcontent',
'timemodified',

])) {
])
) {
continue;
}
if (preg_match('/^feedbackeditor_scaleid_(\d+)_(\d+)$/', $key, $matches)) {
Expand All @@ -340,7 +332,7 @@ public function apply_jsonsaved_values(array &$formdefaultvalues) {
$scaleid = intval($matches[1]);
$rangeid = intval($matches[2]);
$filearea = sprintf('feedback_files_%d_%d', $scaleid, $rangeid);
$jsonobject[$key.'format'] = 1;
$jsonobject[$key . 'format'] = 1;
$field = sprintf('feedbackeditor_scaleid_%d_%d', $scaleid, $rangeid);
if ($options) {
$data = (object) file_prepare_standard_editor(
Expand All @@ -352,19 +344,19 @@ public function apply_jsonsaved_values(array &$formdefaultvalues) {
$filearea,
intval($this->componentid)
);
$formdefaultvalues[$key] = $data->$key;
$formdefaultvalues[$key . '_editor'] = $data->{$key . '_editor'};
$formdefaultvalues[$key . 'format'] = $data->{$key . 'format'};
$draftitemid = file_get_submitted_draft_itemid($field);
file_prepare_draft_area(
$draftitemid,
$context->id,
'local_catquiz',
$filearea,
intval($this->componentid)
);
continue;
}
$formdefaultvalues[$key] = $data->$key;
$formdefaultvalues[$key.'_editor'] = $data->{$key.'_editor'};
$formdefaultvalues[$key.'format'] = $data->{$key.'format'};
$draftitemid = file_get_submitted_draft_itemid($field);
file_prepare_draft_area(
$draftitemid,
$context->id,
'local_catquiz',
$filearea,
intval($this->componentid)
);
continue;
}

$formdefaultvalues[$key] = $value;
Expand Down

0 comments on commit 8397d32

Please sign in to comment.