Redmine: 終了した Target Version を表示しないパッチ (不完全)
Redmine のロードマップ機能は便利ですが、週に数回という頻繁なリリースを行っていると Target Version が多くなりすぎてチケットの操作に不都合が生じてきます。以下のパッチは、チケットの編集時に完了したバージョンを表示しないように変更します。変更内容は非常に単純で、 Target Version 欄に完了したバージョンを表示しないようにしているだけです。
Index: app/views/issues/context_menu.rhtml =================================================================== --- app/views/issues/context_menu.rhtml (リビジョン 1782) +++ app/views/issues/context_menu.rhtml (作業コピー) @@ -29,7 +29,7 @@ <li class="folder"> <a href="#" class="submenu"><%= l(:field_fixed_version) %></a> <ul> - <% @project.versions.sort.each do |v| -%> + <% @project.versions.reject{|v| v.completed?}.sort.each do |v| -%> <li><%= context_menu_link v.name, {:controller => 'issues', :action => 'bulk_edit', :ids => @issues.collect(&:id), 'fixed_version_id' => v, :back_to => @back}, :method => :post, :selected => (@issue && v == @issue.fixed_version), :disabled => !@can[:update] %></li> <% end -%> Index: app/views/issues/_form.rhtml =================================================================== --- app/views/issues/_form.rhtml (リビジョン 1782) +++ app/views/issues/_form.rhtml (作業コピー) @@ -30,7 +30,7 @@ {:controller => 'projects', :action => 'add_issue_category', :id => @project}, :class => 'small', :tabindex => 199) if authorize_for('projects', 'add_issue_category') %></p> <%= content_tag('p', f.select(:fixed_version_id, - (@project.versions.sort.collect {|v| [v.name, v.id]}), + (@project.versions.reject{|v| v.completed?}.sort.collect {|v| [v.name, v.id]}), { :include_blank => true })) unless @project.versions.empty? %> </div>
これで、マイルストーンが頻繁 (というのもおかしい気がしますが ^^;) でも大丈夫ですね。なお、上記パッチには少し不具合があり、終了したチケットを再編集するときに Target Version 欄が空白になるという問題があります。気になる場合は修正して使ってください。