Use Arel `in_order_of` method to generate CASE for `DomainBlock.by_severity` (#28617)
This commit is contained in:
parent
57f49c8191
commit
202951e6d9
|
@ -31,7 +31,7 @@ class DomainBlock < ApplicationRecord
|
||||||
scope :matches_domain, ->(value) { where(arel_table[:domain].matches("%#{value}%")) }
|
scope :matches_domain, ->(value) { where(arel_table[:domain].matches("%#{value}%")) }
|
||||||
scope :with_user_facing_limitations, -> { where(severity: [:silence, :suspend]) }
|
scope :with_user_facing_limitations, -> { where(severity: [:silence, :suspend]) }
|
||||||
scope :with_limitations, -> { where(severity: [:silence, :suspend]).or(where(reject_media: true)) }
|
scope :with_limitations, -> { where(severity: [:silence, :suspend]).or(where(reject_media: true)) }
|
||||||
scope :by_severity, -> { order(Arel.sql('(CASE severity WHEN 0 THEN 1 WHEN 1 THEN 2 WHEN 2 THEN 0 END), domain')) }
|
scope :by_severity, -> { in_order_of(:severity, %w(noop silence suspend)).order(:domain) }
|
||||||
|
|
||||||
def to_log_human_identifier
|
def to_log_human_identifier
|
||||||
domain
|
domain
|
||||||
|
|
|
@ -41,7 +41,8 @@ module Mastodon::CLI
|
||||||
class SoftwareUpdate < ApplicationRecord; end
|
class SoftwareUpdate < ApplicationRecord; end
|
||||||
|
|
||||||
class DomainBlock < ApplicationRecord
|
class DomainBlock < ApplicationRecord
|
||||||
scope :by_severity, -> { order(Arel.sql('(CASE severity WHEN 0 THEN 1 WHEN 1 THEN 2 WHEN 2 THEN 0 END), domain')) }
|
enum severity: { silence: 0, suspend: 1, noop: 2 }
|
||||||
|
scope :by_severity, -> { in_order_of(:severity, %w(noop silence suspend)).order(:domain) }
|
||||||
end
|
end
|
||||||
|
|
||||||
class PreviewCard < ApplicationRecord
|
class PreviewCard < ApplicationRecord
|
||||||
|
|
Loading…
Reference in New Issue