diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2020-08-20 18:42:06 +0000 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2020-08-20 18:42:06 +0000 |
commit | 6e4e1050d9dba2b7b2523fdd1768823ab85feef4 (patch) | |
tree | 78be5963ec075d80116a932011d695dd33910b4e /app/models/packages/package_file.rb | |
parent | 1ce776de4ae122aba3f349c02c17cebeaa8ecf07 (diff) | |
download | gitlab-ce-6e4e1050d9dba2b7b2523fdd1768823ab85feef4.tar.gz |
Add latest changes from gitlab-org/gitlab@13-3-stable-ee
Diffstat (limited to 'app/models/packages/package_file.rb')
-rw-r--r-- | app/models/packages/package_file.rb | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/app/models/packages/package_file.rb b/app/models/packages/package_file.rb index 567b5a14603..4ebd96797db 100644 --- a/app/models/packages/package_file.rb +++ b/app/models/packages/package_file.rb @@ -15,6 +15,8 @@ class Packages::PackageFile < ApplicationRecord validates :file, presence: true validates :file_name, presence: true + validates :file_name, uniqueness: { scope: :package }, if: -> { package&.pypi? } + scope :recent, -> { order(id: :desc) } scope :with_file_name, ->(file_name) { where(file_name: file_name) } scope :with_file_name_like, ->(file_name) { where(arel_table[:file_name].matches(file_name)) } @@ -37,20 +39,27 @@ class Packages::PackageFile < ApplicationRecord update_project_statistics project_statistics_name: :packages_size + before_save :update_size_from_file + def update_file_metadata # The file.object_store is set during `uploader.store!` # which happens after object is inserted/updated self.update_column(:file_store, file.object_store) - self.update_column(:size, file.size) unless file.size == self.size end def download_path - Gitlab::Routing.url_helpers.download_project_package_file_path(project, self) if ::Gitlab.ee? + Gitlab::Routing.url_helpers.download_project_package_file_path(project, self) end def local? file_store == ::Packages::PackageFileUploader::Store::LOCAL end + + private + + def update_size_from_file + self.size ||= file.size + end end -Packages::PackageFile.prepend_if_ee('EE::Packages::PackageFileGeo') +Packages::PackageFile.prepend_if_ee('EE::Packages::PackageFile') |