Commit 9dd33057 authored by Sean McGivern's avatar Sean McGivern

Merge branch 'blackst0ne-rails5-rename-sort-methods' into 'master'

[Rails5] Rename `sort` methods to `sort_by_attribute`

See merge request gitlab-org/gitlab-ce!18142
parents e9ea5208 3d3b46f3
...@@ -5,7 +5,7 @@ class Admin::GroupsController < Admin::ApplicationController ...@@ -5,7 +5,7 @@ class Admin::GroupsController < Admin::ApplicationController
def index def index
@groups = Group.with_statistics.with_route @groups = Group.with_statistics.with_route
@groups = @groups.sort(@sort = params[:sort]) @groups = @groups.sort_by_attribute(@sort = params[:sort])
@groups = @groups.search(params[:name]) if params[:name].present? @groups = @groups.search(params[:name]) if params[:name].present?
@groups = @groups.page(params[:page]) @groups = @groups.page(params[:page])
end end
......
...@@ -4,7 +4,7 @@ class Admin::UsersController < Admin::ApplicationController ...@@ -4,7 +4,7 @@ class Admin::UsersController < Admin::ApplicationController
def index def index
@users = User.order_name_asc.filter(params[:filter]) @users = User.order_name_asc.filter(params[:filter])
@users = @users.search_with_secondary_emails(params[:search_query]) if params[:search_query].present? @users = @users.search_with_secondary_emails(params[:search_query]) if params[:search_query].present?
@users = @users.sort(@sort = params[:sort]) @users = @users.sort_by_attribute(@sort = params[:sort])
@users = @users.page(params[:page]) @users = @users.page(params[:page])
end end
......
...@@ -14,7 +14,7 @@ module GroupTree ...@@ -14,7 +14,7 @@ module GroupTree
end end
@groups = @groups.with_selects_for_list(archived: params[:archived]) @groups = @groups.with_selects_for_list(archived: params[:archived])
.sort(@sort = params[:sort]) .sort_by_attribute(@sort = params[:sort])
.page(params[:page]) .page(params[:page])
respond_to do |format| respond_to do |format|
......
...@@ -17,7 +17,7 @@ class Groups::GroupMembersController < Groups::ApplicationController ...@@ -17,7 +17,7 @@ class Groups::GroupMembersController < Groups::ApplicationController
@members = GroupMembersFinder.new(@group).execute @members = GroupMembersFinder.new(@group).execute
@members = @members.non_invite unless can?(current_user, :admin_group, @group) @members = @members.non_invite unless can?(current_user, :admin_group, @group)
@members = @members.search(params[:search]) if params[:search].present? @members = @members.search(params[:search]) if params[:search].present?
@members = @members.sort(@sort) @members = @members.sort_by_attribute(@sort)
@members = @members.page(params[:page]).per(50) @members = @members.page(params[:page]).per(50)
@members = present_members(@members.includes(:user)) @members = present_members(@members.includes(:user))
......
...@@ -14,7 +14,7 @@ class Projects::MilestonesController < Projects::ApplicationController ...@@ -14,7 +14,7 @@ class Projects::MilestonesController < Projects::ApplicationController
def index def index
@sort = params[:sort] || 'due_date_asc' @sort = params[:sort] || 'due_date_asc'
@milestones = milestones.sort(@sort) @milestones = milestones.sort_by_attribute(@sort)
respond_to do |format| respond_to do |format|
format.html do format.html do
......
...@@ -21,7 +21,7 @@ class Projects::ProjectMembersController < Projects::ApplicationController ...@@ -21,7 +21,7 @@ class Projects::ProjectMembersController < Projects::ApplicationController
@group_links = @group_links.where(group_id: @project.invited_groups.search(params[:search]).select(:id)) @group_links = @group_links.where(group_id: @project.invited_groups.search(params[:search]).select(:id))
end end
@project_members = present_members(@project_members.sort(@sort).page(params[:page])) @project_members = present_members(@project_members.sort_by_attribute(@sort).page(params[:page]))
@requesters = present_members(AccessRequestsFinder.new(@project).execute(current_user)) @requesters = present_members(AccessRequestsFinder.new(@project).execute(current_user))
@project_member = @project.project_members.new @project_member = @project.project_members.new
end end
......
...@@ -62,6 +62,6 @@ class Admin::ProjectsFinder ...@@ -62,6 +62,6 @@ class Admin::ProjectsFinder
def sort(items) def sort(items)
sort = params.fetch(:sort) { 'latest_activity_desc' } sort = params.fetch(:sort) { 'latest_activity_desc' }
items.sort(sort) items.sort_by_attribute(sort)
end end
end end
...@@ -337,7 +337,7 @@ class IssuableFinder ...@@ -337,7 +337,7 @@ class IssuableFinder
def sort(items) def sort(items)
# Ensure we always have an explicit sort order (instead of inheriting # Ensure we always have an explicit sort order (instead of inheriting
# multiple orders when combining ActiveRecord::Relation objects). # multiple orders when combining ActiveRecord::Relation objects).
params[:sort] ? items.sort(params[:sort], excluded_labels: label_names) : items.reorder(id: :desc) params[:sort] ? items.sort_by_attribute(params[:sort], excluded_labels: label_names) : items.reorder(id: :desc)
end end
def by_assignee(items) def by_assignee(items)
......
...@@ -124,7 +124,7 @@ class ProjectsFinder < UnionFinder ...@@ -124,7 +124,7 @@ class ProjectsFinder < UnionFinder
end end
def sort(items) def sort(items)
params[:sort].present? ? items.sort(params[:sort]) : items.order_id_desc params[:sort].present? ? items.sort_by_attribute(params[:sort]) : items.order_id_desc
end end
def by_archived(projects) def by_archived(projects)
......
...@@ -119,7 +119,7 @@ class TodosFinder ...@@ -119,7 +119,7 @@ class TodosFinder
end end
def sort(items) def sort(items)
params[:sort] ? items.sort(params[:sort]) : items.order_id_desc params[:sort] ? items.sort_by_attribute(params[:sort]) : items.order_id_desc
end end
def by_action(items) def by_action(items)
......
...@@ -137,7 +137,7 @@ module Issuable ...@@ -137,7 +137,7 @@ module Issuable
fuzzy_search(query, [:title, :description]) fuzzy_search(query, [:title, :description])
end end
def sort(method, excluded_labels: []) def sort_by_attribute(method, excluded_labels: [])
sorted = sorted =
case method.to_s case method.to_s
when 'downvotes_desc' then order_downvotes_desc when 'downvotes_desc' then order_downvotes_desc
......
...@@ -45,11 +45,11 @@ module Milestoneish ...@@ -45,11 +45,11 @@ module Milestoneish
end end
def sorted_issues(user) def sorted_issues(user)
issues_visible_to_user(user).preload_associations.sort('label_priority') issues_visible_to_user(user).preload_associations.sort_by_attribute('label_priority')
end end
def sorted_merge_requests def sorted_merge_requests
merge_requests.sort('label_priority') merge_requests.sort_by_attribute('label_priority')
end end
def upcoming? def upcoming?
......
...@@ -53,7 +53,7 @@ class Group < Namespace ...@@ -53,7 +53,7 @@ class Group < Namespace
Gitlab::Database.postgresql? Gitlab::Database.postgresql?
end end
def sort(method) def sort_by_attribute(method)
if method == 'storage_size_desc' if method == 'storage_size_desc'
# storage_size is a virtual column so we need to # storage_size is a virtual column so we need to
# pass a string to avoid AR adding the table name # pass a string to avoid AR adding the table name
......
...@@ -116,7 +116,7 @@ class Issue < ActiveRecord::Base ...@@ -116,7 +116,7 @@ class Issue < ActiveRecord::Base
'project_id' 'project_id'
end end
def self.sort(method, excluded_labels: []) def self.sort_by_attribute(method, excluded_labels: [])
case method.to_s case method.to_s
when 'due_date' then order_due_date_asc when 'due_date' then order_due_date_asc
when 'due_date_asc' then order_due_date_asc when 'due_date_asc' then order_due_date_asc
......
...@@ -96,7 +96,7 @@ class Member < ActiveRecord::Base ...@@ -96,7 +96,7 @@ class Member < ActiveRecord::Base
joins(:user).merge(User.search(query)) joins(:user).merge(User.search(query))
end end
def sort(method) def sort_by_attribute(method)
case method.to_s case method.to_s
when 'access_level_asc' then reorder(access_level: :asc) when 'access_level_asc' then reorder(access_level: :asc)
when 'access_level_desc' then reorder(access_level: :desc) when 'access_level_desc' then reorder(access_level: :desc)
......
...@@ -138,7 +138,7 @@ class Milestone < ActiveRecord::Base ...@@ -138,7 +138,7 @@ class Milestone < ActiveRecord::Base
User.joins(assigned_issues: :milestone).where("milestones.id = ?", id).uniq User.joins(assigned_issues: :milestone).where("milestones.id = ?", id).uniq
end end
def self.sort(method) def self.sort_by_attribute(method)
case method.to_s case method.to_s
when 'due_date_asc' when 'due_date_asc'
reorder(Gitlab::Database.nulls_last_order('due_date', 'ASC')) reorder(Gitlab::Database.nulls_last_order('due_date', 'ASC'))
......
...@@ -436,7 +436,7 @@ class Project < ActiveRecord::Base ...@@ -436,7 +436,7 @@ class Project < ActiveRecord::Base
Gitlab::VisibilityLevel.options Gitlab::VisibilityLevel.options
end end
def sort(method) def sort_by_attribute(method)
case method.to_s case method.to_s
when 'storage_size_desc' when 'storage_size_desc'
# storage_size is a joined column so we need to # storage_size is a joined column so we need to
......
...@@ -50,7 +50,7 @@ class Todo < ActiveRecord::Base ...@@ -50,7 +50,7 @@ class Todo < ActiveRecord::Base
# Priority sorting isn't displayed in the dropdown, because we don't show # Priority sorting isn't displayed in the dropdown, because we don't show
# milestones, but still show something if the user has a URL with that # milestones, but still show something if the user has a URL with that
# selected. # selected.
def sort(method) def sort_by_attribute(method)
sorted = sorted =
case method.to_s case method.to_s
when 'priority', 'label_priority' then order_by_labels_priority when 'priority', 'label_priority' then order_by_labels_priority
......
...@@ -256,7 +256,7 @@ class User < ActiveRecord::Base ...@@ -256,7 +256,7 @@ class User < ActiveRecord::Base
end end
end end
def sort(method) def sort_by_attribute(method)
order_method = method || 'id_desc' order_method = method || 'id_desc'
case order_method.to_s case order_method.to_s
......
...@@ -176,7 +176,7 @@ describe Issuable do ...@@ -176,7 +176,7 @@ describe Issuable do
end end
end end
describe "#sort" do describe "#sort_by_attribute" do
let(:project) { create(:project) } let(:project) { create(:project) }
context "by milestone due date" do context "by milestone due date" do
...@@ -193,12 +193,12 @@ describe Issuable do ...@@ -193,12 +193,12 @@ describe Issuable do
let!(:issue3) { create(:issue, project: project) } let!(:issue3) { create(:issue, project: project) }
it "sorts desc" do it "sorts desc" do
issues = project.issues.sort('milestone_due_desc') issues = project.issues.sort_by_attribute('milestone_due_desc')
expect(issues).to match_array([issue2, issue1, issue, issue3]) expect(issues).to match_array([issue2, issue1, issue, issue3])
end end
it "sorts asc" do it "sorts asc" do
issues = project.issues.sort('milestone_due_asc') issues = project.issues.sort_by_attribute('milestone_due_asc')
expect(issues).to match_array([issue1, issue2, issue, issue3]) expect(issues).to match_array([issue1, issue2, issue, issue3])
end end
end end
...@@ -210,7 +210,7 @@ describe Issuable do ...@@ -210,7 +210,7 @@ describe Issuable do
it 'has no duplicates across pages' do it 'has no duplicates across pages' do
sorted_issue_ids = 1.upto(10).map do |i| sorted_issue_ids = 1.upto(10).map do |i|
project.issues.sort('milestone_due_desc').page(i).per(1).first.id project.issues.sort_by_attribute('milestone_due_desc').page(i).per(1).first.id
end end
expect(sorted_issue_ids).to eq(sorted_issue_ids.uniq) expect(sorted_issue_ids).to eq(sorted_issue_ids.uniq)
......
...@@ -1451,7 +1451,7 @@ describe User do ...@@ -1451,7 +1451,7 @@ describe User do
end end
end end
describe '#sort' do describe '#sort_by_attribute' do
before do before do
described_class.delete_all described_class.delete_all
@user = create :user, created_at: Date.today, current_sign_in_at: Date.today, name: 'Alpha' @user = create :user, created_at: Date.today, current_sign_in_at: Date.today, name: 'Alpha'
...@@ -1460,7 +1460,7 @@ describe User do ...@@ -1460,7 +1460,7 @@ describe User do
end end
context 'when sort by recent_sign_in' do context 'when sort by recent_sign_in' do
let(:users) { described_class.sort('recent_sign_in') } let(:users) { described_class.sort_by_attribute('recent_sign_in') }
it 'sorts users by recent sign-in time' do it 'sorts users by recent sign-in time' do
expect(users.first).to eq(@user) expect(users.first).to eq(@user)
...@@ -1473,7 +1473,7 @@ describe User do ...@@ -1473,7 +1473,7 @@ describe User do
end end
context 'when sort by oldest_sign_in' do context 'when sort by oldest_sign_in' do
let(:users) { described_class.sort('oldest_sign_in') } let(:users) { described_class.sort_by_attribute('oldest_sign_in') }
it 'sorts users by the oldest sign-in time' do it 'sorts users by the oldest sign-in time' do
expect(users.first).to eq(@user1) expect(users.first).to eq(@user1)
...@@ -1486,15 +1486,15 @@ describe User do ...@@ -1486,15 +1486,15 @@ describe User do
end end
it 'sorts users in descending order by their creation time' do it 'sorts users in descending order by their creation time' do
expect(described_class.sort('created_desc').first).to eq(@user) expect(described_class.sort_by_attribute('created_desc').first).to eq(@user)
end end
it 'sorts users in ascending order by their creation time' do it 'sorts users in ascending order by their creation time' do
expect(described_class.sort('created_asc').first).to eq(@user2) expect(described_class.sort_by_attribute('created_asc').first).to eq(@user2)
end end
it 'sorts users by id in descending order when nil is passed' do it 'sorts users by id in descending order when nil is passed' do
expect(described_class.sort(nil).first).to eq(@user2) expect(described_class.sort_by_attribute(nil).first).to eq(@user2)
end end
end end
......
...@@ -23,7 +23,7 @@ describe 'cycle analytics events' do ...@@ -23,7 +23,7 @@ describe 'cycle analytics events' do
it 'lists the issue events' do it 'lists the issue events' do
get project_cycle_analytics_issue_path(project, format: :json) get project_cycle_analytics_issue_path(project, format: :json)
first_issue_iid = project.issues.sort(:created_desc).pluck(:iid).first.to_s first_issue_iid = project.issues.sort_by_attribute(:created_desc).pluck(:iid).first.to_s
expect(json_response['events']).not_to be_empty expect(json_response['events']).not_to be_empty
expect(json_response['events'].first['iid']).to eq(first_issue_iid) expect(json_response['events'].first['iid']).to eq(first_issue_iid)
...@@ -32,7 +32,7 @@ describe 'cycle analytics events' do ...@@ -32,7 +32,7 @@ describe 'cycle analytics events' do
it 'lists the plan events' do it 'lists the plan events' do
get project_cycle_analytics_plan_path(project, format: :json) get project_cycle_analytics_plan_path(project, format: :json)
first_mr_short_sha = project.merge_requests.sort(:created_asc).first.commits.first.short_id first_mr_short_sha = project.merge_requests.sort_by_attribute(:created_asc).first.commits.first.short_id
expect(json_response['events']).not_to be_empty expect(json_response['events']).not_to be_empty
expect(json_response['events'].first['short_sha']).to eq(first_mr_short_sha) expect(json_response['events'].first['short_sha']).to eq(first_mr_short_sha)
...@@ -43,7 +43,7 @@ describe 'cycle analytics events' do ...@@ -43,7 +43,7 @@ describe 'cycle analytics events' do
expect(json_response['events']).not_to be_empty expect(json_response['events']).not_to be_empty
first_mr_iid = project.merge_requests.sort(:created_desc).pluck(:iid).first.to_s first_mr_iid = project.merge_requests.sort_by_attribute(:created_desc).pluck(:iid).first.to_s
expect(json_response['events'].first['iid']).to eq(first_mr_iid) expect(json_response['events'].first['iid']).to eq(first_mr_iid)
end end
...@@ -58,7 +58,7 @@ describe 'cycle analytics events' do ...@@ -58,7 +58,7 @@ describe 'cycle analytics events' do
it 'lists the review events' do it 'lists the review events' do
get project_cycle_analytics_review_path(project, format: :json) get project_cycle_analytics_review_path(project, format: :json)
first_mr_iid = project.merge_requests.sort(:created_desc).pluck(:iid).first.to_s first_mr_iid = project.merge_requests.sort_by_attribute(:created_desc).pluck(:iid).first.to_s
expect(json_response['events']).not_to be_empty expect(json_response['events']).not_to be_empty
expect(json_response['events'].first['iid']).to eq(first_mr_iid) expect(json_response['events'].first['iid']).to eq(first_mr_iid)
...@@ -74,7 +74,7 @@ describe 'cycle analytics events' do ...@@ -74,7 +74,7 @@ describe 'cycle analytics events' do
it 'lists the production events' do it 'lists the production events' do
get project_cycle_analytics_production_path(project, format: :json) get project_cycle_analytics_production_path(project, format: :json)
first_issue_iid = project.issues.sort(:created_desc).pluck(:iid).first.to_s first_issue_iid = project.issues.sort_by_attribute(:created_desc).pluck(:iid).first.to_s
expect(json_response['events']).not_to be_empty expect(json_response['events']).not_to be_empty
expect(json_response['events'].first['iid']).to eq(first_issue_iid) expect(json_response['events'].first['iid']).to eq(first_issue_iid)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment