Display message in budget's index when there are no budgets

When there are no budgets we were seeing an exception in the budgets’
index

There are two parts to take into account here:
1) Making sure there is a current_budget present, otherwise we display
the “no budgets” message

2) The map helper is called from the controller, so we need to make
sure current_budget is present there too

Note: We could have added a bunch of `try` statements in the budgets’s
index, instead of using a conditional, however there are quite a few
`current_budget` calls so it seems more appropriate to use a conditional
This commit is contained in:
rgarcia
2018-04-05 02:21:09 +02:00
parent 65f5ab424b
commit 39c6ac4a91
5 changed files with 150 additions and 136 deletions

View File

@@ -65,6 +65,7 @@ module BudgetsHelper
end
def current_budget_map_locations
return unless current_budget.present?
MapLocation.where(investment_id: current_budget.investments).map { |l| l.json_data }
end
end

View File

@@ -3,6 +3,7 @@
<%= render "shared/canonical", href: budgets_url %>
<% end %>
<% if current_budget.present? %>
<div id="budget_heading" class="expanded budget no-margin-top">
<div class="row" data-equalizer data-equalizer-on="medium">
<div class="small-12 medium-9 column padding" data-equalizer-watch>
@@ -168,3 +169,6 @@
</div>
</div>
</div>
<% else %>
<%= t("budgets.index.empty_budgets") %>
<% end %>

View File

@@ -41,6 +41,7 @@ en:
finished: Finished budget
index:
title: Participatory budgets
empty_budgets: There are no budgets
section_header:
icon_alt: Participatory budgets icon
title: Participatory budgets

View File

@@ -41,6 +41,7 @@ es:
finished: Resultados
index:
title: Presupuestos participativos
empty_budgets: No hay presupuestos participativos
section_header:
icon_alt: Icono de Presupuestos participativos
title: Presupuestos participativos

View File

@@ -117,6 +117,13 @@ feature 'Budgets' do
end
end
scenario "No budgets" do
Budget.destroy_all
visit budgets_path
expect(page).to have_content "There are no budgets"
end
end
scenario 'Index shows only published phases' do