diff --git a/config/locales/server.en.yml b/config/locales/server.en.yml index 6dd4b540..166cf527 100644 --- a/config/locales/server.en.yml +++ b/config/locales/server.en.yml @@ -14,6 +14,7 @@ en: assign_mailer: "When to send notification email for assignments" remind_assigns: "Remind users about pending assigns." remind_assigns_frequency: "Frequency for reminding users about assigned topics." + pending_assign_reminder_threshold: "Number of pending assignments that triggers a reminder notification." max_assigned_topics: "Maximum number of topics that can be assigned to a user." assign_allowed_on_groups: "Users in these groups are allowed to assign topics and can be assigned topics." enable_assign_status: "Add a customizable status field to every assignment." diff --git a/config/settings.yml b/config/settings.yml index e7f97f7c..795e0f0f 100644 --- a/config/settings.yml +++ b/config/settings.yml @@ -23,6 +23,10 @@ discourse_assign: client: true enum: "RemindAssignsFrequencySiteSettings" default: 0 + pending_assign_reminder_threshold: + client: true + default: 2 + min: 1 max_assigned_topics: client: true default: 10 diff --git a/lib/pending_assigns_reminder.rb b/lib/pending_assigns_reminder.rb index 9c50cd4b..ba24d6b0 100644 --- a/lib/pending_assigns_reminder.rb +++ b/lib/pending_assigns_reminder.rb @@ -4,11 +4,10 @@ class PendingAssignsReminder REMINDED_AT = "last_reminded_at" REMINDERS_FREQUENCY = "remind_assigns_frequency" CUSTOM_FIELD_NAME = "assigns_reminder" - REMINDER_THRESHOLD = 2 def remind(user) newest_topics = assigned_topics(user, order: :desc) - return if newest_topics.size < REMINDER_THRESHOLD + return if newest_topics.size < SiteSetting.pending_assign_reminder_threshold delete_previous_reminders(user) diff --git a/spec/jobs/scheduled/enqueue_reminders_spec.rb b/spec/jobs/scheduled/enqueue_reminders_spec.rb index bb193495..2c957b95 100644 --- a/spec/jobs/scheduled/enqueue_reminders_spec.rb +++ b/spec/jobs/scheduled/enqueue_reminders_spec.rb @@ -40,7 +40,7 @@ it "doesn't count assigns from deleted topics" do deleted_post = Fabricate(:post) assign_one_task_to(user, post: deleted_post) - (PendingAssignsReminder::REMINDER_THRESHOLD - 1).times { assign_one_task_to(user) } + (SiteSetting.pending_assign_reminder_threshold - 1).times { assign_one_task_to(user) } deleted_post.topic.trash! @@ -115,7 +115,7 @@ def assign_one_task_to(user, assigned_on: 3.months.ago, post: Fabricate(:post)) end def assign_multiple_tasks_to(user, assigned_on: 3.months.ago) - PendingAssignsReminder::REMINDER_THRESHOLD.times do + SiteSetting.pending_assign_reminder_threshold.times do assign_one_task_to(user, assigned_on: assigned_on) end end