add self source

This commit is contained in:
Pete Matsyburka committed 2026-08-23 17:19:50 +03:00
1 parent 6f1cc34433
commit 73c4f158ff
3 files changed
+11 -7

No files matched your search

@@ -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)
+2 -1
View File
@@ -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, {
+7 -4
View File
@@ -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)