Commit 2e13dafb authored by Rémy Coutable's avatar Rémy Coutable

Merge branch '39602-move-update-project-counter-caches-out-of-issues-merge-requests' into 'master'

Move update_project_counter_caches? out of issue and merge request

Closes #39602

See merge request gitlab-org/gitlab-ce!15300
parents c608c250 3963f91e
...@@ -262,10 +262,6 @@ class Issue < ActiveRecord::Base ...@@ -262,10 +262,6 @@ class Issue < ActiveRecord::Base
true true
end end
def update_project_counter_caches?
state_changed? || confidential_changed?
end
def update_project_counter_caches def update_project_counter_caches
Projects::OpenIssuesCountService.new(project).refresh_cache Projects::OpenIssuesCountService.new(project).refresh_cache
end end
......
...@@ -958,10 +958,6 @@ class MergeRequest < ActiveRecord::Base ...@@ -958,10 +958,6 @@ class MergeRequest < ActiveRecord::Base
true true
end end
def update_project_counter_caches?
state_changed?
end
def update_project_counter_caches def update_project_counter_caches
Projects::OpenMergeRequestsCountService.new(target_project).refresh_cache Projects::OpenMergeRequestsCountService.new(target_project).refresh_cache
end end
......
...@@ -187,7 +187,7 @@ class IssuableBaseService < BaseService ...@@ -187,7 +187,7 @@ class IssuableBaseService < BaseService
# We have to perform this check before saving the issuable as Rails resets # We have to perform this check before saving the issuable as Rails resets
# the changed fields upon calling #save. # the changed fields upon calling #save.
update_project_counters = issuable.project && issuable.update_project_counter_caches? update_project_counters = issuable.project && update_project_counter_caches?(issuable)
if issuable.with_transaction_returning_status { issuable.save } if issuable.with_transaction_returning_status { issuable.save }
# We do not touch as it will affect a update on updated_at field # We do not touch as it will affect a update on updated_at field
...@@ -288,4 +288,8 @@ class IssuableBaseService < BaseService ...@@ -288,4 +288,8 @@ class IssuableBaseService < BaseService
# override if needed # override if needed
def execute_hooks(issuable, action = 'open', params = {}) def execute_hooks(issuable, action = 'open', params = {})
end end
def update_project_counter_caches?(issuable)
issuable.state_changed?
end
end end
...@@ -45,5 +45,9 @@ module Issues ...@@ -45,5 +45,9 @@ module Issues
params.delete(:assignee_ids) params.delete(:assignee_ids)
end end
end end
def update_project_counter_caches?(issue)
super || issue.confidential_changed?
end
end end
end end
---
title: Move update_project_counter_caches? out of issue and merge request
merge_request: 15300
author: George Andrinopoulos
type: other
...@@ -765,22 +765,4 @@ describe Issue do ...@@ -765,22 +765,4 @@ describe Issue do
expect(described_class.public_only).to eq([public_issue]) expect(described_class.public_only).to eq([public_issue])
end end
end end
describe '#update_project_counter_caches?' do
it 'returns true when the state changes' do
subject.state = 'closed'
expect(subject.update_project_counter_caches?).to eq(true)
end
it 'returns true when the confidential flag changes' do
subject.confidential = true
expect(subject.update_project_counter_caches?).to eq(true)
end
it 'returns false when the state or confidential flag did not change' do
expect(subject.update_project_counter_caches?).to eq(false)
end
end
end end
...@@ -1772,16 +1772,4 @@ describe MergeRequest do ...@@ -1772,16 +1772,4 @@ describe MergeRequest do
.to change { project.open_merge_requests_count }.from(1).to(0) .to change { project.open_merge_requests_count }.from(1).to(0)
end end
end end
describe '#update_project_counter_caches?' do
it 'returns true when the state changes' do
subject.state = 'closed'
expect(subject.update_project_counter_caches?).to eq(true)
end
it 'returns false when the state did not change' do
expect(subject.update_project_counter_caches?).to eq(false)
end
end
end end
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment