FEATURE: Enable gists on all topic lists (#922)

This commit is contained in:
Roman Rizzi 2024-11-19 11:04:34 -03:00 committed by GitHub
parent 48d08dedd4
commit fb80d776d8
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 4 additions and 20 deletions

View File

@ -12,9 +12,7 @@ export default class AiTopicGist extends Component {
get showGist() { get showGist() {
return ( return (
this.router.currentRoute.attributes?.filterType === "hot" &&
this.args.topic?.ai_topic_gist && this.args.topic?.ai_topic_gist &&
!this.args.topic?.excerpt &&
this.prefersGist && this.prefersGist &&
!this.args.topic?.excerpt !this.args.topic?.excerpt
); );

View File

@ -18,7 +18,9 @@ module DiscourseAi
end end
plugin.register_modifier(:topic_query_create_list_topics) do |topics, options| plugin.register_modifier(:topic_query_create_list_topics) do |topics, options|
if options[:filter] == :hot && SiteSetting.ai_summarization_enabled && skipped_filters = %i[suggested semantic_related]
if !skipped_filters.include?(options[:filter]) && SiteSetting.ai_summarization_enabled &&
SiteSetting.ai_summarize_max_hot_topics_gists_per_batch > 0 SiteSetting.ai_summarize_max_hot_topics_gists_per_batch > 0
topics.includes(:ai_summaries).where( topics.includes(:ai_summaries).where(
"ai_summaries.id IS NULL OR ai_summaries.summary_type = ?", "ai_summaries.id IS NULL OR ai_summaries.summary_type = ?",
@ -34,9 +36,7 @@ module DiscourseAi
:ai_topic_gist, :ai_topic_gist,
include_condition: -> { scope.can_see_gists? }, include_condition: -> { scope.can_see_gists? },
) do ) do
# Options is defined at the instance level so we cannot run this check inside "include_condition". return if %i[suggested semantic_related].include?(options[:filter])
return if options[:filter] != :hot
summaries = object.ai_summaries.to_a summaries = object.ai_summaries.to_a
# Summaries should always have one or zero elements here. # Summaries should always have one or zero elements here.

View File

@ -71,20 +71,6 @@ RSpec.describe DiscourseAi::Summarization::EntryPoint do
expect(serialized[:ai_topic_gist]).to be_present expect(serialized[:ai_topic_gist]).to be_present
end end
it "doesn't include the summary when looking at other topic lists" do
gist_topic = topic_query.list_hot.topics.find { |t| t.id == topic_ai_gist.target_id }
serialized =
TopicListItemSerializer.new(
gist_topic,
scope: Guardian.new(user),
root: false,
filter: :latest,
).as_json
expect(serialized[:ai_topic_gist]).to be_nil
end
it "doesn't include the summary when the user is not a member of the opt-in group" do it "doesn't include the summary when the user is not a member of the opt-in group" do
SiteSetting.ai_hot_topic_gists_allowed_groups = "" SiteSetting.ai_hot_topic_gists_allowed_groups = ""