aboutsummaryrefslogtreecommitdiffstats
path: root/app
diff options
context:
space:
mode:
Diffstat (limited to 'app')
-rw-r--r--app/models/censor_rule.rb7
-rw-r--r--app/models/comment.rb11
-rw-r--r--app/models/concerns/admin_column.rb17
-rw-r--r--app/models/incoming_message.rb8
-rw-r--r--app/models/info_request.rb10
-rw-r--r--app/models/info_request_event.rb9
-rw-r--r--app/models/outgoing_message.rb7
-rw-r--r--app/models/public_body.rb10
8 files changed, 29 insertions, 50 deletions
diff --git a/app/models/censor_rule.rb b/app/models/censor_rule.rb
index 0ef5d18bd..f1f1a0d70 100644
--- a/app/models/censor_rule.rb
+++ b/app/models/censor_rule.rb
@@ -23,6 +23,7 @@
# Email: hello@mysociety.org; WWW: http://www.mysociety.org/
class CensorRule < ActiveRecord::Base
+ include AdminColumn
belongs_to :info_request
belongs_to :user
belongs_to :public_body
@@ -58,12 +59,6 @@ class CensorRule < ActiveRecord::Base
binary_to_censor.gsub!(to_replace) { |match| match.gsub(/./, 'x') }
end
- def for_admin_column
- self.class.content_columns.each do |column|
- yield(column.human_name, send(column.name), column.type.to_s, column.name)
- end
- end
-
def is_global?
info_request_id.nil? && user_id.nil? && public_body_id.nil?
end
diff --git a/app/models/comment.rb b/app/models/comment.rb
index ab4acfe56..772bb3eda 100644
--- a/app/models/comment.rb
+++ b/app/models/comment.rb
@@ -21,6 +21,7 @@
# Email: hello@mysociety.org; WWW: http://www.mysociety.org/
class Comment < ActiveRecord::Base
+ include AdminColumn
strip_attributes!
belongs_to :user
@@ -58,10 +59,6 @@ class Comment < ActiveRecord::Base
ret
end
- def raw_body
- read_attribute(:body)
- end
-
# So when takes changes it updates, or when made invisble it vanishes
def event_xapian_update
info_request_events.each { |event| event.xapian_mark_needs_index }
@@ -76,12 +73,6 @@ class Comment < ActiveRecord::Base
text.html_safe
end
- def for_admin_column
- self.class.content_columns.each do |column|
- yield(column.human_name, send(column.name), column.type.to_s, column.name)
- end
- end
-
private
def check_body_has_content
diff --git a/app/models/concerns/admin_column.rb b/app/models/concerns/admin_column.rb
new file mode 100644
index 000000000..6e19f5aa5
--- /dev/null
+++ b/app/models/concerns/admin_column.rb
@@ -0,0 +1,17 @@
+module AdminColumn
+ extend ActiveSupport::Concern
+
+ included do
+ class << self
+ attr_reader :non_admin_columns
+ end
+
+ @non_admin_columns = []
+ end
+
+ def for_admin_column
+ self.class.content_columns.reject { |c| self.class.non_admin_columns.include?(c.name) }.each do |column|
+ yield(column.human_name, send(column.name), column.type.to_s, column.name)
+ end
+ end
+end
diff --git a/app/models/incoming_message.rb b/app/models/incoming_message.rb
index a74056b5d..986eb19f5 100644
--- a/app/models/incoming_message.rb
+++ b/app/models/incoming_message.rb
@@ -38,6 +38,7 @@ require 'zip/zip'
require 'iconv' unless String.method_defined?(:encode)
class IncomingMessage < ActiveRecord::Base
+ include AdminColumn
extend MessageProminence
belongs_to :info_request
validates_presence_of :info_request
@@ -754,13 +755,6 @@ class IncomingMessage < ActiveRecord::Base
def IncomingMessage.get_all_file_extensions
return AlaveteliFileTypes.all_extensions.join(" ")
end
-
- def for_admin_column
- self.class.content_columns.each do |column|
- yield(column.human_name, self.send(column.name), column.type.to_s, column.name)
- end
- end
-
end
diff --git a/app/models/info_request.rb b/app/models/info_request.rb
index 65099b1c4..38627df50 100644
--- a/app/models/info_request.rb
+++ b/app/models/info_request.rb
@@ -28,8 +28,11 @@
require 'digest/sha1'
class InfoRequest < ActiveRecord::Base
+ include AdminColumn
include Rails.application.routes.url_helpers
+ @non_admin_columns = %w(title url_title)
+
strip_attributes!
validates_presence_of :title, :message => N_("Please enter a summary of your request")
@@ -1282,13 +1285,6 @@ public
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)
- end
- end
-
-
# Get requests that have similar important terms
def similar_requests(limit=10)
xapian_similar = nil
diff --git a/app/models/info_request_event.rb b/app/models/info_request_event.rb
index 75978fdc5..285e54f9a 100644
--- a/app/models/info_request_event.rb
+++ b/app/models/info_request_event.rb
@@ -22,7 +22,7 @@
# Email: hello@mysociety.org; WWW: http://www.mysociety.org/
class InfoRequestEvent < ActiveRecord::Base
-
+ include AdminColumn
extend XapianQueries
belongs_to :info_request
@@ -419,11 +419,4 @@ class InfoRequestEvent < ActiveRecord::Base
return ret
end
-
- def for_admin_column
- self.class.content_columns.each do |column|
- yield(column.human_name, self.send(column.name), column.type.to_s, column.name)
- end
- end
-
end
diff --git a/app/models/outgoing_message.rb b/app/models/outgoing_message.rb
index 7bb8ce8be..2e1b27fba 100644
--- a/app/models/outgoing_message.rb
+++ b/app/models/outgoing_message.rb
@@ -26,6 +26,7 @@
# Email: hello@mysociety.org; WWW: http://www.mysociety.org/
class OutgoingMessage < ActiveRecord::Base
+ include AdminColumn
extend MessageProminence
include Rails.application.routes.url_helpers
include LinkToHelper
@@ -283,12 +284,6 @@ class OutgoingMessage < ActiveRecord::Base
info_request.purge_in_cache
end
- def for_admin_column
- self.class.content_columns.each do |column|
- yield(column.human_name, self.send(column.name), column.type.to_s, column.name)
- end
- end
-
def xapian_reindex_after_update
if changes.include?('body')
info_request_events.each do |event|
diff --git a/app/models/public_body.rb b/app/models/public_body.rb
index fc93d2348..5cd82f8d7 100644
--- a/app/models/public_body.rb
+++ b/app/models/public_body.rb
@@ -32,6 +32,10 @@ require 'securerandom'
require 'set'
class PublicBody < ActiveRecord::Base
+ include AdminColumn
+
+ @non_admin_columns = %w(name last_edit_comment)
+
strip_attributes!
validates_presence_of :name, :message => N_("Name can't be blank")
@@ -647,12 +651,6 @@ class PublicBody < ActiveRecord::Base
self.info_requests.each {|x| x.purge_in_cache}
end
- def for_admin_column
- self.class.content_columns.map{|c| c unless %w(name last_edit_comment).include?(c.name)}.compact.each do |column|
- yield(column.human_name, self.send(column.name), column.type.to_s, column.name)
- end
- end
-
def self.where_clause_for_stats(minimum_requests, total_column)
# When producing statistics for public bodies, we want to
# exclude any that are tagged with 'test' - we use a