Move method to get available filters to the model
We're naming the method `investments_filters`, with the word "investments" in plural, to be consistent with the method `investments_orders`.
This commit is contained in:
@@ -16,12 +16,6 @@ module InvestmentFilters
|
|||||||
end
|
end
|
||||||
|
|
||||||
def investment_filters
|
def investment_filters
|
||||||
[
|
@budget.investments_filters
|
||||||
"not_unfeasible",
|
|
||||||
"unfeasible",
|
|
||||||
("unselected" if @budget.publishing_prices_or_later?),
|
|
||||||
("selected" if @budget.publishing_prices_or_later?),
|
|
||||||
("winners" if @budget.finished?)
|
|
||||||
].compact
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -196,6 +196,16 @@ class Budget < ApplicationRecord
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def investments_filters
|
||||||
|
[
|
||||||
|
"not_unfeasible",
|
||||||
|
"unfeasible",
|
||||||
|
("unselected" if publishing_prices_or_later?),
|
||||||
|
("selected" if publishing_prices_or_later?),
|
||||||
|
("winners" if finished?)
|
||||||
|
].compact
|
||||||
|
end
|
||||||
|
|
||||||
def email_selected
|
def email_selected
|
||||||
investments.selected.order(:id).each do |investment|
|
investments.selected.order(:id).each do |investment|
|
||||||
Mailer.budget_investment_selected(investment).deliver_later
|
Mailer.budget_investment_selected(investment).deliver_later
|
||||||
|
|||||||
@@ -285,6 +285,30 @@ describe Budget do
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
describe "#investments_filters" do
|
||||||
|
it "returns feasibility filters before publishing prices" do
|
||||||
|
%w[informing accepting reviewing selecting valuating].each do |phase|
|
||||||
|
budget.phase = phase
|
||||||
|
|
||||||
|
expect(budget.investments_filters).to eq(%w[not_unfeasible unfeasible])
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
it "returns feasibility and selection filters during the final voting phases" do
|
||||||
|
%w[publishing_prices balloting reviewing_ballots].each do |phase|
|
||||||
|
budget.phase = phase
|
||||||
|
|
||||||
|
expect(budget.investments_filters).to eq(%w[not_unfeasible unfeasible unselected selected])
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
it "returns all filters after the budget has finished" do
|
||||||
|
budget.phase = "finished"
|
||||||
|
|
||||||
|
expect(budget.investments_filters).to eq(%w[not_unfeasible unfeasible unselected selected winners])
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
describe "#has_winning_investments?" do
|
describe "#has_winning_investments?" do
|
||||||
it "returns true if there is a winner investment" do
|
it "returns true if there is a winner investment" do
|
||||||
budget.investments << build(:budget_investment, :winner, price: 3, ballot_lines_count: 2)
|
budget.investments << build(:budget_investment, :winner, price: 3, ballot_lines_count: 2)
|
||||||
|
|||||||
Reference in New Issue
Block a user