mirror of
https://github.com/meineerde/redmine.git
synced 2025-10-17 17:01:01 +00:00
Use regular instance methods instead of association extensions.
Rails 5.1 seems to mess things up in this particular case (role.workflow_rules.copy calls the extension declare in Tracker model). git-svn-id: http://svn.redmine.org/redmine/trunk@16597 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
parent
f6defca16d
commit
44c748f968
@ -60,7 +60,7 @@ class RolesController < ApplicationController
|
||||
if request.post? && @role.save
|
||||
# workflow copy
|
||||
if !params[:copy_workflow_from].blank? && (copy_from = Role.find_by_id(params[:copy_workflow_from]))
|
||||
@role.workflow_rules.copy(copy_from)
|
||||
@role.copy_workflow_rules(copy_from)
|
||||
end
|
||||
flash[:notice] = l(:notice_successful_create)
|
||||
redirect_to roles_path
|
||||
|
||||
@ -44,7 +44,7 @@ class TrackersController < ApplicationController
|
||||
if @tracker.save
|
||||
# workflow copy
|
||||
if !params[:copy_workflow_from].blank? && (copy_from = Tracker.find_by_id(params[:copy_workflow_from]))
|
||||
@tracker.workflow_rules.copy(copy_from)
|
||||
@tracker.copy_workflow_rules(copy_from)
|
||||
end
|
||||
flash[:notice] = l(:notice_successful_create)
|
||||
redirect_to trackers_path
|
||||
|
||||
@ -61,7 +61,8 @@ class Role < ActiveRecord::Base
|
||||
before_destroy :check_deletable
|
||||
has_many :workflow_rules, :dependent => :delete_all do
|
||||
def copy(source_role)
|
||||
WorkflowRule.copy(nil, source_role, nil, proxy_association.owner)
|
||||
ActiveSupport::Deprecation.warn "role.workflow_rules.copy is deprecated and will be removed in Redmine 4.0, use role.copy_worflow_rules instead"
|
||||
proxy_association.owner.copy_workflow_rules(source_role)
|
||||
end
|
||||
end
|
||||
has_and_belongs_to_many :custom_fields, :join_table => "#{table_name_prefix}custom_fields_roles#{table_name_suffix}", :foreign_key => "role_id"
|
||||
@ -261,6 +262,10 @@ class Role < ActiveRecord::Base
|
||||
self
|
||||
end
|
||||
|
||||
def copy_workflow_rules(source_role)
|
||||
WorkflowRule.copy(nil, source_role, nil, self)
|
||||
end
|
||||
|
||||
# Find all the roles that can be given to a project member
|
||||
def self.find_all_givable
|
||||
Role.givable.to_a
|
||||
|
||||
@ -29,10 +29,10 @@ class Tracker < ActiveRecord::Base
|
||||
has_many :issues
|
||||
has_many :workflow_rules, :dependent => :delete_all do
|
||||
def copy(source_tracker)
|
||||
WorkflowRule.copy(source_tracker, nil, proxy_association.owner, nil)
|
||||
ActiveSupport::Deprecation.warn "tracker.workflow_rules.copy is deprecated and will be removed in Redmine 4.0, use tracker.copy_worflow_rules instead"
|
||||
proxy_association.owner.copy_workflow_rules(source_tracker)
|
||||
end
|
||||
end
|
||||
|
||||
has_and_belongs_to_many :projects
|
||||
has_and_belongs_to_many :custom_fields, :class_name => 'IssueCustomField', :join_table => "#{table_name_prefix}custom_fields_trackers#{table_name_suffix}", :association_foreign_key => 'custom_field_id'
|
||||
acts_as_positioned
|
||||
@ -121,6 +121,10 @@ class Tracker < ActiveRecord::Base
|
||||
core_fields
|
||||
end
|
||||
|
||||
def copy_workflow_rules(source_tracker)
|
||||
WorkflowRule.copy(source_tracker, nil, self, nil)
|
||||
end
|
||||
|
||||
# Returns the fields that are disabled for all the given trackers
|
||||
def self.disabled_core_fields(trackers)
|
||||
if trackers.present?
|
||||
|
||||
@ -29,7 +29,7 @@ class WorkflowRule < ActiveRecord::Base
|
||||
# Copies workflows from source to targets
|
||||
def self.copy(source_tracker, source_role, target_trackers, target_roles)
|
||||
unless source_tracker.is_a?(Tracker) || source_role.is_a?(Role)
|
||||
raise ArgumentError.new("source_tracker or source_role must be specified")
|
||||
raise ArgumentError.new("source_tracker or source_role must be specified, given: #{source_tracker.class.name} and #{source_role.class.name}")
|
||||
end
|
||||
|
||||
target_trackers = [target_trackers].flatten.compact
|
||||
|
||||
@ -59,7 +59,7 @@ class RoleTest < ActiveSupport::TestCase
|
||||
|
||||
target = Role.new(:name => 'Target')
|
||||
assert target.save
|
||||
target.workflow_rules.copy(source)
|
||||
target.copy_workflow_rules(source)
|
||||
target.reload
|
||||
assert_equal rule_count, target.workflow_rules.size
|
||||
end
|
||||
|
||||
@ -47,7 +47,7 @@ class TrackerTest < ActiveSupport::TestCase
|
||||
|
||||
target = Tracker.new(:name => 'Target', :default_status_id => 1)
|
||||
assert target.save
|
||||
target.workflow_rules.copy(source)
|
||||
target.copy_workflow_rules(source)
|
||||
target.reload
|
||||
assert_equal rules_count, target.workflow_rules.size
|
||||
end
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user