summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrett Walker <bwalker@gitlab.com>2018-09-14 14:56:56 -0500
committerBrett Walker <bwalker@gitlab.com>2018-09-17 11:35:26 -0500
commit50a62b479e354efce5d85dd46bc25033cfd066f3 (patch)
treebd365e9666ab27ce5c975cc2b324ae675639ead3
parentccce7c7955ef193d238cf4aab457403cad4c06b6 (diff)
downloadgitlab-ce-50a62b479e354efce5d85dd46bc25033cfd066f3.tar.gz
Filter out archived projects from issue/mr count
Pass the 'non_archived' flag to finder methods
-rw-r--r--app/models/user.rb4
-rw-r--r--changelogs/unreleased/45754-issue-mr-and-archived-projects.yml5
-rw-r--r--changelogs/unreleased/45754-open-issues-from-archived-project-listed-in-group-issue-board.yml5
-rw-r--r--spec/models/user_spec.rb28
4 files changed, 40 insertions, 2 deletions
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)