aboutsummaryrefslogtreecommitdiffstats
path: root/app/controllers
diff options
context:
space:
mode:
Diffstat (limited to 'app/controllers')
-rw-r--r--app/controllers/admin_public_body_controller.rb29
1 files changed, 28 insertions, 1 deletions
diff --git a/app/controllers/admin_public_body_controller.rb b/app/controllers/admin_public_body_controller.rb
index dbaba324a..4c7b63f24 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.11 2008-04-11 15:53:57 francis Exp $
+# $Id: admin_public_body_controller.rb,v 1.12 2008-04-14 12:09:38 francis Exp $
class AdminPublicBodyController < ApplicationController
layout "admin"
@@ -66,6 +66,33 @@ class AdminPublicBodyController < ApplicationController
redirect_to admin_url('body/list')
end
+ def import_csv
+ if params[:csv_file]
+ # Try with dry run first
+ csv_contents = params[:csv_file].read
+ en = PublicBody.import_csv(csv_contents, params[:tag], true)
+ errors = en[0]
+ notes = en[1]
+
+ if errors.size == 0
+ # And if OK, with real run
+ en = PublicBody.import_csv(csv_contents, params[:tag], false)
+ errors = en[0]
+ notes = en[1]
+ if errors.size != 0
+ raise "dry run mismatched real run"
+ end
+ notes.push("Import was successful.")
+ end
+ @errors = errors.join("\n")
+ @notes = notes.join("\n")
+ else
+ @errors = ""
+ @notes = ""
+ end
+
+ end
+
private
end