aboutsummaryrefslogtreecommitdiffstats
path: root/app/controllers/admin_public_body_controller.rb
diff options
context:
space:
mode:
authorfrancis <francis>2009-08-26 00:45:38 +0000
committerfrancis <francis>2009-08-26 00:45:38 +0000
commit3e1a49796ce3a9b322b90fcedeeffed3191f9dd3 (patch)
tree3847336a59f699b0442bd7f187927e827c78dc61 /app/controllers/admin_public_body_controller.rb
parentf5ac4360d615ca08d343cfaccd406d41336b94be (diff)
Put tags (with links) in column on list of bodies admin interface tables.
Interface to mass add tags to all bodies in admin search result.
Diffstat (limited to 'app/controllers/admin_public_body_controller.rb')
-rw-r--r--app/controllers/admin_public_body_controller.rb31
1 files changed, 29 insertions, 2 deletions
diff --git a/app/controllers/admin_public_body_controller.rb b/app/controllers/admin_public_body_controller.rb
index 4185acf4f..8f51a4cfb 100644
--- a/app/controllers/admin_public_body_controller.rb
+++ b/app/controllers/admin_public_body_controller.rb
@@ -4,7 +4,7 @@
# Copyright (c) 2007 UK Citizens Online Democracy. All rights reserved.
# Email: francis@mysociety.org; WWW: http://www.mysociety.org/
#
-# $Id: admin_public_body_controller.rb,v 1.21 2009-03-24 09:01:28 tony Exp $
+# $Id: admin_public_body_controller.rb,v 1.22 2009-08-26 00:45:38 francis Exp $
class AdminPublicBodyController < AdminController
def index
@@ -12,8 +12,11 @@ class AdminPublicBodyController < AdminController
render :action => 'list'
end
- def list
+ def _lookup_query_internal
@query = params[:query]
+ if @query == ""
+ @query = nil
+ end
@public_bodies = PublicBody.paginate :order => "name", :page => params[:page], :per_page => 100,
:conditions => @query.nil? ? nil : ["lower(name) like lower('%'||?||'%') or
lower(short_name) like lower('%'||?||'%') or
@@ -21,6 +24,30 @@ class AdminPublicBodyController < AdminController
@public_bodies_by_tag = PublicBody.find_by_tag(@query)
end
+ def list
+ self._lookup_query_internal
+ end
+
+ def mass_tag_add
+ self._lookup_query_internal
+
+ if params[:new_tag] and params[:new_tag] != ""
+ if params[:table_name] == 'exact':
+ bodies = @public_bodies_by_tag
+ elsif params[:table_name] == 'substring':
+ bodies = @public_bodies
+ else
+ raise "Unknown table_name " + params[:table_name]
+ end
+ for body in bodies
+ body.add_tag_if_not_already_present(params[:new_tag])
+ end
+ flash[:notice] = "Added tag to table of bodies."
+ end
+
+ redirect_to admin_url('body/list') + "?query=" + @query # XXX construct this URL properly
+ end
+
def missing_scheme
# There might be a way to do this in ActiveRecord, but I can't find it
@public_bodies = PublicBody.find_by_sql("