aboutsummaryrefslogtreecommitdiffstats
path: root/app/controllers/admin_request_controller.rb
diff options
context:
space:
mode:
authorFrancis Irving <francis@mysociety.org>2010-08-12 01:59:55 +0100
committerFrancis Irving <francis@mysociety.org>2010-08-12 01:59:55 +0100
commit6d7b3a39babec289d1604099b9211e0e29d79a70 (patch)
tree8cf1fdd412b2b0af582f973bf7f10ab04f495c09 /app/controllers/admin_request_controller.rb
parentd2b0305f488286e931b32dcf6940c1e27ec5a8e2 (diff)
Interface to move request to new user or authority
Diffstat (limited to 'app/controllers/admin_request_controller.rb')
-rw-r--r--app/controllers/admin_request_controller.rb32
1 files changed, 32 insertions, 0 deletions
diff --git a/app/controllers/admin_request_controller.rb b/app/controllers/admin_request_controller.rb
index f077691ff..a9cc54c89 100644
--- a/app/controllers/admin_request_controller.rb
+++ b/app/controllers/admin_request_controller.rb
@@ -188,6 +188,38 @@ class AdminRequestController < AdminController
redirect_to request_admin_url(destination_request)
end
+ # change user or public body of a request magically
+ def move_request
+ info_request = InfoRequest.find(params[:info_request_id])
+ if params[:commit] == 'Move request to user' && !params[:user_url_name].blank?
+ destination_user = User.find_by_url_name(params[:user_url_name])
+ if destination_user.nil?
+ flash[:error] = "Couldn't find user '" + params[:user_url_name] + "'"
+ else
+ info_request.user = destination_user
+ info_request.save!
+ info_request.reindex_request_events
+ flash[:notice] = "Message has been moved to new user"
+ end
+ redirect_to request_admin_url(info_request)
+ elsif params[:commit] == 'Move request to authority' && !params[:public_body_url_name].blank?
+ destination_public_body = PublicBody.find_by_url_name(params[:public_body_url_name])
+ if destination_public_body.nil?
+ flash[:error] = "Couldn't find public body '" + params[:public_body_url_name] + "'"
+ else
+ info_request.public_body = destination_public_body
+ info_request.save!
+ info_request.reindex_request_events
+ flash[:notice] = "Request has been moved to new body"
+ end
+
+ redirect_to request_admin_url(info_request)
+ else
+ flash[:error] = "Please enter the user or authority to move the request to"
+ redirect_to request_admin_url(info_request)
+ end
+ end
+
def generate_upload_url
info_request = InfoRequest.find(params[:id])