プロジェクト

全般

プロフィール

QA #281

未完了

チケットをOR条件/複数文字列でフィルタしたい

奈良 裕記 さんが7年以上前に追加. 1年以上前に更新.

ステータス:
回答済
優先度:
通常
担当者:
-
カテゴリ:
-
対象バージョン:
開始日:
2016/12/25
期日:
2016/12/25 (7年以上 遅れ)
進捗率:

0%

予定工数:

説明

[お知らせ] 11/5午後、redmine.tokyo第23回勉強会開催(無料、受付中、品川+Zoom+YouTubeLive) https://redmine-tokyo.connpass.com/event/261924/

■現象/要望

チケットをOR条件/複数文字列でフィルタしたい場合がある。
現状ではAND条件のみ可能なため、複数のクエリを作成して繰り返し確認する必要がある。
作業効率が悪い。

例:category と versionのいずれかをSubjectに含むチケットを検索したい。

■解決策

Redmine4.1対応のパッチを利用すれば対応できる。
http://www.redmine.org/issues/4939#note-56

上記パッチ適用済Unofficialブランチ(日本語用語ファイル暫定修正含)
https://github.com/y503unavailable/redmine/tree/feature-patch4939
( feature-unofficialcooking ブランチにも取込済)

プラグイン(Redmine3用)
http://www.redmine.org/issues/4939#note-26

本機能はまだRedmineコアへの取込予定がありません。
必要と判断される方は、本家4939チケットに、 +1 お願いします。

同一フィールドで複数の選択肢のOR条件で検索することはRedmineの標準機能で可能です。下記参照

チケットのフィルタで一つのフィールドにつき複数の値を条件としたい
http://redmine.jp/faq/issue/filter-multiple-value/

本チケットは、チケットのフィルタ機能について記載しています。

Redmine用の全文検索システムでも、OR/NOT条件で検索できます。
https://github.com/clear-code/redmine_full_text_search

■フィルタの追加機能

本家4939のパッチを適用すると、下記2種類のフィルタ選択肢が追加される。

OR条件フィルタ

OR条件フィルタの動作は下記の通り(フィルタ選択肢毎)

フィルタ設定内容
A
B
フィルタ選択肢
C
D
フィルタ選択肢 動作
label_orfilter_and_any: "上記 かつ (以下のいずれか)" A&B&(C|D)
label_orfilter_or_any: "上記 または (以下のいずれか)" (A&B)|(C|D)
label_orfilter_or_all: "上記 または (以下の全て)" (A&B)|(C&D)
A&B&C&D

標準のRedmineでは、最後のAND条件だけしか使えない。

文字列のAND/OR検索

テキストフィールドで、match を選択し、'~'か'+'で検索条件を設定する。

category~version categoryまたはversion (OR)
category+version categoryかつversion (AND)

■対応状況

プラグイン対応済
本家パッチ有、Unofficialブランチ取込済

■補足

設定サンプル

目的:データベース関連の課題、特にMysql/MariadbとPostgreSQLの互換性対応に関連した課題一覧を抽出したい

フィルタ設定時の検討内容

・カテゴリだけでは判断できない
 明確にデータベース関連の課題の場合は、カテゴリ=Databaseが設定されるが、
 影響を受ける他機能のカテゴリが設定されている場合もある。

・題名には、mysql,mariadb,PostgreSQLの中で一つは入れるだろう。

・説明欄には、mysql/mariadbとpostgresqlの差異内容を記入するだろう。
 mysqlとmariadbの片方で済ます場合がある。どちらか片方があれば拾おう。
 postgresqlを含むはずだ。

フィルタ画面

フィルタ設定例(DB/mysql or postgresql)

サンプルURL
http://demo1.unofficial-redmine.org/redmine/projects/redmineorg-copy/issues?utf8=%E2%9C%93&set_filter=1&sort=category%2Cid%3Adesc&f%5B%5D=status_id&op%5Bstatus_id%5D=o&f%5B%5D=category_id&op%5Bcategory_id%5D=%3D&v%5Bcategory_id%5D%5B%5D=21&f%5B%5D=or_all&op%5Bor_all%5D=%3D&v%5Bor_all%5D%5B%5D=%E3%81%AF%E3%81%84&f%5B%5D=subject&op%5Bsubject%5D=match&v%5Bsubject%5D%5B%5D=mariadb%7Emysql%7EPostgreSQL&f%5B%5D=description&op%5Bdescription%5D=match&v%5Bdescription%5D%5B%5D=%28mariadb%7Emysql%29%2BPostgreSQL&f%5B%5D=&c%5B%5D=tracker&c%5B%5D=status&c%5B%5D=category&c%5B%5D=priority&c%5B%5D=subject&c%5B%5D=assigned_to&c%5B%5D=updated_on&group_by=&t%5B%5D=


ファイル

clipboard-202001222352-bogho.png (422 KB) clipboard-202001222352-bogho.png フィルタ設定例(DB/mysql or postgresql) 奈良 裕記, 2020/01/22 23:52

奈良 裕記 さんが4年以上前に更新

奈良 裕記 さんが4年以上前に更新

奈良 裕記 さんが4年以上前に更新

Redmine Trunk(rev18582)パッチ有 (rev18582=2019/10/2時点)
http://www.redmine.org/issues/4939#note-56

変更対象は下記ファイル

app/helpers/queries_helper.rb
app/models/issue_query.rb
app/models/query.rb
config/locales/de.yml
config/locales/en.yml

奈良 裕記 さんが4年以上前に更新

  • 説明 を更新 (差分)
  • 対象バージョンPlugin対応済 から 本家patch有 に変更

ORフィルタとして、下記3種類を選択可能。

各ORフィルタの後に指定したフィルタ条件が、 or/andで適用される。

label_orfilter_and_any: "上記 かつ (以下のいずれか)" 
label_orfilter_or_any: "上記 または (以下のいずれか)"
label_orfilter_or_all: "上記 または (以下の全て)"

(上記は仮の日本語訳、変更可能性十分にあり)

このパッチを適用しても、一つのフィールドを複数回評価することはできない。

但し、上記パッチで追加されているmatchフィルタを利用すれば、複数文字列を含むかの柔軟な評価が可能。

テキストフィールドで、match を選択し、下記検索条件を設定できる。

category~version categoryまたはversion (OR)
category+version categoryかつversion (AND)

奈良 裕記 さんが4年以上前に更新

奈良 裕記 さんが4年以上前に更新

奈良 裕記 さんが4年以上前に更新

  • 題名チケットをOR条件でフィルタしたい から チケットをOR条件/複数文字列でフィルタしたい に変更
  • 説明 を更新 (差分)

奈良 裕記 さんが4年以上前に更新

奈良 裕記 さんが約4年前に更新

奈良 裕記 さんが約4年前に更新

奈良 裕記 さんが約4年前に更新

奈良 裕記 さんが約4年前に更新

奈良 裕記 さんが約4年前に更新

奈良 裕記 さんがほぼ3年前に更新

奈良 裕記 さんが2年以上前に更新

奈良 裕記 さんが約2年前に更新

奈良 裕記 さんが1年以上前に更新

他の形式にエクスポート: Atom PDF