aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--app/models/public_body.rb39
1 files changed, 21 insertions, 18 deletions
diff --git a/app/models/public_body.rb b/app/models/public_body.rb
index f61a3f449..1929272ea 100644
--- a/app/models/public_body.rb
+++ b/app/models/public_body.rb
@@ -49,7 +49,12 @@ class PublicBody < ActiveRecord::Base
attr_accessor :no_xapian_reindex
has_tag_string
- before_save :set_api_key, :set_default_publication_scheme
+
+ before_save :set_api_key,
+ :set_default_publication_scheme,
+ :set_first_letter
+ after_save :purge_in_cache
+ after_update :reindex_requested_from
# Every public body except for the internal admin one is visible
scope :visible, lambda {
@@ -75,6 +80,21 @@ class PublicBody < ActiveRecord::Base
]
end
+ acts_as_xapian :texts => [ :name, :short_name, :notes ],
+ :values => [
+ [ :created_at_numeric, 1, "created_at", :number ] # for sorting
+ ],
+ :terms => [ [ :variety, 'V', "variety" ],
+ [ :tag_array_for_search, 'U', "tag" ]
+ ]
+
+ acts_as_versioned
+ self.non_versioned_columns << 'created_at' << 'updated_at' << 'first_letter' << 'api_key'
+ self.non_versioned_columns << 'info_requests_count' << 'info_requests_successful_count'
+ self.non_versioned_columns << 'info_requests_count' << 'info_requests_visible_classified_count'
+ self.non_versioned_columns << 'info_requests_not_held_count' << 'info_requests_overdue'
+ self.non_versioned_columns << 'info_requests_overdue_count'
+
# Public: Search for Public Bodies whose name, short_name, request_email or
# tags contain the given query
#
@@ -189,7 +209,6 @@ class PublicBody < ActiveRecord::Base
end
# Set the first letter, which is used for faster queries
- before_save(:set_first_letter)
def set_first_letter
PublicBody.set_first_letter(self)
end
@@ -236,13 +255,6 @@ class PublicBody < ActiveRecord::Base
end
end
- acts_as_versioned
- self.non_versioned_columns << 'created_at' << 'updated_at' << 'first_letter' << 'api_key'
- self.non_versioned_columns << 'info_requests_count' << 'info_requests_successful_count'
- self.non_versioned_columns << 'info_requests_count' << 'info_requests_visible_classified_count'
- self.non_versioned_columns << 'info_requests_not_held_count' << 'info_requests_overdue'
- self.non_versioned_columns << 'info_requests_overdue_count'
-
class Version
def last_edit_comment_for_html_display
@@ -273,13 +285,6 @@ class PublicBody < ActiveRecord::Base
end
end
- acts_as_xapian :texts => [ :name, :short_name, :notes ],
- :values => [
- [ :created_at_numeric, 1, "created_at", :number ] # for sorting
- ],
- :terms => [ [ :variety, 'V', "variety" ],
- [ :tag_array_for_search, 'U', "tag" ]
- ]
def created_at_numeric
# format it here as no datetime support in Xapian's value ranges
return self.created_at.strftime("%Y%m%d%H%M%S")
@@ -291,7 +296,6 @@ class PublicBody < ActiveRecord::Base
# if the URL name has changed, then all requested_from: queries
# will break unless we update index for every event for every
# request linked to it
- after_update :reindex_requested_from
def reindex_requested_from
if self.changes.include?('url_name')
for info_request in self.info_requests
@@ -680,7 +684,6 @@ class PublicBody < ActiveRecord::Base
}
end
- after_save(:purge_in_cache)
def purge_in_cache
self.info_requests.each {|x| x.purge_in_cache}
end