From 5b16d395e7c74ed469aa74cbf93b25508303c4ae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ra=C3=BAl=20Fuentes?= Date: Thu, 25 Jan 2018 17:10:39 +0100 Subject: [PATCH 1/3] Added logic to not show invetment links is the budget phase isn't reviewing_ballots or finished --- app/helpers/budgets_helper.rb | 4 ++++ app/views/budgets/index.html.erb | 15 ++++++++++----- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/app/helpers/budgets_helper.rb b/app/helpers/budgets_helper.rb index 4c73f52da..90e986dad 100644 --- a/app/helpers/budgets_helper.rb +++ b/app/helpers/budgets_helper.rb @@ -1,5 +1,9 @@ module BudgetsHelper + def show_links_to_budget_investments(budget) + ['reviewing_ballots', 'finished'].include? budget.phase + end + def heading_name_and_price_html(heading, budget) content_tag :div do concat(heading.name + ' ') diff --git a/app/views/budgets/index.html.erb b/app/views/budgets/index.html.erb index 810c505ae..dffa56e1d 100644 --- a/app/views/budgets/index.html.erb +++ b/app/views/budgets/index.html.erb @@ -89,14 +89,19 @@

- <%= link_to budget_investments_path(current_budget.id) do %> - <%= t("budgets.index.investment_proyects") %> - <% end %>
+ <% show_links = show_links_to_budget_investments(current_budget) %> + <% if show_links %> + <%= link_to budget_investments_path(current_budget.id) do %> + <%= t("budgets.index.investment_proyects") %> + <% end %>
+ <% end %> <%= link_to budget_investments_path(budget_id: current_budget.id, filter: 'unfeasible') do %> <%= t("budgets.index.unfeasible_investment_proyects") %> <% end %>
- <%= link_to budget_investments_path(budget_id: current_budget.id, filter: 'unselected') do %> - <%= t("budgets.index.not_selected_investment_proyects") %> + <% if show_links %> + <%= link_to budget_investments_path(budget_id: current_budget.id, filter: 'unselected') do %> + <%= t("budgets.index.not_selected_investment_proyects") %> + <% end %> <% end %>

<% end %> From 6871193cbc6f17d6ee8f63b9d9c2ccc04304f1da Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ra=C3=BAl=20Fuentes?= Date: Thu, 25 Jan 2018 17:12:07 +0100 Subject: [PATCH 2/3] Added test to bugets/index to ensure the correcto showing of the investment links over ths changes of the buget's phase --- spec/features/budgets/budgets_spec.rb | 40 +++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/spec/features/budgets/budgets_spec.rb b/spec/features/budgets/budgets_spec.rb index 71ae6805a..00db07feb 100644 --- a/spec/features/budgets/budgets_spec.rb +++ b/spec/features/budgets/budgets_spec.rb @@ -77,6 +77,46 @@ feature 'Budgets' do expect(page).not_to have_css('div#map') end end + + scenario 'Show investment links only on balloting or later' do + + budget = create(:budget) + group = create(:budget_group, budget: budget) + heading = create(:budget_heading, group: group) + + ['reviewing_ballots', 'finished'].each do |phase| + budget.update(phase: phase) + + visit budgets_path + + expect(page).to have_content(I18n.t("budgets.index.investment_proyects")) + expect(page).to have_content(I18n.t("budgets.index.unfeasible_investment_proyects")) + expect(page).to have_content(I18n.t("budgets.index.not_selected_investment_proyects")) + end + end + + scenario 'Not show investment links earlier of balloting ' do + + budget = create(:budget) + group = create(:budget_group, budget: budget) + heading = create(:budget_heading, group: group) + phases_without_links = ['drafting','informing'] + allowed_phase_list = ['reviewing_ballots', 'finished'] + not_allowed_phase_list = Budget::Phase::PHASE_KINDS - + phases_without_links - + allowed_phase_list + + not_allowed_phase_list.each do |phase| + budget.update(phase: phase) + + visit budgets_path + + expect(page).not_to have_content(I18n.t("budgets.index.investment_proyects")) + expect(page).to have_content(I18n.t("budgets.index.unfeasible_investment_proyects")) + expect(page).not_to have_content(I18n.t("budgets.index.not_selected_investment_proyects")) + end + end + end scenario 'Index shows only published phases' do From ecdbc4a3f7ed9428c8b369f9beba7292f959d4bb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ra=C3=BAl=20Fuentes?= Date: Fri, 26 Jan 2018 12:06:42 +0100 Subject: [PATCH 3/3] added balloting to the list of phases allowed to see all the links --- app/helpers/budgets_helper.rb | 2 +- spec/features/budgets/budgets_spec.rb | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/app/helpers/budgets_helper.rb b/app/helpers/budgets_helper.rb index 90e986dad..7b48cad1a 100644 --- a/app/helpers/budgets_helper.rb +++ b/app/helpers/budgets_helper.rb @@ -1,7 +1,7 @@ module BudgetsHelper def show_links_to_budget_investments(budget) - ['reviewing_ballots', 'finished'].include? budget.phase + ['balloting', 'reviewing_ballots', 'finished'].include? budget.phase end def heading_name_and_price_html(heading, budget) diff --git a/spec/features/budgets/budgets_spec.rb b/spec/features/budgets/budgets_spec.rb index 00db07feb..d391dc9be 100644 --- a/spec/features/budgets/budgets_spec.rb +++ b/spec/features/budgets/budgets_spec.rb @@ -4,6 +4,7 @@ feature 'Budgets' do let(:budget) { create(:budget) } let(:level_two_user) { create(:user, :level_two) } + let(:allowed_phase_list) { ['balloting', 'reviewing_ballots', 'finished'] } context 'Index' do @@ -84,7 +85,7 @@ feature 'Budgets' do group = create(:budget_group, budget: budget) heading = create(:budget_heading, group: group) - ['reviewing_ballots', 'finished'].each do |phase| + allowed_phase_list.each do |phase| budget.update(phase: phase) visit budgets_path @@ -101,7 +102,6 @@ feature 'Budgets' do group = create(:budget_group, budget: budget) heading = create(:budget_heading, group: group) phases_without_links = ['drafting','informing'] - allowed_phase_list = ['reviewing_ballots', 'finished'] not_allowed_phase_list = Budget::Phase::PHASE_KINDS - phases_without_links - allowed_phase_list