概要
Redmine の新しいチケットの作成フォームで「ステータス」項目の表示を隠すためのパッチです。
対応環境
Redmine 2.3.1.devel (2013.06.15 更新) で動作確認済。
他の環境は試していません。
ちなみに僕の環境は github.com:redmine/redmine(master) から構築しています。
チケット作成フォームはできる限りシンプルにしよう
チケット作成フォームには不要な項目は極力表示させたくないものです。
Redmineを運用することによって、多くの人からバグ報告や機能要望を受け取ることができますが、
それを入力する人は非エンジニアであることが多々あります。
そこでなんだか入力項目がたくさんありすぎると「ウッ」という気持ちになりますね。
エンジニアだって「ウッ」ってなります。
報告する気力がいくらか削がれることもあるかもしれません。
プロジェクトの目的にもよりますし、さじ加減もあるのですが、
チケットの入力項目はできるだけ少ないほうがうまく運用できる可能性が高いと僕は考えています。
サンプルとして、僕が現在運用している Redmine の画面をお見せします。
「ステータス」以外の項目は管理設定でがんばれば隠せるのですが、
「ステータス」だけは Redmine を改造しないと無理でした。(画像は改造後の画面です)
改造の適用方法
https://gist.github.com/kobake/5821205 に改造パッチを上げてあります。
Redmine をインストールしてあるディレクトリで以下を実行すればOKです。
必要であれば Redmine のキャッシュ削除や再起動しましょう。(僕の環境ではビューの変更を即時適用する設定にしているので必要なかった)
$ wget https://gist.github.com/kobake/5821205/raw/fba2309531f1110e608bfa27458842b0bd68142c/redmine_hide_status_when_new_ticket_form.patch
$ patch -p0 < redmine_hide_status_when_new_ticket_form.patch
内容
app/views/issues/_attributes.html.erb をいじってます。
diff --git app/views/issues/_attributes.html.erb app/views/issues/_attributes.html.erb
index 0e29701..830dfc6 100644
--- app/views/issues/_attributes.html.erb
+++ app/views/issues/_attributes.html.erb
@@ -2,7 +2,8 @@
<div class="splitcontent">
<div class="splitcontentleft">
-<% if @issue.safe_attribute?('status_id') && @allowed_statuses.present? %>
+<% if params[:action] == 'new' %>
+<% elsif @issue.safe_attribute?('status_id') && @allowed_statuses.present? %>
<p><%= f.select :status_id, (@allowed_statuses.collect {|p| [p.name, p.id]}), {:required => true},
:onchange => "updateIssueFrom('#{escape_javascript project_issue_form_path(@project, :id => @issue, :format => 'js')}')" %></p>
Redmine 本家側の関連フィーチャー
Redmine 本家側でも様々な項目を非表示にするための対応が進行中です。
(まだ master にコミットはされていない)
Feature #12005: Mightful workflow field enhancement: hide - Redmine
このフィーチャーのパッチを適用してみましたが、
「ステータス」項目を非表示にすることは今の時点ではできませんでした。
弁解
Rails もわからない、Redmine の設計もわからない、そんな状態で手探りで grep かけまくって対応しました。
なので、今回の解決の仕方はもしかしたらとても Not cool な方法かもしれません。
「これはダメだよ!」「こうしたほうが良いよ!」っていう情報がありましたら教えていただけると嬉しいです。