aboutsummaryrefslogtreecommitdiffstats
path: root/app/models/info_request.rb
diff options
context:
space:
mode:
Diffstat (limited to 'app/models/info_request.rb')
-rw-r--r--app/models/info_request.rb12
1 files changed, 10 insertions, 2 deletions
diff --git a/app/models/info_request.rb b/app/models/info_request.rb
index a417ecc3c..5ff0b3a1c 100644
--- a/app/models/info_request.rb
+++ b/app/models/info_request.rb
@@ -20,7 +20,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.31 2008-01-29 03:05:47 francis Exp $
+# $Id: info_request.rb,v 1.32 2008-01-30 09:53:47 francis Exp $
require 'digest/sha1'
@@ -48,6 +48,10 @@ class InfoRequest < ActiveRecord::Base
'partially_successful'
]
+ def after_initialize
+ self.described_state = 'waiting_response'
+ end
+
public
# Email which public body should use to respond to request. This is in
# the format PREFIXrequest-ID-HASH@DOMAIN. Here ID is the id of the
@@ -89,8 +93,9 @@ public
# A new incoming email to this request
def receive(email, raw_email, is_bounce)
+ incoming_message = IncomingMessage.new
+
ActiveRecord::Base.transaction do
- incoming_message = IncomingMessage.new
incoming_message.raw_data = raw_email
incoming_message.is_bounce = is_bounce
incoming_message.info_request = self
@@ -149,6 +154,9 @@ public
# clarifications asked for by the public body, and so reset things.
# Possibly just show 20 working days since the *last* message? Hmmm.
earliest_sent = self.outgoing_messages.map { |om| om.last_sent_at }.min
+ if earliest_sent.nil?
+ raise "internal error, minimum last_sent_at for outgoing_messages is nil for request " + self.id.to_s
+ end
days_passed = 0
response_required_by = earliest_sent