aboutsummaryrefslogtreecommitdiffstats
path: root/app/controllers
diff options
context:
space:
mode:
Diffstat (limited to 'app/controllers')
-rw-r--r--app/controllers/admin_controller.rb3
-rw-r--r--app/controllers/admin_request_controller.rb36
2 files changed, 29 insertions, 10 deletions
diff --git a/app/controllers/admin_controller.rb b/app/controllers/admin_controller.rb
index a40225a75..148853168 100644
--- a/app/controllers/admin_controller.rb
+++ b/app/controllers/admin_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_controller.rb,v 1.16 2008-06-10 10:18:57 francis Exp $
+# $Id: admin_controller.rb,v 1.17 2008-07-08 09:41:04 francis Exp $
class AdminController < ApplicationController
layout "admin"
@@ -22,6 +22,7 @@ class AdminController < ApplicationController
@requires_admin_requests = InfoRequest.find(:all, :select => '*, ' + last_event_time_clause + ' as last_event_time', :conditions => ["described_state = 'requires_admin'"], :order => "last_event_time")
@blank_contacts = PublicBody.find(:all, :conditions => ["request_email = ''"], :order => "updated_at")
@one_week_old_unclassified = InfoRequest.find(:all, :select => '*, ' + last_event_time_clause + ' as last_event_time', :conditions => [ "awaiting_description and " + last_event_time_clause + " < ? and prominence != 'backpage'", Time.now() - 1.weeks ], :order => "last_event_time")
+ @holding_pen_messages = InfoRequest.holding_pen_request.incoming_messages
end
def timeline
diff --git a/app/controllers/admin_request_controller.rb b/app/controllers/admin_request_controller.rb
index 02481a9aa..adbcdc9e9 100644
--- a/app/controllers/admin_request_controller.rb
+++ b/app/controllers/admin_request_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_request_controller.rb,v 1.13 2008-05-19 12:01:21 francis Exp $
+# $Id: admin_request_controller.rb,v 1.14 2008-07-08 09:41:04 francis Exp $
class AdminRequestController < ApplicationController
layout "admin"
@@ -104,19 +104,12 @@ class AdminRequestController < ApplicationController
def destroy_incoming
@incoming_message = IncomingMessage.find(params[:incoming_message_id])
- @info_request_event = InfoRequestEvent.find_by_incoming_message_id(@incoming_message.id)
@info_request = @incoming_message.info_request
raw_data = @incoming_message
incoming_message_id = @incoming_message.id
- ActiveRecord::Base.transaction do
- @info_request_event.track_things_sent_emails.each { |a| a.destroy }
- @info_request_event.user_info_request_sent_alerts.each { |a| a.destroy }
- @info_request_event.destroy
- @incoming_message.destroy
- end
-
+ @incoming_message.fully_destroy
@incoming_message.info_request.log_event("destroy_incoming",
{ :editor => admin_http_auth_user(), :raw_data => raw_data })
@@ -124,6 +117,31 @@ class AdminRequestController < ApplicationController
redirect_to request_admin_url(@info_request)
end
+ def redeliver_incoming
+ incoming_message = IncomingMessage.find(params[:redeliver_incoming_message_id])
+
+ if params[:url_title].match(/^[0-9]+$/)
+ destination_request = InfoRequest.find(params[:url_title].to_i)
+ else
+ destination_request = InfoRequest.find_by_url_title(params[:url_title])
+ end
+
+ if destination_request.nil?
+ flash[:error] = "Failed to find destination request '" + params[:url_title] + "'"
+ redirect_to request_admin_url(incoming_message.info_request)
+ end
+
+ raw_email = incoming_message.raw_data
+ mail = TMail::Mail.parse(raw_email)
+ mail.base64_decode
+ destination_request.receive(mail, raw_email)
+
+ incoming_message.fully_destroy
+
+ flash[:notice] = "Message has been moved to this request"
+ redirect_to request_admin_url(destination_request)
+ end
+
private
end