FEATURE: pending flags reminder is sent as a group message to staff instead of sending an email to the contact email site setting.

This commit is contained in:
Neil Lalonde 2016-02-19 15:21:05 -05:00
parent 6c684944c5
commit e8d837269b
3 changed files with 20 additions and 17 deletions

View file

@ -11,8 +11,14 @@ module Jobs
PostAction.flagged_posts_count > 0 && PostAction.flagged_posts_count > 0 &&
FlagQuery.flagged_post_actions('active').where('post_actions.created_at < ?', SiteSetting.notify_about_flags_after.to_i.hours.ago).pluck(:id).count > 0 FlagQuery.flagged_post_actions('active').where('post_actions.created_at < ?', SiteSetting.notify_about_flags_after.to_i.hours.ago).pluck(:id).count > 0
message = PendingFlagsMailer.notify PostCreator.create(
Email::Sender.new(message, :pending_flags_reminder).send Discourse.system_user,
target_group_names: ["staff"],
archetype: Archetype.private_message,
subtype: TopicSubtype.system_message,
title: I18n.t('flags_reminder.subject_template', { count: PostAction.flagged_posts_count }),
raw: I18n.t('flags_reminder.flags_were_submitted', { count: SiteSetting.notify_about_flags_after })
)
end end
end end

View file

@ -1409,6 +1409,14 @@ en:
blocked: "New registrations are not allowed from your IP address." blocked: "New registrations are not allowed from your IP address."
max_new_accounts_per_registration_ip: "New registrations are not allowed from your IP address (maximum limit reached). Contact a staff member." max_new_accounts_per_registration_ip: "New registrations are not allowed from your IP address (maximum limit reached). Contact a staff member."
flags_reminder:
flags_were_submitted:
one: "Flags were submitted over 1 hour ago. Please review them."
other: "Flags were submitted over %{count} hours ago. Please review them."
subject_template:
one: "1 flag waiting to be handled"
other: "%{count} flags waiting to be handled"
unsubscribe_mailer: unsubscribe_mailer:
subject_template: "Confirm you no longer want to receive email updates from %{site_title}" subject_template: "Confirm you no longer want to receive email updates from %{site_title}"
text_body_template: | text_body_template: |
@ -1543,17 +1551,6 @@ en:
%{notes} %{notes}
flags_reminder:
flags_were_submitted:
one: "These flags were submitted over 1 hour ago."
other: "These flags were submitted over %{count} hours ago."
please_review: "Please review them."
post_number: "post"
how_to_disable: 'You can disable or change the frequency of this email reminder via the "notify about flags after" setting.'
subject_template:
one: "1 flag waiting to be handled"
other: "%{count} flags waiting to be handled"
queued_posts_reminder: queued_posts_reminder:
subject_template: subject_template:
one: "[%{site_name}] 1 post waiting to be reviewed" one: "[%{site_name}] 1 post waiting to be reviewed"

View file

@ -14,17 +14,17 @@ describe Jobs::PendingFlagsReminder do
context "notify_about_flags_after is 48" do context "notify_about_flags_after is 48" do
before { SiteSetting.stubs(:notify_about_flags_after).returns(48) } before { SiteSetting.stubs(:notify_about_flags_after).returns(48) }
it "doesn't send email when flags are less than 48 hours old" do it "doesn't send message when flags are less than 48 hours old" do
Fabricate(:flag, created_at: 47.hours.ago) Fabricate(:flag, created_at: 47.hours.ago)
PostAction.stubs(:flagged_posts_count).returns(1) PostAction.stubs(:flagged_posts_count).returns(1)
Email::Sender.any_instance.expects(:send).never PostCreator.expects(:create).never
described_class.new.execute({}) described_class.new.execute({})
end end
it "sends email when there is a flag older than 48 hours" do it "sends message when there is a flag older than 48 hours" do
Fabricate(:flag, created_at: 49.hours.ago) Fabricate(:flag, created_at: 49.hours.ago)
PostAction.stubs(:flagged_posts_count).returns(1) PostAction.stubs(:flagged_posts_count).returns(1)
Email::Sender.any_instance.expects(:send).once.returns(true) PostCreator.expects(:create).once.returns(true)
described_class.new.execute({}) described_class.new.execute({})
end end
end end