diff options
Diffstat (limited to 'app/models')
-rw-r--r-- | app/models/info_request.rb | 15 | ||||
-rw-r--r-- | app/models/outgoing_message.rb | 5 | ||||
-rw-r--r-- | app/models/public_body.rb | 5 | ||||
-rw-r--r-- | app/models/user.rb | 7 |
4 files changed, 31 insertions, 1 deletions
diff --git a/app/models/info_request.rb b/app/models/info_request.rb index b5a1cd833..3a1f4b9f3 100644 --- a/app/models/info_request.rb +++ b/app/models/info_request.rb @@ -1042,6 +1042,21 @@ public end return ret end + + before_save(:mark_view_is_dirty) + def mark_view_is_dirty + self.view_is_dirty = true + self.save! + end + + def self.purge_varnish + for info_request in InfoRequest.find_by_view_is_dirty(true) + url = "/request/#{info_request.url_title}" + purge(url) + info_request.view_is_dirty = true + info_request.save! + end + end end diff --git a/app/models/outgoing_message.rb b/app/models/outgoing_message.rb index cc561b21d..de3c916aa 100644 --- a/app/models/outgoing_message.rb +++ b/app/models/outgoing_message.rb @@ -267,7 +267,10 @@ class OutgoingMessage < ActiveRecord::Base end end - + after_save(:purge_in_cache) + def purge_in_cache + self.info_request.purge_in_cache + end end diff --git a/app/models/public_body.rb b/app/models/public_body.rb index a18af8c69..11c6f6033 100644 --- a/app/models/public_body.rb +++ b/app/models/public_body.rb @@ -547,6 +547,11 @@ class PublicBody < ActiveRecord::Base } end + after_save(:purge_in_cache) + def purge_in_cache + self.info_requests.each {|x| x.purge_in_cache} + end + end diff --git a/app/models/user.rb b/app/models/user.rb index 59a84b7aa..73d65a8ca 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -422,5 +422,12 @@ class User < ActiveRecord::Base end return true end + + after_save(:purge_in_cache) + def purge_in_cache + # XXX should only be if specific attributes have changed + self.info_requests.each {|x| x.purge_in_cache} + end + end |