1
0
mirror of synced 2026-08-07 00:06:55 +00:00

FIX: when excluding categories also exclude children (#583)

This allows you to exclude trees of categories in a simple way

It also means you can no longer exclude "just the parent" but
this is a fair compromise.
This commit is contained in:
Sam
2024-04-22 16:05:24 +10:00
committed by GitHub
parent bd6f5caeac
commit 5ab86923ff
2 changed files with 9 additions and 3 deletions
+2 -2
View File
@@ -45,8 +45,8 @@ module DiscourseAi
@posts = @posts.where("categories.id IN (?)", @category_ids) if @category_ids.present?
@posts =
@posts.where(
"categories.id NOT IN (?)",
exclude_category_ids,
"categories.id NOT IN (:ids) AND parent_category_id NOT IN (:ids)",
ids: exclude_category_ids,
) if exclude_category_ids.present?
if exclude_tags.present?
@@ -52,7 +52,12 @@ module DiscourseAi
)
end
it "can exclude categories" do
it "can exclude categories (including sub categories)" do
subcategory = Fabricate(:category, parent_category_id: category.id)
topic_in_subcategory = Fabricate(:topic, category: subcategory)
post_in_subcategory =
Fabricate(:post, raw: "I am in a subcategory abcd", topic: topic_in_subcategory)
freeze_time
DiscourseAi::Completions::Llm.with_prepared_responses(["magical report"]) do
@@ -79,6 +84,7 @@ module DiscourseAi
debugging = report.ordered_posts.last.raw
expect(debugging).not_to include(post_in_category.raw)
expect(debugging).not_to include(post_in_subcategory.raw)
end
it "can suppress notifications by remapping content" do