send view only
This commit is contained in:
+17
-8
@@ -157,24 +157,21 @@ module Submissions
|
|||||||
submissions.each_with_index do |submission, index|
|
submissions.each_with_index do |submission, index|
|
||||||
delay_seconds = (delay + index).seconds if delay
|
delay_seconds = (delay + index).seconds if delay
|
||||||
|
|
||||||
template_submitters = submission.template_submitters
|
|
||||||
submitters_index = submission.submitters.reject(&:completed_at?).index_by(&:uuid)
|
submitters_index = submission.submitters.reject(&:completed_at?).index_by(&:uuid)
|
||||||
|
|
||||||
if template_submitters.any? { |s| s['order'] }
|
if submission.template_submitters.any? { |s| s['order'] }
|
||||||
min_order = template_submitters.map.with_index { |s, i| s['order'] || i }.min
|
first_submitters = find_first_order_submitters(submission, submitters_index)
|
||||||
|
|
||||||
first_submitters = template_submitters.filter_map do |s|
|
|
||||||
submitters_index[s['uuid']] if s['order'] == min_order
|
|
||||||
end
|
|
||||||
|
|
||||||
Submitters.send_signature_requests(first_submitters, delay_seconds:)
|
Submitters.send_signature_requests(first_submitters, delay_seconds:)
|
||||||
elsif submission.submitters_order_preserved?
|
elsif submission.submitters_order_preserved?
|
||||||
first_submitter = template_submitters.filter_map { |s| submitters_index[s['uuid']] }.find { |s| !s.viewer? }
|
first_submitter = find_first_submitter(submission, submitters_index)
|
||||||
|
|
||||||
if first_submitter
|
if first_submitter
|
||||||
first_viewers = find_first_viewers(first_submitter, submitters_index)
|
first_viewers = find_first_viewers(first_submitter, submitters_index)
|
||||||
|
|
||||||
Submitters.send_signature_requests([first_submitter, *first_viewers], delay_seconds:)
|
Submitters.send_signature_requests([first_submitter, *first_viewers], delay_seconds:)
|
||||||
|
elsif submission.submitters.all?(&:viewer?)
|
||||||
|
Submitters.send_signature_requests(submitters_index.values, delay_seconds:)
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
Submitters.send_signature_requests(submitters_index.values, delay_seconds:)
|
Submitters.send_signature_requests(submitters_index.values, delay_seconds:)
|
||||||
@@ -182,6 +179,18 @@ module Submissions
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def find_first_order_submitters(submission, submitters_index)
|
||||||
|
template_submitters = submission.template_submitters
|
||||||
|
|
||||||
|
min_order = template_submitters.map.with_index { |s, i| s['order'] || i }.min
|
||||||
|
|
||||||
|
template_submitters.filter_map { |s| submitters_index[s['uuid']] if s['order'] == min_order }
|
||||||
|
end
|
||||||
|
|
||||||
|
def find_first_submitter(submission, submitters_index)
|
||||||
|
submission.template_submitters.filter_map { |s| submitters_index[s['uuid']] }.find { |s| !s.viewer? }
|
||||||
|
end
|
||||||
|
|
||||||
def find_first_viewers(first_submitter, submitters_index)
|
def find_first_viewers(first_submitter, submitters_index)
|
||||||
first_submitter.submission.template_submitters.each_with_object([]) do |s, viewers|
|
first_submitter.submission.template_submitters.each_with_object([]) do |s, viewers|
|
||||||
submitter = submitters_index[s['uuid']]
|
submitter = submitters_index[s['uuid']]
|
||||||
|
|||||||
Reference in New Issue
Block a user