From a1a920e536d5ff31ca6a52e4d423a76f2eca566f Mon Sep 17 00:00:00 2001 From: Pete Matsyburka Date: Wed, 20 Mar 2024 23:42:54 +0200 Subject: [PATCH] allow to remove default value --- lib/submissions/create_from_submitters.rb | 21 +++++++++++++++------ lib/submissions/normalize_param_utils.rb | 2 +- 2 files changed, 16 insertions(+), 7 deletions(-) diff --git a/lib/submissions/create_from_submitters.rb b/lib/submissions/create_from_submitters.rb index 71ae56f0..191d9779 100644 --- a/lib/submissions/create_from_submitters.rb +++ b/lib/submissions/create_from_submitters.rb @@ -52,7 +52,8 @@ module Submissions process_fields_param(submitter_attrs[:fields], template_fields, submitter_uuid) end - if template_fields != submission.template.fields || submitters_attrs.any? { |e| e[:completed].present? } + if template_fields != (submission.template_fields || submission.template.fields) || + submitters_attrs.any? { |e| e[:completed].present? } submission.template_fields = template_fields submission.template_schema = submission.template.schema end @@ -80,11 +81,15 @@ module Submissions next if f['type'].in?(%w[signature image initials file]) next if f['submitter_uuid'] != submitter_uuid - value = values[f['uuid']] + next unless values.key?(f['uuid']) - next if value.blank? + value = values[f['uuid']] - f['default_value'] = value + if value.present? + f['default_value'] = value + else + f.delete('default_value') + end end end @@ -110,8 +115,12 @@ module Submissions field['readonly'] = attrs['readonly'] if attrs.key?('readonly') field['required'] = attrs['required'] if attrs.key?('required') - if attrs['default_value'].present? && !field['type'].in?(%w[signature image initials file]) - field['default_value'] = Submitters::NormalizeValues.normalize_value(field, attrs['default_value']) + if attrs.key?('default_value') && !field['type'].in?(%w[signature image initials file]) + if attrs['default_value'].present? + field['default_value'] = Submitters::NormalizeValues.normalize_value(field, attrs['default_value']) + else + field.delete('default_value') + end end return field if attrs['validation_pattern'].blank? diff --git a/lib/submissions/normalize_param_utils.rb b/lib/submissions/normalize_param_utils.rb index 23ce86bd..1c919002 100644 --- a/lib/submissions/normalize_param_utils.rb +++ b/lib/submissions/normalize_param_utils.rb @@ -22,7 +22,7 @@ module Submissions default_values = submitter_params[:values] || {} submitter_params[:fields]&.each do |f| - default_values[f[:name]] = f[:default_value] if f[:default_value].present? + default_values[f[:name]] = f[:default_value] if f.key?(:default_value) end return submitter_params if default_values.blank?