QA #267
未完了
ユーザ情報のカスタムフィールド値をチケットにも表示させたい
Tamura Shinji さんが7年以上前に追加.
約6年前に更新.
説明
■現象/要望¶
社内利用において、1チケットに対して担当部署、担当者が複数フィールド存在するチケットがあります。
また、ユーザ情報には、カスタムフィールドにて部署の情報を入れています(LDAP Syncプラグインにて自動グループ作成とActive Directoryから部署情報を登録)
チケット作成時に、該当担当者を選択した場合に担当部署を自動的に入力させるようなことはできませんでしょうか?
http://www.redmine.org/plugins/computed_custom_field
でいろいろ試しているのですが、どうにもうまくいかず。。。
下手な英語でgitの方にも入れてはいますが。。。
所属部署を自動設定したいニーズはありますね。
画面更新の観点では、↓が参考になるかもしれません。
Redmine: カスタムフィールドを連動させる(親の値に応じて、子を絞り込む) (View customize plugin)
http://blog.enjoyxstudy.com/entry/2016/04/03/000000
識別だけでしたら、
firstname/lastnameを、姓名/所属にする方法もあります。
入力時の画面表示更新がMUSTで無ければ、
チケット保存時に、カスタムフィールドを設定する方法も考えられます。
(この場合、一旦チケット保存し、番号確定-CFアクセス可能とした方が楽)
既存Pluginの設定問題で引っかかるよりは、業務ロジックを入れ込んだ方が楽かもしれません。
サンプルが溜まれば役に立つかな・・
最初、view customizeでできるかと思い先のURLも見ていたのですが、一致させる項目がなく。。。
また、ユーザ情報のカスタムフィールドになるので、チケット上には情報としてないんですよね。
おっしゃる通り、氏名で片方を部署名にというのもあるにはあるのですが、既にカスタムフィールドで部署登録が定常化していて
複数のRedmineホストでも同様の運用をしているので変えにくく。。。。
computed custom fieldもそうなのですが、これもチケット保存時に反映されます。
チケット保存時に、カスタムフィールドを設定する方法も考えられます。
(この場合、一旦チケット保存し、番号確定-CFアクセス可能とした方が楽)
の場合はソースを変更するのでしょうか?
redmine_custom_workflowは名前だけ見てできそうにないなと無視してましたが、hookできるんですね。
だったら、どうにかなるかも。。。
すぐにコードが思いつかないですが。。。
まずはIssue Extensionsのソース追い掛けて感じ掴むのが良いかと思います。
特に /lib/issue_extensions_issue_hooks.rb
- ステータス を 新規 から 回答済 に変更
- 対象バージョン を Plugin対応済 にセット
Computed Custom field pluginの作者から教えてもらいましたので共有します。
user = User.find_by_id custom_field_value(24)
user.custom_field_value(1) if user.present?
でできました。
custom_field_value(24)は、チケットのユーザ属性のカスタムフィールドです
custom_field_value(1)は、ユーザのテキスト属性のカスタムフィールドです
これで、チケットからユーザの任意のフィールドを呼び出して登録できるようになりました
解決した様で何よりです。
自分のテスト環境でも試してみました。
ユーザサイドで簡単なサンプルを準備すれば、気楽に使えそうですね。
(Rubyの基本的な文法知識は必要ですが)
(例)定義されていない場合、代わりに担当者/作成者の情報を設定したい場合
user_cf24 = User.find_by_id custom_field_value(24)
user=author
user=assigned_to if assigned_to.present?
user=user_cf24 if user_cf24.present?
user.custom_field_value(1) if user.present?
そうですね。
view customizeと同様手軽です。
まさかここまでのコードかけるとは思ってもいませんでした。。。
#どこに付けるか迷いましたが。。
computedのソースとなるCFには、初期値設定した方が良さそうです。
単純な加算で、新規チケット作成時にエラー発生しました。
Error while formula computing in field "sum" — undefined method `*' for nil:NilClass
あぁ、たしかに。
エラー処理は必要ですね。
計算に必要なところを必須入力にするとかで工夫はしています。
他の形式にエクスポート: Atom
PDF