diff --git a/app/models/budget/result.rb b/app/models/budget/result.rb
index 60a852547..661b0bd94 100644
--- a/app/models/budget/result.rb
+++ b/app/models/budget/result.rb
@@ -9,9 +9,13 @@ class Budget
def calculate_winners
reset_winners
- investments.compatible.each do |investment|
- @current_investment = investment
- set_winner if inside_budget?
+ if @budget.hide_money?
+ investments.compatible.update_all(winner: true)
+ else
+ investments.compatible.each do |investment|
+ @current_investment = investment
+ set_winner if inside_budget?
+ end
end
end
diff --git a/app/views/budgets/results/_results_table.html.erb b/app/views/budgets/results/_results_table.html.erb
index 696ea2280..75adcbe9f 100644
--- a/app/views/budgets/results/_results_table.html.erb
+++ b/app/views/budgets/results/_results_table.html.erb
@@ -13,14 +13,16 @@
<%= t("budgets.results.ballot_lines_count") %>
|
-
- <%= t("budgets.results.price") %>
- |
- <% if results_type == :compatible %>
-
- <%= t("budgets.results.amount_available") %>
- <%= @budget.formatted_amount(heading_price) %>
+ <% if @budget.show_money? %>
+ |
+ <%= t("budgets.results.price") %>
|
+ <% if results_type == :compatible %>
+
+ <%= t("budgets.results.amount_available") %>
+ <%= @budget.formatted_amount(heading_price) %>
+ |
+ <% end %>
<% end %>
@@ -50,15 +52,17 @@
<%= investment.ballot_lines_count %>
|
-
- <%= @budget.formatted_amount(investment.price) %>
- |
- <% if results_type == :compatible %>
-
- <%= @budget.formatted_amount(amount_available - investment.price) %>
- <% amount_available -= investment.price if investment.winner? %>
+ <% if @budget.show_money? %>
+ |
+ <%= @budget.formatted_amount(investment.price) %>
|
+ <% if results_type == :compatible %>
+
+ <%= @budget.formatted_amount(amount_available - investment.price) %>
+ <% amount_available -= investment.price if investment.winner? %>
+ |
+ <% end %>
<% end %>
<% end %>
diff --git a/spec/system/budgets/results_spec.rb b/spec/system/budgets/results_spec.rb
index 41d84fbf1..7c6b5f1c1 100644
--- a/spec/system/budgets/results_spec.rb
+++ b/spec/system/budgets/results_spec.rb
@@ -67,6 +67,41 @@ describe "Results" do
end
end
+ scenario "Does not show price and available budget when hide money" do
+ budget.update!(voting_style: "approval", hide_money: true)
+ visit budget_path(budget)
+ click_link "See results"
+
+ expect(page).to have_content investment1.title
+ expect(page).to have_content investment2.title
+ expect(page).not_to have_content investment1.price
+ expect(page).not_to have_content investment2.price
+ expect(page).not_to have_content "Price"
+ expect(page).not_to have_content "Available budget"
+ expect(page).not_to have_content "€"
+ end
+
+ scenario "Does not have in account the price on hide money budgets" do
+ budget.update!(voting_style: "approval", hide_money: true)
+ heading.update!(price: 0)
+
+ inv1 = create(:budget_investment, :selected, heading: heading, price: 2000, ballot_lines_count: 1000)
+ inv2 = create(:budget_investment, :selected, heading: heading, price: 5000, ballot_lines_count: 1000)
+
+ Budget::Result.new(budget, heading).calculate_winners
+
+ visit budget_path(budget)
+ click_link "See results"
+
+ expect(page).to have_content inv1.title
+ expect(page).to have_content inv2.title
+ expect(page).not_to have_content inv1.price
+ expect(page).not_to have_content inv2.price
+ expect(page).not_to have_content "Price"
+ expect(page).not_to have_content "Available budget"
+ expect(page).not_to have_content "€"
+ end
+
scenario "Does not raise error if budget (slug or id) is not found" do
visit budget_results_path("wrong budget")