mirror of
https://github.com/discourse/discourse.git
synced 2024-11-25 09:42:07 +08:00
FEATURE: new site setting suggested_topics_max_days_old
This commit is contained in:
parent
886d08abfb
commit
2f3ee3b658
|
@ -1036,6 +1036,7 @@ en:
|
|||
|
||||
suggested_topics: "Number of suggested topics shown at the bottom of a topic."
|
||||
limit_suggested_to_category: "Only show topics from the current category in suggested topics."
|
||||
suggested_topics_max_days_old: "Suggested topics should not be more than n days old."
|
||||
|
||||
clean_up_uploads: "Remove orphan unreferenced uploads to prevent illegal hosting. WARNING: you may want to back up of your /uploads directory before enabling this setting."
|
||||
clean_orphan_uploads_grace_period_hours: "Grace period (in hours) before an orphan upload is removed."
|
||||
|
|
|
@ -77,6 +77,10 @@ basic:
|
|||
min: 0
|
||||
limit_suggested_to_category:
|
||||
default: false
|
||||
suggested_topics_max_days_old:
|
||||
default: 365
|
||||
min: 7
|
||||
max: 10000
|
||||
track_external_right_clicks:
|
||||
client: true
|
||||
default: false
|
||||
|
|
|
@ -26,6 +26,9 @@ class SuggestedTopicsBuilder
|
|||
results = results.where(category_id: @category_id)
|
||||
end
|
||||
|
||||
# Suggested topics should not be more than n days old
|
||||
results = results.where("topics.created_at > ?", SiteSetting.suggested_topics_max_days_old.days.ago)
|
||||
|
||||
results = results.to_a.reject { |topic| @category_topic_ids.include?(topic.id) }
|
||||
|
||||
unless results.empty?
|
||||
|
|
|
@ -95,6 +95,21 @@ describe SuggestedTopicsBuilder do
|
|||
end
|
||||
end
|
||||
|
||||
context "adding topics that are more than n days old" do
|
||||
let!(:new_topic) { Fabricate(:topic, created_at: 2.days.ago) }
|
||||
let!(:old_topic) { Fabricate(:topic, created_at: 3.years.ago) }
|
||||
|
||||
it "adds topics based on suggested_topics_max_days_old setting" do
|
||||
SiteSetting.suggested_topics_max_days_old = 365
|
||||
|
||||
builder.add_results(Topic)
|
||||
expect(builder.size).to eq(1)
|
||||
expect(builder).not_to be_full
|
||||
expect(builder.excluded_topic_ids.include?(old_topic.id)).to eq(false)
|
||||
expect(builder.excluded_topic_ids.include?(new_topic.id)).to eq(true)
|
||||
end
|
||||
end
|
||||
|
||||
context "category definition topics" do
|
||||
let!(:category) { Fabricate(:category) }
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user