Redmine Importerを使わせていただきました。
Redmineに関する重大なニュースが流れて、びっくりした週末。
何が自分にできるんだろうな....と思いつつも、なかなか使うばかりで提供ができません。お恥ずかしい限りです。
何が自分にできるんだろうな....と思いつつも、なかなか使うばかりで提供ができません。お恥ずかしい限りです。
* * *
さて、先日、「チケットを一括でインポートしたいんだけど、カスタムフィールドも一緒に登録できますか?」というリクエストを同僚からいただきました。
今まででも、下記のプラグインを利用していたのですが、カスタムフィールドはNGでした。
いろいろ探してみたところ、@yusuke_kokubo さんから、もう一つのプラグインを紹介していただきました。(ありがとうございます!)
こちらのプラグイン、有難いことにカスタムフィールドからファイルのエンコーディング指定まで可能。(ありがとうございます!)
※残念ながら、上記2つのプラグインは名前がかぶってしまうので、そのままでは同居は出来ません。
さて、junoさんのプラグインを、Redmine0.9xで試したところ、まず言語ファイルの場所が変わっているため、config/locales 以下にファイルを移動させました。このあたりは、多くの皆さんがBlogに書かれている通りで、インデントの調整なども行いました。
その後、こちらの記事も拝見し、NKFによる文字コードの変換の部分を、1行づつ変換ではなく、ファイルを読み込むところで一気に変換するよう、調整してみました。
加えてみた変更は、以下の通り。
- 読み込み時にNKFでまとめて変換
- Permissionの調整 (Controllerの :authorize を利用)
- ルーティングを調整 (/:project/:controller/:action の順にしてみた)
- メッセージの調整
せっかくなので、Gitの練習用に、junoさんのソースをフォークさせていただいたき、そちらに変更分を登録してみました。
たぶん1.0xでも動くかな...と思っていますが、不具合があったら修正してみます。
なお、一括インポートの注意点ですが、チケットが作成/更新されると、通常のフローと同じで、メールが送信されます。
Issue.saveのところで、コードには明示しなくとも、Issue Observerがメール送信のコードを呼び出すようです。
一括登録時は、メールが出ないように設定できるといいなあ...と思いました。
一時的にメール送信をとめることができそうなプラグインを発見。これでテストしてみます。
返信削除http://www.redmine.org/wiki/redmine/PluginRedmineStealth