summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>2016-03-03 09:53:06 +0000
committerDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>2016-03-03 09:53:06 +0000
commit7e710acc1c72de7d11ad393ee3e111e250e0cb66 (patch)
tree46e4225a7932d5866a76b75ae02f116193450de2
parent1fa7671f44291f78131c0fa31f6d1ffcb3ff6bbc (diff)
parent7dd2e37a9d5c2c6acc45bf636432154ed0d73164 (diff)
downloadgitlab-ce-7e710acc1c72de7d11ad393ee3e111e250e0cb66.tar.gz
Merge branch 'issue_4095' into 'master'
Don't show Issues/MRs from archived projects in Groups view Fixes #4095 See merge request !2980
-rw-r--r--CHANGELOG1
-rw-r--r--app/controllers/concerns/issues_action.rb2
-rw-r--r--app/controllers/concerns/merge_requests_action.rb2
-rw-r--r--app/models/concerns/issuable.rb1
-rw-r--r--app/models/project.rb2
-rw-r--r--features/groups.feature12
-rw-r--r--features/steps/groups.rb29
7 files changed, 45 insertions, 4 deletions
diff --git a/CHANGELOG b/CHANGELOG
index 7b837a46509..69a1927b765 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -10,6 +10,7 @@ v 8.6.0 (unreleased)
- Return empty array instead of 404 when commit has no statuses in commit status API
- Update documentation to reflect Guest role not being enforced on internal projects
- Allow search for logged out users
+ - Don't show Issues/MRs from archived projects in Groups view
v 8.5.2
- Fix sidebar overlapping content when screen width was below 1200px
diff --git a/app/controllers/concerns/issues_action.rb b/app/controllers/concerns/issues_action.rb
index 5b098628557..ef8e74a4641 100644
--- a/app/controllers/concerns/issues_action.rb
+++ b/app/controllers/concerns/issues_action.rb
@@ -2,7 +2,7 @@ module IssuesAction
extend ActiveSupport::Concern
def issues
- @issues = get_issues_collection
+ @issues = get_issues_collection.non_archived
@issues = @issues.page(params[:page]).per(ApplicationController::PER_PAGE)
@issues = @issues.preload(:author, :project)
diff --git a/app/controllers/concerns/merge_requests_action.rb b/app/controllers/concerns/merge_requests_action.rb
index f6de696e84d..9c49596bd0b 100644
--- a/app/controllers/concerns/merge_requests_action.rb
+++ b/app/controllers/concerns/merge_requests_action.rb
@@ -2,7 +2,7 @@ module MergeRequestsAction
extend ActiveSupport::Concern
def merge_requests
- @merge_requests = get_merge_requests_collection
+ @merge_requests = get_merge_requests_collection.non_archived
@merge_requests = @merge_requests.page(params[:page]).per(ApplicationController::PER_PAGE)
@merge_requests = @merge_requests.preload(:author, :target_project)
diff --git a/app/models/concerns/issuable.rb b/app/models/concerns/issuable.rb
index e5f089fb8a0..286d6655861 100644
--- a/app/models/concerns/issuable.rb
+++ b/app/models/concerns/issuable.rb
@@ -38,6 +38,7 @@ module Issuable
scope :join_project, -> { joins(:project) }
scope :references_project, -> { references(:project) }
+ scope :non_archived, -> { join_project.merge(Project.non_archived) }
delegate :name,
:email,
diff --git a/app/models/project.rb b/app/models/project.rb
index 6f5d592755a..b9810c9cda4 100644
--- a/app/models/project.rb
+++ b/app/models/project.rb
@@ -278,7 +278,7 @@ class Project < ActiveRecord::Base
end
def search_by_title(query)
- where('projects.archived = ?', false).where('LOWER(projects.name) LIKE :query', query: "%#{query.downcase}%")
+ non_archived.where('LOWER(projects.name) LIKE :query', query: "%#{query.downcase}%")
end
def find_with_namespace(id)
diff --git a/features/groups.feature b/features/groups.feature
index 55fffb012ae..a60c3860b83 100644
--- a/features/groups.feature
+++ b/features/groups.feature
@@ -22,11 +22,23 @@ Feature: Groups
When I visit group "Owned" issues page
Then I should see issues from group "Owned" assigned to me
+ Scenario: I should not see issues from archived project in "Owned" group issues list
+ Given Group "Owned" has archived project
+ And the archived project have some issues
+ When I visit group "Owned" issues page
+ Then I should not see issues from the archived project
+
Scenario: I should see group "Owned" merge requests list
Given project from group "Owned" has merge requests assigned to me
When I visit group "Owned" merge requests page
Then I should see merge requests from group "Owned" assigned to me
+ Scenario: I should not see merge requests from archived project in "Owned" group merge requests list
+ Given Group "Owned" has archived project
+ And the archived project have some merge_requests
+ When I visit group "Owned" merge requests page
+ Then I should not see merge requests from the archived project
+
Scenario: I should see edit group "Owned" page
When I visit group "Owned" settings page
And I change group "Owned" name to "new-name"
diff --git a/features/steps/groups.rb b/features/steps/groups.rb
index 1e2a78a6029..7a6ae15ffa5 100644
--- a/features/steps/groups.rb
+++ b/features/steps/groups.rb
@@ -44,6 +44,18 @@ class Spinach::Features::Groups < Spinach::FeatureSteps
end
end
+ step 'I should not see issues from the archived project' do
+ @archived_project.issues.each do |issue|
+ expect(page).not_to have_content issue.title
+ end
+ end
+
+ step 'I should not see merge requests from the archived project' do
+ @archived_project.merge_requests.each do |mr|
+ expect(page).not_to have_content mr.title
+ end
+ end
+
step 'I should see merge requests from group "Owned" assigned to me' do
assigned_to_me(:merge_requests).each do |issue|
expect(page).to have_content issue.title[0..80]
@@ -113,7 +125,7 @@ class Spinach::Features::Groups < Spinach::FeatureSteps
step 'Group "Owned" has archived project' do
group = Group.find_by(name: 'Owned')
- create(:project, namespace: group, archived: true, path: "archived-project")
+ @archived_project = create(:project, namespace: group, archived: true, path: "archived-project")
end
step 'I should see "archived" label' do
@@ -124,6 +136,21 @@ class Spinach::Features::Groups < Spinach::FeatureSteps
visit group_path(-1)
end
+ step 'the archived project have some issues' do
+ create :issue,
+ project: @archived_project,
+ assignee: current_user,
+ author: current_user
+ end
+
+ step 'the archived project have some merge requests' do
+ create :merge_request,
+ source_project: @archived_project,
+ target_project: @archived_project,
+ assignee: current_user,
+ author: current_user
+ end
+
private
def assigned_to_me(key)