diff options
author | Louise Crow <louise.crow@gmail.com> | 2013-09-18 10:06:14 +0100 |
---|---|---|
committer | Louise Crow <louise.crow@gmail.com> | 2013-09-18 10:19:37 +0100 |
commit | 9f9f60106e8e65a5fd7ba5c979e87c03413518f1 (patch) | |
tree | b2c1ec627dab609e9ad72da768ca662e0503387a | |
parent | 40bfb44da55f134e3525c48d5b98c7f096f01061 (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.rb | 3 | ||||
-rw-r--r-- | app/models/info_request.rb | 12 | ||||
-rw-r--r-- | spec/models/info_request_spec.rb | 37 |
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 |