aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLouise Crow <louise.crow@gmail.com>2013-09-18 10:06:14 +0100
committerLouise Crow <louise.crow@gmail.com>2013-09-18 10:19:37 +0100
commit9f9f60106e8e65a5fd7ba5c979e87c03413518f1 (patch)
treeb2c1ec627dab609e9ad72da768ca662e0503387a
parent40bfb44da55f134e3525c48d5b98c7f096f01061 (diff)
Restrict old_unclassified methods to normal prominence.0.13.0.3hotfix/0.13.0.3
Fixes #1082.
-rw-r--r--app/controllers/request_game_controller.rb3
-rw-r--r--app/models/info_request.rb12
-rw-r--r--spec/models/info_request_spec.rb37
3 files changed, 49 insertions, 3 deletions
diff --git a/app/controllers/request_game_controller.rb b/app/controllers/request_game_controller.rb
index 6eac399ac..298818bc7 100644
--- a/app/controllers/request_game_controller.rb
+++ b/app/controllers/request_game_controller.rb
@@ -13,8 +13,7 @@ class RequestGameController < ApplicationController
@total = InfoRequest.count
@done = @total - @missing
@percentage = (@done.to_f / @total.to_f * 10000).round / 100.0
-
- @requests = InfoRequest.get_random_old_unclassified(3)
+ @requests = InfoRequest.get_random_old_unclassified(3, :conditions => ["prominence = 'normal'"])
if @missing == 0
flash[:notice] = _('<p>All done! Thank you very much for your help.</p><p>There are <a href="{{helpus_url}}">more things you can do</a> to help {{site_name}}.</p>',
diff --git a/app/models/info_request.rb b/app/models/info_request.rb
index 9bce2ca88..14eead6ad 100644
--- a/app/models/info_request.rb
+++ b/app/models/info_request.rb
@@ -958,11 +958,21 @@ public
def InfoRequest.count_old_unclassified(extra_params={})
params = old_unclassified_params(extra_params)
+ if extra_params[:conditions]
+ condition_string = extra_params[:conditions].shift
+ params[:conditions][0] += " AND #{condition_string}"
+ params[:conditions] += extra_params[:conditions]
+ end
count(:all, params)
end
- def InfoRequest.get_random_old_unclassified(limit)
+ def InfoRequest.get_random_old_unclassified(limit, extra_params)
params = old_unclassified_params({})
+ if extra_params[:conditions]
+ condition_string = extra_params[:conditions].shift
+ params[:conditions][0] += " AND #{condition_string}"
+ params[:conditions] += extra_params[:conditions]
+ end
params[:limit] = limit
params[:order] = "random()"
find(:all, params)
diff --git a/spec/models/info_request_spec.rb b/spec/models/info_request_spec.rb
index 3451e018f..5b9460ae7 100644
--- a/spec/models/info_request_spec.rb
+++ b/spec/models/info_request_spec.rb
@@ -423,6 +423,43 @@ describe InfoRequest do
end
+ describe 'when asked for random old unclassified requests with normal prominence' do
+
+ it "should not return requests that don't have normal prominence" do
+ dog_request = info_requests(:fancy_dog_request)
+ old_unclassified = InfoRequest.get_random_old_unclassified(1, :conditions => ["prominence = 'normal'"])
+ old_unclassified.length.should == 1
+ old_unclassified.first.should == dog_request
+ dog_request.prominence = 'requester_only'
+ dog_request.save!
+ old_unclassified = InfoRequest.get_random_old_unclassified(1, :conditions => ["prominence = 'normal'"])
+ old_unclassified.length.should == 0
+ dog_request.prominence = 'hidden'
+ dog_request.save!
+ old_unclassified = InfoRequest.get_random_old_unclassified(1, :conditions => ["prominence = 'normal'"])
+ old_unclassified.length.should == 0
+ end
+
+ end
+
+ describe 'when asked to count old unclassified requests with normal prominence' do
+
+ it "should not return requests that don't have normal prominence" do
+ dog_request = info_requests(:fancy_dog_request)
+ old_unclassified = InfoRequest.count_old_unclassified(:conditions => ["prominence = 'normal'"])
+ old_unclassified.should == 1
+ dog_request.prominence = 'requester_only'
+ dog_request.save!
+ old_unclassified = InfoRequest.count_old_unclassified(:conditions => ["prominence = 'normal'"])
+ old_unclassified.should == 0
+ dog_request.prominence = 'hidden'
+ dog_request.save!
+ old_unclassified = InfoRequest.count_old_unclassified(:conditions => ["prominence = 'normal'"])
+ old_unclassified.should == 0
+ end
+
+ end
+
describe 'when an instance is asked if it is old and unclassified' do
before do