QA #906
未完了新しいチケットの作成時にデフォルトで任意のウォッチャーにチェックを入れたい。
0%
説明
バージョン:Redmine3.4.3-1
URLから指定する形ではなく何か方法はないでしょうか。
ファイル
奈良 裕記 さんが5年以上前に更新
下記2案出してみます。テスト環境で試していただければと。
本家8568のパッチ利用¶
本家チケットでは下記があり、Redmine3.2時点のパッチが出ています。(そのままで動作するかは疑問ですが)
add ability to designate default watchers by tracker/project
https://www.redmine.org/issues/8568
watchersテーブルへの登録¶
watchersテーブルに全Issue分のwatchersを追加する方法も考えられます。
(本来は起票時に追加くらいするべきですが極論w)
十分なチケット数分、先にレコード追加しておけば、結果的にはチケット作成時に自動的にwatchersに追加されると思われます。
下記のwatchable_idがチケット番号、user_idがRedmine上のユーザIDです。(Redmine内で一意)
MariaDB [redmine]> desc watchers; +----------------+--------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +----------------+--------------+------+-----+---------+----------------+ | id | int(11) | NO | PRI | NULL | auto_increment | | watchable_type | varchar(255) | NO | | | | | watchable_id | int(11) | NO | MUL | 0 | | | user_id | int(11) | YES | MUL | NULL | | +----------------+--------------+------+-----+---------+----------------+ 4 rows in set (0.00 sec) MariaDB [redmine]> select * from watchers; +----+----------------+--------------+---------+ | id | watchable_type | watchable_id | user_id | +----+----------------+--------------+---------+ | 1 | Issue | 17786 | 1 | | 2 | Issue | 17786 | 5 | +----+----------------+--------------+---------+ 2 rows in set (0.00 sec)
Kawai takashi さんが約5年前に更新
- ファイル タスクの場合.png タスクの場合.png を追加
- ファイル QAの場合.png QAの場合.png を追加
- ファイル それ以外の場合.png それ以外の場合.png を追加
View Customize Plugin (V.1.2.2)で実現してみました。
どのような条件の場合にどのユーザーをデフォルトで任意のウォッチャーにしたいのかが記述されていませんでしたので、例としてトラッカー別にデフォルトで任意のウォッチャーを指定するようにしてみました。
パスのパターン:/issues/new
挿入位置:チケット入力欄の下
種別:JavaScript
$(function() {
var tracker_id = $('#issue_tracker_id').val();
$('#issue_tracker_id').on('change', function(){//トラッカーが変わったら一旦チェックをクリア
$('input[name*="issue[watcher_user_ids]"]').prop('checked', false);
})
if (tracker_id == "2"){//タスク
$('input[name*="issue[watcher_user_ids]"]:eq(2)').prop('checked', true);//Sadesh Warnakulasooriya
$('input[name*="issue[watcher_user_ids]"]:eq(3)').prop('checked', true);//takashi Kawai
$('input[name*="issue[watcher_user_ids]"]:eq(6)').prop('checked', true);// tosiaki Mikawa
}else if (tracker_id == "3"){//QA
$('input[name*="issue[watcher_user_ids]"]:eq(1)').prop('checked', true);//kunihiro Yoshikawa
$('input[name*="issue[watcher_user_ids]"]:eq(3)').prop('checked', true);//takashi Kawai
$('input[name*="issue[watcher_user_ids]"]:eq(5)').prop('checked', true);//tomu Oshidari
}else{
//何もしない
}
})
動作の結果は、添付画像を参照してください。
*途中でユーザーが追加・変更などされた場合は、その都度「:eq()」の番号を変更しないといけないですが。
Kawai takashi さんが約5年前に更新
「作成」ボタン押下時に、必須エラーが出た場合に動作がおかしくなったので、修正しました。
1.パスのパターン:/issues/new → /issues
2. eq()で指定するのをやめて、value で指定するようにする。
//$('input[name*="issue[watcher_user_ids]"]:eq(2)').prop('checked', true);
$('input[name*="issue[watcher_user_ids]"][value="1"]').prop('checked', true);