diff options
author | francis <francis> | 2008-12-17 13:19:15 +0000 |
---|---|---|
committer | francis <francis> | 2008-12-17 13:19:15 +0000 |
commit | 3d0a8dd7dd1f404f99cecf13c8683b405ecb12fe (patch) | |
tree | 5765b39423434c5143056267fcff3aa22fde9545 | |
parent | abba46f3cb56666dfbf756c3f3650075c743418f (diff) |
Make waiting_response get set as described state of initial sent event.
Alter historical ones to that also.
-rw-r--r-- | app/models/info_request.rb | 14 | ||||
-rw-r--r-- | app/models/outgoing_message.rb | 3 | ||||
-rw-r--r-- | db/migrate/070_sent_are_waiting_response.rb | 8 | ||||
-rw-r--r-- | db/schema.rb | 2 |
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 |