Adds OR filters for epic boards
What does this MR do and why?
Adds OR filtering for labels on epic board list. Similar to previous change for epics resolver - !109813 (merged).
Related to #382969 (closed)
DB query
https://postgres.ai/console/gitlab/gitlab-production-tunnel-pg12/sessions/15113/commands/52500
SELECT "epics".* FROM "epics" LEFT OUTER JOIN "boards_epic_board_positions" ON "epics"."id" = "boards_epic_board_positions"."epic_id" AND "boards_epic_board_positions"."epic_board_id" = 1 WHERE "epics"."group_id" IN (SELECT "namespaces"."id" FROM "namespaces" WHERE "namespaces"."type" = 'Group' AND (traversal_ids @> ('{9970}'))) AND "epics"."state_id" = 1 AND EXISTS (SELECT "label_links".* FROM "label_links" WHERE "label_links"."target_type" = 'Epic' AND "label_links"."target_id" = "epics"."id" AND "label_links"."label_id" IN (10690782, 10690741)) AND (EXISTS (SELECT "label_links".* FROM "label_links" WHERE "label_links"."target_type" = 'Epic' AND ("epics"."id" = "label_links"."target_id") AND "label_links"."label_id" = 11111311 LIMIT 1)) ORDER BY "boards_epic_board_positions"."relative_position" ASC NULLS LAST, epics.id DESC LIMIT 100 OFFSET 0
Screenshots or screen recordings
Screenshots are required for UI changes, and strongly recommended for all other merge requests.
How to set up and validate locally
- Enable the invite modal
Feature.enable(:or_issuable_queries)
- Sample query:
query {
group(fullPath: "flightjs") {
id
epicBoards {
nodes {
id
lists {
nodes {
id
epics(filters: {or: {labelName: ["Phins", "Phint"]}}) {
nodes {
id
}
}
}
}
}
}
}
}
MR acceptance checklist
This checklist encourages us to confirm any changes have been analyzed to reduce risks in quality, performance, reliability, security, and maintainability.
-
I have evaluated the MR acceptance checklist for this MR.
Edited by Jan Provaznik