X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/2666c3b726d190511f072db9e6606a1a99936968..2a17d214467d5302e97008618ef5f560ff1fd45b:/services/api/app/models/collection.rb diff --git a/services/api/app/models/collection.rb b/services/api/app/models/collection.rb index 33cc686d4f..2cebd5438e 100644 --- a/services/api/app/models/collection.rb +++ b/services/api/app/models/collection.rb @@ -30,6 +30,7 @@ class Collection < ArvadosModel validate :versioning_metadata_updates, on: :update validate :past_versions_cannot_be_updated, on: :update before_save :set_file_names + before_save :set_file_count_and_total_size around_update :manage_versioning api_accessible :user, extend: :common do |t| @@ -51,6 +52,8 @@ class Collection < ArvadosModel t.add :version t.add :current_version_uuid t.add :preserve_version + t.add :file_count + t.add :file_size_total end after_initialize do @@ -195,6 +198,15 @@ class Collection < ArvadosModel true end + def set_file_count_and_total_size + if self.manifest_text_changed? + m = Keep::Manifest.new(self.manifest_text) + self.file_size_total = m.files_size + self.file_count = m.files_count + end + true + end + def manifest_files return '' if !self.manifest_text @@ -262,6 +274,7 @@ class Collection < ArvadosModel sync_past_versions if syncable_updates.any? if snapshot snapshot.attributes = self.syncable_updates + snapshot.manifest_text = snapshot.signed_manifest_text snapshot.save end end