@@ -34,9 +34,10 module Redmine | |||
|
34 | 34 | |
|
35 | 35 | # Loads the default data |
|
36 | 36 | # Raises a RecordNotSaved exception if something goes wrong |
|
37 | def load(lang=nil) | |
|
37 | def load(lang=nil, options={}) | |
|
38 | 38 | raise DataAlreadyLoaded.new("Some configuration data is already loaded.") unless no_data? |
|
39 | 39 | set_language_if_valid(lang) |
|
40 | workflow = !(options[:workflow] == false) | |
|
40 | 41 | |
|
41 | 42 | Role.transaction do |
|
42 | 43 | # Roles |
@@ -139,31 +140,33 module Redmine | |||
|
139 | 140 | Tracker.create!(:name => l(:default_tracker_feature), :default_status_id => new.id, :is_in_chlog => true, :is_in_roadmap => true, :position => 2) |
|
140 | 141 | Tracker.create!(:name => l(:default_tracker_support), :default_status_id => new.id, :is_in_chlog => false, :is_in_roadmap => false, :position => 3) |
|
141 | 142 | |
|
142 |
|
|
|
143 | Tracker.all.each { |t| | |
|
144 |
|
|
|
145 |
IssueStatus.all.each { | |
|
|
146 | WorkflowTransition.create!(:tracker_id => t.id, :role_id => manager.id, :old_status_id => os.id, :new_status_id => ns.id) unless os == ns | |
|
143 | if workflow | |
|
144 | # Workflow | |
|
145 | Tracker.all.each { |t| | |
|
146 | IssueStatus.all.each { |os| | |
|
147 | IssueStatus.all.each { |ns| | |
|
148 | WorkflowTransition.create!(:tracker_id => t.id, :role_id => manager.id, :old_status_id => os.id, :new_status_id => ns.id) unless os == ns | |
|
149 | } | |
|
147 | 150 | } |
|
148 | 151 | } |
|
149 | } | |
|
150 | 152 | |
|
151 | Tracker.all.each { |t| | |
|
152 | [new, in_progress, resolved, feedback].each { |os| | |
|
153 | [in_progress, resolved, feedback, closed].each { |ns| | |
|
154 | WorkflowTransition.create!(:tracker_id => t.id, :role_id => developer.id, :old_status_id => os.id, :new_status_id => ns.id) unless os == ns | |
|
153 | Tracker.all.each { |t| | |
|
154 | [new, in_progress, resolved, feedback].each { |os| | |
|
155 | [in_progress, resolved, feedback, closed].each { |ns| | |
|
156 | WorkflowTransition.create!(:tracker_id => t.id, :role_id => developer.id, :old_status_id => os.id, :new_status_id => ns.id) unless os == ns | |
|
157 | } | |
|
155 | 158 | } |
|
156 | 159 | } |
|
157 | } | |
|
158 | 160 | |
|
159 | Tracker.all.each { |t| | |
|
160 | [new, in_progress, resolved, feedback].each { |os| | |
|
161 | [closed].each { |ns| | |
|
162 | WorkflowTransition.create!(:tracker_id => t.id, :role_id => reporter.id, :old_status_id => os.id, :new_status_id => ns.id) unless os == ns | |
|
161 | Tracker.all.each { |t| | |
|
162 | [new, in_progress, resolved, feedback].each { |os| | |
|
163 | [closed].each { |ns| | |
|
164 | WorkflowTransition.create!(:tracker_id => t.id, :role_id => reporter.id, :old_status_id => os.id, :new_status_id => ns.id) unless os == ns | |
|
165 | } | |
|
163 | 166 | } |
|
167 | WorkflowTransition.create!(:tracker_id => t.id, :role_id => reporter.id, :old_status_id => resolved.id, :new_status_id => feedback.id) | |
|
164 | 168 | } |
|
165 | WorkflowTransition.create!(:tracker_id => t.id, :role_id => reporter.id, :old_status_id => resolved.id, :new_status_id => feedback.id) | |
|
166 | } | |
|
169 | end | |
|
167 | 170 | |
|
168 | 171 | # Enumerations |
|
169 | 172 | IssuePriority.create!(:name => l(:default_priority_low), :position => 1) |
@@ -23,21 +23,24 class DefaultDataTest < ActiveSupport::TestCase | |||
|
23 | 23 | |
|
24 | 24 | def test_no_data |
|
25 | 25 | assert !Redmine::DefaultData::Loader::no_data? |
|
26 | Role.where("builtin = 0").delete_all | |
|
27 | Tracker.delete_all | |
|
28 | IssueStatus.delete_all | |
|
29 | Enumeration.delete_all | |
|
26 | clear_data | |
|
30 | 27 | assert Redmine::DefaultData::Loader::no_data? |
|
31 | 28 | end |
|
32 | 29 | |
|
33 | 30 | def test_load |
|
31 | clear_data | |
|
32 | assert Redmine::DefaultData::Loader::load('en') | |
|
33 | assert_not_nil DocumentCategory.first | |
|
34 | assert_not_nil IssuePriority.first | |
|
35 | assert_not_nil TimeEntryActivity.first | |
|
36 | assert_not_nil WorkflowTransition.first | |
|
37 | end | |
|
38 | ||
|
39 | def test_load_for_all_language | |
|
34 | 40 | valid_languages.each do |lang| |
|
41 | clear_data | |
|
35 | 42 | begin |
|
36 | Role.where("builtin = 0").delete_all | |
|
37 | Tracker.delete_all | |
|
38 | IssueStatus.delete_all | |
|
39 | Enumeration.delete_all | |
|
40 | assert Redmine::DefaultData::Loader::load(lang) | |
|
43 | assert Redmine::DefaultData::Loader::load(lang, :workflow => false) | |
|
41 | 44 | assert_not_nil DocumentCategory.first |
|
42 | 45 | assert_not_nil IssuePriority.first |
|
43 | 46 | assert_not_nil TimeEntryActivity.first |
@@ -46,4 +49,12 class DefaultDataTest < ActiveSupport::TestCase | |||
|
46 | 49 | end |
|
47 | 50 | end |
|
48 | 51 | end |
|
52 | ||
|
53 | def clear_data | |
|
54 | Role.where("builtin = 0").delete_all | |
|
55 | Tracker.delete_all | |
|
56 | IssueStatus.delete_all | |
|
57 | Enumeration.delete_all | |
|
58 | WorkflowRule.delete_all | |
|
59 | end | |
|
49 | 60 | end |
General Comments 0
You need to be logged in to leave comments.
Login now