diff options
Diffstat (limited to 'app/models/info_request.rb')
-rw-r--r-- | app/models/info_request.rb | 17 |
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) |