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!
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)
if (is_new_record = @submitter.new_record?)
@submitter.name = current_user.full_name
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)

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

@ -57,9 +57,12 @@ module Submitters
submitter
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
.where(submission: template.submissions.non_expired.active)
.where(submission: submissions)
.where(uuid: template.submitters.pluck('uuid').compact_blank)
.order(id: :desc)
.where(declined_at: nil)
@ -67,7 +70,7 @@ module Submitters
.then { |rel| exclude_completed ? rel.where(completed_at: nil) : rel }
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(
uuid: first_submitter_uuid(template),
ip:,
@ -90,7 +93,7 @@ module Submitters
template_submitters: template.submitters,
expire_at: Templates.build_default_expire_at(template),
submitters: [submitter],
source: :link)
source:)
Submissions::CreateFromSubmitters.maybe_set_dynamic_documents(submitter.submission)

Loading…
Cancel
Save