From 3f7819ebeefbc47f4308b77147cf7a3a7efcd9d4 Mon Sep 17 00:00:00 2001 From: Gabriel Grubba Date: Wed, 8 May 2024 14:58:59 -0300 Subject: [PATCH 1/2] FEATURE: Add pending assign reminder threshold setting User can define a threshold for the pending assign reminder. --- config/locales/server.en.yml | 1 + config/settings.yml | 4 ++++ lib/pending_assigns_reminder.rb | 2 +- 3 files changed, 6 insertions(+), 1 deletion(-) 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..8b5ba953 100644 --- a/lib/pending_assigns_reminder.rb +++ b/lib/pending_assigns_reminder.rb @@ -4,7 +4,7 @@ class PendingAssignsReminder REMINDED_AT = "last_reminded_at" REMINDERS_FREQUENCY = "remind_assigns_frequency" CUSTOM_FIELD_NAME = "assigns_reminder" - REMINDER_THRESHOLD = 2 + REMINDER_THRESHOLD = SiteSetting.pending_assign_reminder_threshold def remind(user) newest_topics = assigned_topics(user, order: :desc) From 4eed38cb798e65e7bd266d4adee6b770fb73e41b Mon Sep 17 00:00:00 2001 From: Gabriel Grubba Date: Wed, 8 May 2024 15:11:15 -0300 Subject: [PATCH 2/2] DEV: rename REMINDER_THRESHOLD with SiteSetting --- lib/pending_assigns_reminder.rb | 3 +-- spec/jobs/scheduled/enqueue_reminders_spec.rb | 4 ++-- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/lib/pending_assigns_reminder.rb b/lib/pending_assigns_reminder.rb index 8b5ba953..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 = SiteSetting.pending_assign_reminder_threshold 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