0
0
Fork 0

Filter on allowed user language preferences (#2361)

* Naive approached to timeline filtering

* Convert allowed_languages into a db column

* Allow users to choose languages to see statuses in

* Style list items as two columns

* Add a hint to explain language filtering preference
This commit is contained in:
Matt Jankowski 2017-05-01 11:42:13 -04:00 committed by Eugen Rochko
parent 3988f2dade
commit f025cc6782
10 changed files with 66 additions and 4 deletions

View file

@ -82,6 +82,8 @@ class Account < ApplicationRecord
prefix: true,
allow_nil: true
delegate :allowed_languages, to: :user, prefix: false, allow_nil: true
def follow!(other_account)
active_relationships.where(target_account: other_account).first_or_create!(target_account: other_account)
end

View file

@ -119,6 +119,10 @@ class Status < ApplicationRecord
end
class << self
def in_allowed_languages(account)
where(language: account.allowed_languages)
end
def as_home_timeline(account)
where(account: [account] + account.following)
end
@ -198,6 +202,7 @@ class Status < ApplicationRecord
def filter_timeline_for_account(query, account)
query = query.not_excluded_by_account(account)
query = query.in_allowed_languages(account) if account.allowed_languages.present?
query.merge(account_silencing_filter(account))
end