aboutsummaryrefslogtreecommitdiffstats
path: root/app/models
diff options
context:
space:
mode:
Diffstat (limited to 'app/models')
-rw-r--r--app/models/info_request.rb20
-rw-r--r--app/models/request_mailer.rb4
2 files changed, 21 insertions, 3 deletions
diff --git a/app/models/info_request.rb b/app/models/info_request.rb
index 72bbf8b6a..c6dc88aea 100644
--- a/app/models/info_request.rb
+++ b/app/models/info_request.rb
@@ -20,12 +20,13 @@
# 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.47 2008-02-27 12:04:10 francis Exp $
+# $Id: info_request.rb,v 1.48 2008-02-27 13:59:52 francis Exp $
require 'digest/sha1'
class InfoRequest < ActiveRecord::Base
validates_presence_of :title, :message => "^Please enter a summary of your request"
+ validates_format_of :title, :with => /[a-z]/, :message => "^Please write a summary with some text in it", :if => Proc.new { |info_request| !info_request.title.nil? && !info_request.title.empty? }
belongs_to :user
#validates_presence_of :user_id # breaks during construction of new ones :(
@@ -62,6 +63,23 @@ class InfoRequest < ActiveRecord::Base
end
public
+ # When name is changed, also change the url name
+ def title=(title)
+ write_attribute(:title, title)
+ self.update_url_title
+ end
+ def update_url_title
+ url_title = MySociety::Format.simplify_url_part(self.title)
+ if url_title.size > 32
+ url_title = url_title[0..31]
+ end
+ # For request with same name as others, tag on the request numeric id
+ while not InfoRequest.find_by_url_title(url_title).nil?
+ url_title += "-" + self.id.to_s
+ end
+ write_attribute(:url_title, url_title)
+ end
+
# 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
# FOI request, and HASH is a signature for that id.
diff --git a/app/models/request_mailer.rb b/app/models/request_mailer.rb
index 20ac78b70..d4f85659b 100644
--- a/app/models/request_mailer.rb
+++ b/app/models/request_mailer.rb
@@ -4,7 +4,7 @@
# Copyright (c) 2007 UK Citizens Online Democracy. All rights reserved.
# Email: francis@mysociety.org; WWW: http://www.mysociety.org/
#
-# $Id: request_mailer.rb,v 1.23 2008-02-22 01:58:36 francis Exp $
+# $Id: request_mailer.rb,v 1.24 2008-02-27 13:59:52 francis Exp $
class RequestMailer < ApplicationMailer
@@ -55,7 +55,7 @@ class RequestMailer < ApplicationMailer
@recipients = @from
@subject = "Unusual FOI response, requires admin attention"
# XXX these are repeats of things in helpers/link_to_helper.rb, and shouldn't be
- url = show_request_url(:id => info_request)
+ url = show_request_url(:url_title => info_request.url_title)
admin_url = MySociety::Config.get("ADMIN_BASE_URL", "/admin/") + 'request/show/' + info_request.id.to_s
@body = {:info_request => info_request, :url => url, :admin_url => admin_url }
end