aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authortony <tony>2009-03-10 10:33:52 +0000
committertony <tony>2009-03-10 10:33:52 +0000
commit7edb222ce842ee028c746e76429edae12117995c (patch)
tree05afff4dbbc5190dde075506f1c1270ea4ec88bc
parenta0a6a42b7bcfdac236feea9e1f05f66f88a3677c (diff)
Admin page to list most popular authorities without Publication Scheme info
-rw-r--r--app/controllers/admin_public_body_controller.rb14
-rw-r--r--app/views/admin_public_body/missing_scheme.rhtml10
-rw-r--r--config/routes.rb3
3 files changed, 25 insertions, 2 deletions
diff --git a/app/controllers/admin_public_body_controller.rb b/app/controllers/admin_public_body_controller.rb
index 0e5a8b213..85a654c05 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.19 2009-01-29 12:10:10 francis Exp $
+# $Id: admin_public_body_controller.rb,v 1.20 2009-03-10 10:33:52 tony Exp $
class AdminPublicBodyController < AdminController
def index
@@ -21,6 +21,18 @@ class AdminPublicBodyController < AdminController
@public_bodies_by_tag = PublicBody.find_by_tag(@query)
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("
+ SELECT a.id, a.name, a.url_name, COUNT(*) AS howmany
+ FROM public_bodies a JOIN info_requests r ON a.id = r.public_body_id
+ WHERE a.publication_scheme = ''
+ GROUP BY a.id, a.name, a.url_name
+ ORDER BY howmany DESC
+ LIMIT 20
+ ")
+ end
+
def show
@public_body = PublicBody.find(params[:id])
end
diff --git a/app/views/admin_public_body/missing_scheme.rhtml b/app/views/admin_public_body/missing_scheme.rhtml
new file mode 100644
index 000000000..3a24fc5cc
--- /dev/null
+++ b/app/views/admin_public_body/missing_scheme.rhtml
@@ -0,0 +1,10 @@
+<% @title = 'Popular authorities without Publication Scheme' %>
+
+<h1><%=@title%></h1>
+
+<ol>
+ <% for public_body in @public_bodies %>
+ <li><%= public_body_both_links(public_body) %></li>
+ <% end %>
+</ul>
+
diff --git a/config/routes.rb b/config/routes.rb
index 763bc8b27..36fe71489 100644
--- a/config/routes.rb
+++ b/config/routes.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: routes.rb,v 1.82 2009-03-05 19:09:47 francis Exp $
+# $Id: routes.rb,v 1.83 2009-03-10 10:33:52 tony Exp $
ActionController::Routing::Routes.draw do |map|
@@ -94,6 +94,7 @@ ActionController::Routing::Routes.draw do |map|
map.connect '/admin/timeline', :controller => 'admin_general', :action => 'timeline'
map.connect '/admin/debug', :controller => 'admin_general', :action => 'debug'
map.connect '/admin/stats', :controller => 'admin_general', :action => 'stats'
+ map.connect '/admin/missing_scheme', :controller => 'admin_public_body', :action => 'missing_scheme'
map.connect '/admin/body/:action/:id', :controller => 'admin_public_body'
map.connect '/admin/request/:action/:id', :controller => 'admin_request'
map.connect '/admin/user/:action/:id', :controller => 'admin_user'