diff --git a/app/controllers/submit_form_delegate_controller.rb b/app/controllers/submit_form_delegate_controller.rb index 6448a750..4a702d65 100644 --- a/app/controllers/submit_form_delegate_controller.rb +++ b/app/controllers/submit_form_delegate_controller.rb @@ -32,7 +32,8 @@ class SubmitFormDelegateController < ApplicationController SubmissionEvents.create_with_tracking_data(@submitter, 'delegate_form', request, { old_email: @submitter.email, email: }) - @submitter.update!(email:, phone: nil, name: nil, slug: SecureRandom.base58(14)) + @submitter.update!(email:, phone: nil, name: nil, slug: SecureRandom.base58(14), + values: Submitters.fetch_values_without_signature(@submitter)) end SendSubmitterInvitationEmailJob.perform_async('submitter_id' => @submitter.id) diff --git a/lib/submitters.rb b/lib/submitters.rb index 091623c2..52be8ffc 100644 --- a/lib/submitters.rb +++ b/lib/submitters.rb @@ -165,6 +165,21 @@ module Submitters preferences end + def fetch_values_without_signature(submitter) + fields = submitter.submission.template_fields || submitter.template.fields + default_values = submitter.preferences['default_values'] || {} + + field_uuids = fields.filter_map do |field| + next if field['submitter_uuid'] != submitter.uuid + next unless field['type'].in?(%w[signature initials]) + next if default_values[field['uuid']].present? + + field['uuid'] + end + + submitter.values.except(*field_uuids) + end + def send_signature_requests(submitters, delay_seconds: nil) submitters.each_with_index do |submitter, index| next if submitter.email.blank?