add self source

pull/718/head
Pete Matsyburka 4 weeks ago
parent 6f1cc34433
commit 73c4f158ff

@ -7,14 +7,14 @@ class StartFormSelfController < ApplicationController
before_action :authorize_start! before_action :authorize_start!
def update def update
@submitter = Submitters::StartForm.build_submitters_scope(@template, exclude_completed: true) @submitter = Submitters::StartForm.build_submitters_scope(@template, exclude_completed: true, source: :self)
.find_or_initialize_by(email: current_user.email) .find_or_initialize_by(email: current_user.email)
if (is_new_record = @submitter.new_record?) if (is_new_record = @submitter.new_record?)
@submitter.name = current_user.full_name @submitter.name = current_user.full_name
Submitters::StartForm.assign_submission_attributes( Submitters::StartForm.assign_submission_attributes(
@submitter, @template, ip: request.remote_ip, user_agent: request.user_agent @submitter, @template, ip: request.remote_ip, user_agent: request.user_agent, source: :self
) )
Submissions::AssignDefinedSubmitters.call(@submitter.submission) Submissions::AssignDefinedSubmitters.call(@submitter.submission)

@ -112,7 +112,8 @@ class Submission < ApplicationRecord
api: 'api', api: 'api',
embed: 'embed', embed: 'embed',
mcp: 'mcp', mcp: 'mcp',
link: 'link' link: 'link',
self: 'self'
}, scope: false, prefix: true }, scope: false, prefix: true
enum :submitters_order, { enum :submitters_order, {

@ -57,9 +57,12 @@ module Submitters
submitter submitter
end end
def build_submitters_scope(template, exclude_completed: false) def build_submitters_scope(template, exclude_completed: false, source: nil)
submissions = template.submissions.non_expired.active
submissions = submissions.where(source:) if source
Submitter Submitter
.where(submission: template.submissions.non_expired.active) .where(submission: submissions)
.where(uuid: template.submitters.pluck('uuid').compact_blank) .where(uuid: template.submitters.pluck('uuid').compact_blank)
.order(id: :desc) .order(id: :desc)
.where(declined_at: nil) .where(declined_at: nil)
@ -67,7 +70,7 @@ module Submitters
.then { |rel| exclude_completed ? rel.where(completed_at: nil) : rel } .then { |rel| exclude_completed ? rel.where(completed_at: nil) : rel }
end end
def assign_submission_attributes(submitter, template, ip:, user_agent:, resubmit_submitter: nil) def assign_submission_attributes(submitter, template, ip:, user_agent:, source: :link, resubmit_submitter: nil)
submitter.assign_attributes( submitter.assign_attributes(
uuid: first_submitter_uuid(template), uuid: first_submitter_uuid(template),
ip:, ip:,
@ -90,7 +93,7 @@ module Submitters
template_submitters: template.submitters, template_submitters: template.submitters,
expire_at: Templates.build_default_expire_at(template), expire_at: Templates.build_default_expire_at(template),
submitters: [submitter], submitters: [submitter],
source: :link) source:)
Submissions::CreateFromSubmitters.maybe_set_dynamic_documents(submitter.submission) Submissions::CreateFromSubmitters.maybe_set_dynamic_documents(submitter.submission)

Loading…
Cancel
Save