aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--app/models/track_thing.rb100
1 files changed, 49 insertions, 51 deletions
diff --git a/app/models/track_thing.rb b/app/models/track_thing.rb
index 6178b14fd..eb0dfc199 100644
--- a/app/models/track_thing.rb
+++ b/app/models/track_thing.rb
@@ -48,10 +48,8 @@ class TrackThing < ActiveRecord::Base
# When constructing a new track, use this to avoid duplicates / double posting
def self.find_existing(tracking_user, track)
- if tracking_user.nil?
- return nil
- end
- return TrackThing.find(:first, :conditions => [ 'tracking_user_id = ? and track_query = ? and track_type = ?', tracking_user.id, track.track_query, track.track_type ] )
+ return nil if tracking_user.nil?
+ TrackThing.find(:first, :conditions => [ 'tracking_user_id = ? and track_query = ? and track_type = ?', tracking_user.id, track.track_query, track.track_type ] )
end
def self.track_type_description(track_type)
@@ -66,7 +64,7 @@ class TrackThing < ActiveRecord::Base
elsif track_type == 'search_query'
_("Search queries")
else
- raise "internal error " + track_type
+ raise "internal error " << track_type
end
end
@@ -74,48 +72,48 @@ class TrackThing < ActiveRecord::Base
track_thing = TrackThing.new
track_thing.track_type = 'request_updates'
track_thing.info_request = info_request
- track_thing.track_query = "request:" + info_request.url_title
- return track_thing
+ track_thing.track_query = "request:#{ info_request.url_title }"
+ track_thing
end
def self.create_track_for_all_new_requests
track_thing = TrackThing.new
track_thing.track_type = 'all_new_requests'
track_thing.track_query = "variety:sent"
- return track_thing
+ track_thing
end
def self.create_track_for_all_successful_requests
track_thing = TrackThing.new
track_thing.track_type = 'all_successful_requests'
track_thing.track_query = 'variety:response (status:successful OR status:partially_successful)'
- return track_thing
+ track_thing
end
def self.create_track_for_public_body(public_body, event_type = nil)
track_thing = TrackThing.new
track_thing.track_type = 'public_body_updates'
track_thing.public_body = public_body
- query = "requested_from:" + public_body.url_name
+ query = "requested_from:#{ public_body.url_name }"
if InfoRequestEvent.enumerate_event_types.include?(event_type)
- query += " variety:" + event_type
+ query += " variety:#{ event_type }"
end
track_thing.track_query = query
- return track_thing
+ track_thing
end
def self.create_track_for_user(user)
track_thing = TrackThing.new
track_thing.track_type = 'user_updates'
track_thing.tracked_user = user
- track_thing.track_query = "requested_by:" + user.url_name + " OR commented_by:" + user.url_name
- return track_thing
+ track_thing.track_query = "requested_by:#{ user.url_name } OR commented_by: #{ user.url_name }"
+ track_thing
end
def self.create_track_for_search_query(query, variety_postfix = nil)
track_thing = TrackThing.new
track_thing.track_type = 'search_query'
- if !(query =~ /variety:/)
+ unless query =~ /variety:/
case variety_postfix
when "requests"
query += " variety:sent"
@@ -131,11 +129,11 @@ class TrackThing < ActiveRecord::Base
# Should also update "params" to make the list_description
# nicer and more generic. It will need to do some clever
# parsing of the query to do this nicely
- return track_thing
+ track_thing
end
def track_type_description
- TrackThing.track_type_description(self.track_type)
+ TrackThing.track_type_description(track_type)
end
def track_query_description
@@ -143,14 +141,17 @@ class TrackThing < ActiveRecord::Base
:no_query => N_("all requests or comments"),
:query => N_("all requests or comments matching text '{{query}}'"))
return filter_description if filter_description
+
filter_description = query_filter_description('(latest_status:successful OR latest_status:partially_successful)',
:no_query => N_("requests which are successful"),
:query => N_("requests which are successful matching text '{{query}}'"))
return filter_description if filter_description
- return _("anything matching text '{{query}}'", :query => track_query)
+
+ _("anything matching text '{{query}}'", :query => track_query)
end
- # Return a readable query description for queries involving commonly used filter clauses
+ # Return a readable query description for queries involving commonly used
+ # filter clauses
def query_filter_description(string, options)
parsed_query = track_query.gsub(string, '')
if parsed_query != track_query
@@ -166,28 +167,27 @@ class TrackThing < ActiveRecord::Base
# Return hash of text parameters describing the request etc.
def params
if @params.nil?
- if self.track_type == 'request_updates'
+ if track_type == 'request_updates'
@params = {
# Website
-
:verb_on_page => _("Follow this request"),
:verb_on_page_already => _("You are already following this request"),
# Email
:title_in_email => _("New updates for the request '{{request_title}}'",
- :request_title => self.info_request.title.html_safe),
+ :request_title => info_request.title.html_safe),
:title_in_rss => _("New updates for the request '{{request_title}}'",
- :request_title => self.info_request.title),
+ :request_title => info_request.title),
# Authentication
:web => _("To follow the request '{{request_title}}'",
- :request_title => self.info_request.title),
+ :request_title => info_request.title),
:email => _("Then you will be updated whenever the request '{{request_title}}' is updated.",
- :request_title => self.info_request.title),
+ :request_title => info_request.title),
:email_subject => _("Confirm you want to follow the request '{{request_title}}'",
- :request_title => self.info_request.title),
+ :request_title => info_request.title),
# RSS sorting
:feed_sortby => 'newest'
}
- elsif self.track_type == 'all_new_requests'
+ elsif track_type == 'all_new_requests'
@params = {
# Website
:verb_on_page => _("Follow all new requests"),
@@ -202,7 +202,7 @@ class TrackThing < ActiveRecord::Base
# RSS sorting
:feed_sortby => 'newest'
}
- elsif self.track_type == 'all_successful_requests'
+ elsif track_type == 'all_successful_requests'
@params = {
# Website
:verb_on_page => _("Follow new successful responses"),
@@ -220,52 +220,52 @@ class TrackThing < ActiveRecord::Base
# success) causes match.
:feed_sortby => 'described'
}
- elsif self.track_type == 'public_body_updates'
+ elsif track_type == 'public_body_updates'
@params = {
# Website
:verb_on_page => _("Follow requests to {{public_body_name}}",
- :public_body_name => self.public_body.name),
+ :public_body_name => public_body.name),
:verb_on_page_already => _("You are already following requests to {{public_body_name}}",
- :public_body_name => self.public_body.name),
+ :public_body_name => public_body.name),
# Email
:title_in_email => _("{{foi_law}} requests to '{{public_body_name}}'",
- :foi_law => self.public_body.law_only_short,
- :public_body_name => self.public_body.name),
+ :foi_law => public_body.law_only_short,
+ :public_body_name => public_body.name),
:title_in_rss => _("{{foi_law}} requests to '{{public_body_name}}'",
- :foi_law => self.public_body.law_only_short,
- :public_body_name => self.public_body.name),
+ :foi_law => public_body.law_only_short,
+ :public_body_name => public_body.name),
# Authentication
:web => _("To follow requests made using {{site_name}} to the public authority '{{public_body_name}}'",
- :site_name => AlaveteliConfiguration::site_name,
- :public_body_name => self.public_body.name),
+ :site_name => AlaveteliConfiguration.site_name,
+ :public_body_name => public_body.name),
:email => _("Then you will be notified whenever someone requests something or gets a response from '{{public_body_name}}'.",
- :public_body_name => self.public_body.name),
+ :public_body_name => public_body.name),
:email_subject => _("Confirm you want to follow requests to '{{public_body_name}}'",
- :public_body_name => self.public_body.name),
+ :public_body_name => public_body.name),
# RSS sorting
:feed_sortby => 'newest'
}
- elsif self.track_type == 'user_updates'
+ elsif track_type == 'user_updates'
@params = {
# Website
:verb_on_page => _("Follow this person"),
:verb_on_page_already => _("You are already following this person"),
# Email
:title_in_email => _("FOI requests by '{{user_name}}'",
- :user_name => self.tracked_user.name.html_safe),
+ :user_name => tracked_user.name.html_safe),
:title_in_rss => _("FOI requests by '{{user_name}}'",
- :user_name => self.tracked_user.name),
+ :user_name => tracked_user.name),
# Authentication
:web => _("To follow requests by '{{user_name}}'",
- :user_name=> self.tracked_user.name),
+ :user_name => tracked_user.name),
:email => _("Then you will be notified whenever '{{user_name}}' requests something or gets a response.",
- :user_name => self.tracked_user.name),
+ :user_name => tracked_user.name),
:email_subject => _("Confirm you want to follow requests by '{{user_name}}'",
- :user_name => self.tracked_user.name),
+ :user_name => tracked_user.name),
# RSS sorting
:feed_sortby => 'newest'
}
- elsif self.track_type == 'search_query'
+ elsif track_type == 'search_query'
@params = {
# Website
:verb_on_page => _("Follow things matching this search"),
@@ -287,12 +287,10 @@ class TrackThing < ActiveRecord::Base
:feed_sortby => 'described'
}
else
- raise "unknown tracking type " + self.track_type
+ raise "unknown tracking type #{ track_type }"
end
end
- return @params
- end
+ @params
+ end
end
-
-