From 0a3604630ebd9a58c89452e4a41c5062cef228dc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karel=20Pi=C4=8Dman?= Date: Thu, 5 Jan 2023 09:51:06 +0100 Subject: [PATCH] #1414 Allow empty version --- app/helpers/dmsf_upload_helper.rb | 2 +- app/models/dmsf_file_revision.rb | 18 ++++++----- .../20230105082201_null_minor_version.rb | 31 +++++++++++++++++++ test/unit/dmsf_file_revision_test.rb | 6 ---- 4 files changed, 42 insertions(+), 15 deletions(-) create mode 100644 db/migrate/20230105082201_null_minor_version.rb diff --git a/app/helpers/dmsf_upload_helper.rb b/app/helpers/dmsf_upload_helper.rb index a32a3963..26602a4d 100644 --- a/app/helpers/dmsf_upload_helper.rb +++ b/app/helpers/dmsf_upload_helper.rb @@ -58,7 +58,7 @@ module DmsfUploadHelper new_revision.description = commited_file[:description] new_revision.comment = commited_file[:comment] new_revision.major_version = commited_file[:version_major].present? ? DmsfUploadHelper::db_version(commited_file[:version_major]) : 1 - new_revision.minor_version = commited_file[:version_minor].present? ? DmsfUploadHelper::db_version(commited_file[:version_minor]) : 0 + new_revision.minor_version = commited_file[:version_minor].present? ? DmsfUploadHelper::db_version(commited_file[:version_minor]) : nil new_revision.patch_version = commited_file[:version_patch].present? ? DmsfUploadHelper::db_version(commited_file[:version_patch]) : nil new_revision.mime_type = commited_file[:mime_type] new_revision.size = commited_file[:size] diff --git a/app/models/dmsf_file_revision.rb b/app/models/dmsf_file_revision.rb index 94b6e2d9..5a6913d7 100644 --- a/app/models/dmsf_file_revision.rb +++ b/app/models/dmsf_file_revision.rb @@ -58,7 +58,8 @@ class DmsfFileRevision < ActiveRecord::Base scope :deleted, -> { where(deleted: STATUS_DELETED) } acts_as_customizable - acts_as_event title: Proc.new { |o| (o.source_dmsf_file_revision_id.present? ? "#{l(:label_dmsf_updated)}" : "#{l(:label_created)}") + + acts_as_event title: Proc.new { |o| + (o.source_dmsf_file_revision_id.present? ? "#{l(:label_dmsf_updated)}" : "#{l(:label_created)}") + ": #{o.dmsf_file.dmsf_path_str}"}, url: Proc.new { |o| { controller: 'dmsf_files', action: 'show', id: o.dmsf_file } }, datetime: Proc.new { |o| o.updated_at }, @@ -74,7 +75,6 @@ class DmsfFileRevision < ActiveRecord::Base validates :title, presence: true validates :major_version, presence: true - validates :minor_version, presence: true validates :dmsf_file, presence: true validates :name, dmsf_file_name: true validates :description, length: { maximum: 1.kilobyte } @@ -155,13 +155,15 @@ class DmsfFileRevision < ActiveRecord::Base end def self.version(major_version, minor_version, patch_version) - if major_version && minor_version + if major_version ver = DmsfUploadHelper::gui_version(major_version).to_s - if -minor_version != ' '.ord - ver << ".#{DmsfUploadHelper::gui_version(minor_version)}" - end - if patch_version.present? && (-patch_version != ' '.ord) - ver << ".#{DmsfUploadHelper::gui_version(patch_version)}" + if minor_version + if -minor_version != ' '.ord + ver << ".#{DmsfUploadHelper::gui_version(minor_version)}" + end + if patch_version.present? && (-patch_version != ' '.ord) + ver << ".#{DmsfUploadHelper::gui_version(patch_version)}" + end end ver end diff --git a/db/migrate/20230105082201_null_minor_version.rb b/db/migrate/20230105082201_null_minor_version.rb new file mode 100644 index 00000000..f4d27a73 --- /dev/null +++ b/db/migrate/20230105082201_null_minor_version.rb @@ -0,0 +1,31 @@ +# encoding: utf-8 +# +# Redmine plugin for Document Management System "Features" +# +# Copyright © 2011-23 Karel Pičman +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + +class NullMinorVersion < ActiveRecord::Migration[4.2] + + def up + change_column :dmsf_file_revisions, :minor_version, :integer, null: true + end + + def down + change_column :dmsf_file_revisions, :minor_version, :integer, null: false + end + +end \ No newline at end of file diff --git a/test/unit/dmsf_file_revision_test.rb b/test/unit/dmsf_file_revision_test.rb index 2279bb53..1cf742f2 100644 --- a/test/unit/dmsf_file_revision_test.rb +++ b/test/unit/dmsf_file_revision_test.rb @@ -229,12 +229,6 @@ class DmsfFileRevisionTest < RedmineDmsf::Test::UnitTest assert @revision1.errors.full_messages.to_sentence.include?(l(:error_file_is_locked)) end - def test_minor_version_cannot_be_nil - @revision1.minor_version = nil - assert !@revision1.save - assert @revision1.errors.full_messages.to_sentence.include?('Minor version cannot be blank') - end - def test_major_version_cannot_be_nil @revision1.major_version = nil assert !@revision1.save