diff options
Diffstat (limited to 'app/models')
-rw-r--r-- | app/models/info_request.rb | 12 | ||||
-rw-r--r-- | app/models/outgoing_message.rb | 7 |
2 files changed, 14 insertions, 5 deletions
diff --git a/app/models/info_request.rb b/app/models/info_request.rb index 159663691..447ff6c1a 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.124 2008-07-21 00:48:05 francis Exp $ +# $Id: info_request.rb,v 1.125 2008-07-30 13:31:00 francis Exp $ require 'digest/sha1' require File.join(File.dirname(__FILE__),'../../vendor/plugins/acts_as_xapian/lib/acts_as_xapian') @@ -225,8 +225,14 @@ public # XXX this *should* also check outgoing message joined to is an initial # request (rather than follow up) def InfoRequest.find_by_existing_request(title, public_body_id, body) - # Exclude spaces from the body comparison - return InfoRequest.find(:first, :conditions => [ "title = ? and public_body_id = ? and regexp_replace(outgoing_messages.body, '[[:space:]]', '', 'g') = regexp_replace(?, '[[:space:]]', '', 'g')", title, public_body_id, body ], :include => [ :outgoing_messages ] ) + # XXX can add other databases here which have regexp_replace + if ActiveRecord::Base.connection.adapter_name == "PostgreSQL" + # Exclude spaces from the body comparison using regexp_replace + return InfoRequest.find(:first, :conditions => [ "title = ? and public_body_id = ? and regexp_replace(outgoing_messages.body, '[[:space:]]', '', 'g') = regexp_replace(?, '[[:space:]]', '', 'g')", title, public_body_id, body ], :include => [ :outgoing_messages ] ) + else + # For other databases (e.g. SQLite) not the end of the world being space-sensitive for this check + return InfoRequest.find(:first, :conditions => [ "title = ? and public_body_id = ? and outgoing_messages.body = ?", title, public_body_id, body ], :include => [ :outgoing_messages ] ) + end end # A new incoming email to this request diff --git a/app/models/outgoing_message.rb b/app/models/outgoing_message.rb index 0b8276ca3..b5e9f7786 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.56 2008-07-17 10:32:01 francis Exp $ +# $Id: outgoing_message.rb,v 1.57 2008-07-30 13:31:00 francis Exp $ class OutgoingMessage < ActiveRecord::Base belongs_to :info_request @@ -55,10 +55,13 @@ class OutgoingMessage < ActiveRecord::Base if ret.nil? return ret end - ret.strip! + ret = ret.strip ret = ret.gsub(/(?:\n\s*){2,}/, "\n\n") # remove excess linebreaks that unnecessarily space it out ret end + def raw_body + read_attribute(:body) + end def body_without_salutation ret = self.body |