Merge pull request #2372 from wairbut-m2c/iagirre-move-calculate-winners-button

Budget: move calculate winners button
This commit is contained in:
Raimond Garcia
2018-05-31 22:53:59 +02:00
committed by GitHub
7 changed files with 53 additions and 4 deletions

View File

@@ -68,4 +68,16 @@ module BudgetsHelper
return unless current_budget.present?
MapLocation.where(investment_id: current_budget.investments).map { |l| l.json_data }
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

View File

@@ -9,7 +9,23 @@
<%= link_to t("admin.budget_investments.index.download_current_selection"),
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? %>
<h3 class="inline-block"><%= page_entries_info @investments %></h3><br>
@@ -134,7 +150,7 @@
<%= paginate @investments %>
<% else %>
<div class="callout primary">
<div class="callout primary clear">
<%= t("admin.budget_investments.index.no_budget_investments") %>
</div>
<% end %>

View File

@@ -68,7 +68,6 @@
budget_results_path(@budget),
class: "button hollow margin-left" %>
<% end %>
<% if @budget.persisted? %>
<%= link_to t("admin.budgets.edit.delete"),
admin_budget_path(@budget),

View File

@@ -124,6 +124,7 @@ en:
winners:
calculate: Calculate Winner Investments
calculated: Winners being calculated, it may take a minute.
recalculate: Recalculate Winner Investments
budget_phases:
edit:
start_date: Start date
@@ -190,6 +191,7 @@ en:
table_selection: "Selected"
table_evaluation: "Show to valuators"
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:
assigned_admin: Assigned administrator
assigned_valuators: Assigned valuators

View File

@@ -124,6 +124,7 @@ es:
winners:
calculate: Calcular propuestas ganadoras
calculated: Calculando ganadoras, puede tardar un minuto.
recalculate: Recalcular propuestas ganadoras
budget_phases:
edit:
start_date: Fecha de Inicio
@@ -190,6 +191,7 @@ es:
table_selection: "Seleccionado"
table_evaluation: "Mostrar a evaluadores"
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:
assigned_admin: Administrador asignado
assigned_valuators: Evaluadores asignados

View File

@@ -366,6 +366,23 @@ feature 'Admin budget investments' do
expect(page).not_to have_select("tag_name", options: ["All tags", "Accessibility"])
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
group_1 = create(:budget_group, budget: budget)
group_2 = create(:budget_group, budget: budget)

View File

@@ -186,7 +186,8 @@ feature 'Admin budgets' do
end
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')
group = create(:budget_group, budget: budget)
heading = create(:budget_heading, group: group, price: 4)