diff options
author | Felipe Artur <felipefac@gmail.com> | 2017-06-09 15:53:32 -0300 |
---|---|---|
committer | Felipe Artur <felipefac@gmail.com> | 2017-06-16 12:03:15 -0300 |
commit | 0520ee44985528d3076df1208bda7c6c7ff8ec79 (patch) | |
tree | c078ce331252d8c3ce6cd6e6f77f7646b5e143b1 /app/models/concerns | |
parent | 85cdde8d3340dc0be28749225bf00923c84e5924 (diff) | |
download | gitlab-ce-0520ee44985528d3076df1208bda7c6c7ff8ec79.tar.gz |
Improve method names and add more specs
Diffstat (limited to 'app/models/concerns')
-rw-r--r-- | app/models/concerns/milestoneish.rb | 22 |
1 files changed, 12 insertions, 10 deletions
diff --git a/app/models/concerns/milestoneish.rb b/app/models/concerns/milestoneish.rb index 0f4d4d841ba..01599ce49c6 100644 --- a/app/models/concerns/milestoneish.rb +++ b/app/models/concerns/milestoneish.rb @@ -1,7 +1,7 @@ module Milestoneish def closed_items_count(user) memoize_per_user(user, :closed_items_count) do - (count_issues_by_state(user)['closed']&.length || 0) + merge_requests.closed_and_merged.size + (count_issues_by_state(user)['closed'] || 0) + merge_requests.closed_and_merged.size end end @@ -12,7 +12,7 @@ module Milestoneish end def total_issues_count(user) - issues_visible_to_user(user).length + count_issues_by_state(user).values.sum end def complete?(user) @@ -44,6 +44,14 @@ module Milestoneish end end + def sorted_issues(user) + issues_visible_to_user(user).preload_associations.sort('label_priority') + end + + def sorted_merge_requests + merge_requests.sort('label_priority') + end + def upcoming? start_date && start_date.future? end @@ -62,17 +70,11 @@ module Milestoneish due_date && due_date.past? end - def sorted_merge_requests - merge_requests.sort('label_priority') - end - private def count_issues_by_state(user) memoize_per_user(user, :count_issues_by_state) do - # Need to group and count using ruby array to not break - # label ordering. Also it saves a SQL query. - issues_visible_to_user(user).to_a.group_by(&:state) + issues_visible_to_user(user).reorder(nil).group(:state).count end end @@ -85,6 +87,6 @@ module Milestoneish # override in a class that includes this module to get a faster query # from IssuesFinder def issues_finder_params - { sort: 'label_priority' } + {} end end |