diff options
author | Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com> | 2016-03-03 09:53:06 +0000 |
---|---|---|
committer | Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com> | 2016-03-03 09:53:06 +0000 |
commit | 7e710acc1c72de7d11ad393ee3e111e250e0cb66 (patch) | |
tree | 46e4225a7932d5866a76b75ae02f116193450de2 | |
parent | 1fa7671f44291f78131c0fa31f6d1ffcb3ff6bbc (diff) | |
parent | 7dd2e37a9d5c2c6acc45bf636432154ed0d73164 (diff) | |
download | gitlab-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-- | CHANGELOG | 1 | ||||
-rw-r--r-- | app/controllers/concerns/issues_action.rb | 2 | ||||
-rw-r--r-- | app/controllers/concerns/merge_requests_action.rb | 2 | ||||
-rw-r--r-- | app/models/concerns/issuable.rb | 1 | ||||
-rw-r--r-- | app/models/project.rb | 2 | ||||
-rw-r--r-- | features/groups.feature | 12 | ||||
-rw-r--r-- | features/steps/groups.rb | 29 |
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) |