add audit trail

This commit is contained in:
Alex Turchyn
2023-09-10 19:25:57 +03:00
parent 8cabe31827
commit cf6cacdc92
11 changed files with 296 additions and 15 deletions
@@ -15,9 +15,13 @@ class SubmissionsDebugController < ApplicationController
render 'submit_form/show'
end
f.pdf do
Submissions::GenerateResultAttachments.call(@submitter)
if params[:audit]
Submissions::GenerateAuditTrail.call(@submitter.submission)
else
Submissions::GenerateResultAttachments.call(@submitter)
end
send_data ActiveStorage::Attachment.where(name: :documents).last.download,
send_data ActiveStorage::Attachment.where(name: params[:audit] ? :audit_trail : :documents).last.download,
filename: 'debug.pdf',
disposition: 'inline',
type: 'application/pdf'
@@ -17,6 +17,8 @@ class ProcessSubmitterCompletionJob < ApplicationJob
return unless is_all_completed
return if submitter.completed_at != submitter.submission.submitters.maximum(:completed_at)
Submissions::GenerateAuditTrail.call(submitter.submission)
enqueue_emails(submitter)
end
+16 -10
View File
@@ -33,11 +33,7 @@ class SubmitterMailer < ApplicationMailer
@email_config = @current_account.account_configs.find_by(key: AccountConfig::SUBMITTER_COMPLETED_EMAIL_KEY)
documents = Submitters.select_attachments_for_download(submitter)
documents.each do |attachment|
attachments[attachment.filename.to_s] = attachment.download
end
add_completed_email_attachments!(submitter)
subject =
if @email_config
@@ -60,11 +56,7 @@ class SubmitterMailer < ApplicationMailer
Submissions::EnsureResultGenerated.call(@submitter)
@documents = Submitters.select_attachments_for_download(submitter)
@documents.each do |attachment|
attachments[attachment.filename.to_s] = attachment.download
end
@documents = add_completed_email_attachments!(submitter)
@email_config = @current_account.account_configs.find_by(key: AccountConfig::SUBMITTER_DOCUMENTS_COPY_EMAIL_KEY)
@@ -82,6 +74,20 @@ class SubmitterMailer < ApplicationMailer
private
def add_completed_email_attachments!(submitter)
documents = Submitters.select_attachments_for_download(submitter)
documents.each do |attachment|
attachments[attachment.filename.to_s] = attachment.download
end
if submitter.submission.audit_trail.present?
attachments[submitter.submission.audit_trail.filename.to_s] = submitter.submission.audit_trail.download
end
documents
end
def from_address_for_submitter(submitter)
submitter.submission.created_by_user&.friendly_name || submitter.submission.template.author.friendly_name
end
+2
View File
@@ -41,6 +41,8 @@ class Submission < ApplicationRecord
attribute :source, :string, default: 'link'
attribute :submitters_order, :string, default: 'random'
has_one_attached :audit_trail
has_many :template_schema_documents,
->(e) { where(uuid: (e.template_schema.presence || e.template.schema).pluck('attachment_uuid')) },
through: :template, source: :documents_attachments