aboutsummaryrefslogtreecommitdiffstats
path: root/app/models/info_request.rb
diff options
context:
space:
mode:
authorLouise Crow <louise.crow@gmail.com>2013-08-28 09:37:58 +0100
committerLouise Crow <louise.crow@gmail.com>2013-09-16 14:03:23 +0100
commiteb16ca53ae1b1cfa5f23bb56d10e9eecc50b00e6 (patch)
tree0426571e494be9213947fae6600b9cf7740bb6ec /app/models/info_request.rb
parent939f08a5396b65778748417c26b54c214fe35883 (diff)
Exclude hidden responses when calculating old_unclassified
Make old_unclassified_params method consistent with last_public_response_event and associated methods.
Diffstat (limited to 'app/models/info_request.rb')
-rw-r--r--app/models/info_request.rb18
1 files changed, 14 insertions, 4 deletions
diff --git a/app/models/info_request.rb b/app/models/info_request.rb
index e9deb7b05..44593295d 100644
--- a/app/models/info_request.rb
+++ b/app/models/info_request.rb
@@ -905,19 +905,29 @@ public
end
# Used to find when event last changed
- def InfoRequest.last_event_time_clause(event_type=nil)
+ def InfoRequest.last_event_time_clause(event_type=nil, join_table=nil, join_clause=nil)
event_type_clause = ''
event_type_clause = " AND info_request_events.event_type = '#{event_type}'" if event_type
- "(SELECT created_at
- FROM info_request_events
+ tables = ['info_request_events']
+ tables << join_table if join_table
+ join_clause = "AND #{join_clause}" if join_clause
+ "(SELECT info_request_events.created_at
+ FROM #{tables.join(', ')}
WHERE info_request_events.info_request_id = info_requests.id
#{event_type_clause}
+ #{join_clause}
ORDER BY created_at desc
LIMIT 1)"
end
+ def InfoRequest.last_public_response_clause()
+ join_clause = "incoming_messages.id = info_request_events.incoming_message_id
+ AND incoming_messages.prominence = 'normal'"
+ last_event_time_clause('response', 'incoming_messages', join_clause)
+ end
+
def InfoRequest.old_unclassified_params(extra_params, include_last_response_time=false)
- last_response_created_at = last_event_time_clause('response')
+ last_response_created_at = last_public_response_clause()
age = extra_params[:age_in_days] ? extra_params[:age_in_days].days : OLD_AGE_IN_DAYS
params = { :conditions => ["awaiting_description = ?
AND #{last_response_created_at} < ?