aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--app/models/info_request.rb14
-rw-r--r--app/models/outgoing_message.rb3
-rw-r--r--db/migrate/070_sent_are_waiting_response.rb8
-rw-r--r--db/schema.rb2
4 files changed, 19 insertions, 8 deletions
diff --git a/app/models/info_request.rb b/app/models/info_request.rb
index a8610d70a..5edc84368 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.157 2008-12-02 12:41:33 francis Exp $
+# $Id: info_request.rb,v 1.158 2008-12-17 13:19:15 francis Exp $
require 'digest/sha1'
require File.join(File.dirname(__FILE__),'../../vendor/plugins/acts_as_xapian/lib/acts_as_xapian')
@@ -375,9 +375,11 @@ public
def calculate_event_states
curr_state = nil
for event in self.info_request_events.reverse
- if !event.described_state.nil? && curr_state.nil?
- curr_state = event.described_state
- #STDERR.puts "curr_state " + curr_state
+ if curr_state.nil?
+ if !event.described_state.nil?
+ curr_state = event.described_state
+ #STDERR.puts "curr_state " + curr_state
+ end
end
if !curr_state.nil? && event.event_type == 'response'
@@ -391,9 +393,9 @@ public
event.save!
end
curr_state = nil
- elsif !curr_state.nil? && event.event_type == 'followup_sent' && !event.described_state.nil? && (event.described_state == 'waiting_response' || event.described_state == 'internal_review')
+ elsif !curr_state.nil? && (event.event_type == 'followup_sent' || event.event_type == 'sent') && !event.described_state.nil? && (event.described_state == 'waiting_response' || event.described_state == 'internal_review')
# Followups can set the status to waiting response / internal
- # review.
+ # review. Initial requests ('sent') set the status to waiting response.
# We want to store that in calculated_state state so it gets
# indexed.
diff --git a/app/models/outgoing_message.rb b/app/models/outgoing_message.rb
index 933203fd3..043f94f26 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.75 2008-12-02 12:41:33 francis Exp $
+# $Id: outgoing_message.rb,v 1.76 2008-12-17 13:19:15 francis Exp $
class OutgoingMessage < ActiveRecord::Base
strip_attributes!
@@ -151,6 +151,7 @@ class OutgoingMessage < ActiveRecord::Base
self.status = 'sent'
self.save!
self.info_request.log_event(log_event_type, { :email => self.info_request.recipient_name_and_email, :outgoing_message_id => self.id })
+ self.info_request.set_described_state('waiting_response')
elsif self.message_type == 'followup'
RequestMailer.deliver_followup(self.info_request, self, self.incoming_message_followup)
self.last_sent_at = Time.now
diff --git a/db/migrate/070_sent_are_waiting_response.rb b/db/migrate/070_sent_are_waiting_response.rb
new file mode 100644
index 000000000..af66705b5
--- /dev/null
+++ b/db/migrate/070_sent_are_waiting_response.rb
@@ -0,0 +1,8 @@
+class SentAreWaitingResponse < ActiveRecord::Migration
+ def self.up
+ InfoRequestEvent.update_all "described_state = 'waiting_response', calculated_state = 'waiting_response', last_described_at = created_at where event_type = 'sent'"
+ end
+
+ def self.down
+ end
+end
diff --git a/db/schema.rb b/db/schema.rb
index dd0a70937..e0b8d6217 100644
--- a/db/schema.rb
+++ b/db/schema.rb
@@ -9,7 +9,7 @@
#
# It's strongly recommended to check this file into your version control system.
-ActiveRecord::Schema.define(:version => 69) do
+ActiveRecord::Schema.define(:version => 70) do
create_table "acts_as_xapian_jobs", :force => true do |t|
t.string "model", :null => false