diff options
Diffstat (limited to 'app/models/outgoing_message.rb')
-rw-r--r-- | app/models/outgoing_message.rb | 25 |
1 files changed, 21 insertions, 4 deletions
diff --git a/app/models/outgoing_message.rb b/app/models/outgoing_message.rb index 36190ce2f..40abe0b0f 100644 --- a/app/models/outgoing_message.rb +++ b/app/models/outgoing_message.rb @@ -39,13 +39,23 @@ class OutgoingMessage < ActiveRecord::Base # contact address changed has_many :info_request_events + # reindex if body text is edited (e.g. by admin interface) + after_update :xapian_reindex_after_update + def xapian_reindex_after_update + if self.changes.include?('body') + for info_request_event in self.info_request_events + info_request_event.xapian_mark_needs_index + end + end + end + # How the default letter starts and ends def get_salutation ret = "Dear " if self.message_type == 'followup' && !self.incoming_message_followup.nil? && !self.incoming_message_followup.safe_mail_from.nil? && self.incoming_message_followup.valid_to_reply_to? ret = ret + OutgoingMailer.name_for_followup(self.info_request, self.incoming_message_followup) else - ret = ret + "Sir or Madam" + ret = ret + self.info_request.public_body.name end return ret + "," end @@ -56,6 +66,9 @@ class OutgoingMessage < ActiveRecord::Base return "Yours faithfully," end end + def get_internal_review_insert_here_note + return "GIVE DETAILS ABOUT YOUR COMPLAINT HERE" + end def get_default_letter if self.what_doing == 'internal_review' "Please pass this on to the person who conducts Freedom of Information reviews." + @@ -64,7 +77,7 @@ class OutgoingMessage < ActiveRecord::Base self.info_request.public_body.name + "'s handling of my FOI request " + "'" + self.info_request.title + "'." + - "\n\n" + + "\n\n\n\n [ " + self.get_internal_review_insert_here_note + " ] \n\n\n\n" + "A full history of my FOI request and all correspondence is available on the Internet at this address:\n" + "http://" + MySociety::Config.get("DOMAIN", '127.0.0.1:3000') + "/request/" + self.info_request.url_title else @@ -119,9 +132,13 @@ class OutgoingMessage < ActiveRecord::Base # Check have edited letter def validate - if self.body.empty? || self.body =~ /\A#{get_salutation}\s+#{get_signoff}/ + if self.body.empty? || self.body =~ /\A#{get_salutation}\s+#{get_signoff}/ || self.body =~ /#{get_internal_review_insert_here_note}/ if self.message_type == 'followup' - errors.add(:body, "^Please enter your follow up message") + if self.what_doing == 'internal_review' + errors.add(:body, "^Please give details explaining why you want a review") + else + errors.add(:body, "^Please enter your follow up message") + end elsif errors.add(:body, "^Please enter your letter requesting information") else |