submission completed_at

This commit is contained in:
Pete Matsyburka
2026-07-01 18:10:08 +03:00
parent 6314987e69
commit 1902cdaa55
9 changed files with 56 additions and 21 deletions
-9
View File
@@ -116,15 +116,6 @@ module Mcp
Submissions.send_signature_requests(submissions)
submissions.each do |submission|
submission.submitters.each do |submitter|
next unless submitter.completed_at?
ProcessSubmitterCompletionJob.perform_async('submitter_id' => submitter.id,
'send_invitation_email' => false)
end
end
SearchEntries.enqueue_reindex(submissions)
submission = submissions.first
+16
View File
@@ -5,6 +5,22 @@ module Submissions
module_function
def maybe_update_completed_at(submission)
incomplete_submitter = Submitter.where(submission_id: submission.id, completed_at: nil).select(1)
max_completed_at =
Arel::Nodes::Grouping.new(
Submitter.arel_table.project(Submitter.arel_table[:completed_at].maximum)
.where(Submitter.arel_table[:submission_id].eq(Submission.arel_table[:id]))
.ast
)
Submission.where(id: submission.id, completed_at: nil)
.where.not(incomplete_submitter.arel.exists)
.update_all(completed_at: max_completed_at)
.positive?
end
def search(current_user, submissions, keyword, search_values: false, search_template: false)
if Docuseal.fulltext_search?
fulltext_search(current_user, submissions, keyword, search_template:)
+5 -1
View File
@@ -32,7 +32,11 @@ module Submitters
submitter.submission.save!
ProcessSubmitterCompletionJob.perform_async('submitter_id' => submitter.id) if submitter.completed_at?
if submitter.completed_at?
is_last = Submissions.maybe_update_completed_at(submitter.submission)
ProcessSubmitterCompletionJob.perform_async('submitter_id' => submitter.id, 'is_last' => is_last)
end
submitter
end