Filter languages with opt out (#3175)

* Remove allowed_languages and add filtered_languages

* Use filtered_languages instead of allowed_languages
This commit is contained in:
Matt Jankowski
2017-05-20 11:32:44 -04:00
committed by Eugen Rochko
parent 2e112e2406
commit 8f4b7c1820
21 changed files with 30 additions and 41 deletions

View File

@ -26,7 +26,7 @@ class Settings::PreferencesController < ApplicationController
def user_params
params.require(:user).permit(
:locale,
allowed_languages: []
filtered_languages: []
)
end

View File

@ -352,7 +352,7 @@ code {
}
}
.user_allowed_languages {
.user_filtered_languages {
li {
float: left;
width: 50%;

View File

@ -99,7 +99,7 @@ class Account < ApplicationRecord
prefix: true,
allow_nil: true
delegate :allowed_languages, to: :user, prefix: false, allow_nil: true
delegate :filtered_languages, to: :user, prefix: false, allow_nil: true
def local?
domain.nil?

View File

@ -142,8 +142,8 @@ class Status < ApplicationRecord
before_validation :set_conversation
class << self
def in_allowed_languages(account)
where(language: account.allowed_languages)
def not_in_filtered_languages(account)
where.not(language: account.filtered_languages)
end
def as_home_timeline(account)
@ -234,7 +234,7 @@ class Status < ApplicationRecord
def filter_timeline_for_account(query, account, local_only)
query = query.not_excluded_by_account(account)
query = query.not_domain_blocked_by_account(account) unless local_only
query = query.in_allowed_languages(account) if account.allowed_languages.present?
query = query.not_in_filtered_languages(account) if account.filtered_languages.present?
query.merge(account_silencing_filter(account))
end

View File

@ -30,7 +30,7 @@
# otp_required_for_login :boolean
# last_emailed_at :datetime
# otp_backup_codes :string is an Array
# allowed_languages :string default([]), not null, is an Array
# filtered_languages :string default([]), not null, is an Array
#
class User < ApplicationRecord
@ -83,6 +83,6 @@ class User < ApplicationRecord
private
def sanitize_languages
allowed_languages.reject!(&:blank?)
filtered_languages.reject!(&:blank?)
end
end

View File

@ -12,7 +12,7 @@
label_method: lambda { |locale| human_locale(locale) },
selected: I18n.locale
= f.input :allowed_languages,
= f.input :filtered_languages,
collection: I18n.available_locales,
wrapper: :with_label,
include_blank: false,