preserve default values on resubmit

This commit is contained in:
Pete Matsyburka
2023-12-29 18:54:48 +02:00
parent bdf40640d0
commit b94dbc75b7
5 changed files with 38 additions and 5 deletions
+13 -1
View File
@@ -46,13 +46,25 @@ class StartFormController < ApplicationController
private
def assign_submission_attributes(submitter, template)
resubmit_submitter =
if params[:resubmit].present?
Submitter.where(submission: @template.submissions).find_by(slug: params[:resubmit])
end
submitter.assign_attributes(
uuid: template.submitters.first['uuid'],
ip: request.remote_ip,
ua: request.user_agent,
preferences: { 'send_email' => true }
values: resubmit_submitter&.preferences&.fetch('default_values', nil) || {},
preferences: resubmit_submitter&.preferences.presence || { 'send_email' => true }
)
if submitter.values.present?
resubmit_submitter.attachments.each do |attachment|
submitter.attachments << attachment.dup if submitter.values.value?(attachment.uuid)
end
end
submitter.submission ||= Submission.new(template:,
template_submitters: template.submitters,
source: :link)