Merge pull request #3492 from consul/backport-fix_delete_budget_with_polls

Don't destroy budgets with an associated poll
This commit is contained in:
Javier Martín
2019-05-16 13:07:18 +02:00
committed by GitHub
4 changed files with 16 additions and 2 deletions

View File

@@ -49,6 +49,8 @@ class Admin::BudgetsController < Admin::BaseController
def destroy
if @budget.investments.any?
redirect_to admin_budgets_path, alert: t("admin.budgets.destroy.unable_notice")
elsif @budget.poll.present?
redirect_to admin_budgets_path, alert: t("admin.budgets.destroy.unable_notice_polls")
else
@budget.destroy
redirect_to admin_budgets_path, notice: t("admin.budgets.destroy.success_notice")

View File

@@ -106,7 +106,8 @@ en:
blank_dates: Dates are blank
destroy:
success_notice: Budget deleted successfully
unable_notice: You cannot destroy a Budget that has associated investments
unable_notice: You cannot destroy a budget that has associated investments
unable_notice_polls: You cannot destroy a budget that has an associated poll
new:
title: New participatory budget
winners:

View File

@@ -107,6 +107,7 @@ es:
destroy:
success_notice: Presupuesto eliminado correctamente
unable_notice: No se puede eliminar un presupuesto con proyectos asociados
unable_notice_polls: No se puede eliminar un presupuesto con una votación asociada
new:
title: Nuevo presupuesto ciudadano
winners:

View File

@@ -148,7 +148,17 @@ feature "Admin budgets" do
click_link "Edit budget"
click_link "Delete budget"
expect(page).to have_content("You cannot destroy a Budget that has associated investments")
expect(page).to have_content("You cannot destroy a budget that has associated investments")
expect(page).to have_content("There is 1 budget")
end
scenario "Try to destroy a budget with polls" do
create(:poll, budget: budget)
visit edit_admin_budget_path(budget)
click_link "Delete budget"
expect(page).to have_content("You cannot destroy a budget that has an associated poll")
expect(page).to have_content("There is 1 budget")
end
end