Skip to content

Commit e2c2f6a

Browse files
committed
fixed undefined secondary sort for user posts breaking pagination
1 parent 4deef91 commit e2c2f6a

1 file changed

Lines changed: 23 additions & 24 deletions

File tree

app/controllers/users_controller.rb

Lines changed: 23 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -46,19 +46,11 @@ def index
4646
def show
4747
@abilities = Ability.on_user(@user)
4848

49-
all_posts = if current_user&.privilege?('flag_curate') || @user == current_user
50-
@user.posts
51-
else
52-
@user.posts.undeleted
53-
end
54-
.list_includes
55-
.joins(:category)
56-
.where('IFNULL(categories.min_view_trust_level, 0) <= ?', current_user&.trust_level || 0)
57-
.user_sort({ term: params[:sort], default: :score },
58-
age: :created_at, score: :score)
59-
60-
@posts = all_posts.first(15)
61-
@total_post_count = all_posts.count
49+
@posts = set_posts.user_sort({ term: params[:sort], default: :score },
50+
age: :created_at, score: :score)
51+
.first(15)
52+
53+
@total_post_count = @posts.count
6254
render layout: 'without_sidebar'
6355
end
6456

@@ -215,17 +207,13 @@ def set_preference
215207
end
216208

217209
def posts
218-
@posts = if current_user&.privilege?('flag_curate') || @user == current_user
219-
Post.all
220-
else
221-
Post.undeleted
222-
end.by(@user).list_includes.joins(:category)
223-
.where('IFNULL(categories.min_view_trust_level, 0) <= ?', current_user&.trust_level || 0)
224-
.user_sort({ term: params[:sort], default: :score },
225-
activity: :last_activity,
226-
age: :created_at,
227-
score: :score)
228-
.paginate(page: params[:page], per_page: 25)
210+
@posts = set_posts.user_sort({ term: params[:sort], default: :score },
211+
activity: :last_activity,
212+
age: :created_at,
213+
score: :score)
214+
.order(created_at: :desc)
215+
.paginate(page: params[:page], per_page: 25)
216+
229217
respond_to do |format|
230218
format.html do
231219
render :posts
@@ -661,6 +649,17 @@ def filter_params
661649
include_tags: [], exclude_tags: [])
662650
end
663651

652+
def set_posts
653+
@posts = if current_user&.privilege?('flag_curate') || @user == current_user
654+
@user.posts
655+
else
656+
@user.posts.undeleted
657+
end
658+
.list_includes
659+
.joins(:category)
660+
.where('IFNULL(categories.min_view_trust_level, 0) <= ?', current_user&.trust_level || 0)
661+
end
662+
664663
def set_user
665664
user_id = if params[:id] == 'me' && user_signed_in?
666665
current_user.id

0 commit comments

Comments
 (0)