mirror of
https://github.com/redmine/redmine.git
synced 2026-02-01 12:20:12 +01:00
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
This commit is contained in:
@@ -129,6 +129,10 @@ Rails/ActiveSupportOnLoad:
|
||||
# TODO: Need to check the impact on plugins. Disable for now.
|
||||
- 'lib/redmine/preparation.rb'
|
||||
|
||||
Rails/ApplicationRecord:
|
||||
Exclude:
|
||||
- 'db/migrate/0*.rb'
|
||||
|
||||
Rails/BulkChangeTable:
|
||||
Exclude:
|
||||
- 'db/migrate/20120714122200_add_workflows_rule_fields.rb'
|
||||
|
||||
@@ -497,10 +497,6 @@ Rails/ApplicationMailer:
|
||||
- 'app/models/mail_handler.rb'
|
||||
- 'app/models/mailer.rb'
|
||||
|
||||
# This cop supports unsafe autocorrection (--autocorrect-all).
|
||||
Rails/ApplicationRecord:
|
||||
Enabled: false
|
||||
|
||||
# This cop supports safe autocorrection (--autocorrect).
|
||||
# Configuration parameters: Include.
|
||||
# Include: **/test/**/*
|
||||
|
||||
@@ -209,7 +209,7 @@ class WatchersController < ApplicationController
|
||||
nil
|
||||
end
|
||||
return unless klass && Class === klass # rubocop:disable Style/CaseEquality
|
||||
return unless klass < ActiveRecord::Base
|
||||
return unless klass < ApplicationRecord
|
||||
return unless klass < Redmine::Acts::Watchable::InstanceMethods
|
||||
|
||||
scope = klass.where(:id => Array.wrap(params[:object_id]))
|
||||
|
||||
32
app/models/application_record.rb
Normal file
32
app/models/application_record.rb
Normal file
@@ -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
|
||||
@@ -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"
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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'
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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)}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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'
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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'
|
||||
|
||||
@@ -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'
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -239,7 +239,7 @@ class QueryFilter
|
||||
end
|
||||
end
|
||||
|
||||
class Query < ActiveRecord::Base
|
||||
class Query < ApplicationRecord
|
||||
class StatementInvalid < ::ActiveRecord::StatementInvalid
|
||||
end
|
||||
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
|
||||
class ScmFetchError < StandardError; end
|
||||
|
||||
class Repository < ActiveRecord::Base
|
||||
class Repository < ApplicationRecord
|
||||
include Redmine::Ciphering
|
||||
include Redmine::SafeAttributes
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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]/,
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
|
||||
require 'redmine/my_page'
|
||||
|
||||
class UserPreference < ActiveRecord::Base
|
||||
class UserPreference < ApplicationRecord
|
||||
include Redmine::SafeAttributes
|
||||
|
||||
belongs_to :user
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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'
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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'
|
||||
|
||||
@@ -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'
|
||||
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
|
||||
require 'redmine/string_array_diff/diff'
|
||||
|
||||
class WikiPage < ActiveRecord::Base
|
||||
class WikiPage < ApplicationRecord
|
||||
include Redmine::SafeAttributes
|
||||
|
||||
belongs_to :wiki
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -1,22 +1,6 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
module ActiveRecord
|
||||
class Base
|
||||
# Translate attribute names for validation errors display
|
||||
def self.human_attribute_name(attr, options = {})
|
||||
prepared_attr = attr.to_s.delete_suffix('_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
|
||||
|
||||
# Undefines private Kernel#open method to allow using `open` scopes in models.
|
||||
# See Defect #11545 (http://www.redmine.org/issues/11545) for details.
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
class Meeting < ActiveRecord::Base
|
||||
class Meeting < ApplicationRecord
|
||||
belongs_to :project
|
||||
|
||||
acts_as_event :title => Proc.new {|o| "#{o.scheduled_on} Meeting"},
|
||||
|
||||
@@ -63,6 +63,6 @@ class RedminePluginModelGenerator < Rails::Generators::NamedBase
|
||||
end
|
||||
|
||||
def parent_class_name
|
||||
options[:parent] || "ActiveRecord::Base"
|
||||
options[:parent] || "ApplicationRecord"
|
||||
end
|
||||
end
|
||||
|
||||
@@ -18,4 +18,6 @@
|
||||
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
|
||||
require_relative 'lib/acts_as_activity_provider'
|
||||
ActiveRecord::Base.send(:include, Redmine::Acts::ActivityProvider)
|
||||
Rails.application.reloader.to_prepare do
|
||||
ApplicationRecord.send(:include, Redmine::Acts::ActivityProvider)
|
||||
end
|
||||
|
||||
@@ -18,4 +18,6 @@
|
||||
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
|
||||
require_relative 'lib/acts_as_attachable'
|
||||
ActiveRecord::Base.send(:include, Redmine::Acts::Attachable)
|
||||
Rails.application.reloader.to_prepare do
|
||||
ApplicationRecord.send(:include, Redmine::Acts::Attachable)
|
||||
end
|
||||
|
||||
@@ -18,4 +18,6 @@
|
||||
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
|
||||
require_relative 'lib/acts_as_customizable'
|
||||
ActiveRecord::Base.send(:include, Redmine::Acts::Customizable)
|
||||
Rails.application.reloader.to_prepare do
|
||||
ApplicationRecord.send(:include, Redmine::Acts::Customizable)
|
||||
end
|
||||
@@ -18,4 +18,6 @@
|
||||
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
|
||||
require_relative 'lib/acts_as_event'
|
||||
ActiveRecord::Base.send(:include, Redmine::Acts::Event)
|
||||
Rails.application.reloader.to_prepare do
|
||||
ApplicationRecord.send(:include, Redmine::Acts::Event)
|
||||
end
|
||||
@@ -18,4 +18,6 @@
|
||||
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
|
||||
require_relative 'lib/acts_as_searchable'
|
||||
ActiveRecord::Base.send(:include, Redmine::Acts::Searchable)
|
||||
Rails.application.reloader.to_prepare do
|
||||
ApplicationRecord.send(:include, Redmine::Acts::Searchable)
|
||||
end
|
||||
|
||||
@@ -4,7 +4,7 @@ acts_as_tree
|
||||
Specify this +acts_as+ extension if you want to model a tree structure by providing a parent association and a children
|
||||
association. This requires that you have a foreign key column, which by default is called +parent_id+.
|
||||
|
||||
class Category < ActiveRecord::Base
|
||||
class Category < ApplicationRecord
|
||||
acts_as_tree :order => "name"
|
||||
end
|
||||
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
require_relative 'lib/active_record/acts/tree'
|
||||
ActiveRecord::Base.send :include, ActiveRecord::Acts::Tree
|
||||
Rails.application.reloader.to_prepare do
|
||||
ApplicationRecord.send :include, ActiveRecord::Acts::Tree
|
||||
end
|
||||
|
||||
@@ -10,7 +10,7 @@ module ActiveRecord
|
||||
# Specify this +acts_as+ extension if you want to model a tree structure by providing a parent association and a children
|
||||
# association. This requires that you have a foreign key column, which by default is called +parent_id+.
|
||||
#
|
||||
# class Category < ActiveRecord::Base
|
||||
# class Category < ApplicationRecord
|
||||
# acts_as_tree :order => "name"
|
||||
# end
|
||||
#
|
||||
|
||||
@@ -42,7 +42,7 @@ def teardown_db
|
||||
end
|
||||
end
|
||||
|
||||
class Mixin < ActiveRecord::Base
|
||||
class Mixin < ApplicationRecord
|
||||
end
|
||||
|
||||
class TreeMixin < Mixin
|
||||
|
||||
@@ -19,4 +19,6 @@
|
||||
|
||||
# Include hook code here
|
||||
require_relative 'lib/acts_as_watchable'
|
||||
ActiveRecord::Base.send(:include, Redmine::Acts::Watchable)
|
||||
Rails.application.reloader.to_prepare do
|
||||
ApplicationRecord.send(:include, Redmine::Acts::Watchable)
|
||||
end
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
require_relative 'lib/gravatar'
|
||||
ActionView::Base.send :include, GravatarHelper::PublicMethods
|
||||
Rails.application.reloader.to_prepare do
|
||||
ApplicationRecord.send :include, GravatarHelper::PublicMethods
|
||||
end
|
||||
|
||||
@@ -20,9 +20,9 @@
|
||||
module Redmine
|
||||
module Preparation
|
||||
def self.prepare
|
||||
ActiveRecord::Base.include Redmine::Acts::Positioned
|
||||
ActiveRecord::Base.include Redmine::Acts::Mentionable
|
||||
ActiveRecord::Base.include Redmine::I18n
|
||||
ApplicationRecord.include Redmine::Acts::Positioned
|
||||
ApplicationRecord.include Redmine::Acts::Mentionable
|
||||
ApplicationRecord.include Redmine::I18n
|
||||
|
||||
Scm::Base.add "Subversion"
|
||||
Scm::Base.add "Mercurial"
|
||||
|
||||
@@ -27,16 +27,16 @@ class PatchesTest < ActiveSupport::TestCase
|
||||
Setting.default_language = 'en'
|
||||
end
|
||||
|
||||
test "ActiveRecord::Base.human_attribute_name should transform name to field_name" do
|
||||
assert_equal l('field_last_login_on'), ActiveRecord::Base.human_attribute_name('last_login_on')
|
||||
test "ApplicationRecord.human_attribute_name should transform name to field_name" do
|
||||
assert_equal l('field_last_login_on'), ApplicationRecord.human_attribute_name('last_login_on')
|
||||
end
|
||||
|
||||
test "ActiveRecord::Base.human_attribute_name should cut extra _id suffix for better validation" do
|
||||
assert_equal l('field_last_login_on'), ActiveRecord::Base.human_attribute_name('last_login_on_id')
|
||||
test "ApplicationRecord.human_attribute_name should cut extra _id suffix for better validation" do
|
||||
assert_equal l('field_last_login_on'), ApplicationRecord.human_attribute_name('last_login_on_id')
|
||||
end
|
||||
|
||||
test "ActiveRecord::Base.human_attribute_name should default to humanized value if no translation has been found (useful for custom fields)" do
|
||||
assert_equal 'Patch name', ActiveRecord::Base.human_attribute_name('Patch name')
|
||||
test "ApplicationRecord.human_attribute_name should default to humanized value if no translation has been found (useful for custom fields)" do
|
||||
assert_equal 'Patch name', ApplicationRecord.human_attribute_name('Patch name')
|
||||
end
|
||||
|
||||
test 'ActionView::Helpers::FormHelper.date_field should add max=9999-12-31 to limit year value to 4 digits by default' do
|
||||
|
||||
Reference in New Issue
Block a user