From b758936fe78c327285137962e430e6eb487b765d Mon Sep 17 00:00:00 2001 From: Gyan Gupta <gyan@cottagelabs.com> Date: Thu, 19 Dec 2024 12:21:20 +0100 Subject: [PATCH] Fix indexing issue for files_size --- hyrax/app/models/collection.rb | 10 ++++++++++ hyrax/app/models/concerns/external_services.rb | 4 ++-- hyrax/app/models/concerns/s3_file_handleable.rb | 2 +- hyrax/app/models/crc_dataset.rb | 1 - hyrax/app/models/dataset.rb | 1 - hyrax/app/views/hyrax/base/_download_all.html.erb | 2 +- 6 files changed, 14 insertions(+), 6 deletions(-) diff --git a/hyrax/app/models/collection.rb b/hyrax/app/models/collection.rb index 83eceab7..18724104 100644 --- a/hyrax/app/models/collection.rb +++ b/hyrax/app/models/collection.rb @@ -13,6 +13,16 @@ class Collection < ActiveFedora::Base include Hyrax::BasicMetadata + def after_update_nested_collection_relationship_indices + @during_save = false + reindex_nested_relationships_for(id: id, extent: Hyrax::Adapters::NestingIndexAdapter::LIMITED_REINDEX) + end + + def update_nested_collection_relationship_indices + return if @during_save + reindex_nested_relationships_for(id: id, extent: Hyrax::Adapters::NestingIndexAdapter::LIMITED_REINDEX) + end + def manager_role Role.find_by_name("#{collection_type.title.parameterize(separator: '_')}_manager") end diff --git a/hyrax/app/models/concerns/external_services.rb b/hyrax/app/models/concerns/external_services.rb index c2360137..c3c46b74 100644 --- a/hyrax/app/models/concerns/external_services.rb +++ b/hyrax/app/models/concerns/external_services.rb @@ -58,8 +58,8 @@ module ExternalServices if s3.bucket_exists?(bucket_name) list_of_objects, total_size, list_of_format = s3.list_all_objects(bucket_name, nil, true) - return true if (self.format == list_of_format && self.files_size == [total_size]) - self.files_size = [total_size] + return true if (self.format == list_of_format && self.files_size.first.to_i == total_size) + self.files_size = [total_size.to_s] self.format = list_of_format self.date_modified = DateTime.now end diff --git a/hyrax/app/models/concerns/s3_file_handleable.rb b/hyrax/app/models/concerns/s3_file_handleable.rb index 0cc54d75..9b211023 100644 --- a/hyrax/app/models/concerns/s3_file_handleable.rb +++ b/hyrax/app/models/concerns/s3_file_handleable.rb @@ -58,7 +58,7 @@ module S3FileHandleable s3service.init_client bucket_name = s3service.sanitise_name(crc_dataset.id) list_of_objects, total_size, list_of_format = s3service.list_all_objects(bucket_name, nil, true) - crc_dataset.update(date_modified: DateTime.now, files_size: [total_size], format:list_of_format) + crc_dataset.update(date_modified: DateTime.now, files_size: [total_size.to_s], format:list_of_format) end diff --git a/hyrax/app/models/crc_dataset.rb b/hyrax/app/models/crc_dataset.rb index 5e9c5f4f..1402166c 100755 --- a/hyrax/app/models/crc_dataset.rb +++ b/hyrax/app/models/crc_dataset.rb @@ -100,7 +100,6 @@ class CrcDataset < ActiveFedora::Base end property :files_size, predicate: ::RDF::Vocab::Rdms.size do |index| - index.type :integer index.as :stored_searchable end diff --git a/hyrax/app/models/dataset.rb b/hyrax/app/models/dataset.rb index 793d4f40..ea13b84c 100755 --- a/hyrax/app/models/dataset.rb +++ b/hyrax/app/models/dataset.rb @@ -101,7 +101,6 @@ class Dataset < ActiveFedora::Base end property :files_size, predicate: ::RDF::Vocab::Rdms.size do |index| - index.type :integer index.as :stored_searchable end diff --git a/hyrax/app/views/hyrax/base/_download_all.html.erb b/hyrax/app/views/hyrax/base/_download_all.html.erb index eb4d312e..a9ddda30 100644 --- a/hyrax/app/views/hyrax/base/_download_all.html.erb +++ b/hyrax/app/views/hyrax/base/_download_all.html.erb @@ -1,5 +1,5 @@ <div class="download-all"> - <% total_size = (@crc_dataset || @dataset).files_size.first || 0 %> + <% total_size = (@crc_dataset || @dataset).files_size.first.presence.to_i %> <% message = total_size < ENV.fetch('DOWNLOAD_FILES_SIZE_LIMIT', '100000000').to_i ? '.zip_file_message' : '.shell_file_message' %> <%= link_to t(:'hyrax.download_all'), main_app.download_all_path(presenter.id), disabled: download_all_button_available?(presenter.id) ? false : true, id: "download-all", class: "btn btn-default matomo_download", data:{ document_id: presenter.id } %> <span class="fa fa-info-circle download-info" data-toggle="tooltip" title="<%= t("#{message}", size: total_size.to_s(:human_size))%>" aria-hidden="true"></span> -- GitLab