aboutsummaryrefslogtreecommitdiffstats
path: root/app
diff options
context:
space:
mode:
Diffstat (limited to 'app')
-rw-r--r--app/controllers/admin_controller.rb2
-rw-r--r--app/models/info_request.rb15
-rw-r--r--app/models/outgoing_message.rb5
-rw-r--r--app/models/public_body.rb5
-rw-r--r--app/models/user.rb7
5 files changed, 33 insertions, 1 deletions
diff --git a/app/controllers/admin_controller.rb b/app/controllers/admin_controller.rb
index adb506b91..1612e5179 100644
--- a/app/controllers/admin_controller.rb
+++ b/app/controllers/admin_controller.rb
@@ -36,6 +36,8 @@ class AdminController < ApplicationController
# also force a search reindexing (so changed text reflected in search)
info_request.reindex_request_events
+ # and remove from varnsi
+ info_request.purge_in_cache
end
# Expire cached attachment files for a user
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