@@ -1,88 +1,101 | |||||
1 |
desc 'Load default configuration data |
|
1 | desc 'Load default configuration data' | |
2 |
|
2 | |||
3 | task :load_default_data => :environment do |
|
3 | task :load_default_data => :environment do | |
4 | include GLoc |
|
4 | include GLoc | |
5 | set_language_if_valid($RDM_DEFAULT_LANG) |
|
5 | set_language_if_valid($RDM_DEFAULT_LANG) | |
6 |
|
6 | puts | ||
|
7 | ||||
|
8 | while true | |||
|
9 | print "Select language: " | |||
|
10 | print GLoc.valid_languages.sort {|x,y| x.to_s <=> y.to_s }.join(", ") | |||
|
11 | print " [#{GLoc.current_language}] " | |||
|
12 | lang = STDIN.gets.chomp! | |||
|
13 | break if lang.empty? | |||
|
14 | break if set_language_if_valid(lang) | |||
|
15 | puts "Unknown language!" | |||
|
16 | end | |||
|
17 | ||||
|
18 | puts "====================================" | |||
|
19 | ||||
7 | begin |
|
20 | begin | |
8 | # check that no data already exists |
|
21 | # check that no data already exists | |
9 | if Role.find(:first) |
|
22 | if Role.find(:first) | |
10 | raise "Some roles are already defined." |
|
23 | raise "Some roles are already defined." | |
11 | end |
|
24 | end | |
12 | if Tracker.find(:first) |
|
25 | if Tracker.find(:first) | |
13 | raise "Some trackers are already defined." |
|
26 | raise "Some trackers are already defined." | |
14 | end |
|
27 | end | |
15 | if IssueStatus.find(:first) |
|
28 | if IssueStatus.find(:first) | |
16 | raise "Some statuses are already defined." |
|
29 | raise "Some statuses are already defined." | |
17 | end |
|
30 | end | |
18 | if Enumeration.find(:first) |
|
31 | if Enumeration.find(:first) | |
19 | raise "Some enumerations are already defined." |
|
32 | raise "Some enumerations are already defined." | |
20 | end |
|
33 | end | |
21 |
|
34 | |||
22 | puts "Loading default configuration for language: #{current_language}" |
|
35 | puts "Loading default configuration data for language: #{current_language}" | |
23 |
|
36 | |||
24 | # roles |
|
37 | # roles | |
25 | manager = Role.create :name => l(:default_role_manager) |
|
38 | manager = Role.create :name => l(:default_role_manager) | |
26 | manager.permissions = Permission.find(:all, :conditions => ["is_public=?", false]) |
|
39 | manager.permissions = Permission.find(:all, :conditions => ["is_public=?", false]) | |
27 |
|
40 | |||
28 | developper = Role.create :name => l(:default_role_developper) |
|
41 | developper = Role.create :name => l(:default_role_developper) | |
29 | perms = [150, 320, 321, 322, 420, 421, 422, 1050, 1060, 1070, 1075, 1130, 1220, 1221, 1222, 1223, 1224, 1320, 1322, 1061, 1057] |
|
42 | perms = [150, 320, 321, 322, 420, 421, 422, 1050, 1060, 1070, 1075, 1130, 1220, 1221, 1222, 1223, 1224, 1320, 1322, 1061, 1057] | |
30 | developper.permissions = Permission.find(:all, :conditions => ["sort IN (#{perms.join(',')})"]) |
|
43 | developper.permissions = Permission.find(:all, :conditions => ["sort IN (#{perms.join(',')})"]) | |
31 |
|
44 | |||
32 | reporter = Role.create :name => l(:default_role_reporter) |
|
45 | reporter = Role.create :name => l(:default_role_reporter) | |
33 | perms = [1050, 1060, 1070, 1057, 1130] |
|
46 | perms = [1050, 1060, 1070, 1057, 1130] | |
34 | reporter.permissions = Permission.find(:all, :conditions => ["sort IN (#{perms.join(',')})"]) |
|
47 | reporter.permissions = Permission.find(:all, :conditions => ["sort IN (#{perms.join(',')})"]) | |
35 |
|
48 | |||
36 | # trackers |
|
49 | # trackers | |
37 | Tracker.create(:name => l(:default_tracker_bug), :is_in_chlog => true) |
|
50 | Tracker.create(:name => l(:default_tracker_bug), :is_in_chlog => true) | |
38 | Tracker.create(:name => l(:default_tracker_feature), :is_in_chlog => true) |
|
51 | Tracker.create(:name => l(:default_tracker_feature), :is_in_chlog => true) | |
39 | Tracker.create(:name => l(:default_tracker_support), :is_in_chlog => false) |
|
52 | Tracker.create(:name => l(:default_tracker_support), :is_in_chlog => false) | |
40 |
|
53 | |||
41 | # issue statuses |
|
54 | # issue statuses | |
42 | new = IssueStatus.create(:name => l(:default_issue_status_new), :is_closed => false, :is_default => true, :html_color => 'F98787') |
|
55 | new = IssueStatus.create(:name => l(:default_issue_status_new), :is_closed => false, :is_default => true, :html_color => 'F98787') | |
43 | assigned = IssueStatus.create(:name => l(:default_issue_status_assigned), :is_closed => false, :is_default => false, :html_color => 'C0C0FF') |
|
56 | assigned = IssueStatus.create(:name => l(:default_issue_status_assigned), :is_closed => false, :is_default => false, :html_color => 'C0C0FF') | |
44 | resolved = IssueStatus.create(:name => l(:default_issue_status_resolved), :is_closed => false, :is_default => false, :html_color => '88E0B3') |
|
57 | resolved = IssueStatus.create(:name => l(:default_issue_status_resolved), :is_closed => false, :is_default => false, :html_color => '88E0B3') | |
45 | feedback = IssueStatus.create(:name => l(:default_issue_status_feedback), :is_closed => false, :is_default => false, :html_color => 'F3A4F4') |
|
58 | feedback = IssueStatus.create(:name => l(:default_issue_status_feedback), :is_closed => false, :is_default => false, :html_color => 'F3A4F4') | |
46 | closed = IssueStatus.create(:name => l(:default_issue_status_closed), :is_closed => true, :is_default => false, :html_color => 'DBDBDB') |
|
59 | closed = IssueStatus.create(:name => l(:default_issue_status_closed), :is_closed => true, :is_default => false, :html_color => 'DBDBDB') | |
47 | rejected = IssueStatus.create(:name => l(:default_issue_status_rejected), :is_closed => true, :is_default => false, :html_color => 'F5C28B') |
|
60 | rejected = IssueStatus.create(:name => l(:default_issue_status_rejected), :is_closed => true, :is_default => false, :html_color => 'F5C28B') | |
48 |
|
61 | |||
49 | # workflow |
|
62 | # workflow | |
50 | Tracker.find(:all).each { |t| |
|
63 | Tracker.find(:all).each { |t| | |
51 | IssueStatus.find(:all).each { |os| |
|
64 | IssueStatus.find(:all).each { |os| | |
52 | IssueStatus.find(:all).each { |ns| |
|
65 | IssueStatus.find(:all).each { |ns| | |
53 | Workflow.create(:tracker_id => t.id, :role_id => manager.id, :old_status_id => os.id, :new_status_id => ns.id) unless os == ns |
|
66 | Workflow.create(:tracker_id => t.id, :role_id => manager.id, :old_status_id => os.id, :new_status_id => ns.id) unless os == ns | |
54 | } |
|
67 | } | |
55 | } |
|
68 | } | |
56 | } |
|
69 | } | |
57 |
|
70 | |||
58 | Tracker.find(:all).each { |t| |
|
71 | Tracker.find(:all).each { |t| | |
59 | [new, assigned, resolved, feedback].each { |os| |
|
72 | [new, assigned, resolved, feedback].each { |os| | |
60 | [assigned, resolved, feedback, closed].each { |ns| |
|
73 | [assigned, resolved, feedback, closed].each { |ns| | |
61 | Workflow.create(:tracker_id => t.id, :role_id => developper.id, :old_status_id => os.id, :new_status_id => ns.id) unless os == ns |
|
74 | Workflow.create(:tracker_id => t.id, :role_id => developper.id, :old_status_id => os.id, :new_status_id => ns.id) unless os == ns | |
62 | } |
|
75 | } | |
63 | } |
|
76 | } | |
64 | } |
|
77 | } | |
65 |
|
78 | |||
66 | Tracker.find(:all).each { |t| |
|
79 | Tracker.find(:all).each { |t| | |
67 | [new, assigned, resolved, feedback].each { |os| |
|
80 | [new, assigned, resolved, feedback].each { |os| | |
68 | [closed].each { |ns| |
|
81 | [closed].each { |ns| | |
69 | Workflow.create(:tracker_id => t.id, :role_id => reporter.id, :old_status_id => os.id, :new_status_id => ns.id) unless os == ns |
|
82 | Workflow.create(:tracker_id => t.id, :role_id => reporter.id, :old_status_id => os.id, :new_status_id => ns.id) unless os == ns | |
70 | } |
|
83 | } | |
71 | } |
|
84 | } | |
72 | Workflow.create(:tracker_id => t.id, :role_id => reporter.id, :old_status_id => resolved.id, :new_status_id => feedback.id) |
|
85 | Workflow.create(:tracker_id => t.id, :role_id => reporter.id, :old_status_id => resolved.id, :new_status_id => feedback.id) | |
73 | } |
|
86 | } | |
74 |
|
87 | |||
75 | # enumerations |
|
88 | # enumerations | |
76 | Enumeration.create(:opt => "DCAT", :name => l(:default_doc_category_user)) |
|
89 | Enumeration.create(:opt => "DCAT", :name => l(:default_doc_category_user)) | |
77 | Enumeration.create(:opt => "DCAT", :name => l(:default_doc_category_tech)) |
|
90 | Enumeration.create(:opt => "DCAT", :name => l(:default_doc_category_tech)) | |
78 | Enumeration.create(:opt => "IPRI", :name => l(:default_priority_low)) |
|
91 | Enumeration.create(:opt => "IPRI", :name => l(:default_priority_low)) | |
79 | Enumeration.create(:opt => "IPRI", :name => l(:default_priority_normal)) |
|
92 | Enumeration.create(:opt => "IPRI", :name => l(:default_priority_normal)) | |
80 | Enumeration.create(:opt => "IPRI", :name => l(:default_priority_high)) |
|
93 | Enumeration.create(:opt => "IPRI", :name => l(:default_priority_high)) | |
81 | Enumeration.create(:opt => "IPRI", :name => l(:default_priority_urgent)) |
|
94 | Enumeration.create(:opt => "IPRI", :name => l(:default_priority_urgent)) | |
82 | Enumeration.create(:opt => "IPRI", :name => l(:default_priority_immediate)) |
|
95 | Enumeration.create(:opt => "IPRI", :name => l(:default_priority_immediate)) | |
83 |
|
96 | |||
84 | rescue => error |
|
97 | rescue => error | |
85 | puts "Error: " + error |
|
98 | puts "Error: " + error | |
86 | puts "Default configuration can't be loaded." |
|
99 | puts "Default configuration data can't be loaded." | |
87 | end |
|
100 | end | |
88 | end No newline at end of file |
|
101 | end |
General Comments 0
You need to be logged in to leave comments.
Login now