Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFelipe Artur <felipefac@gmail.com>2017-06-09 21:53:32 +0300
committerFelipe Artur <felipefac@gmail.com>2017-06-16 18:03:15 +0300
commit0520ee44985528d3076df1208bda7c6c7ff8ec79 (patch)
treec078ce331252d8c3ce6cd6e6f77f7646b5e143b1 /app/models/concerns/milestoneish.rb
parent85cdde8d3340dc0be28749225bf00923c84e5924 (diff)
Improve method names and add more specs
Diffstat (limited to 'app/models/concerns/milestoneish.rb')
-rw-r--r--app/models/concerns/milestoneish.rb22
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