2010-11-29

Redmine Importerを使わせていただきました。

Redmineに関する重大なニュースが流れて、びっくりした週末。
何が自分にできるんだろうな....と思いつつも、なかなか使うばかりで提供ができません。お恥ずかしい限りです。

* * *
さて、先日、「チケットを一括でインポートしたいんだけど、カスタムフィールドも一緒に登録できますか?」というリクエストを同僚からいただきました。
今まででも、下記のプラグインを利用していたのですが、カスタムフィールドはNGでした。

いろいろ探してみたところ、@yusuke_kokubo さんから、もう一つのプラグインを紹介していただきました。(ありがとうございます!)

こちらのプラグイン、有難いことにカスタムフィールドからファイルのエンコーディング指定まで可能。(ありがとうございます!)
※残念ながら、上記2つのプラグインは名前がかぶってしまうので、そのままでは同居は出来ません。

さて、junoさんのプラグインを、Redmine0.9xで試したところ、まず言語ファイルの場所が変わっているため、config/locales 以下にファイルを移動させました。このあたりは、多くの皆さんがBlogに書かれている通りで、インデントの調整なども行いました。

その後、こちらの記事も拝見し、NKFによる文字コードの変換の部分を、1行づつ変換ではなく、ファイルを読み込むところで一気に変換するよう、調整してみました。

加えてみた変更は、以下の通り。

  • 読み込み時にNKFでまとめて変換
  • Permissionの調整 (Controllerの :authorize を利用)
  • ルーティングを調整 (/:project/:controller/:action の順にしてみた)
  • メッセージの調整
  • プラグインに関しては、r-labs チュートリアルを参考にしています!

せっかくなので、Gitの練習用に、junoさんのソースをフォークさせていただいたき、そちらに変更分を登録してみました
たぶん1.0xでも動くかな...と思っていますが、不具合があったら修正してみます。

なお、一括インポートの注意点ですが、チケットが作成/更新されると、通常のフローと同じで、メールが送信されます。

Issue.saveのところで、コードには明示しなくとも、Issue Observerがメール送信のコードを呼び出すようです。
一括登録時は、メールが出ないように設定できるといいなあ...と思いました。

1 件のコメント:

  1. 一時的にメール送信をとめることができそうなプラグインを発見。これでテストしてみます。

    http://www.redmine.org/wiki/redmine/PluginRedmineStealth

    返信削除