Patch #4274 » 0001-Adds-an-option-which-will-automatically-update-an-is.patch
app/controllers/issue_statuses_controller.rb | ||
---|---|---|
18 | 18 |
class IssueStatusesController < ApplicationController |
19 | 19 |
before_filter :require_admin |
20 | 20 | |
21 |
verify :method => :post, :only => [ :destroy, :create, :update, :move ], |
|
21 |
verify :method => :post, :only => [ :destroy, :create, :update, :move, :update_issue_done_ratio ],
|
|
22 | 22 |
:redirect_to => { :action => :list } |
23 | 23 |
|
24 | 24 |
def index |
... | ... | |
66 | 66 |
flash[:error] = "Unable to delete issue status" |
67 | 67 |
redirect_to :action => 'list' |
68 | 68 |
end |
69 |
|
|
70 |
def update_issue_done_ratio |
|
71 |
if IssueStatus.update_issue_done_ratios |
|
72 |
flash[:notice] = l(:notice_issue_done_ratios_updated) |
|
73 |
else |
|
74 |
flash[:error] = l(:error_issue_done_ratios_not_updated) |
|
75 |
end |
|
76 |
redirect_to :action => 'list' |
|
77 |
end |
|
69 | 78 |
end |
app/models/issue.rb | ||
---|---|---|
55 | 55 |
:conditions => Project.allowed_to_condition(args.first || User.current, :view_issues) } } |
56 | 56 |
|
57 | 57 |
named_scope :open, :conditions => ["#{IssueStatus.table_name}.is_closed = ?", false], :include => :status |
58 |
|
|
58 | ||
59 |
before_save :update_done_ratio_from_issue_status |
|
59 | 60 |
after_save :create_journal |
60 | 61 |
|
61 | 62 |
# Returns true if usr or current user is allowed to view the issue |
... | ... | |
132 | 133 |
write_attribute :estimated_hours, (h.is_a?(String) ? h.to_hours : h) |
133 | 134 |
end |
134 | 135 |
|
136 |
def done_ratio |
|
137 |
if Setting.issue_status_for_done_ratio? && !self.status.default_done_ratio.blank? |
|
138 |
self.status.default_done_ratio |
|
139 |
else |
|
140 |
read_attribute(:done_ratio) |
|
141 |
end |
|
142 |
end |
|
143 |
|
|
135 | 144 |
def validate |
136 | 145 |
if self.due_date.nil? && @attributes['due_date'] && !@attributes['due_date'].empty? |
137 | 146 |
errors.add :due_date, :not_a_date |
... | ... | |
165 | 174 |
end |
166 | 175 |
end |
167 | 176 |
|
177 |
# Set the done_ratio using the status if that setting is set. This will keep the done_ratios |
|
178 |
# even if the user turns off the setting later |
|
179 |
def update_done_ratio_from_issue_status |
|
180 |
if Setting.issue_status_for_done_ratio? && !self.status.default_done_ratio.blank? |
|
181 |
self.done_ratio = self.status.default_done_ratio |
|
182 |
end |
|
183 |
end |
|
184 |
|
|
168 | 185 |
def after_save |
169 | 186 |
# Reload is needed in order to get the right status |
170 | 187 |
reload |
app/models/issue_status.rb | ||
---|---|---|
33 | 33 |
def self.default |
34 | 34 |
find(:first, :conditions =>["is_default=?", true]) |
35 | 35 |
end |
36 |
|
|
37 |
# Update all the +Issues+ setting their done_ratio to the value of their +IssueStatus+ |
|
38 |
def self.update_issue_done_ratios |
|
39 |
if Setting.issue_status_for_done_ratio? |
|
40 |
IssueStatus.find(:all, :conditions => ["default_done_ratio >= 0"]).each do |status| |
|
41 |
Issue.update_all(["done_ratio = ?", status.default_done_ratio], |
|
42 |
["status_id = ?", status.id]) |
|
43 |
end |
|
44 |
end |
|
45 | ||
46 |
return Setting.issue_status_for_done_ratio? |
|
47 |
end |
|
36 | 48 | |
37 | 49 |
# Returns an array of all statuses the given role can switch to |
38 | 50 |
# Uses association cache when called more than one time |
app/views/issue_statuses/_form.rhtml | ||
---|---|---|
5 | 5 |
<p><label for="issue_status_name"><%=l(:field_name)%><span class="required"> *</span></label> |
6 | 6 |
<%= text_field 'issue_status', 'name' %></p> |
7 | 7 | |
8 |
<% if Setting.issue_status_for_done_ratio? %> |
|
9 |
<p><label for="issue_done_ratio"><%=l(:field_done_ratio)%></label> |
|
10 |
<%= select 'issue_status', :default_done_ratio, ((0..10).to_a.collect {|r| ["#{r*10} %", r*10] }) %></p> |
|
11 |
<% end %> |
|
12 | ||
8 | 13 |
<p><label for="issue_status_is_closed"><%=l(:field_is_closed)%></label> |
9 | 14 |
<%= check_box 'issue_status', 'is_closed' %></p> |
10 | 15 |
app/views/issue_statuses/list.rhtml | ||
---|---|---|
1 | 1 |
<div class="contextual"> |
2 | 2 |
<%= link_to l(:label_issue_status_new), {:action => 'new'}, :class => 'icon icon-add' %> |
3 |
<%= link_to(l(:label_update_issue_done_ratios), {:action => 'update_issue_done_ratio'}, :class => 'icon icon-multiple', :method => 'post', :confirm => l(:text_are_you_sure)) if Setting.issue_status_for_done_ratio? %> |
|
3 | 4 |
</div> |
4 | 5 | |
5 | 6 |
<h2><%=l(:label_issue_status_plural)%></h2> |
... | ... | |
7 | 8 |
<table class="list"> |
8 | 9 |
<thead><tr> |
9 | 10 |
<th><%=l(:field_status)%></th> |
11 |
<% if Setting.issue_status_for_done_ratio? %> |
|
12 |
<th><%=l(:field_done_ratio)%></th> |
|
13 |
<% end %> |
|
10 | 14 |
<th><%=l(:field_is_default)%></th> |
11 | 15 |
<th><%=l(:field_is_closed)%></th> |
12 | 16 |
<th><%=l(:button_sort)%></th> |
... | ... | |
16 | 20 |
<% for status in @issue_statuses %> |
17 | 21 |
<tr class="<%= cycle("odd", "even") %>"> |
18 | 22 |
<td><%= link_to status.name, :action => 'edit', :id => status %></td> |
23 |
<% if Setting.issue_status_for_done_ratio? %> |
|
24 |
<td align="center"><%= h status.default_done_ratio %></td> |
|
25 |
<% end %> |
|
19 | 26 |
<td align="center"><%= image_tag 'true.png' if status.is_default? %></td> |
20 | 27 |
<td align="center"><%= image_tag 'true.png' if status.is_closed? %></td> |
21 | 28 |
<td align="center" style="width:15%;"><%= reorder_links('issue_status', {:action => 'update', :id => status}) %></td> |
app/views/issues/_form.rhtml | ||
---|---|---|
41 | 41 |
<p><%= f.text_field :start_date, :size => 10 %><%= calendar_for('issue_start_date') %></p> |
42 | 42 |
<p><%= f.text_field :due_date, :size => 10 %><%= calendar_for('issue_due_date') %></p> |
43 | 43 |
<p><%= f.text_field :estimated_hours, :size => 3 %> <%= l(:field_hours) %></p> |
44 |
<% unless Setting.issue_status_for_done_ratio? %> |
|
44 | 45 |
<p><%= f.select :done_ratio, ((0..10).to_a.collect {|r| ["#{r*10} %", r*10] }) %></p> |
46 |
<% end %> |
|
45 | 47 |
</div> |
46 | 48 | |
47 | 49 |
<div style="clear:both;"> </div> |
app/views/issues/_form_update.rhtml | ||
---|---|---|
4 | 4 |
<p><%= f.select :assigned_to_id, (@issue.assignable_users.collect {|m| [m.name, m.id]}), :include_blank => true %></p> |
5 | 5 |
</div> |
6 | 6 |
<div class="splitcontentright"> |
7 |
<% unless Setting.issue_status_for_done_ratio? %> |
|
7 | 8 |
<p><%= f.select :done_ratio, ((0..10).to_a.collect {|r| ["#{r*10} %", r*10] }) %></p> |
9 |
<% end %> |
|
8 | 10 |
<% unless @issue.assignable_versions.empty? %> |
9 | 11 |
<p><%= f.select :fixed_version_id, (@issue.assignable_versions.collect {|v| [v.name, v.id]}), :include_blank => true %></p> |
10 | 12 |
<% end %> |
app/views/issues/bulk_edit.rhtml | ||
---|---|---|
35 | 35 |
<%= text_field_tag 'start_date', '', :size => 10 %><%= calendar_for('start_date') %></label> |
36 | 36 |
<label><%= l(:field_due_date) %>: |
37 | 37 |
<%= text_field_tag 'due_date', '', :size => 10 %><%= calendar_for('due_date') %></label> |
38 |
<% unless Setting.issue_status_for_done_ratio? %> |
|
38 | 39 |
<label><%= l(:field_done_ratio) %>: |
39 | 40 |
<%= select_tag 'done_ratio', options_for_select([[l(:label_no_change_option), '']] + (0..10).to_a.collect {|r| ["#{r*10} %", r*10] }) %></label> |
41 |
<% end %> |
|
40 | 42 |
</p> |
41 | 43 | |
42 | 44 |
<% @custom_fields.each do |custom_field| %> |
app/views/issues/context_menu.rhtml | ||
---|---|---|
66 | 66 |
</ul> |
67 | 67 |
</li> |
68 | 68 |
<% end -%> |
69 |
<% unless Setting.issue_status_for_done_ratio? %> |
|
69 | 70 |
<li class="folder"> |
70 | 71 |
<a href="#" class="submenu"><%= l(:field_done_ratio) %></a> |
71 | 72 |
<ul> |
... | ... | |
75 | 76 |
<% end -%> |
76 | 77 |
</ul> |
77 | 78 |
</li> |
78 |
|
|
79 |
<% end %> |
|
79 | 80 |
<% if !@issue.nil? %> |
80 | 81 |
<li><%= context_menu_link l(:button_copy), {:controller => 'issues', :action => 'new', :project_id => @project, :copy_from => @issue}, |
81 | 82 |
:class => 'icon-copy', :disabled => !@can[:copy] %></li> |
app/views/settings/_issues.rhtml | ||
---|---|---|
11 | 11 |
<%= check_box_tag 'settings[display_subprojects_issues]', 1, Setting.display_subprojects_issues? %> |
12 | 12 |
</p> |
13 | 13 | |
14 |
<p><label><%= l(:setting_use_issue_status_for_done_ratio) %></label> |
|
15 |
<%= hidden_field_tag 'settings[issue_status_for_done_ratio]', 0 %> |
|
16 |
<%= check_box_tag 'settings[issue_status_for_done_ratio]', 1, Setting.issue_status_for_done_ratio? %> |
|
17 |
</p> |
|
18 | ||
14 | 19 |
<p><label><%= l(:setting_issues_export_limit) %></label> |
15 | 20 |
<%= text_field_tag 'settings[issues_export_limit]', Setting.issues_export_limit, :size => 6 %></p> |
16 | 21 |
</div> |
config/locales/bg.yml | ||
---|---|---|
835 | 835 |
button_move_and_follow: Move and follow |
836 | 836 |
setting_default_projects_modules: Default enabled modules for new projects |
837 | 837 |
setting_gravatar_default: Default Gravatar image |
838 |
error_issue_done_ratios_not_updated: Issue done ratios not updated. Please confirm you enabled 'Use issue status for done ratio' |
|
839 |
setting_use_issue_status_for_done_ratio: Use issue status for done ratio |
|
840 |
notice_issue_done_ratios_updated: Issue done ratios updated. |
|
841 |
label_update_issue_done_ratios: Update issue done ratios |
config/locales/bs.yml | ||
---|---|---|
859 | 859 |
button_move_and_follow: Move and follow |
860 | 860 |
setting_default_projects_modules: Default enabled modules for new projects |
861 | 861 |
setting_gravatar_default: Default Gravatar image |
862 |
error_issue_done_ratios_not_updated: Issue done ratios not updated. Please confirm you enabled 'Use issue status for done ratio' |
|
863 |
setting_use_issue_status_for_done_ratio: Use issue status for done ratio |
|
864 |
notice_issue_done_ratios_updated: Issue done ratios updated. |
|
865 |
label_update_issue_done_ratios: Update issue done ratios |
config/locales/ca.yml | ||
---|---|---|
838 | 838 |
button_move_and_follow: Move and follow |
839 | 839 |
setting_default_projects_modules: Default enabled modules for new projects |
840 | 840 |
setting_gravatar_default: Default Gravatar image |
841 |
error_issue_done_ratios_not_updated: Issue done ratios not updated. Please confirm you enabled 'Use issue status for done ratio' |
|
842 |
setting_use_issue_status_for_done_ratio: Use issue status for done ratio |
|
843 |
notice_issue_done_ratios_updated: Issue done ratios updated. |
|
844 |
label_update_issue_done_ratios: Update issue done ratios |
config/locales/cs.yml | ||
---|---|---|
841 | 841 |
button_move_and_follow: Move and follow |
842 | 842 |
setting_default_projects_modules: Default enabled modules for new projects |
843 | 843 |
setting_gravatar_default: Default Gravatar image |
844 |
error_issue_done_ratios_not_updated: Issue done ratios not updated. Please confirm you enabled 'Use issue status for done ratio' |
|
845 |
setting_use_issue_status_for_done_ratio: Use issue status for done ratio |
|
846 |
notice_issue_done_ratios_updated: Issue done ratios updated. |
|
847 |
label_update_issue_done_ratios: Update issue done ratios |
config/locales/da.yml | ||
---|---|---|
861 | 861 |
button_move_and_follow: Move and follow |
862 | 862 |
setting_default_projects_modules: Default enabled modules for new projects |
863 | 863 |
setting_gravatar_default: Default Gravatar image |
864 |
error_issue_done_ratios_not_updated: Issue done ratios not updated. Please confirm you enabled 'Use issue status for done ratio' |
|
865 |
setting_use_issue_status_for_done_ratio: Use issue status for done ratio |
|
866 |
notice_issue_done_ratios_updated: Issue done ratios updated. |
|
867 |
label_update_issue_done_ratios: Update issue done ratios |
config/locales/de.yml | ||
---|---|---|
861 | 861 |
button_move_and_follow: Move and follow |
862 | 862 |
setting_default_projects_modules: Default enabled modules for new projects |
863 | 863 |
setting_gravatar_default: Default Gravatar image |
864 |
error_issue_done_ratios_not_updated: Issue done ratios not updated. Please confirm you enabled 'Use issue status for done ratio' |
|
865 |
setting_use_issue_status_for_done_ratio: Use issue status for done ratio |
|
866 |
notice_issue_done_ratios_updated: Issue done ratios updated. |
|
867 |
label_update_issue_done_ratios: Update issue done ratios |
config/locales/el.yml | ||
---|---|---|
841 | 841 |
button_move_and_follow: Move and follow |
842 | 842 |
setting_default_projects_modules: Default enabled modules for new projects |
843 | 843 |
setting_gravatar_default: Default Gravatar image |
844 |
error_issue_done_ratios_not_updated: Issue done ratios not updated. Please confirm you enabled 'Use issue status for done ratio' |
|
845 |
setting_use_issue_status_for_done_ratio: Use issue status for done ratio |
|
846 |
notice_issue_done_ratios_updated: Issue done ratios updated. |
|
847 |
label_update_issue_done_ratios: Update issue done ratios |
config/locales/en.yml | ||
---|---|---|
147 | 147 |
notice_account_pending: "Your account was created and is now pending administrator approval." |
148 | 148 |
notice_default_data_loaded: Default configuration successfully loaded. |
149 | 149 |
notice_unable_delete_version: Unable to delete version. |
150 |
notice_issue_done_ratios_updated: Issue done ratios updated. |
|
150 | 151 |
|
151 | 152 |
error_can_t_load_default_data: "Default configuration could not be loaded: {{value}}" |
152 | 153 |
error_scm_not_found: "The entry or revision was not found in the repository." |
... | ... | |
156 | 157 |
error_no_tracker_in_project: 'No tracker is associated to this project. Please check the Project settings.' |
157 | 158 |
error_no_default_issue_status: 'No default issue status is defined. Please check your configuration (Go to "Administration -> Issue statuses").' |
158 | 159 |
error_can_not_reopen_issue_on_closed_version: 'An issue assigned to a closed version can not be reopened' |
159 |
|
|
160 |
error_issue_done_ratios_not_updated: "Issue done ratios not updated. Please confirm you enabled 'Use issue status for done ratio'" |
|
161 | ||
160 | 162 |
warning_attachments_not_saved: "{{count}} file(s) could not be saved." |
161 | 163 |
|
162 | 164 |
mail_subject_lost_password: "Your {{value}} password" |
... | ... | |
307 | 309 |
setting_sequential_project_identifiers: Generate sequential project identifiers |
308 | 310 |
setting_gravatar_enabled: Use Gravatar user icons |
309 | 311 |
setting_gravatar_default: Default Gravatar image |
312 |
setting_use_issue_status_for_done_ratio: Use issue status for done ratio |
|
310 | 313 |
setting_diff_max_lines_displayed: Max number of diff lines displayed |
311 | 314 |
setting_file_max_size_displayed: Max size of text files displayed inline |
312 | 315 |
setting_repository_log_display_limit: Maximum number of revisions displayed on file log |
... | ... | |
709 | 712 |
label_group_plural: Groups |
710 | 713 |
label_group_new: New group |
711 | 714 |
label_time_entry_plural: Spent time |
715 |
label_update_issue_done_ratios: Update issue done ratios |
|
712 | 716 |
|
713 | 717 |
button_login: Login |
714 | 718 |
button_submit: Submit |
config/locales/es.yml | ||
---|---|---|
882 | 882 |
button_move_and_follow: Move and follow |
883 | 883 |
setting_default_projects_modules: Default enabled modules for new projects |
884 | 884 |
setting_gravatar_default: Default Gravatar image |
885 |
error_issue_done_ratios_not_updated: Issue done ratios not updated. Please confirm you enabled 'Use issue status for done ratio' |
|
886 |
setting_use_issue_status_for_done_ratio: Use issue status for done ratio |
|
887 |
notice_issue_done_ratios_updated: Issue done ratios updated. |
|
888 |
label_update_issue_done_ratios: Update issue done ratios |
config/locales/fi.yml | ||
---|---|---|
871 | 871 |
button_move_and_follow: Move and follow |
872 | 872 |
setting_default_projects_modules: Default enabled modules for new projects |
873 | 873 |
setting_gravatar_default: Default Gravatar image |
874 |
error_issue_done_ratios_not_updated: Issue done ratios not updated. Please confirm you enabled 'Use issue status for done ratio' |
|
875 |
setting_use_issue_status_for_done_ratio: Use issue status for done ratio |
|
876 |
notice_issue_done_ratios_updated: Issue done ratios updated. |
|
877 |
label_update_issue_done_ratios: Update issue done ratios |
config/locales/fr.yml | ||
---|---|---|
864 | 864 |
field_active: Actif |
865 | 865 |
enumeration_system_activity: Activité système |
866 | 866 |
setting_gravatar_default: Default Gravatar image |
867 |
error_issue_done_ratios_not_updated: Issue done ratios not updated. Please confirm you enabled 'Use issue status for done ratio' |
|
868 |
setting_use_issue_status_for_done_ratio: Use issue status for done ratio |
|
869 |
notice_issue_done_ratios_updated: Issue done ratios updated. |
|
870 |
label_update_issue_done_ratios: Update issue done ratios |
config/locales/gl.yml | ||
---|---|---|
861 | 861 |
button_move_and_follow: Move and follow |
862 | 862 |
setting_default_projects_modules: Default enabled modules for new projects |
863 | 863 |
setting_gravatar_default: Default Gravatar image |
864 |
error_issue_done_ratios_not_updated: Issue done ratios not updated. Please confirm you enabled 'Use issue status for done ratio' |
|
865 |
setting_use_issue_status_for_done_ratio: Use issue status for done ratio |
|
866 |
notice_issue_done_ratios_updated: Issue done ratios updated. |
|
867 |
label_update_issue_done_ratios: Update issue done ratios |
config/locales/he.yml | ||
---|---|---|
845 | 845 |
button_move_and_follow: Move and follow |
846 | 846 |
setting_default_projects_modules: Default enabled modules for new projects |
847 | 847 |
setting_gravatar_default: Default Gravatar image |
848 |
error_issue_done_ratios_not_updated: Issue done ratios not updated. Please confirm you enabled 'Use issue status for done ratio' |
|
849 |
setting_use_issue_status_for_done_ratio: Use issue status for done ratio |
|
850 |
notice_issue_done_ratios_updated: Issue done ratios updated. |
|
851 |
label_update_issue_done_ratios: Update issue done ratios |
config/locales/hu.yml | ||
---|---|---|
866 | 866 |
button_move_and_follow: Move and follow |
867 | 867 |
setting_default_projects_modules: Default enabled modules for new projects |
868 | 868 |
setting_gravatar_default: Default Gravatar image |
869 |
error_issue_done_ratios_not_updated: Issue done ratios not updated. Please confirm you enabled 'Use issue status for done ratio' |
|
870 |
setting_use_issue_status_for_done_ratio: Use issue status for done ratio |
|
871 |
notice_issue_done_ratios_updated: Issue done ratios updated. |
|
872 |
label_update_issue_done_ratios: Update issue done ratios |
config/locales/it.yml | ||
---|---|---|
848 | 848 |
button_move_and_follow: Move and follow |
849 | 849 |
setting_default_projects_modules: Default enabled modules for new projects |
850 | 850 |
setting_gravatar_default: Default Gravatar image |
851 |
error_issue_done_ratios_not_updated: Issue done ratios not updated. Please confirm you enabled 'Use issue status for done ratio' |
|
852 |
setting_use_issue_status_for_done_ratio: Use issue status for done ratio |
|
853 |
notice_issue_done_ratios_updated: Issue done ratios updated. |
|
854 |
label_update_issue_done_ratios: Update issue done ratios |
config/locales/ja.yml | ||
---|---|---|
870 | 870 |
button_move_and_follow: Move and follow |
871 | 871 |
setting_default_projects_modules: Default enabled modules for new projects |
872 | 872 |
setting_gravatar_default: Default Gravatar image |
873 |
error_issue_done_ratios_not_updated: Issue done ratios not updated. Please confirm you enabled 'Use issue status for done ratio' |
|
874 |
setting_use_issue_status_for_done_ratio: Use issue status for done ratio |
|
875 |
notice_issue_done_ratios_updated: Issue done ratios updated. |
|
876 |
label_update_issue_done_ratios: Update issue done ratios |
config/locales/ko.yml | ||
---|---|---|
901 | 901 |
button_move_and_follow: Move and follow |
902 | 902 |
setting_default_projects_modules: Default enabled modules for new projects |
903 | 903 |
setting_gravatar_default: Default Gravatar image |
904 |
error_issue_done_ratios_not_updated: Issue done ratios not updated. Please confirm you enabled 'Use issue status for done ratio' |
|
905 |
setting_use_issue_status_for_done_ratio: Use issue status for done ratio |
|
906 |
notice_issue_done_ratios_updated: Issue done ratios updated. |
|
907 |
label_update_issue_done_ratios: Update issue done ratios |
config/locales/lt.yml | ||
---|---|---|
871 | 871 |
button_move_and_follow: Move and follow |
872 | 872 |
setting_default_projects_modules: Default enabled modules for new projects |
873 | 873 |
setting_gravatar_default: Default Gravatar image |
874 |
error_issue_done_ratios_not_updated: Issue done ratios not updated. Please confirm you enabled 'Use issue status for done ratio' |
|
875 |
setting_use_issue_status_for_done_ratio: Use issue status for done ratio |
|
876 |
notice_issue_done_ratios_updated: Issue done ratios updated. |
|
877 |
label_update_issue_done_ratios: Update issue done ratios |
config/locales/nl.yml | ||
---|---|---|
823 | 823 |
button_move_and_follow: Move and follow |
824 | 824 |
setting_default_projects_modules: Default enabled modules for new projects |
825 | 825 |
setting_gravatar_default: Default Gravatar image |
826 |
error_issue_done_ratios_not_updated: Issue done ratios not updated. Please confirm you enabled 'Use issue status for done ratio' |
|
827 |
setting_use_issue_status_for_done_ratio: Use issue status for done ratio |
|
828 |
notice_issue_done_ratios_updated: Issue done ratios updated. |
|
829 |
label_update_issue_done_ratios: Update issue done ratios |
config/locales/no.yml | ||
---|---|---|
836 | 836 |
button_move_and_follow: Move and follow |
837 | 837 |
setting_default_projects_modules: Default enabled modules for new projects |
838 | 838 |
setting_gravatar_default: Default Gravatar image |
839 |
error_issue_done_ratios_not_updated: Issue done ratios not updated. Please confirm you enabled 'Use issue status for done ratio' |
|
840 |
setting_use_issue_status_for_done_ratio: Use issue status for done ratio |
|
841 |
notice_issue_done_ratios_updated: Issue done ratios updated. |
|
842 |
label_update_issue_done_ratios: Update issue done ratios |
config/locales/pl.yml | ||
---|---|---|
864 | 864 |
button_move_and_follow: Move and follow |
865 | 865 |
setting_default_projects_modules: Default enabled modules for new projects |
866 | 866 |
setting_gravatar_default: Default Gravatar image |
867 |
error_issue_done_ratios_not_updated: Issue done ratios not updated. Please confirm you enabled 'Use issue status for done ratio' |
|
868 |
setting_use_issue_status_for_done_ratio: Use issue status for done ratio |
|
869 |
notice_issue_done_ratios_updated: Issue done ratios updated. |
|
870 |
label_update_issue_done_ratios: Update issue done ratios |
config/locales/pt-BR.yml | ||
---|---|---|
867 | 867 |
button_move_and_follow: Mover e seguir |
868 | 868 |
setting_default_projects_modules: Módulos habilitados por padrão para novos projetos |
869 | 869 |
setting_gravatar_default: Imagem Gravatar padrão |
870 |
error_issue_done_ratios_not_updated: Issue done ratios not updated. Please confirm you enabled 'Use issue status for done ratio' |
|
871 |
setting_use_issue_status_for_done_ratio: Use issue status for done ratio |
|
872 |
notice_issue_done_ratios_updated: Issue done ratios updated. |
|
873 |
label_update_issue_done_ratios: Update issue done ratios |
config/locales/pt.yml | ||
---|---|---|
853 | 853 |
button_move_and_follow: Move and follow |
854 | 854 |
setting_default_projects_modules: Default enabled modules for new projects |
855 | 855 |
setting_gravatar_default: Default Gravatar image |
856 |
error_issue_done_ratios_not_updated: Issue done ratios not updated. Please confirm you enabled 'Use issue status for done ratio' |
|
857 |
setting_use_issue_status_for_done_ratio: Use issue status for done ratio |
|
858 |
notice_issue_done_ratios_updated: Issue done ratios updated. |
|
859 |
label_update_issue_done_ratios: Update issue done ratios |
config/locales/ro.yml | ||
---|---|---|
838 | 838 |
button_move_and_follow: Move and follow |
839 | 839 |
setting_default_projects_modules: Default enabled modules for new projects |
840 | 840 |
setting_gravatar_default: Default Gravatar image |
841 |
error_issue_done_ratios_not_updated: Issue done ratios not updated. Please confirm you enabled 'Use issue status for done ratio' |
|
842 |
setting_use_issue_status_for_done_ratio: Use issue status for done ratio |
|
843 |
notice_issue_done_ratios_updated: Issue done ratios updated. |
|
844 |
label_update_issue_done_ratios: Update issue done ratios |
config/locales/ru.yml | ||
---|---|---|
949 | 949 |
button_move_and_follow: Переместить и перейти |
950 | 950 |
setting_default_projects_modules: Включенные по умолчанию модули для новых проектов |
951 | 951 |
setting_gravatar_default: Изображение Gravatar по умолчанию |
952 |
error_issue_done_ratios_not_updated: Issue done ratios not updated. Please confirm you enabled 'Use issue status for done ratio' |
|
953 |
setting_use_issue_status_for_done_ratio: Use issue status for done ratio |
|
954 |
notice_issue_done_ratios_updated: Issue done ratios updated. |
|
955 |
label_update_issue_done_ratios: Update issue done ratios |
config/locales/sk.yml | ||
---|---|---|
840 | 840 |
button_move_and_follow: Move and follow |
841 | 841 |
setting_default_projects_modules: Default enabled modules for new projects |
842 | 842 |
setting_gravatar_default: Default Gravatar image |
843 |
error_issue_done_ratios_not_updated: Issue done ratios not updated. Please confirm you enabled 'Use issue status for done ratio' |
|
844 |
setting_use_issue_status_for_done_ratio: Use issue status for done ratio |
|
845 |
notice_issue_done_ratios_updated: Issue done ratios updated. |
|
846 |
label_update_issue_done_ratios: Update issue done ratios |
config/locales/sl.yml | ||
---|---|---|
837 | 837 |
button_move_and_follow: Move and follow |
838 | 838 |
setting_default_projects_modules: Default enabled modules for new projects |
839 | 839 |
setting_gravatar_default: Default Gravatar image |
840 |
error_issue_done_ratios_not_updated: Issue done ratios not updated. Please confirm you enabled 'Use issue status for done ratio' |
|
841 |
setting_use_issue_status_for_done_ratio: Use issue status for done ratio |
|
842 |
notice_issue_done_ratios_updated: Issue done ratios updated. |
|
843 |
label_update_issue_done_ratios: Update issue done ratios |
config/locales/sr.yml | ||
---|---|---|
856 | 856 |
button_move_and_follow: Move and follow |
857 | 857 |
setting_default_projects_modules: Default enabled modules for new projects |
858 | 858 |
setting_gravatar_default: Default Gravatar image |
859 |
error_issue_done_ratios_not_updated: Issue done ratios not updated. Please confirm you enabled 'Use issue status for done ratio' |
|
860 |
setting_use_issue_status_for_done_ratio: Use issue status for done ratio |
|
861 |
notice_issue_done_ratios_updated: Issue done ratios updated. |
|
862 |
label_update_issue_done_ratios: Update issue done ratios |
config/locales/sv.yml | ||
---|---|---|
889 | 889 |
button_move_and_follow: Move and follow |
890 | 890 |
setting_default_projects_modules: Default enabled modules for new projects |
891 | 891 |
setting_gravatar_default: Default Gravatar image |
892 |
error_issue_done_ratios_not_updated: Issue done ratios not updated. Please confirm you enabled 'Use issue status for done ratio' |
|
893 |
setting_use_issue_status_for_done_ratio: Use issue status for done ratio |
|
894 |
notice_issue_done_ratios_updated: Issue done ratios updated. |
|
895 |
label_update_issue_done_ratios: Update issue done ratios |
config/locales/th.yml | ||
---|---|---|
838 | 838 |
button_move_and_follow: Move and follow |
839 | 839 |
setting_default_projects_modules: Default enabled modules for new projects |
840 | 840 |
setting_gravatar_default: Default Gravatar image |
841 |
error_issue_done_ratios_not_updated: Issue done ratios not updated. Please confirm you enabled 'Use issue status for done ratio' |
|
842 |
setting_use_issue_status_for_done_ratio: Use issue status for done ratio |
|
843 |
notice_issue_done_ratios_updated: Issue done ratios updated. |
|
844 |
label_update_issue_done_ratios: Update issue done ratios |
config/locales/tr.yml | ||
---|---|---|
868 | 868 |
button_move_and_follow: Move and follow |
869 | 869 |
setting_default_projects_modules: Default enabled modules for new projects |
870 | 870 |
setting_gravatar_default: Default Gravatar image |
871 |
error_issue_done_ratios_not_updated: Issue done ratios not updated. Please confirm you enabled 'Use issue status for done ratio' |
|
872 |
setting_use_issue_status_for_done_ratio: Use issue status for done ratio |
|
873 |
notice_issue_done_ratios_updated: Issue done ratios updated. |
|
874 |
label_update_issue_done_ratios: Update issue done ratios |
config/locales/uk.yml | ||
---|---|---|
837 | 837 |
button_move_and_follow: Move and follow |
838 | 838 |
setting_default_projects_modules: Default enabled modules for new projects |
839 | 839 |
setting_gravatar_default: Default Gravatar image |
840 |
error_issue_done_ratios_not_updated: Issue done ratios not updated. Please confirm you enabled 'Use issue status for done ratio' |
|
841 |
setting_use_issue_status_for_done_ratio: Use issue status for done ratio |
|
842 |
notice_issue_done_ratios_updated: Issue done ratios updated. |
|
843 |
label_update_issue_done_ratios: Update issue done ratios |
config/locales/vi.yml | ||
---|---|---|
900 | 900 |
button_move_and_follow: Move and follow |
901 | 901 |
setting_default_projects_modules: Default enabled modules for new projects |
902 | 902 |
setting_gravatar_default: Default Gravatar image |
903 |
error_issue_done_ratios_not_updated: Issue done ratios not updated. Please confirm you enabled 'Use issue status for done ratio' |
|
904 |
setting_use_issue_status_for_done_ratio: Use issue status for done ratio |
|
905 |
notice_issue_done_ratios_updated: Issue done ratios updated. |
|
906 |
label_update_issue_done_ratios: Update issue done ratios |
config/locales/zh-TW.yml | ||
---|---|---|
932 | 932 |
enumeration_doc_categories: 文件分類 |
933 | 933 |
enumeration_activities: 活動 (時間追蹤) |
934 | 934 |
enumeration_system_activity: 系統活動 |
935 |
error_issue_done_ratios_not_updated: Issue done ratios not updated. Please confirm you enabled 'Use issue status for done ratio' |
|
936 |
setting_use_issue_status_for_done_ratio: Use issue status for done ratio |
|
937 |
notice_issue_done_ratios_updated: Issue done ratios updated. |
|
938 |
label_update_issue_done_ratios: Update issue done ratios |
config/locales/zh.yml | ||
---|---|---|
865 | 865 |
button_move_and_follow: Move and follow |
866 | 866 |
setting_default_projects_modules: Default enabled modules for new projects |
867 | 867 |
setting_gravatar_default: Default Gravatar image |
868 |
error_issue_done_ratios_not_updated: Issue done ratios not updated. Please confirm you enabled 'Use issue status for done ratio' |
|
869 |
setting_use_issue_status_for_done_ratio: Use issue status for done ratio |
|
870 |
notice_issue_done_ratios_updated: Issue done ratios updated. |
|
871 |
label_update_issue_done_ratios: Update issue done ratios |
config/settings.yml | ||
---|---|---|
129 | 129 |
- updated_on |
130 | 130 |
display_subprojects_issues: |
131 | 131 |
default: 1 |
132 |
issue_status_for_done_ratio: |
|
133 |
default: 0 |
|
132 | 134 |
default_projects_public: |
133 | 135 |
default: 1 |
134 | 136 |
default_projects_modules: |
db/migrate/20091123212029_add_default_done_ratio_to_issue_status.rb | ||
---|---|---|
1 |
class AddDefaultDoneRatioToIssueStatus < ActiveRecord::Migration |
|
2 |
def self.up |
|
3 |
add_column :issue_statuses, :default_done_ratio, :integer |
|
4 |
end |
|
5 | ||
6 |
def self.down |
|
7 |
remove_column :issue_statuses, :default_one_ratio |
|
8 |
end |
|
9 |
end |
public/stylesheets/application.css | ||
---|---|---|
698 | 698 |
.icon-move { background-image: url(../images/move.png); } |
699 | 699 |
.icon-save { background-image: url(../images/save.png); } |
700 | 700 |
.icon-cancel { background-image: url(../images/cancel.png); } |
701 |
.icon-multiple { background-image: url(../images/table_multiple.png); } |
|
701 | 702 |
.icon-folder { background-image: url(../images/folder.png); } |
702 | 703 |
.open .icon-folder { background-image: url(../images/folder_open.png); } |
703 | 704 |
.icon-package { background-image: url(../images/package.png); } |
test/functional/issue_statuses_controller_test.rb | ||
---|---|---|
70 | 70 |
assert_redirected_to 'issue_statuses/list' |
71 | 71 |
assert_not_nil IssueStatus.find_by_id(1) |
72 | 72 |
end |
73 | ||
74 |
context "on POST to :update_issue_done_ratio" do |
|
75 |
context "with Setting.issue_status_for_done_ratio off" do |
|
76 |
setup do |
|
77 |
Setting.issue_status_for_done_ratio = 0 |
|
78 |
post :update_issue_done_ratio |
|
79 |
end |
|
80 | ||
81 |
should_set_the_flash_to /not updated/ |
|
82 |
should_redirect_to('the list') { '/issue_statuses/list' } |
|
83 |
end |
|
84 | ||
85 |
context "with Setting.issue_status_for_done_ratio on" do |
|
86 |
setup do |
|
87 |
Setting.issue_status_for_done_ratio = 1 |
|
88 |
post :update_issue_done_ratio |
|
89 |
end |
|
90 | ||
91 |
should_set_the_flash_to /Issue done ratios updated/ |
|
92 |
should_redirect_to('the list') { '/issue_statuses/list' } |
|
93 |
end |
|
94 |
end |
|
95 |
|
|
73 | 96 |
end |
test/unit/issue_status_test.rb | ||
---|---|---|
66 | 66 |
status.reload |
67 | 67 |
assert status.is_default? |
68 | 68 |
end |
69 | ||
70 |
context "#update_done_ratios" do |
|
71 |
setup do |
|
72 |
@issue = Issue.find(1) |
|
73 |
@issue_status = IssueStatus.find(1) |
|
74 |
@issue_status.update_attribute(:default_done_ratio, 50) |
|
75 |
end |
|
76 |
|
|
77 |
context "with Setting.issue_status_for_done_ratio off" do |
|
78 |
setup do |
|
79 |
Setting.issue_status_for_done_ratio = 0 |
|
80 |
end |
|
81 |
|
|
82 |
should "change nothing" do |
|
83 |
assert_equal 0, Issue.count(:conditions => {:done_ratio => 50}) |
|
84 |
end |
|
85 |
end |
|
86 | ||
87 |
context "with Setting.issue_status_for_done_ratio on" do |
|
88 |
setup do |
|
89 |
Setting.issue_status_for_done_ratio = 1 |
|
90 |
end |
|
91 |
|
|
92 |
should "update all of the issue's done_ratios to match their Issue Status" do |
|
93 |
IssueStatus.update_issue_done_ratios |
|
94 |
|
|
95 |
issues = Issue.find([1,3,4,5,6,7,9,10]) |
|
96 |
issues.each do |issue| |
|
97 |
assert_equal @issue_status, issue.status |
|
98 |
assert_equal 50, issue.read_attribute(:done_ratio) |
|
99 |
end |
|
100 |
end |
|
101 |
end |
|
102 |
end |
|
69 | 103 |
end |
test/unit/issue_test.rb | ||
---|---|---|
400 | 400 |
end |
401 | 401 |
assert ActionMailer::Base.deliveries.empty? |
402 | 402 |
end |
403 | ||
404 |
context "#done_ratio" do |
|
405 |
setup do |
|
406 |
@issue = Issue.find(1) |
|
407 |
@issue_status = IssueStatus.find(1) |
|
408 |
@issue_status.update_attribute(:default_done_ratio, 50) |
|
409 |
end |
|
410 |
|
|
411 |
context "with Setting.issue_status_for_done_ratio off" do |
|
412 |
setup do |
|
413 |
Setting.issue_status_for_done_ratio = 0 |
|
414 |
end |
|
415 |
|
|
416 |
should "read the issue's field" do |
|
417 |
assert_equal 0, @issue.done_ratio |
|
418 |
end |
|
419 |
end |
|
420 | ||
421 |
context "with Setting.issue_status_for_done_ratio on" do |
|
422 |
setup do |
|
423 |
Setting.issue_status_for_done_ratio = 1 |
|
424 |
end |
|
425 |
|
|
426 |
should "read the Issue Status's default done ratio" do |
|
427 |
assert_equal 50, @issue.done_ratio |
|
428 |
end |
|
429 |
end |
|
430 |
end |
|
431 | ||
432 |
context "#update_done_ratio_from_issue_status" do |
|
433 |
setup do |
|
434 |
@issue = Issue.find(1) |
|
435 |
@issue_status = IssueStatus.find(1) |
|
436 |
@issue_status.update_attribute(:default_done_ratio, 50) |
|
437 |
end |
|
438 |
|
|
439 |
context "with Setting.issue_status_for_done_ratio off" do |
|
440 |
setup do |
|
441 |
Setting.issue_status_for_done_ratio = 0 |
|
442 |
end |
|
443 |
|
|
444 |
should "not change the issue" do |
|
445 |
@issue.update_done_ratio_from_issue_status |
|
446 | ||
447 |
assert_equal 0, @issue.done_ratio |
|
448 |
end |
|
449 |
end |
|
450 | ||
451 |
context "with Setting.issue_status_for_done_ratio on" do |
|
452 |
setup do |
|
453 |
Setting.issue_status_for_done_ratio = 1 |
|
454 |
end |
|
455 |
|
|
456 |
should "not change the issue's done ratio" do |
|
457 |
@issue.update_done_ratio_from_issue_status |
|
458 | ||
459 |
assert_equal 50, @issue.done_ratio |
|
460 |
end |
|
461 |
end |
|
462 |
end |
|
403 | 463 |
end |