aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--app/models/track_thing.rb72
1 files changed, 37 insertions, 35 deletions
diff --git a/app/models/track_thing.rb b/app/models/track_thing.rb
index 38de18bd3..e9365ad77 100644
--- a/app/models/track_thing.rb
+++ b/app/models/track_thing.rb
@@ -46,6 +46,14 @@ class TrackThing < ActiveRecord::Base
'feed'
]
+ # When constructing a new track, use this to avoid duplicates / double posting
+ def TrackThing.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 ] )
+ end
+
def TrackThing.track_type_description(track_type)
if track_type == 'request_updates'
_("Individual requests")
@@ -61,34 +69,6 @@ class TrackThing < ActiveRecord::Base
raise "internal error " + track_type
end
end
- def track_type_description
- TrackThing.track_type_description(self.track_type)
- end
-
- def track_query_description
- filter_description = query_filter_description('(variety:sent OR variety:followup_sent OR variety:response OR variety:comment)',
- :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)
- end
-
- # 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
- parsed_query.strip!
- if parsed_query.empty?
- _(options[:no_query])
- else
- _(options[:query], :query => parsed_query)
- end
- end
- end
def TrackThing.create_track_for_request(info_request)
track_thing = TrackThing.new
@@ -154,6 +134,35 @@ class TrackThing < ActiveRecord::Base
return track_thing
end
+ def track_type_description
+ TrackThing.track_type_description(self.track_type)
+ end
+
+ def track_query_description
+ filter_description = query_filter_description('(variety:sent OR variety:followup_sent OR variety:response OR variety:comment)',
+ :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)
+ end
+
+ # 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
+ parsed_query.strip!
+ if parsed_query.empty?
+ _(options[:no_query])
+ else
+ _(options[:query], :query => parsed_query)
+ end
+ end
+ end
+
# Return hash of text parameters describing the request etc.
def params
if @params.nil?
@@ -284,13 +293,6 @@ class TrackThing < ActiveRecord::Base
return @params
end
- # When constructing a new track, use this to avoid duplicates / double posting
- def TrackThing.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 ] )
- end
end