From 50a62b479e354efce5d85dd46bc25033cfd066f3 Mon Sep 17 00:00:00 2001 From: Brett Walker Date: Fri, 14 Sep 2018 14:56:56 -0500 Subject: [PATCH] Filter out archived projects from issue/mr count Pass the 'non_archived' flag to finder methods --- app/models/user.rb | 4 +-- .../45754-issue-mr-and-archived-projects.yml | 5 ++++ ...ed-project-listed-in-group-issue-board.yml | 5 ++++ spec/models/user_spec.rb | 28 +++++++++++++++++++ 4 files changed, 40 insertions(+), 2 deletions(-) create mode 100644 changelogs/unreleased/45754-issue-mr-and-archived-projects.yml create mode 100644 changelogs/unreleased/45754-open-issues-from-archived-project-listed-in-group-issue-board.yml diff --git a/app/models/user.rb b/app/models/user.rb index d68108a8e8e..2134441da86 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -1176,13 +1176,13 @@ class User < ActiveRecord::Base def assigned_open_merge_requests_count(force: false) Rails.cache.fetch(['users', id, 'assigned_open_merge_requests_count'], force: force, expires_in: 20.minutes) do - MergeRequestsFinder.new(self, assignee_id: self.id, state: 'opened').execute.count + MergeRequestsFinder.new(self, assignee_id: self.id, state: 'opened', non_archived: true).execute.count end end def assigned_open_issues_count(force: false) Rails.cache.fetch(['users', id, 'assigned_open_issues_count'], force: force, expires_in: 20.minutes) do - IssuesFinder.new(self, assignee_id: self.id, state: 'opened').execute.count + IssuesFinder.new(self, assignee_id: self.id, state: 'opened', non_archived: true).execute.count end end diff --git a/changelogs/unreleased/45754-issue-mr-and-archived-projects.yml b/changelogs/unreleased/45754-issue-mr-and-archived-projects.yml new file mode 100644 index 00000000000..d81f47d9654 --- /dev/null +++ b/changelogs/unreleased/45754-issue-mr-and-archived-projects.yml @@ -0,0 +1,5 @@ +--- +title: Issue and MR count now ignores archived projects +merge_request: 21721 +author: +type: fixed diff --git a/changelogs/unreleased/45754-open-issues-from-archived-project-listed-in-group-issue-board.yml b/changelogs/unreleased/45754-open-issues-from-archived-project-listed-in-group-issue-board.yml new file mode 100644 index 00000000000..34394396020 --- /dev/null +++ b/changelogs/unreleased/45754-open-issues-from-archived-project-listed-in-group-issue-board.yml @@ -0,0 +1,5 @@ +--- +title: No longer show open issues from archived projects in group issue board +merge_request: 21721 +author: +type: fixed diff --git a/spec/models/user_spec.rb b/spec/models/user_spec.rb index 27aec49e348..99d17f563d9 100644 --- a/spec/models/user_spec.rb +++ b/spec/models/user_spec.rb @@ -2543,6 +2543,34 @@ describe User do end end + describe '#assigned_open_merge_requests_count' do + it 'returns number of open merge requests from non-archived projects' do + user = create(:user) + project = create(:project, :public) + archived_project = create(:project, :public, :archived) + + create(:merge_request, source_project: project, author: user, assignee: user) + create(:merge_request, :closed, source_project: project, author: user, assignee: user) + create(:merge_request, source_project: archived_project, author: user, assignee: user) + + expect(user.assigned_open_merge_requests_count(force: true)).to eq 1 + end + end + + describe '#assigned_open_issues_count' do + it 'returns number of open issues from non-archived projects' do + user = create(:user) + project = create(:project, :public) + archived_project = create(:project, :public, :archived) + + create(:issue, project: project, author: user, assignees: [user]) + create(:issue, :closed, project: project, author: user, assignees: [user]) + create(:issue, project: archived_project, author: user, assignees: [user]) + + expect(user.assigned_open_issues_count(force: true)).to eq 1 + end + end + describe '#personal_projects_count' do it 'returns the number of personal projects using a single query' do user = build(:user)