Merge pull request #2372 from wairbut-m2c/iagirre-move-calculate-winners-button
Budget: move calculate winners button
This commit is contained in:
@@ -68,4 +68,16 @@ module BudgetsHelper
|
|||||||
return unless current_budget.present?
|
return unless current_budget.present?
|
||||||
MapLocation.where(investment_id: current_budget.investments).map { |l| l.json_data }
|
MapLocation.where(investment_id: current_budget.investments).map { |l| l.json_data }
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def display_calculate_winners_button?(budget)
|
||||||
|
budget.balloting_or_later?
|
||||||
|
end
|
||||||
|
|
||||||
|
def calculate_winner_button_text(budget)
|
||||||
|
if budget.investments.winners.empty?
|
||||||
|
t("admin.budgets.winners.calculate")
|
||||||
|
else
|
||||||
|
t("admin.budgets.winners.recalculate")
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -9,7 +9,23 @@
|
|||||||
|
|
||||||
<%= link_to t("admin.budget_investments.index.download_current_selection"),
|
<%= link_to t("admin.budget_investments.index.download_current_selection"),
|
||||||
admin_budget_budget_investments_path(csv_params),
|
admin_budget_budget_investments_path(csv_params),
|
||||||
class: "float-right small" %>
|
class: "float-right small clear" %>
|
||||||
|
|
||||||
|
<% if params[:filter] == 'winners' %>
|
||||||
|
<% if display_calculate_winners_button?(@budget) %>
|
||||||
|
<%= link_to calculate_winner_button_text(@budget),
|
||||||
|
calculate_winners_admin_budget_path(@budget),
|
||||||
|
method: :put,
|
||||||
|
class: "button hollow float-right clear" %>
|
||||||
|
<% else %>
|
||||||
|
<span class="button hollow disabled float-right clear">
|
||||||
|
<%= t("admin.budgets.winners.calculate")%>
|
||||||
|
</span>
|
||||||
|
<div class="callout warning clear">
|
||||||
|
<%= t("admin.budget_investments.index.cannot_calculate_winners") %>
|
||||||
|
</div>
|
||||||
|
<% end %>
|
||||||
|
<% end %>
|
||||||
|
|
||||||
<% if @investments.any? %>
|
<% if @investments.any? %>
|
||||||
<h3 class="inline-block"><%= page_entries_info @investments %></h3><br>
|
<h3 class="inline-block"><%= page_entries_info @investments %></h3><br>
|
||||||
@@ -134,7 +150,7 @@
|
|||||||
|
|
||||||
<%= paginate @investments %>
|
<%= paginate @investments %>
|
||||||
<% else %>
|
<% else %>
|
||||||
<div class="callout primary">
|
<div class="callout primary clear">
|
||||||
<%= t("admin.budget_investments.index.no_budget_investments") %>
|
<%= t("admin.budget_investments.index.no_budget_investments") %>
|
||||||
</div>
|
</div>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|||||||
@@ -68,7 +68,6 @@
|
|||||||
budget_results_path(@budget),
|
budget_results_path(@budget),
|
||||||
class: "button hollow margin-left" %>
|
class: "button hollow margin-left" %>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|
||||||
<% if @budget.persisted? %>
|
<% if @budget.persisted? %>
|
||||||
<%= link_to t("admin.budgets.edit.delete"),
|
<%= link_to t("admin.budgets.edit.delete"),
|
||||||
admin_budget_path(@budget),
|
admin_budget_path(@budget),
|
||||||
|
|||||||
@@ -124,6 +124,7 @@ en:
|
|||||||
winners:
|
winners:
|
||||||
calculate: Calculate Winner Investments
|
calculate: Calculate Winner Investments
|
||||||
calculated: Winners being calculated, it may take a minute.
|
calculated: Winners being calculated, it may take a minute.
|
||||||
|
recalculate: Recalculate Winner Investments
|
||||||
budget_phases:
|
budget_phases:
|
||||||
edit:
|
edit:
|
||||||
start_date: Start date
|
start_date: Start date
|
||||||
@@ -190,6 +191,7 @@ en:
|
|||||||
table_selection: "Selected"
|
table_selection: "Selected"
|
||||||
table_evaluation: "Show to valuators"
|
table_evaluation: "Show to valuators"
|
||||||
table_incompatible: "Incompatible"
|
table_incompatible: "Incompatible"
|
||||||
|
cannot_calculate_winners: The budget has to stay on phase "Balloting projects", "Reviewing Ballots" or "Finished budget" in order to calculate winners projects
|
||||||
show:
|
show:
|
||||||
assigned_admin: Assigned administrator
|
assigned_admin: Assigned administrator
|
||||||
assigned_valuators: Assigned valuators
|
assigned_valuators: Assigned valuators
|
||||||
|
|||||||
@@ -124,6 +124,7 @@ es:
|
|||||||
winners:
|
winners:
|
||||||
calculate: Calcular propuestas ganadoras
|
calculate: Calcular propuestas ganadoras
|
||||||
calculated: Calculando ganadoras, puede tardar un minuto.
|
calculated: Calculando ganadoras, puede tardar un minuto.
|
||||||
|
recalculate: Recalcular propuestas ganadoras
|
||||||
budget_phases:
|
budget_phases:
|
||||||
edit:
|
edit:
|
||||||
start_date: Fecha de Inicio
|
start_date: Fecha de Inicio
|
||||||
@@ -190,6 +191,7 @@ es:
|
|||||||
table_selection: "Seleccionado"
|
table_selection: "Seleccionado"
|
||||||
table_evaluation: "Mostrar a evaluadores"
|
table_evaluation: "Mostrar a evaluadores"
|
||||||
table_incompatible: "Incompatible"
|
table_incompatible: "Incompatible"
|
||||||
|
cannot_calculate_winners: El presupuesto debe estar en las fases "Votación final", "Votación finalizada" o "Resultados" para poder calcular las propuestas ganadoras
|
||||||
show:
|
show:
|
||||||
assigned_admin: Administrador asignado
|
assigned_admin: Administrador asignado
|
||||||
assigned_valuators: Evaluadores asignados
|
assigned_valuators: Evaluadores asignados
|
||||||
|
|||||||
@@ -366,6 +366,23 @@ feature 'Admin budget investments' do
|
|||||||
expect(page).not_to have_select("tag_name", options: ["All tags", "Accessibility"])
|
expect(page).not_to have_select("tag_name", options: ["All tags", "Accessibility"])
|
||||||
end
|
end
|
||||||
|
|
||||||
|
scenario "Disable 'Calculate winner' button if incorrect phase" do
|
||||||
|
budget.update(phase: 'reviewing_ballots')
|
||||||
|
|
||||||
|
visit admin_budget_budget_investments_path(budget)
|
||||||
|
click_link 'Winners'
|
||||||
|
|
||||||
|
expect(page).to have_link "Calculate Winner Investments"
|
||||||
|
|
||||||
|
budget.update(phase: 'accepting')
|
||||||
|
|
||||||
|
visit admin_budget_budget_investments_path(budget)
|
||||||
|
click_link 'Winners'
|
||||||
|
|
||||||
|
expect(page).not_to have_link "Calculate Winner Investments"
|
||||||
|
expect(page).to have_content 'The budget has to stay on phase "Balloting projects", "Reviewing Ballots" or "Finished budget" in order to calculate winners projects'
|
||||||
|
end
|
||||||
|
|
||||||
scenario "Limiting by max number of investments per heading", :js do
|
scenario "Limiting by max number of investments per heading", :js do
|
||||||
group_1 = create(:budget_group, budget: budget)
|
group_1 = create(:budget_group, budget: budget)
|
||||||
group_2 = create(:budget_group, budget: budget)
|
group_2 = create(:budget_group, budget: budget)
|
||||||
|
|||||||
@@ -186,7 +186,8 @@ feature 'Admin budgets' do
|
|||||||
end
|
end
|
||||||
|
|
||||||
context "Calculate Budget's Winner Investments" do
|
context "Calculate Budget's Winner Investments" do
|
||||||
scenario 'For a Budget in reviewing balloting' do
|
|
||||||
|
scenario 'For a Budget in reviewing balloting', :js do
|
||||||
budget = create(:budget, phase: 'reviewing_ballots')
|
budget = create(:budget, phase: 'reviewing_ballots')
|
||||||
group = create(:budget_group, budget: budget)
|
group = create(:budget_group, budget: budget)
|
||||||
heading = create(:budget_heading, group: group, price: 4)
|
heading = create(:budget_heading, group: group, price: 4)
|
||||||
|
|||||||
Reference in New Issue
Block a user