Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSean McGivern <sean@mcgivern.me.uk>2017-05-12 15:37:18 +0300
committerTimothy Andrew <mail@timothyandrew.net>2017-05-19 11:41:24 +0300
commitf0c0bdc047aa050698bebd30a7790eebe460d031 (patch)
treee1dae1c3af0d33619878caddff792ac58633eb2f /app/models
parentaa7f474c4de8c7c183101b88d8e128abeffbe2bf (diff)
Merge branch 'update_assignee_cache_counts_refactoring' into 'master'
Rework update_assignee_cache_counts Closes #31873 See merge request !11270
Diffstat (limited to 'app/models')
-rw-r--r--app/models/issue_assignee.rb7
-rw-r--r--app/models/merge_request.rb8
-rw-r--r--app/models/user.rb5
3 files changed, 5 insertions, 15 deletions
diff --git a/app/models/issue_assignee.rb b/app/models/issue_assignee.rb
index 0663d3aaef8..06d760b6a89 100644
--- a/app/models/issue_assignee.rb
+++ b/app/models/issue_assignee.rb
@@ -3,11 +3,4 @@ class IssueAssignee < ActiveRecord::Base
belongs_to :issue
belongs_to :assignee, class_name: "User", foreign_key: :user_id
-
- after_create :update_assignee_cache_counts
- after_destroy :update_assignee_cache_counts
-
- def update_assignee_cache_counts
- assignee&.update_cache_counts
- end
end
diff --git a/app/models/merge_request.rb b/app/models/merge_request.rb
index e88a86ea0f0..e13e795dbed 100644
--- a/app/models/merge_request.rb
+++ b/app/models/merge_request.rb
@@ -123,7 +123,6 @@ class MergeRequest < ActiveRecord::Base
participant :assignee
after_save :keep_around_commit
- after_save :update_assignee_cache_counts, if: :assignee_id_changed?
def self.reference_prefix
'!'
@@ -185,13 +184,6 @@ class MergeRequest < ActiveRecord::Base
work_in_progress?(title) ? title : "WIP: #{title}"
end
- def update_assignee_cache_counts
- # make sure we flush the cache for both the old *and* new assignees(if they exist)
- previous_assignee = User.find_by_id(assignee_id_was) if assignee_id_was
- previous_assignee&.update_cache_counts
- assignee&.update_cache_counts
- end
-
# Returns a Hash of attributes to be used for Twitter card metadata
def card_attributes
{
diff --git a/app/models/user.rb b/app/models/user.rb
index 3228081a999..ad24ec0ec08 100644
--- a/app/models/user.rb
+++ b/app/models/user.rb
@@ -919,6 +919,11 @@ class User < ActiveRecord::Base
assigned_open_issues_count(force: true)
end
+ def invalidate_cache_counts
+ Rails.cache.delete(['users', id, 'assigned_open_merge_requests_count'])
+ Rails.cache.delete(['users', id, 'assigned_open_issues_count'])
+ end
+
def todos_done_count(force: false)
Rails.cache.fetch(['users', id, 'todos_done_count'], force: force) do
TodosFinder.new(self, state: :done).execute.count