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
def group_milestones
groups = GroupsFinder.new(current_user, all_available: false).execute
DashboardGroupMilestone.build_collection(groups, params)
end
@ -45,6 +43,6 @@ class Dashboard::MilestonesController < Dashboard::ApplicationController
end
def groups
@groups ||= GroupsFinder.new(current_user, state_all: true).execute
@groups ||= GroupsFinder.new(current_user, all_available: false).execute
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
let(:project) { create(:project) }
let(:group) { create(:group) }
let(:public_group) { create(:group, :public) }
let(:user) { create(:user) }
let(:project_milestone) { create(:milestone, project: project) }
let(:group_milestone) { create(:milestone, group: group) }
let!(:public_milestone) { create(:milestone, group: public_group) }
let(:milestone) do
DashboardMilestone.build(
[project],
@ -45,6 +43,9 @@ describe Dashboard::MilestonesController do
end
describe "#index" do
let(:public_group) { create(:group, :public) }
let!(:public_milestone) { create(:milestone, group: public_group) }
render_views
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)
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
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>")
end
end