diff --git a/app/controllers/start_form_controller.rb b/app/controllers/start_form_controller.rb index 008f4934..a1f3e91d 100644 --- a/app/controllers/start_form_controller.rb +++ b/app/controllers/start_form_controller.rb @@ -11,7 +11,8 @@ class StartFormController < ApplicationController def show @submitter = @template.submissions.new(account_id: @template.account_id) - .submitters.new(uuid: filter_undefined_submitters(@template).first['uuid']) + .submitters.new(uuid: (filter_undefined_submitters(@template).first || + @template.submitters.first)['uuid']) end def update @@ -68,7 +69,7 @@ class StartFormController < ApplicationController (Submitter.where(submission: template.submissions).find_by(slug: params[:resubmit]) if params[:resubmit].present?) submitter.assign_attributes( - uuid: filter_undefined_submitters(template).first['uuid'], + uuid: (filter_undefined_submitters(template).first || @template.submitters.first)['uuid'], ip: request.remote_ip, ua: request.user_agent, values: resubmit_submitter&.preferences&.fetch('default_values', nil) || {}, diff --git a/lib/submissions/assign_defined_submitters.rb b/lib/submissions/assign_defined_submitters.rb index 96bb3fb9..3862332c 100644 --- a/lib/submissions/assign_defined_submitters.rb +++ b/lib/submissions/assign_defined_submitters.rb @@ -24,6 +24,7 @@ module Submissions def assign_defined_submitters(submission) submission.template.submitters.to_a.select do |item| next if item['email'].blank? && item['is_requester'].blank? + next if submission.submitters.any? { |e| e.uuid == item['uuid'] } submission.submitters.new( account_id: submission.account_id, @@ -36,6 +37,7 @@ module Submissions def assign_linked_submitters(submission) submission.template.submitters.to_a.select do |item| next if item['linked_to_uuid'].blank? + next if submission.submitters.any? { |e| e.uuid == item['uuid'] } email = submission.submitters.find { |s| s.uuid == item['linked_to_uuid'] }&.email