diff options
author | Douglas Barbosa Alexandre <dbalexandre@gmail.com> | 2016-02-17 11:32:02 -0200 |
---|---|---|
committer | Douglas Barbosa Alexandre <dbalexandre@gmail.com> | 2016-02-17 11:32:02 -0200 |
commit | 9823d00e0b13224ae9e820e7d3f9fade69201e99 (patch) | |
tree | 9a37f949fdfbd560e23150b1a42ca3979fe9c51e /app/models/concerns | |
parent | 943bed68bc42d02246ddea63a25432d3aba709e7 (diff) | |
download | gitlab-ce-9823d00e0b13224ae9e820e7d3f9fade69201e99.tar.gz |
Add ability to see and sort on vote count from Issues and MR listssee-and-sort-on-vote-count-mr-issues
Diffstat (limited to 'app/models/concerns')
-rw-r--r-- | app/models/concerns/issuable.rb | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/app/models/concerns/issuable.rb b/app/models/concerns/issuable.rb index 5136d0196a5..e5f089fb8a0 100644 --- a/app/models/concerns/issuable.rb +++ b/app/models/concerns/issuable.rb @@ -69,10 +69,35 @@ module Issuable case method.to_s when 'milestone_due_asc' then order_milestone_due_asc when 'milestone_due_desc' then order_milestone_due_desc + when 'downvotes_desc' then order_downvotes_desc + when 'upvotes_desc' then order_upvotes_desc else order_by(method) end end + + def order_downvotes_desc + order_votes_desc('thumbsdown') + end + + def order_upvotes_desc + order_votes_desc('thumbsup') + end + + def order_votes_desc(award_emoji_name) + issuable_table = self.arel_table + note_table = Note.arel_table + + join_clause = issuable_table.join(note_table, Arel::Nodes::OuterJoin).on( + note_table[:noteable_id].eq(issuable_table[:id]).and( + note_table[:noteable_type].eq(self.name).and( + note_table[:is_award].eq(true).and(note_table[:note].eq(award_emoji_name)) + ) + ) + ).join_sources + + joins(join_clause).group(issuable_table[:id]).reorder("COUNT(notes.id) DESC") + end end def today? |