diff options
author | Marius Balteanu <marius.balteanu@zitec.com> | 2024-01-23 11:52:38 +0000 |
---|---|---|
committer | Marius Balteanu <marius.balteanu@zitec.com> | 2024-01-23 11:52:38 +0000 |
commit | 13aeb797cfaa5a70bd8903d8350ea8ce3e0bb151 (patch) | |
tree | 51ae69c0c3837e531b8cef6fac455e06eea04d88 /app/models | |
parent | 28061fbcdb2cabbef698db2ca3a80cc428388456 (diff) | |
download | redmine-13aeb797cfaa5a70bd8903d8350ea8ce3e0bb151.tar.gz redmine-13aeb797cfaa5a70bd8903d8350ea8ce3e0bb151.zip |
Use ApplicationRecord instead of ActiveRecord::Base (#38975).
Patch by Minoru Maeda (@maeda-m).
git-svn-id: https://svn.redmine.org/redmine/trunk@22619 e93f8b46-1217-0410-a6f0-8f06a7374b81
Diffstat (limited to 'app/models')
44 files changed, 75 insertions, 43 deletions
diff --git a/app/models/application_record.rb b/app/models/application_record.rb new file mode 100644 index 000000000..3c89dc683 --- /dev/null +++ b/app/models/application_record.rb @@ -0,0 +1,32 @@ +# frozen_string_literal: true +# Redmine - project management software +# Copyright (C) 2006-2023 Jean-Philippe Lang +# +# 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 ApplicationRecord < ActiveRecord::Base + self.abstract_class = true + + # Translate attribute names for validation errors display + def self.human_attribute_name(attr, options = {}) + prepared_attr = attr.to_s.sub(/_id$/, '').sub(/^.+\./, '') + class_prefix = name.underscore.tr('/', '_') + redmine_default = [ + :"field_#{class_prefix}_#{prepared_attr}", + :"field_#{prepared_attr}" + ] + options[:default] = redmine_default + Array(options[:default]) + super + end +end diff --git a/app/models/attachment.rb b/app/models/attachment.rb index 97dea32bd..b168f0729 100644 --- a/app/models/attachment.rb +++ b/app/models/attachment.rb @@ -21,7 +21,7 @@ require "digest" require "fileutils" require "zip" -class Attachment < ActiveRecord::Base +class Attachment < ApplicationRecord include Redmine::SafeAttributes belongs_to :container, :polymorphic => true belongs_to :author, :class_name => "User" diff --git a/app/models/auth_source.rb b/app/models/auth_source.rb index c871e30c6..9f444bb5a 100644 --- a/app/models/auth_source.rb +++ b/app/models/auth_source.rb @@ -22,7 +22,7 @@ class AuthSourceException < StandardError; end class AuthSourceTimeoutException < AuthSourceException; end -class AuthSource < ActiveRecord::Base +class AuthSource < ApplicationRecord include Redmine::SafeAttributes include Redmine::SubclassFactory include Redmine::Ciphering diff --git a/app/models/board.rb b/app/models/board.rb index 8cf16f559..e9cbf60eb 100644 --- a/app/models/board.rb +++ b/app/models/board.rb @@ -17,7 +17,7 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -class Board < ActiveRecord::Base +class Board < ApplicationRecord include Redmine::SafeAttributes belongs_to :project has_many :messages, lambda {order("#{Message.table_name}.created_on DESC")}, :dependent => :destroy diff --git a/app/models/change.rb b/app/models/change.rb index f2eff4ea1..62d41e261 100644 --- a/app/models/change.rb +++ b/app/models/change.rb @@ -17,7 +17,7 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -class Change < ActiveRecord::Base +class Change < ApplicationRecord belongs_to :changeset validates_presence_of :changeset_id, :action, :path diff --git a/app/models/changeset.rb b/app/models/changeset.rb index 535335ef8..833d09d45 100644 --- a/app/models/changeset.rb +++ b/app/models/changeset.rb @@ -17,7 +17,7 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -class Changeset < ActiveRecord::Base +class Changeset < ApplicationRecord belongs_to :repository belongs_to :user has_many :filechanges, :class_name => 'Change', :dependent => :delete_all diff --git a/app/models/comment.rb b/app/models/comment.rb index 525a3a4ab..71856035d 100644 --- a/app/models/comment.rb +++ b/app/models/comment.rb @@ -17,7 +17,7 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -class Comment < ActiveRecord::Base +class Comment < ApplicationRecord include Redmine::SafeAttributes belongs_to :commented, :polymorphic => true, :counter_cache => true belongs_to :author, :class_name => 'User' diff --git a/app/models/custom_field.rb b/app/models/custom_field.rb index be9cf550f..fa9d5ab73 100644 --- a/app/models/custom_field.rb +++ b/app/models/custom_field.rb @@ -17,7 +17,7 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -class CustomField < ActiveRecord::Base +class CustomField < ApplicationRecord include Redmine::SafeAttributes include Redmine::SubclassFactory diff --git a/app/models/custom_field_enumeration.rb b/app/models/custom_field_enumeration.rb index 547d6a359..81c5fbe79 100644 --- a/app/models/custom_field_enumeration.rb +++ b/app/models/custom_field_enumeration.rb @@ -17,7 +17,7 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -class CustomFieldEnumeration < ActiveRecord::Base +class CustomFieldEnumeration < ApplicationRecord belongs_to :custom_field validates_presence_of :name, :position, :custom_field_id diff --git a/app/models/custom_value.rb b/app/models/custom_value.rb index 9cfac3079..b90a05549 100644 --- a/app/models/custom_value.rb +++ b/app/models/custom_value.rb @@ -17,7 +17,7 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -class CustomValue < ActiveRecord::Base +class CustomValue < ApplicationRecord belongs_to :custom_field belongs_to :customized, :polymorphic => true diff --git a/app/models/document.rb b/app/models/document.rb index 51cc8d837..c2fc75c66 100644 --- a/app/models/document.rb +++ b/app/models/document.rb @@ -17,7 +17,7 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -class Document < ActiveRecord::Base +class Document < ApplicationRecord include Redmine::SafeAttributes belongs_to :project belongs_to :category, :class_name => "DocumentCategory" diff --git a/app/models/email_address.rb b/app/models/email_address.rb index cc9064e04..a62ac9cf9 100644 --- a/app/models/email_address.rb +++ b/app/models/email_address.rb @@ -17,7 +17,7 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -class EmailAddress < ActiveRecord::Base +class EmailAddress < ApplicationRecord include Redmine::SafeAttributes belongs_to :user diff --git a/app/models/enabled_module.rb b/app/models/enabled_module.rb index 1b97903fb..17ca8a9f4 100644 --- a/app/models/enabled_module.rb +++ b/app/models/enabled_module.rb @@ -17,7 +17,7 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -class EnabledModule < ActiveRecord::Base +class EnabledModule < ApplicationRecord belongs_to :project acts_as_watchable diff --git a/app/models/enumeration.rb b/app/models/enumeration.rb index f2f63372a..b61711644 100644 --- a/app/models/enumeration.rb +++ b/app/models/enumeration.rb @@ -17,7 +17,7 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -class Enumeration < ActiveRecord::Base +class Enumeration < ApplicationRecord include Redmine::SubclassFactory default_scope lambda {order(:position)} diff --git a/app/models/import.rb b/app/models/import.rb index 8fcb769d3..91cc8cb0f 100644 --- a/app/models/import.rb +++ b/app/models/import.rb @@ -19,7 +19,7 @@ require 'csv' -class Import < ActiveRecord::Base +class Import < ApplicationRecord has_many :items, :class_name => 'ImportItem', :dependent => :delete_all belongs_to :user serialize :settings diff --git a/app/models/import_item.rb b/app/models/import_item.rb index 5f0432e9b..2885cacd0 100644 --- a/app/models/import_item.rb +++ b/app/models/import_item.rb @@ -17,7 +17,7 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -class ImportItem < ActiveRecord::Base +class ImportItem < ApplicationRecord belongs_to :import validates_presence_of :import_id, :position diff --git a/app/models/issue.rb b/app/models/issue.rb index 17802d227..670921eb0 100644 --- a/app/models/issue.rb +++ b/app/models/issue.rb @@ -17,7 +17,7 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -class Issue < ActiveRecord::Base +class Issue < ApplicationRecord include Redmine::SafeAttributes include Redmine::Utils::DateCalculation include Redmine::I18n diff --git a/app/models/issue_category.rb b/app/models/issue_category.rb index eadb44891..d30af1705 100644 --- a/app/models/issue_category.rb +++ b/app/models/issue_category.rb @@ -17,7 +17,7 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -class IssueCategory < ActiveRecord::Base +class IssueCategory < ApplicationRecord include Redmine::SafeAttributes belongs_to :project belongs_to :assigned_to, :class_name => 'Principal' diff --git a/app/models/issue_relation.rb b/app/models/issue_relation.rb index 2caaca9ba..defd254fd 100644 --- a/app/models/issue_relation.rb +++ b/app/models/issue_relation.rb @@ -17,7 +17,7 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -class IssueRelation < ActiveRecord::Base +class IssueRelation < ApplicationRecord # Class used to represent the relations of an issue class Relations < Array include Redmine::I18n diff --git a/app/models/issue_status.rb b/app/models/issue_status.rb index a93bd5ddc..c8c8c14b1 100644 --- a/app/models/issue_status.rb +++ b/app/models/issue_status.rb @@ -17,7 +17,7 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -class IssueStatus < ActiveRecord::Base +class IssueStatus < ApplicationRecord include Redmine::SafeAttributes before_destroy :check_integrity diff --git a/app/models/journal.rb b/app/models/journal.rb index c19a63816..9bf12735e 100644 --- a/app/models/journal.rb +++ b/app/models/journal.rb @@ -17,7 +17,7 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -class Journal < ActiveRecord::Base +class Journal < ApplicationRecord include Redmine::SafeAttributes belongs_to :journalized, :polymorphic => true diff --git a/app/models/journal_detail.rb b/app/models/journal_detail.rb index 08a38e026..5c4fb1dd2 100644 --- a/app/models/journal_detail.rb +++ b/app/models/journal_detail.rb @@ -17,7 +17,7 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -class JournalDetail < ActiveRecord::Base +class JournalDetail < ApplicationRecord belongs_to :journal def custom_field diff --git a/app/models/member.rb b/app/models/member.rb index 9e623d5f3..0ab9f564f 100644 --- a/app/models/member.rb +++ b/app/models/member.rb @@ -17,7 +17,7 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -class Member < ActiveRecord::Base +class Member < ApplicationRecord belongs_to :user belongs_to :principal, :foreign_key => 'user_id' has_many :member_roles, :dependent => :destroy diff --git a/app/models/member_role.rb b/app/models/member_role.rb index a20531f94..cb228d05a 100644 --- a/app/models/member_role.rb +++ b/app/models/member_role.rb @@ -17,7 +17,7 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -class MemberRole < ActiveRecord::Base +class MemberRole < ApplicationRecord belongs_to :member belongs_to :role diff --git a/app/models/message.rb b/app/models/message.rb index 3f7ed285c..28aa6fe88 100644 --- a/app/models/message.rb +++ b/app/models/message.rb @@ -17,7 +17,7 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -class Message < ActiveRecord::Base +class Message < ApplicationRecord include Redmine::SafeAttributes belongs_to :board belongs_to :author, :class_name => 'User' diff --git a/app/models/news.rb b/app/models/news.rb index 8860d6c97..cbd7023ba 100644 --- a/app/models/news.rb +++ b/app/models/news.rb @@ -17,7 +17,7 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -class News < ActiveRecord::Base +class News < ApplicationRecord include Redmine::SafeAttributes belongs_to :project belongs_to :author, :class_name => 'User' diff --git a/app/models/principal.rb b/app/models/principal.rb index 25a79d768..1ef191796 100644 --- a/app/models/principal.rb +++ b/app/models/principal.rb @@ -17,7 +17,7 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -class Principal < ActiveRecord::Base +class Principal < ApplicationRecord self.table_name = "#{table_name_prefix}users#{table_name_suffix}" # Account statuses diff --git a/app/models/project.rb b/app/models/project.rb index 58346d373..d101bedd4 100644 --- a/app/models/project.rb +++ b/app/models/project.rb @@ -17,7 +17,7 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -class Project < ActiveRecord::Base +class Project < ApplicationRecord include Redmine::SafeAttributes include Redmine::NestedSet::ProjectNestedSet diff --git a/app/models/query.rb b/app/models/query.rb index 1826bd509..558cee23e 100644 --- a/app/models/query.rb +++ b/app/models/query.rb @@ -239,7 +239,7 @@ class QueryFilter end end -class Query < ActiveRecord::Base +class Query < ApplicationRecord class StatementInvalid < ::ActiveRecord::StatementInvalid end diff --git a/app/models/repository.rb b/app/models/repository.rb index 80142739d..9fb8206f6 100644 --- a/app/models/repository.rb +++ b/app/models/repository.rb @@ -19,7 +19,7 @@ class ScmFetchError < StandardError; end -class Repository < ActiveRecord::Base +class Repository < ApplicationRecord include Redmine::Ciphering include Redmine::SafeAttributes diff --git a/app/models/role.rb b/app/models/role.rb index 13ebb3324..e67a64554 100644 --- a/app/models/role.rb +++ b/app/models/role.rb @@ -17,7 +17,7 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -class Role < ActiveRecord::Base +class Role < ApplicationRecord include Redmine::SafeAttributes # Custom coder for the permissions attribute that should be an diff --git a/app/models/setting.rb b/app/models/setting.rb index 8ee5b1f50..e649f2dea 100644 --- a/app/models/setting.rb +++ b/app/models/setting.rb @@ -17,7 +17,7 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -class Setting < ActiveRecord::Base +class Setting < ApplicationRecord PASSWORD_CHAR_CLASSES = { 'uppercase' => /[A-Z]/, 'lowercase' => /[a-z]/, diff --git a/app/models/time_entry.rb b/app/models/time_entry.rb index 38504b774..66f5c5031 100644 --- a/app/models/time_entry.rb +++ b/app/models/time_entry.rb @@ -17,7 +17,7 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -class TimeEntry < ActiveRecord::Base +class TimeEntry < ApplicationRecord include Redmine::SafeAttributes # could have used polymorphic association # project association here allows easy loading of time entries at project level with one database trip diff --git a/app/models/token.rb b/app/models/token.rb index 29340edba..efa8764f2 100644 --- a/app/models/token.rb +++ b/app/models/token.rb @@ -17,7 +17,7 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -class Token < ActiveRecord::Base +class Token < ApplicationRecord belongs_to :user validates_uniqueness_of :value, :case_sensitive => true diff --git a/app/models/tracker.rb b/app/models/tracker.rb index ef2f48b04..df3d4814e 100644 --- a/app/models/tracker.rb +++ b/app/models/tracker.rb @@ -17,7 +17,7 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -class Tracker < ActiveRecord::Base +class Tracker < ApplicationRecord include Redmine::SafeAttributes CORE_FIELDS_UNDISABLABLE = %w(project_id tracker_id subject is_private).freeze diff --git a/app/models/user_preference.rb b/app/models/user_preference.rb index 21992f945..17eec682d 100644 --- a/app/models/user_preference.rb +++ b/app/models/user_preference.rb @@ -19,7 +19,7 @@ require 'redmine/my_page' -class UserPreference < ActiveRecord::Base +class UserPreference < ApplicationRecord include Redmine::SafeAttributes belongs_to :user diff --git a/app/models/version.rb b/app/models/version.rb index 77228826c..1968cff42 100644 --- a/app/models/version.rb +++ b/app/models/version.rb @@ -108,7 +108,7 @@ module FixedIssuesExtension end end -class Version < ActiveRecord::Base +class Version < ApplicationRecord include Redmine::SafeAttributes after_update :update_issues_from_sharing_change diff --git a/app/models/watcher.rb b/app/models/watcher.rb index 9f1a09cf0..78a63f81c 100644 --- a/app/models/watcher.rb +++ b/app/models/watcher.rb @@ -17,7 +17,7 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -class Watcher < ActiveRecord::Base +class Watcher < ApplicationRecord belongs_to :watchable, :polymorphic => true belongs_to :user, :class_name => 'Principal' diff --git a/app/models/wiki.rb b/app/models/wiki.rb index 0fddeb3a9..4d1770508 100644 --- a/app/models/wiki.rb +++ b/app/models/wiki.rb @@ -17,7 +17,7 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -class Wiki < ActiveRecord::Base +class Wiki < ApplicationRecord include Redmine::SafeAttributes belongs_to :project has_many :pages, lambda {order(Arel.sql('LOWER(title)').asc)}, :class_name => 'WikiPage', :dependent => :destroy diff --git a/app/models/wiki_content.rb b/app/models/wiki_content.rb index d6a317a32..4ec4bb438 100644 --- a/app/models/wiki_content.rb +++ b/app/models/wiki_content.rb @@ -19,7 +19,7 @@ require 'zlib' -class WikiContent < ActiveRecord::Base +class WikiContent < ApplicationRecord self.locking_column = 'version' belongs_to :page, :class_name => 'WikiPage' belongs_to :author, :class_name => 'User' diff --git a/app/models/wiki_content_version.rb b/app/models/wiki_content_version.rb index 85bd84fe7..bb7570806 100644 --- a/app/models/wiki_content_version.rb +++ b/app/models/wiki_content_version.rb @@ -19,7 +19,7 @@ require 'zlib' -class WikiContentVersion < ActiveRecord::Base +class WikiContentVersion < ApplicationRecord belongs_to :page, :class_name => 'WikiPage' belongs_to :author, :class_name => 'User' diff --git a/app/models/wiki_page.rb b/app/models/wiki_page.rb index ea9d079e8..290ee7798 100644 --- a/app/models/wiki_page.rb +++ b/app/models/wiki_page.rb @@ -19,7 +19,7 @@ require 'redmine/string_array_diff/diff' -class WikiPage < ActiveRecord::Base +class WikiPage < ApplicationRecord include Redmine::SafeAttributes belongs_to :wiki diff --git a/app/models/wiki_redirect.rb b/app/models/wiki_redirect.rb index f338e20b0..564be06f2 100644 --- a/app/models/wiki_redirect.rb +++ b/app/models/wiki_redirect.rb @@ -17,7 +17,7 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -class WikiRedirect < ActiveRecord::Base +class WikiRedirect < ApplicationRecord belongs_to :wiki validates_presence_of :wiki_id, :title, :redirects_to diff --git a/app/models/workflow_rule.rb b/app/models/workflow_rule.rb index ec4e506c8..dd0a824d6 100644 --- a/app/models/workflow_rule.rb +++ b/app/models/workflow_rule.rb @@ -17,7 +17,7 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -class WorkflowRule < ActiveRecord::Base +class WorkflowRule < ApplicationRecord self.table_name = "#{table_name_prefix}workflows#{table_name_suffix}" belongs_to :role |