aboutsummaryrefslogtreecommitdiffstats
path: root/app/models
diff options
context:
space:
mode:
Diffstat (limited to 'app/models')
-rw-r--r--app/models/info_request.rb19
-rw-r--r--app/models/outgoing_message.rb4
2 files changed, 16 insertions, 7 deletions
diff --git a/app/models/info_request.rb b/app/models/info_request.rb
index d3285116c..e439ee656 100644
--- a/app/models/info_request.rb
+++ b/app/models/info_request.rb
@@ -21,7 +21,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.106 2008-05-09 01:02:32 francis Exp $
+# $Id: info_request.rb,v 1.107 2008-05-12 00:56:22 francis Exp $
require 'digest/sha1'
require File.join(File.dirname(__FILE__),'../../vendor/plugins/acts_as_xapian/lib/acts_as_xapian')
@@ -178,12 +178,11 @@ public
RequestMailer.deliver_new_response(self, incoming_message)
end
- # Change status - event id is of the most recent event at the change
- # XXX should probably check event id is last event here
- def set_described_state(new_state, event_id)
+ # Change status, including for last event for later historical purposes
+ def set_described_state(new_state)
ActiveRecord::Base.transaction do
self.awaiting_description = false
- last_event = InfoRequestEvent.find(event_id)
+ last_event = self.get_last_event
last_event.described_state = new_state
self.described_state = new_state
last_event.save!
@@ -358,6 +357,16 @@ public
end
# The last response is the default one people might want to reply to
+ def get_last_response_event
+ info_request_event_id = get_last_response_event_id
+ if info_request_event_id.nil?
+ return nil
+ else
+ return InfoRequestEvent.find(info_request_event_id)
+ end
+ end
+
+ # The last response is the default one people might want to reply to
def get_last_response
event_id = self.get_last_response_event_id
if event_id.nil?
diff --git a/app/models/outgoing_message.rb b/app/models/outgoing_message.rb
index 189ff77d2..b13f266d5 100644
--- a/app/models/outgoing_message.rb
+++ b/app/models/outgoing_message.rb
@@ -21,7 +21,7 @@
# Copyright (c) 2007 UK Citizens Online Democracy. All rights reserved.
# Email: francis@mysociety.org; WWW: http://www.mysociety.org/
#
-# $Id: outgoing_message.rb,v 1.44 2008-04-24 22:50:03 angie Exp $
+# $Id: outgoing_message.rb,v 1.45 2008-05-12 00:56:22 francis Exp $
class OutgoingMessage < ActiveRecord::Base
belongs_to :info_request
@@ -97,7 +97,7 @@ class OutgoingMessage < ActiveRecord::Base
self.save!
self.info_request.log_event('followup_' + log_event_type, { :email => self.info_request.recipient_email, :outgoing_message_id => self.id })
if self.info_request.described_state == 'waiting_clarification'
- self.info_request.set_described_state('waiting_response', self.info_request.events_needing_description[-1].id)
+ self.info_request.set_described_state('waiting_response')
end
else
raise "Message id #{self.id} has type '#{self.message_type}' which send_message can't handle"