Exclude public group milestones from counts

Only count milestones in groups that the user is a member of
This commit is contained in:
Heinrich Lee Yu 2019-02-14 13:45:30 +08:00
parent c6016ac8a8
commit 0f0bf2a2cb
3 changed files with 11 additions and 7 deletions

View File

@ -25,8 +25,6 @@ class Dashboard::MilestonesController < Dashboard::ApplicationController
private private
def group_milestones def group_milestones
groups = GroupsFinder.new(current_user, all_available: false).execute
DashboardGroupMilestone.build_collection(groups, params) DashboardGroupMilestone.build_collection(groups, params)
end end
@ -45,6 +43,6 @@ class Dashboard::MilestonesController < Dashboard::ApplicationController
end end
def groups def groups
@groups ||= GroupsFinder.new(current_user, state_all: true).execute @groups ||= GroupsFinder.new(current_user, all_available: false).execute
end end
end end

View File

@ -0,0 +1,5 @@
---
title: Fix counts in milestones dashboard
merge_request: 25230
author:
type: fixed

View File

@ -3,11 +3,9 @@ require 'spec_helper'
describe Dashboard::MilestonesController do describe Dashboard::MilestonesController do
let(:project) { create(:project) } let(:project) { create(:project) }
let(:group) { create(:group) } let(:group) { create(:group) }
let(:public_group) { create(:group, :public) }
let(:user) { create(:user) } let(:user) { create(:user) }
let(:project_milestone) { create(:milestone, project: project) } let(:project_milestone) { create(:milestone, project: project) }
let(:group_milestone) { create(:milestone, group: group) } let(:group_milestone) { create(:milestone, group: group) }
let!(:public_milestone) { create(:milestone, group: public_group) }
let(:milestone) do let(:milestone) do
DashboardMilestone.build( DashboardMilestone.build(
[project], [project],
@ -45,6 +43,9 @@ describe Dashboard::MilestonesController do
end end
describe "#index" do describe "#index" do
let(:public_group) { create(:group, :public) }
let!(:public_milestone) { create(:milestone, group: public_group) }
render_views render_views
it 'returns group and project milestones to which the user belongs' do it 'returns group and project milestones to which the user belongs' do
@ -74,10 +75,10 @@ describe Dashboard::MilestonesController do
expect(response.body).not_to include(project_milestone.title) expect(response.body).not_to include(project_milestone.title)
end end
it 'should contain group and project milestones to which the user belongs to' do it 'should show counts of group and project milestones to which the user belongs to' do
get :index get :index
expect(response.body).to include("Open\n<span class=\"badge badge-pill\">3</span>") expect(response.body).to include("Open\n<span class=\"badge badge-pill\">2</span>")
expect(response.body).to include("Closed\n<span class=\"badge badge-pill\">0</span>") expect(response.body).to include("Closed\n<span class=\"badge badge-pill\">0</span>")
end end
end end