Redmine 3.0 で、コピーして作ったチケットのステータスを変更しても、コピー元のステータスで登録されてしまうといった問題が発生しました。
問題が発生する手順は下記のとおりです。
- チケットをコピー(デフォルトのステータスではないもの)
-
ステータスを変更(デフォルトステータスに)して作成
- ステータスがコピー元のステータスで登録されてしまう!!
最新のRedmine3.0.1にあげても発生したので、どこが問題なのかなーとソースながめて、とりあえず問題箇所っぽいとこがわかったので、それをTwitterでつぶやいていたところ、@g_maeda さんに拾ってもらって、ちゃんとした解決方法も教えていただきました。
下記がその一連のやり取りになります。(自分がTwitter見るのが家に帰ってからなので、レスがとても遅いです…)
Redmine3.0で、チケットをコピーして、ステータス変えて登録しても、コピー元のステータスに戻って登録となってしまう。3.0.1 でも同じ。 こんなバグが残っているのも変な感じなので、環境的に問題(入れているプラグインとか)がないかみてるけど不明。。 #redmine
— onozaty (@onozaty) 2015, 4月 2
@onozaty 問題箇所はわかったけど、そもそもそれが何のための処理なのかわからないので、ちょっとどうしようかな、、、
— onozaty (@onozaty) 2015, 4月 2
@onozaty よろしければ現時点で把握されている情報でhttp://t.co/wPJTDg14AHにDefectのチケットを作っていただけませんか?
— MAEDA, Go (@g_maeda) 2015, 4月 2
@g_maeda 了解しました。チケットあげておきます。
— onozaty (@onozaty) 2015, 4月 3
@g_maeda http://t.co/qeFjcjE2CW であげさせていただきました。
— onozaty (@onozaty) 2015, 4月 3
@g_maeda issues_controller.rbのbuild_new_issue_from_paramsメソッドで、パラメータからstatus_id消しているところがあって、そこをコメントアウトでうまく動きましたが、そもそも何のための処理だか判断つきませんでした…
— onozaty (@onozaty) 2015, 4月 3
@onozaty r13535で入ったんですね。トラッカーごとのデフォルトステータスの実装過程。 http://t.co/6qYeFwTyft
— MAEDA, Go (@g_maeda) 2015, 4月 4
@onozaty コメントアウトした状態だとトラッカーごとのデフォルトステータス設定機能がうまく動きませんでした。たとえば新しいチケット画面でトラッカーを切り替えたとき、ステータスがそのトラッカーのデフォルトステータスに切り替わりません。
— MAEDA, Go (@g_maeda) 2015, 4月 4
@g_maeda いろいろご確認いただきありがとうございます! なるほど、消していたのは、デフォルトステータスの状態でトラッカー切り替えたら、そのステータスを引き継がずに、切り替え先のトラッカーのデフォルトステータスにするため、、って感じですかね。
— onozaty (@onozaty) 2015, 4月 4
@onozaty 試しに http://t.co/e86sjrQebE のようにIssuesControllerを変更したら、一応直ったように見えます。
— MAEDA, Go (@g_maeda) 2015, 4月 5
@g_maeda ありがとうございます!参考にさせていただきます。
— onozaty (@onozaty) 2015, 4月 5
ということで、@g_maeda さんのおかげで、週末のうちに対応方法までわかりました。こうやって詳しい人に拾ってもらって、すぐに解決に向かうのってすばらしいですね。本当にありがとうございました。
ちなみに、チケットコピーの際に、コピー元のチケットへの関連付けや添付ファイルのコピーを行わなくてOKならば、View customize plugin使って、コピー元のチケット番号を、チケット作成時に送らなければ、回避することができます。ソースを変更するのが難しい場合は、ぜひ参考にしてみてください。(金曜の時点では、それで暫定対処していました)