summaryrefslogtreecommitdiff
path: root/app/models/merge_request.rb
diff options
context:
space:
mode:
authorDrew Blessing <drew.blessing@buckle.com>2013-12-13 13:40:45 -0600
committerDrew Blessing <drew.blessing@buckle.com>2013-12-13 13:40:45 -0600
commit63723ef6df788391ed776441421ae482ad4fbd82 (patch)
treed7f1d27b5f6bfe7ca0f7162ea12658178d97cc4a /app/models/merge_request.rb
parentee53b73986ba4c9dd2f0c726a44718acb8febaf8 (diff)
downloadgitlab-ce-63723ef6df788391ed776441421ae482ad4fbd82.tar.gz
Fix dashboard event caching
Diffstat (limited to 'app/models/merge_request.rb')
-rw-r--r--app/models/merge_request.rb14
1 files changed, 14 insertions, 0 deletions
diff --git a/app/models/merge_request.rb b/app/models/merge_request.rb
index e862f35819c..e59aee8b445 100644
--- a/app/models/merge_request.rb
+++ b/app/models/merge_request.rb
@@ -305,6 +305,20 @@ class MergeRequest < ActiveRecord::Base
self.target_project.repository.branch_names.include?(self.target_branch)
end
+ # Reset merge request events cache
+ #
+ # Since we do cache @event we need to reset cache in special cases:
+ # * when a merge request is updated
+ # Events cache stored like events/23-20130109142513.
+ # The cache key includes updated_at timestamp.
+ # Thus it will automatically generate a new fragment
+ # when the event is updated because the key changes.
+ def reset_events_cache
+ Event.where(target_id: self.id, target_type: 'MergeRequest').
+ order('id DESC').limit(100).
+ update_all(updated_at: Time.now)
+ end
+
private
def dump_commits(commits)