diff --git a/app/models/changeset.rb b/app/models/changeset.rb index 330338a..21e14fc 100644 --- a/app/models/changeset.rb +++ b/app/models/changeset.rb @@ -55,8 +55,9 @@ class Changeset < ActiveRecord::Base ref_keywords = Setting.commit_ref_keywords.downcase.split(",") # keywords used to fix issues fix_keywords = Setting.commit_fix_keywords.downcase.split(",") - # status applied + # status and optional done ratio applied fix_status = IssueStatus.find_by_id(Setting.commit_fix_status_id) + done_ratio = Setting.commit_fix_done_ratio.blank? ? nil : Setting.commit_fix_done_ratio.to_i kw_regexp = (ref_keywords + fix_keywords).collect{|kw| Regexp.escape(kw.strip)}.join("|") return if kw_regexp.blank? @@ -75,6 +76,7 @@ class Changeset < ActiveRecord::Base # don't change the status is the issue is already closed next if issue.status.is_closed? issue.status = fix_status + issue.done_ratio = done_ratio if done_ratio issue.save end end diff --git a/app/views/settings/edit.rhtml b/app/views/settings/edit.rhtml index 736e6c4..5033398 100644 --- a/app/views/settings/edit.rhtml +++ b/app/views/settings/edit.rhtml @@ -85,6 +85,7 @@
<%= text_field_tag 'settings[commit_fix_keywords]', Setting.commit_fix_keywords, :size => 30 %>
<%= l(:label_applied_status) %>: <%= select_tag 'settings[commit_fix_status_id]', options_for_select( [["", 0]] + IssueStatus.find(:all).collect{|status| [status.name, status.id.to_s]}, Setting.commit_fix_status_id) %>
+ <%= l(:field_done_ratio) %>: <%= select_tag 'settings[commit_fix_done_ratio]', options_for_select( [[l(:label_no_change_option), '']] + ((0..10).to_a.collect {|r| ["#{r*10} %", "#{r*10}"] }), Setting.commit_fix_done_ratio) %>
<%= l(:text_comma_separated) %>