Merge branch 'main' into glitch-soc/merge-upstream

Conflicts:
- `README.md`:
  Upstream changed their README, we have a completely different one.
  Kept our README.
This commit is contained in:
Claire
2022-03-15 20:45:27 +01:00
146 changed files with 1357 additions and 820 deletions

View File

@ -22,6 +22,16 @@ class Admin::AccountAction
attr_reader :warning, :send_email_notification, :include_statuses
alias send_email_notification? send_email_notification
alias include_statuses? include_statuses
def initialize(attributes = {})
@send_email_notification = true
@include_statuses = true
super
end
def send_email_notification=(value)
@send_email_notification = ActiveModel::Type::Boolean.new.cast(value)
end
@ -141,11 +151,11 @@ class Admin::AccountAction
end
def warnable?
send_email_notification && target_account.local?
send_email_notification? && target_account.local?
end
def status_ids
report.status_ids if with_report? && include_statuses
report.status_ids if with_report? && include_statuses?
end
def reports

View File

@ -63,13 +63,6 @@ class Notification < ApplicationRecord
scope :without_suspended, -> { joins(:from_account).merge(Account.without_suspended) }
scope :browserable, ->(exclude_types = [], account_id = nil) {
scope = all
scope = where(from_account_id: account_id) if account_id.present?
scope = scope.where(type: TYPES - exclude_types.map(&:to_sym)) unless exclude_types.empty?
scope
}
def type
@type ||= (super || LEGACY_TYPE_CLASS_MAP[activity_type]).to_sym
end
@ -90,6 +83,23 @@ class Notification < ApplicationRecord
end
class << self
def browserable(types: [], exclude_types: [], from_account_id: nil)
requested_types = begin
if types.empty?
TYPES
else
types.map(&:to_sym) & TYPES
end
end
requested_types -= exclude_types.map(&:to_sym)
all.tap do |scope|
scope.merge!(where(from_account_id: from_account_id)) if from_account_id.present?
scope.merge!(where(type: requested_types)) unless requested_types.size == TYPES.size
end
end
def preload_cache_collection_target_statuses(notifications, &_block)
notifications.group_by(&:type).each do |type, grouped_notifications|
associations = TARGET_STATUS_INCLUDES_BY_TYPE[type]

View File

@ -80,6 +80,10 @@ class PreviewCard < ApplicationRecord
end
end
def requires_review?
attributes['trendable'].nil? && (provider.nil? || provider.requires_review?)
end
def requires_review_notification?
attributes['trendable'].nil? && (provider.nil? || provider.requires_review_notification?)
end

View File

@ -300,6 +300,10 @@ class Status < ApplicationRecord
end
end
def requires_review?
attributes['trendable'].nil? && account.requires_review?
end
def requires_review_notification?
attributes['trendable'].nil? && account.requires_review_notification?
end