##// END OF EJS Templates
Added project specific Enumeration overrides....
Eric Davis -
r2833:29301c8a381a
parent child
Show More
@@ -0,0 +1,11
1 class AddProjectToEnumerations < ActiveRecord::Migration
2 def self.up
3 add_column :enumerations, :project_id, :integer, :null => true, :default => nil
4 add_index :enumerations, :project_id
5 end
6
7 def self.down
8 remove_index :enumerations, :project_id
9 remove_column :enumerations, :project_id
10 end
11 end
@@ -0,0 +1,9
1 class AddParentIdToEnumerations < ActiveRecord::Migration
2 def self.up
3 add_column :enumerations, :parent_id, :integer, :null => true, :default => nil
4 end
5
6 def self.down
7 remove_column :enumerations, :parent_id
8 end
9 end
@@ -16,8 +16,11
16 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
16 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
17
17
18 class Enumeration < ActiveRecord::Base
18 class Enumeration < ActiveRecord::Base
19 belongs_to :project
20
19 acts_as_list :scope => 'type = \'#{type}\''
21 acts_as_list :scope => 'type = \'#{type}\''
20 acts_as_customizable
22 acts_as_customizable
23 acts_as_tree :order => 'position ASC'
21
24
22 before_destroy :check_integrity
25 before_destroy :check_integrity
23
26
@@ -101,6 +104,11 class Enumeration < ActiveRecord::Base
101 def in_use?
104 def in_use?
102 self.objects_count != 0
105 self.objects_count != 0
103 end
106 end
107
108 # Is this enumeration overiding a system level enumeration?
109 def is_override?
110 !self.parent.nil?
111 end
104
112
105 alias :destroy_without_reassign :destroy
113 alias :destroy_without_reassign :destroy
106
114
@@ -86,4 +86,26 class EnumerationTest < ActiveSupport::TestCase
86 assert Enumeration.included_modules.include?(Redmine::Acts::Customizable::InstanceMethods)
86 assert Enumeration.included_modules.include?(Redmine::Acts::Customizable::InstanceMethods)
87 end
87 end
88
88
89 def test_should_belong_to_a_project
90 association = Enumeration.reflect_on_association(:project)
91 assert association, "No Project association found"
92 assert_equal :belongs_to, association.macro
93 end
94
95 def test_should_act_as_tree
96 enumeration = Enumeration.find(4)
97
98 assert enumeration.respond_to?(:parent)
99 assert enumeration.respond_to?(:children)
100 end
101
102 def test_is_override
103 # Defaults to off
104 enumeration = Enumeration.find(4)
105 assert !enumeration.is_override?
106
107 # Setup as an override
108 enumeration.parent = Enumeration.find(5)
109 assert enumeration.is_override?
110 end
89 end
111 end
General Comments 0
You need to be logged in to leave comments. Login now