Skip to content
Snippets Groups Projects
Commit a056dfa9 authored by Rubén Dávila's avatar Rubén Dávila
Browse files

Refactor GlobalMilestone queries.

Make methods return ActiveRecord Relations instead of Arrays.
parent 3231ea10
No related branches found
No related tags found
No related merge requests found
Loading
Loading
@@ -29,6 +29,7 @@ module Issuable
scope :assigned, -> { where("assignee_id IS NOT NULL") }
scope :unassigned, -> { where("assignee_id IS NULL") }
scope :of_projects, ->(ids) { where(project_id: ids) }
scope :of_milestones, ->(ids) { where(milestone_id: ids) }
scope :opened, -> { with_state(:opened, :reopened) }
scope :only_opened, -> { with_state(:opened) }
scope :only_reopened, -> { with_state(:reopened) }
Loading
Loading
Loading
Loading
@@ -28,27 +28,27 @@ class GlobalMilestone
end
 
def projects
milestones.map { |milestone| milestone.project }
@projects ||= Project.for_milestones(milestones.map(&:id))
end
 
def issue_count
milestones.map { |milestone| milestone.issues.count }.sum
def issues_count
issues.count
end
 
def merge_requests_count
milestones.map { |milestone| milestone.merge_requests.count }.sum
merge_requests.count
end
 
def open_items_count
milestones.map { |milestone| milestone.open_items_count }.sum
opened_issues.count + opened_merge_requests.count
end
 
def closed_items_count
milestones.map { |milestone| milestone.closed_items_count }.sum
closed_issues.count + closed_merge_requests.count
end
 
def total_items_count
milestones.map { |milestone| milestone.total_items_count }.sum
issues_count + merge_requests_count
end
 
def percent_complete
Loading
Loading
@@ -76,11 +76,11 @@ class GlobalMilestone
end
 
def issues
@issues ||= milestones.map(&:issues).flatten.group_by(&:state)
@issues ||= Issue.of_milestones(milestones.map(&:id))
end
 
def merge_requests
@merge_requests ||= milestones.map(&:merge_requests).flatten.group_by(&:state)
@merge_requests ||= MergeRequest.of_milestones(milestones.map(&:id))
end
 
def participants
Loading
Loading
@@ -88,19 +88,19 @@ class GlobalMilestone
end
 
def opened_issues
issues.values_at("opened", "reopened").compact.flatten
issues.opened
end
 
def closed_issues
issues['closed']
issues.closed
end
 
def opened_merge_requests
merge_requests.values_at("opened", "reopened").compact.flatten
merge_requests.opened
end
 
def closed_merge_requests
merge_requests.values_at("closed", "merged", "locked").compact.flatten
merge_requests.with_states(:closed, :merged, :locked)
end
 
def complete?
Loading
Loading
Loading
Loading
@@ -139,7 +139,6 @@ class MergeRequest < ActiveRecord::Base
scope :of_projects, ->(ids) { where(target_project_id: ids) }
scope :opened, -> { with_states(:opened, :reopened) }
scope :merged, -> { with_state(:merged) }
scope :closed, -> { with_state(:closed) }
scope :closed_and_merged, -> { with_states(:closed, :merged) }
 
scope :join_project, -> { joins(:target_project) }
Loading
Loading
Loading
Loading
@@ -215,6 +215,7 @@ class Project < ActiveRecord::Base
scope :public_only, -> { where(visibility_level: Project::PUBLIC) }
scope :public_and_internal_only, -> { where(visibility_level: Project.public_and_internal_levels) }
scope :non_archived, -> { where(archived: false) }
scope :for_milestones, ->(ids) { joins(:milestones).where('milestones.id' => ids) }
 
state_machine :import_status, initial: :none do
event :import_start do
Loading
Loading
Loading
Loading
@@ -8,7 +8,7 @@
.row
.col-sm-6
= link_to issues_dashboard_path(milestone_title: milestone.title) do
= pluralize milestone.issue_count, 'Issue'
= pluralize milestone.issues_count, 'Issue'
&middot;
= link_to merge_requests_dashboard_path(milestone_title: milestone.title) do
= pluralize milestone.merge_requests_count, 'Merge Request'
Loading
Loading
Loading
Loading
@@ -52,7 +52,7 @@
%li.active
= link_to '#tab-issues', 'data-toggle' => 'tab' do
Issues
%span.badge= @milestone.issue_count
%span.badge= @milestone.issues_count
%li
= link_to '#tab-merge-requests', 'data-toggle' => 'tab' do
Merge Requests
Loading
Loading
Loading
Loading
@@ -8,7 +8,7 @@
.row
.col-sm-6
= link_to issues_group_path(@group, milestone_title: milestone.title) do
= pluralize milestone.issue_count, 'Issue'
= pluralize milestone.issues_count, 'Issue'
&middot;
= link_to merge_requests_group_path(@group, milestone_title: milestone.title) do
= pluralize milestone.merge_requests_count, 'Merge Request'
Loading
Loading
Loading
Loading
@@ -58,7 +58,7 @@
%li.active
= link_to '#tab-issues', 'data-toggle' => 'tab' do
Issues
%span.badge= @milestone.issue_count
%span.badge= @milestone.issues_count
%li
= link_to '#tab-merge-requests', 'data-toggle' => 'tab' do
Merge Requests
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment