fix:document edit download

pull/624/head
pramodyallapu 3 months ago
parent a4460cd98e
commit a6bf8a9870

@ -83,6 +83,8 @@ class SubmissionsController < ApplicationController
notice = notice =
if params[:permanently].in?(['true', true]) if params[:permanently].in?(['true', true])
WebhookUrls.enqueue_events(@submission, 'submission.archived')
@submission.destroy! @submission.destroy!
I18n.t('submission_has_been_removed') I18n.t('submission_has_been_removed')

@ -8,6 +8,8 @@ class SubmissionsDownloadController < ApplicationController
FILES_TTL = 5.minutes FILES_TTL = 5.minutes
def index def index
response.headers['Cache-Control'] = 'no-store'
@submitter = Submitter.find_signed(params[:sig], purpose: :download_completed) if params[:sig].present? @submitter = Submitter.find_signed(params[:sig], purpose: :download_completed) if params[:sig].present?
signature_valid = signature_valid =

@ -17,7 +17,7 @@ class SubmitterEditValuesController < ApplicationController
.reject { |f| NON_EDITABLE_TYPES.include?(f['type']) } .reject { |f| NON_EDITABLE_TYPES.include?(f['type']) }
editable_uuids = editable_fields.map { |f| f['uuid'] } editable_uuids = editable_fields.map { |f| f['uuid'] }
submitted_values = params[:values].to_h.slice(*editable_uuids) submitted_values = params[:values].to_unsafe_h.slice(*editable_uuids)
ActiveRecord::Base.transaction do ActiveRecord::Base.transaction do
@submitter.update!(values: @submitter.values.merge(submitted_values)) @submitter.update!(values: @submitter.values.merge(submitted_values))

@ -11,6 +11,15 @@ class SubmittersReopenController < ApplicationController
@submitter.documents.each(&:purge) @submitter.documents.each(&:purge)
# Clear stale LockEvents so EnsureResultGenerated regenerates on next completion
LockEvent.where(key: "result_attachments:#{@submitter.id}").delete_all
LockEvent.where(key: "combined_document:#{@submitter.id}").delete_all
LockEvent.where(key: "audit_trail:#{@submitter.submission_id}").delete_all
# Purge stale combined document and audit trail
@submitter.submission.combined_document.purge if @submitter.submission.combined_document.attached?
@submitter.submission.audit_trail.purge if @submitter.submission.audit_trail.attached?
SubmissionEvent.create!( SubmissionEvent.create!(
submitter: @submitter, submitter: @submitter,
event_type: :admin_reopen_form, event_type: :admin_reopen_form,

@ -19,7 +19,18 @@ module Submissions
total_wait_time ||= 0 total_wait_time ||= 0
key = ['result_attachments', submitter.id].join(':') key = ['result_attachments', submitter.id].join(':')
return submitter.documents if ApplicationRecord.uncached { LockEvent.exists?(key:, event_name: :complete) } if ApplicationRecord.uncached { LockEvent.exists?(key:, event_name: :complete) }
documents = submitter.documents
# Guard against stale lock: documents were purged after the lock was set (e.g. admin reopen).
# Reset the lock so we fall through to regenerate below.
unless documents.any?
LockEvent.where(key:).delete_all
return call(submitter)
end
return documents
end
events = ApplicationRecord.uncached { LockEvent.where(key:).order(:id).to_a } events = ApplicationRecord.uncached { LockEvent.where(key:).order(:id).to_a }

Loading…
Cancel
Save