summaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
author🙈 jacopo beschi 🙉 <intrip@gmail.com>2018-09-21 17:06:55 +0000
committerDouglas Barbosa Alexandre <dbalexandre@gmail.com>2018-09-21 17:06:55 +0000
commitc49c596d17f8d8b62e29f2fd1344ce08cb0a0b93 (patch)
tree3656bb26d05d473afd779511a2646f398e4f3123 /app
parent8f191590447d8e8aa375f1c1104540db5473ce51 (diff)
downloadgitlab-ce-c49c596d17f8d8b62e29f2fd1344ce08cb0a0b93.tar.gz
Allows to sort projects by most stars
Diffstat (limited to 'app')
-rw-r--r--app/helpers/sorting_helper.rb11
-rw-r--r--app/models/project.rb4
2 files changed, 13 insertions, 2 deletions
diff --git a/app/helpers/sorting_helper.rb b/app/helpers/sorting_helper.rb
index 0c59bdd6abb..53bd43d4861 100644
--- a/app/helpers/sorting_helper.rb
+++ b/app/helpers/sorting_helper.rb
@@ -35,7 +35,8 @@ module SortingHelper
sort_value_name => sort_title_name,
sort_value_oldest_activity => sort_title_oldest_activity,
sort_value_oldest_created => sort_title_oldest_created,
- sort_value_recently_created => sort_title_recently_created
+ sort_value_recently_created => sort_title_recently_created,
+ sort_value_most_stars => sort_title_most_stars
}
if current_controller?('admin/projects')
@@ -246,6 +247,10 @@ module SortingHelper
s_('SortOptions|Last Contact')
end
+ def sort_title_most_stars
+ s_('SortOptions|Most stars')
+ end
+
# Values.
def sort_value_access_level_asc
'access_level_asc'
@@ -370,4 +375,8 @@ module SortingHelper
def sort_value_contacted_date
'contacted_asc'
end
+
+ def sort_value_most_stars
+ 'stars_desc'
+ end
end
diff --git a/app/models/project.rb b/app/models/project.rb
index 9e4c7f7a2d0..3e14064a556 100644
--- a/app/models/project.rb
+++ b/app/models/project.rb
@@ -331,7 +331,7 @@ class Project < ActiveRecord::Base
# last_activity_at is throttled every minute, but last_repository_updated_at is updated with every push
scope :sorted_by_activity, -> { reorder("GREATEST(COALESCE(last_activity_at, '1970-01-01'), COALESCE(last_repository_updated_at, '1970-01-01')) DESC") }
- scope :sorted_by_stars, -> { reorder('projects.star_count DESC') }
+ scope :sorted_by_stars, -> { reorder(star_count: :desc) }
scope :in_namespace, ->(namespace_ids) { where(namespace_id: namespace_ids) }
scope :personal, ->(user) { where(namespace_id: user.namespace_id) }
@@ -481,6 +481,8 @@ class Project < ActiveRecord::Base
reorder(last_activity_at: :desc)
when 'latest_activity_asc'
reorder(last_activity_at: :asc)
+ when 'stars_desc'
+ sorted_by_stars
else
order_by(method)
end