view only party
This commit is contained in:
@@ -90,6 +90,8 @@ module Submissions
|
||||
|
||||
maybe_add_invite_submitters(submission, template, attrs[:submitters])
|
||||
|
||||
assign_submitters_is_viewer(submission)
|
||||
|
||||
submission.template = nil unless with_template
|
||||
|
||||
submission.tap(&:save!)
|
||||
@@ -100,6 +102,34 @@ module Submissions
|
||||
submissions
|
||||
end
|
||||
|
||||
def assign_submitters_is_viewer(submission)
|
||||
template_fields = submission.template_fields || submission.template.fields
|
||||
field_submitter_uuids = Set.new(template_fields.pluck('submitter_uuid'))
|
||||
|
||||
viewer_template_submitters =
|
||||
submission.template_submitters.select { |s| field_submitter_uuids.exclude?(s['uuid']) }
|
||||
|
||||
return submission if viewer_template_submitters.blank?
|
||||
|
||||
viewer_template_submitters.each { |s| s['is_viewer'] = true }
|
||||
|
||||
return submission if submission.template_submitters.any? { |s| s['order'] }
|
||||
|
||||
first_submitter = submission.submitters.find(&:sent_at)
|
||||
|
||||
return submission unless first_submitter
|
||||
|
||||
submitters_index = submission.submitters.reject(&:completed_at?).index_by(&:uuid)
|
||||
|
||||
Submissions.find_first_viewers(first_submitter, submitters_index).each do |viewer|
|
||||
next if viewer.preferences['send_email'] == false || viewer.email.blank?
|
||||
|
||||
viewer.sent_at ||= first_submitter.sent_at
|
||||
end
|
||||
|
||||
submission
|
||||
end
|
||||
|
||||
def maybe_set_dynamic_documents(submission)
|
||||
return submission unless submission.template_id?
|
||||
|
||||
|
||||
Reference in New Issue
Block a user