mirror of
https://github.com/scinote-eln/scinote-web.git
synced 2024-12-26 09:42:46 +08:00
Fix protocol repository save/load timestamps [SCI-5067]
This commit is contained in:
parent
3a4a166856
commit
7cd12bfb07
4 changed files with 20 additions and 14 deletions
|
@ -31,7 +31,9 @@ module ActiveStorage
|
||||||
|
|
||||||
unless processing
|
unless processing
|
||||||
ActiveStorage::PreviewJob.perform_later(@blob.id)
|
ActiveStorage::PreviewJob.perform_later(@blob.id)
|
||||||
@blob.attachments.take.record.update(file_processing: true)
|
ActiveRecord::Base.no_touching do
|
||||||
|
@blob.attachments.take.record.update(file_processing: true)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
false
|
false
|
||||||
|
|
|
@ -6,7 +6,9 @@ class ActiveStorage::PreviewJob < ActiveStorage::BaseJob
|
||||||
|
|
||||||
discard_on StandardError do |job, error|
|
discard_on StandardError do |job, error|
|
||||||
blob = ActiveStorage::Blob.find_by(id: job.arguments.first)
|
blob = ActiveStorage::Blob.find_by(id: job.arguments.first)
|
||||||
blob&.attachments&.take&.record&.update(file_processing: false)
|
ActiveRecord::Base.no_touching do
|
||||||
|
blob&.attachments&.take&.record&.update(file_processing: false)
|
||||||
|
end
|
||||||
Rails.logger.error "Couldn't generate preview for Blob with id: #{job.arguments.first}. Error:\n #{error}"
|
Rails.logger.error "Couldn't generate preview for Blob with id: #{job.arguments.first}. Error:\n #{error}"
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -24,6 +26,8 @@ class ActiveStorage::PreviewJob < ActiveStorage::BaseJob
|
||||||
Rails.logger.info "Preview for the Blod with id: #{blob.id} - successfully generated.\n" \
|
Rails.logger.info "Preview for the Blod with id: #{blob.id} - successfully generated.\n" \
|
||||||
"Transformations applied: #{preview.variation.transformations}"
|
"Transformations applied: #{preview.variation.transformations}"
|
||||||
|
|
||||||
blob.attachments.take.record.update(file_processing: false)
|
ActiveRecord::Base.no_touching do
|
||||||
|
blob.attachments.take.record.update(file_processing: false)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -32,17 +32,15 @@ class Asset < ApplicationRecord
|
||||||
optional: true
|
optional: true
|
||||||
belongs_to :team, optional: true
|
belongs_to :team, optional: true
|
||||||
has_one :step_asset, inverse_of: :asset, dependent: :destroy
|
has_one :step_asset, inverse_of: :asset, dependent: :destroy
|
||||||
has_one :step, through: :step_asset, dependent: :nullify
|
has_one :step, through: :step_asset, touch: true, dependent: :nullify
|
||||||
has_one :result_asset, inverse_of: :asset, dependent: :destroy
|
has_one :result_asset, inverse_of: :asset, dependent: :destroy
|
||||||
has_one :result, through: :result_asset, dependent: :nullify
|
has_one :result, through: :result_asset, touch: true, dependent: :nullify
|
||||||
has_one :repository_asset_value, inverse_of: :asset, dependent: :destroy
|
has_one :repository_asset_value, inverse_of: :asset, dependent: :destroy
|
||||||
has_one :repository_cell, through: :repository_asset_value,
|
has_one :repository_cell, through: :repository_asset_value,
|
||||||
dependent: :nullify
|
dependent: :nullify
|
||||||
has_many :report_elements, inverse_of: :asset, dependent: :destroy
|
has_many :report_elements, inverse_of: :asset, dependent: :destroy
|
||||||
has_one :asset_text_datum, inverse_of: :asset, dependent: :destroy
|
has_one :asset_text_datum, inverse_of: :asset, dependent: :destroy
|
||||||
|
|
||||||
after_save { result&.touch; step&.touch }
|
|
||||||
|
|
||||||
attr_accessor :file_content, :file_info, :in_template
|
attr_accessor :file_content, :file_info, :in_template
|
||||||
|
|
||||||
def self.search(
|
def self.search(
|
||||||
|
|
|
@ -229,14 +229,16 @@ class Protocol < ApplicationRecord
|
||||||
|
|
||||||
# Deep-clone given array of assets
|
# Deep-clone given array of assets
|
||||||
def self.deep_clone_assets(assets_to_clone)
|
def self.deep_clone_assets(assets_to_clone)
|
||||||
assets_to_clone.each do |src_id, dest_id|
|
ActiveRecord::Base.no_touching do
|
||||||
src = Asset.find_by(id: src_id)
|
assets_to_clone.each do |src_id, dest_id|
|
||||||
dest = Asset.find_by(id: dest_id)
|
src = Asset.find_by(id: src_id)
|
||||||
dest.destroy! if src.blank? && dest.present?
|
dest = Asset.find_by(id: dest_id)
|
||||||
next unless src.present? && dest.present?
|
dest.destroy! if src.blank? && dest.present?
|
||||||
|
next unless src.present? && dest.present?
|
||||||
|
|
||||||
# Clone file
|
# Clone file
|
||||||
src.duplicate_file(dest)
|
src.duplicate_file(dest)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue