From 371aa71ca8fe83d3288167c8946ce9491b3331cf Mon Sep 17 00:00:00 2001 From: danielgrippi Date: Tue, 29 Mar 2011 16:30:00 -0700 Subject: [PATCH] add ordering to raw_visible_posts --- app/controllers/aspects_controller.rb | 2 +- lib/diaspora/user/querying.rb | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/app/controllers/aspects_controller.rb b/app/controllers/aspects_controller.rb index d2d5df483..f50fae5c3 100644 --- a/app/controllers/aspects_controller.rb +++ b/app/controllers/aspects_controller.rb @@ -26,7 +26,7 @@ class AspectsController < ApplicationController @selected_contacts = @aspects.map { |aspect| aspect.contacts }.flatten.uniq @aspect_ids = @aspects.map { |a| a.id } - @posts = current_user.raw_visible_posts(:by_members_of => @aspect_ids, :type => 'StatusMessage').includes( + @posts = current_user.raw_visible_posts(:by_members_of => @aspect_ids, :type => 'StatusMessage', :order => session[:sort_order] + ' DESC').includes( :comments, :likes, :dislikes).paginate(:page => params[:page], :per_page => 15, :order => session[:sort_order] + ' DESC') @fakes = PostsFake.new(@posts) diff --git a/lib/diaspora/user/querying.rb b/lib/diaspora/user/querying.rb index 424972e79..50711833f 100644 --- a/lib/diaspora/user/querying.rb +++ b/lib/diaspora/user/querying.rb @@ -13,6 +13,7 @@ module Diaspora def raw_visible_posts(opts = {}) opts[:type] ||= ['StatusMessage', 'Photo'] opts[:limit] ||= 20 + opts[:order] ||= 'created_at DESC' posts_from_others = Post.joins(:contacts).where(:contacts => {:user_id => self.id}) posts_from_self = self.person.posts.joins(:aspect_visibilities => :aspect).where(:aspects => {:user_id => self.id}) @@ -23,8 +24,8 @@ module Diaspora posts_from_self = posts_from_self.where(:aspects => {:id => opts[:by_members_of]}) end - post_ids = posts_from_others.select('posts.id').limit(opts[:limit]).map{|p| p.id} - post_ids += posts_from_self.select('posts.id').limit(opts[:limit]).map{|p| p.id} + post_ids = posts_from_others.select('posts.id').limit(opts[:limit]).order(opts[:order]).map{|p| p.id} + post_ids += posts_from_self.select('posts.id').limit(opts[:limit]).order(opts[:order]).map{|p| p.id} Post.where(:id => post_ids, :pending => false, :type => opts[:type]).select('DISTINCT `posts`.*').limit(opts[:limit]) end