##// END OF EJS Templates
language for default configuration data can now be chosen when running 'load_default_data' task...
Jean-Philippe Lang -
r129:e7caec6e7d1a
parent child
Show More
@@ -1,88 +1,101
1 desc 'Load default configuration data (using default language)'
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 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 "===================================="
6
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