From 26113ac3a66e267ceb3b54b94c3f1060618c6dff Mon Sep 17 00:00:00 2001 From: Pete Matsyburka Date: Tue, 27 Aug 2024 15:31:06 +0300 Subject: [PATCH] allow signing link with multiple signers --- app/controllers/start_form_controller.rb | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/app/controllers/start_form_controller.rb b/app/controllers/start_form_controller.rb index c3a05191..929767f7 100644 --- a/app/controllers/start_form_controller.rb +++ b/app/controllers/start_form_controller.rb @@ -22,7 +22,7 @@ class StartFormController < ApplicationController if @submitter.completed_at? redirect_to start_form_completed_path(@template.slug, email: submitter_params[:email]) else - if @template.submitters.to_a.size > 1 && @submitter.new_record? + if @template.submitters.to_a.size > 2 && @submitter.new_record? @error_message = 'Not found' return render :show @@ -63,9 +63,7 @@ class StartFormController < ApplicationController def assign_submission_attributes(submitter, template) resubmit_submitter = - if params[:resubmit].present? - Submitter.where(submission: @template.submissions).find_by(slug: params[:resubmit]) - end + (Submitter.where(submission: template.submissions).find_by(slug: params[:resubmit]) if params[:resubmit].present?) submitter.assign_attributes( uuid: template.submitters.first['uuid'], @@ -87,11 +85,25 @@ class StartFormController < ApplicationController template_submitters: template.submitters, source: :link) + maybe_assign_default_second_submitter(submitter.submission) + submitter.account_id = submitter.submission.account_id submitter end + def maybe_assign_default_second_submitter(submission) + return unless submission.new_record? + return if submission.template.submitters.to_a.size != 2 + + submission.submitters_order = 'preserved' + submission.submitters.new( + account_id: submission.account_id, + uuid: submission.template.submitters.second['uuid'], + email: submission.template.author.email + ) + end + def submitter_params params.require(:submitter).permit(:email, :phone, :name).tap do |attrs| attrs[:email] = Submissions.normalize_email(attrs[:email])