aboutsummaryrefslogtreecommitdiffstats
path: root/app/models/info_request.rb
diff options
context:
space:
mode:
Diffstat (limited to 'app/models/info_request.rb')
-rw-r--r--app/models/info_request.rb17
1 files changed, 17 insertions, 0 deletions
diff --git a/app/models/info_request.rb b/app/models/info_request.rb
index 9bce2ca88..c0b8e2fca 100644
--- a/app/models/info_request.rb
+++ b/app/models/info_request.rb
@@ -1125,6 +1125,23 @@ public
end
end
+ after_save :update_counter_cache
+ after_destroy :update_counter_cache
+ def update_counter_cache
+ PublicBody.skip_callback(:save, :after, :purge_in_cache)
+ self.public_body.info_requests_not_held_count = InfoRequest.where(
+ :public_body_id => self.public_body.id,
+ :described_state => 'not_held').count
+ self.public_body.info_requests_successful_count = InfoRequest.where(
+ :public_body_id => self.public_body.id,
+ :described_state => ['successful', 'partially_successful']).count
+ self.public_body.without_revision do
+ public_body.no_xapian_reindex = true
+ public_body.save
+ end
+ PublicBody.set_callback(:save, :after, :purge_in_cache)
+ end
+
def for_admin_column
self.class.content_columns.map{|c| c unless %w(title url_title).include?(c.name) }.compact.each do |column|
yield(column.human_name, self.send(column.name), column.type.to_s, column.name)