Disable notifications for trending links and trending statuses by default

This commit is contained in:
Claire 2022-02-26 10:30:45 +01:00
parent 4eed5019a2
commit c6df6686af
6 changed files with 24 additions and 5 deletions

View File

@ -58,7 +58,7 @@ class Settings::PreferencesController < Settings::BaseController
:setting_use_pending_items, :setting_use_pending_items,
:setting_trends, :setting_trends,
:setting_crop_images, :setting_crop_images,
notification_emails: %i(follow follow_request reblog favourite mention digest report pending_account trending_tag), notification_emails: %i(follow follow_request reblog favourite mention digest report pending_account trending_tag trending_link trending_status),
interactions: %i(must_be_follower must_be_following must_be_following_dm) interactions: %i(must_be_follower must_be_following must_be_following_dm)
) )
end end

View File

@ -32,10 +32,13 @@ module Trends
tags_requiring_review = tags.request_review tags_requiring_review = tags.request_review
statuses_requiring_review = statuses.request_review statuses_requiring_review = statuses.request_review
return if links_requiring_review.empty? && tags_requiring_review.empty? && statuses_requiring_review.empty?
User.staff.includes(:account).find_each do |user| User.staff.includes(:account).find_each do |user|
AdminMailer.new_trends(user.account, links_requiring_review, tags_requiring_review, statuses_requiring_review).deliver_later! if user.allows_trends_review_emails? links = user.allows_trending_tags_review_emails? ? links_requiring_review : []
tags = user.allows_trending_links_review_emails? ? tags_requiring_review : []
statuses = user.allows_trending_statuses_review_emails? ? statuses_requiring_review : []
next if links.empty? && tags.empty? && statuses.empty?
AdminMailer.new_trends(user.account, links, tags, statuses).deliver_later!
end end
end end

View File

@ -269,10 +269,18 @@ class User < ApplicationRecord
settings.notification_emails['appeal'] settings.notification_emails['appeal']
end end
def allows_trends_review_emails? def allows_trending_tags_review_emails?
settings.notification_emails['trending_tag'] settings.notification_emails['trending_tag']
end end
def allows_trending_links_review_emails?
settings.notification_emails['trending_link']
end
def allows_trending_statuses_review_emails?
settings.notification_emails['trending_status']
end
def hides_network? def hides_network?
@hides_network ||= settings.hide_network @hides_network ||= settings.hide_network
end end

View File

@ -24,6 +24,8 @@
= ff.input :appeal, as: :boolean, wrapper: :with_label = ff.input :appeal, as: :boolean, wrapper: :with_label
= ff.input :pending_account, as: :boolean, wrapper: :with_label = ff.input :pending_account, as: :boolean, wrapper: :with_label
= ff.input :trending_tag, as: :boolean, wrapper: :with_label = ff.input :trending_tag, as: :boolean, wrapper: :with_label
= ff.input :trending_link, as: :boolean, wrapper: :with_label
= ff.input :trending_status, as: :boolean, wrapper: :with_label
.fields-group .fields-group
= f.simple_fields_for :notification_emails, hash_to_object(current_user.settings.notification_emails) do |ff| = f.simple_fields_for :notification_emails, hash_to_object(current_user.settings.notification_emails) do |ff|

View File

@ -18,3 +18,7 @@ en:
setting_hide_followers_count: Hide your followers count setting_hide_followers_count: Hide your followers count
setting_skin: Skin setting_skin: Skin
setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only) setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only)
notification_emails:
trending_tag: New trending tag requires review
trending_link: New trending link requires review
trending_status: New trending post requires review

View File

@ -52,6 +52,8 @@ defaults: &defaults
report: true report: true
pending_account: true pending_account: true
trending_tag: true trending_tag: true
trending_link: false
trending_status: false
appeal: true appeal: true
interactions: interactions:
must_be_follower: false must_be_follower: false