Merge pull request #2158 from consul/fix/random_seed_order

Prevent a division by zero bug on sort by random scope
This commit is contained in:
BertoCQ
2017-11-29 16:05:58 +01:00
committed by GitHub
2 changed files with 2 additions and 2 deletions

View File

@@ -94,7 +94,7 @@ module Budgets
def set_random_seed
if params[:order] == 'random' || params[:order].blank?
seed = rand(10..99) / 10.0
seed = rand(11..99) / 10.0
params[:random_seed] ||= Float(seed) rescue 0
else
params[:random_seed] = nil

View File

@@ -43,7 +43,7 @@ class Budget
scope :sort_by_confidence_score, -> { reorder(confidence_score: :desc, id: :desc) }
scope :sort_by_ballots, -> { reorder(ballot_lines_count: :desc, id: :desc) }
scope :sort_by_price, -> { reorder(price: :desc, confidence_score: :desc, id: :desc) }
scope :sort_by_random, ->(seed) { reorder("budget_investments.id % #{seed || 1}, budget_investments.id") }
scope :sort_by_random, ->(seed) { reorder("budget_investments.id % #{seed.to_f&.positive? ? seed : 1}, budget_investments.id") }
scope :valuation_open, -> { where(valuation_finished: false) }
scope :without_admin, -> { valuation_open.where(administrator_id: nil) }