diff options
author | francis <francis> | 2008-04-14 12:09:38 +0000 |
---|---|---|
committer | francis <francis> | 2008-04-14 12:09:38 +0000 |
commit | cbd99b225b27c8a0e7b8a1754840b7f204334130 (patch) | |
tree | b5de320e803fbc8240644f2423e11fcea0910d62 /app/controllers/admin_public_body_controller.rb | |
parent | bcbb73350156347ff61e1e4900cc6d6a4228f165 (diff) |
Import CSV file using web interface.
Diffstat (limited to 'app/controllers/admin_public_body_controller.rb')
-rw-r--r-- | app/controllers/admin_public_body_controller.rb | 29 |
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 |