Replace unused by_recent_sign_in scope (#28616)
				
					
				
			This commit is contained in:
		
							parent
							
								
									e677eb164c
								
							
						
					
					
						commit
						cd4b4d4734
					
				| @ -131,7 +131,7 @@ class Account < ApplicationRecord | ||||
|   scope :discoverable, -> { searchable.without_silenced.where(discoverable: true).joins(:account_stat) } | ||||
|   scope :followable_by, ->(account) { joins(arel_table.join(Follow.arel_table, Arel::Nodes::OuterJoin).on(arel_table[:id].eq(Follow.arel_table[:target_account_id]).and(Follow.arel_table[:account_id].eq(account.id))).join_sources).where(Follow.arel_table[:id].eq(nil)).joins(arel_table.join(FollowRequest.arel_table, Arel::Nodes::OuterJoin).on(arel_table[:id].eq(FollowRequest.arel_table[:target_account_id]).and(FollowRequest.arel_table[:account_id].eq(account.id))).join_sources).where(FollowRequest.arel_table[:id].eq(nil)) } | ||||
|   scope :by_recent_status, -> { includes(:account_stat).merge(AccountStat.order('last_status_at DESC NULLS LAST')).references(:account_stat) } | ||||
|   scope :by_recent_sign_in, -> { order(Arel.sql('users.current_sign_in_at DESC NULLS LAST')) } | ||||
|   scope :by_recent_activity, -> { left_joins(:user, :account_stat).order(coalesced_activity_timestamps.desc).order(id: :desc) } | ||||
|   scope :popular, -> { order('account_stats.followers_count desc') } | ||||
|   scope :by_domain_and_subdomains, ->(domain) { where(domain: Instance.by_domain_and_subdomains(domain).select(:domain)) } | ||||
|   scope :not_excluded_by_account, ->(account) { where.not(id: account.excluded_from_timeline_account_ids) } | ||||
| @ -444,6 +444,14 @@ class Account < ApplicationRecord | ||||
|       DeliveryFailureTracker.without_unavailable(urls) | ||||
|     end | ||||
| 
 | ||||
|     def coalesced_activity_timestamps | ||||
|       Arel.sql( | ||||
|         <<~SQL.squish | ||||
|           COALESCE(users.current_sign_in_at, account_stats.last_status_at, to_timestamp(0)) | ||||
|         SQL | ||||
|       ) | ||||
|     end | ||||
| 
 | ||||
|     def from_text(text) | ||||
|       return [] if text.blank? | ||||
| 
 | ||||
|  | ||||
| @ -104,15 +104,7 @@ class AccountFilter | ||||
|   def order_scope(value) | ||||
|     case value.to_s | ||||
|     when 'active' | ||||
|       accounts_with_users | ||||
|         .left_joins(:account_stat) | ||||
|         .order( | ||||
|           Arel.sql( | ||||
|             <<~SQL.squish | ||||
|               COALESCE(users.current_sign_in_at, account_stats.last_status_at, to_timestamp(0)) DESC, accounts.id DESC | ||||
|             SQL | ||||
|           ) | ||||
|         ) | ||||
|       Account.by_recent_activity | ||||
|     when 'recent' | ||||
|       Account.recent | ||||
|     else | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user