aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorfrancis <francis>2008-09-22 04:06:37 +0000
committerfrancis <francis>2008-09-22 04:06:37 +0000
commit59a3b540f4b59a16c1fdb38c5f5f2192e9ebc786 (patch)
treee2a6a0521a8454447d78903015e5e222baa5a61e
parent7ea1d99219aab98ed7c3305208c3409394647938 (diff)
Add function to list emails you might followup to.
-rw-r--r--app/models/info_request.rb25
-rw-r--r--app/models/request_mailer.rb11
2 files changed, 34 insertions, 2 deletions
diff --git a/app/models/info_request.rb b/app/models/info_request.rb
index 8d02aa74c..2a085991a 100644
--- a/app/models/info_request.rb
+++ b/app/models/info_request.rb
@@ -23,7 +23,7 @@
# Copyright (c) 2007 UK Citizens Online Democracy. All rights reserved.
# Email: francis@mysociety.org; WWW: http://www.mysociety.org/
#
-# $Id: info_request.rb,v 1.138 2008-09-12 08:26:04 francis Exp $
+# $Id: info_request.rb,v 1.139 2008-09-22 04:06:37 francis Exp $
require 'digest/sha1'
require File.join(File.dirname(__FILE__),'../../vendor/plugins/acts_as_xapian/lib/acts_as_xapian')
@@ -683,6 +683,29 @@ public
'(select created_at from info_request_events where info_request_events.info_request_id = info_requests.id order by created_at desc limit 1)'
end
+ # List of incoming messages to followup, by unique email
+ def who_can_followup_to
+ ret = []
+ done = {}
+ for incoming_message in self.incoming_messages.reverse
+ incoming_message.safe_mail_from
+
+ email = RequestMailer.email_for_followup(self, incoming_message)
+ name = RequestMailer.name_for_followup(self, incoming_message)
+
+ if !done.include?(email.downcase)
+ ret = ret + [[name, email, incoming_message.id]]
+ end
+ done[email.downcase] = 1
+ end
+
+ if !done.include?(self.public_body.request_email.downcase)
+ ret = ret + [[self.public_body.name, self.public_body.request_email, nil]]
+ end
+ done[self.public_body.request_email.downcase] = 1
+
+ return ret.reverse
+ end
end
diff --git a/app/models/request_mailer.rb b/app/models/request_mailer.rb
index ed5ed9ff6..2876ddded 100644
--- a/app/models/request_mailer.rb
+++ b/app/models/request_mailer.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: request_mailer.rb,v 1.57 2008-09-21 23:19:54 francis Exp $
+# $Id: request_mailer.rb,v 1.58 2008-09-22 04:06:37 francis Exp $
class RequestMailer < ApplicationMailer
@@ -43,6 +43,15 @@ class RequestMailer < ApplicationMailer
return incoming_message_followup.safe_mail_from || info_request.public_body.name
end
end
+ # Used when making list of followup places to remove duplicates
+ def RequestMailer.email_for_followup(info_request, incoming_message_followup)
+ if incoming_message_followup.nil?
+ return info_request.recipient_email
+ else
+ return incoming_message_followup.mail.from_addrs[0].spec
+ end
+ end
+
# Used when an FOI officer uploads a response from their web browser - this is
# the "fake" email used to store in the same format in the database as if they