Merge pull request #1532 from consul/selected-unfeasible-links

Selected and unfeasible links only visible if budget is balloting (or later)
This commit is contained in:
Alberto
2017-05-09 18:27:18 +02:00
committed by GitHub
6 changed files with 139 additions and 40 deletions

View File

@@ -67,6 +67,10 @@ class Budget < ActiveRecord::Base
phase == "finished" phase == "finished"
end end
def balloting_or_later?
balloting? || reviewing_ballots? || finished?
end
def on_hold? def on_hold?
reviewing? || valuating? || reviewing_ballots? reviewing? || valuating? || reviewing_ballots?
end end

View File

@@ -45,7 +45,8 @@
</div> </div>
</div> </div>
<% unless @current_filter == "unfeasible" %> <% if @budget.balloting_or_later? %>
<% unless @current_filter == "unfeasible" %>
<div class="row"> <div class="row">
<div class="small-12 column"> <div class="small-12 column">
<small> <small>
@@ -54,9 +55,9 @@
</small> </small>
</div> </div>
</div> </div>
<% end %> <% end %>
<% unless @current_filter == "unselected" %> <% unless @current_filter == "unselected" %>
<div class="row"> <div class="row">
<div class="small-12 column"> <div class="small-12 column">
<small> <small>
@@ -65,4 +66,5 @@
</small> </small>
</div> </div>
</div> </div>
<% end %>
<% end %> <% end %>

View File

@@ -70,7 +70,8 @@
</div> </div>
</div> </div>
<% unless @current_filter == "unfeasible" %> <% if @budget.balloting_or_later? %>
<% unless @current_filter == "unfeasible" %>
<div class="row"> <div class="row">
<div class="small-12 column"> <div class="small-12 column">
<small> <small>
@@ -79,9 +80,9 @@
</small> </small>
</div> </div>
</div> </div>
<% end %> <% end %>
<% unless @current_filter == "unselected" %> <% unless @current_filter == "unselected" %>
<div class="row"> <div class="row">
<div class="small-12 column"> <div class="small-12 column">
<small> <small>
@@ -90,4 +91,5 @@
</small> </small>
</div> </div>
</div> </div>
<% end %>
<% end %> <% end %>

View File

@@ -8,7 +8,9 @@ feature 'Budgets' do
budgets.each {|budget| expect(page).to have_link(budget.name)} budgets.each {|budget| expect(page).to have_link(budget.name)}
end end
scenario 'Show' do context 'Show' do
scenario "List all groups" do
budget = create(:budget) budget = create(:budget)
group1 = create(:budget_group, budget: budget) group1 = create(:budget_group, budget: budget)
group2 = create(:budget_group, budget: budget) group2 = create(:budget_group, budget: budget)
@@ -18,6 +20,47 @@ feature 'Budgets' do
budget.groups.each {|group| expect(page).to have_link(group.name)} budget.groups.each {|group| expect(page).to have_link(group.name)}
end end
scenario "Links to unfeasible and selected if balloting or later" do
budget = create(:budget, :selecting)
group = create(:budget_group, budget: budget)
visit budget_path(budget)
expect(page).to_not have_link "See unfeasible investments"
expect(page).to_not have_link "See investments not selected for balloting phase"
click_link group.name
expect(page).to_not have_link "See unfeasible investments"
expect(page).to_not have_link "See investments not selected for balloting phase"
budget.update(phase: :balloting)
visit budget_path(budget)
expect(page).to have_link "See unfeasible investments"
expect(page).to have_link "See investments not selected for balloting phase"
click_link group.name
expect(page).to have_link "See unfeasible investments"
expect(page).to have_link "See investments not selected for balloting phase"
budget.update(phase: :finished)
visit budget_path(budget)
expect(page).to have_link "See unfeasible investments"
expect(page).to have_link "See investments not selected for balloting phase"
click_link group.name
expect(page).to have_link "See unfeasible investments"
expect(page).to have_link "See investments not selected for balloting phase"
end
end
context 'Accepting' do context 'Accepting' do
let(:budget) { create(:budget) } let(:budget) { create(:budget) }

View File

@@ -73,6 +73,7 @@ feature 'Budget Investments' do
end end
scenario "by unfeasibilty link for group with one heading" do scenario "by unfeasibilty link for group with one heading" do
budget.update(phase: :balloting)
group = create(:budget_group, name: 'All City', budget: budget) group = create(:budget_group, name: 'All City', budget: budget)
heading = create(:budget_heading, name: "Madrid", group: group) heading = create(:budget_heading, name: "Madrid", group: group)
@@ -86,6 +87,7 @@ feature 'Budget Investments' do
end end
scenario "by unfeasibilty link for group with many headings" do scenario "by unfeasibilty link for group with many headings" do
budget.update(phase: :balloting)
group = create(:budget_group, name: 'Districts', budget: budget) group = create(:budget_group, name: 'Districts', budget: budget)
heading1 = create(:budget_heading, name: 'Carabanchel', group: group) heading1 = create(:budget_heading, name: 'Carabanchel', group: group)
heading2 = create(:budget_heading, name: 'Barajas', group: group) heading2 = create(:budget_heading, name: 'Barajas', group: group)

View File

@@ -49,6 +49,52 @@ describe Budget do
budget.phase = "finished" budget.phase = "finished"
expect(budget).to be_finished expect(budget).to be_finished
end end
it "on_hold?" do
budget.phase = "accepting"
expect(budget).to_not be_on_hold
budget.phase = "reviewing"
expect(budget).to be_on_hold
budget.phase = "selecting"
expect(budget).to_not be_on_hold
budget.phase = "valuating"
expect(budget).to be_on_hold
budget.phase = "balloting"
expect(budget).to_not be_on_hold
budget.phase = "reviewing_ballots"
expect(budget).to be_on_hold
budget.phase = "finished"
expect(budget).to_not be_on_hold
end
it "balloting_or_later?" do
budget.phase = "accepting"
expect(budget).to_not be_balloting_or_later
budget.phase = "reviewing"
expect(budget).to_not be_balloting_or_later
budget.phase = "selecting"
expect(budget).to_not be_balloting_or_later
budget.phase = "valuating"
expect(budget).to_not be_balloting_or_later
budget.phase = "balloting"
expect(budget).to be_balloting_or_later
budget.phase = "reviewing_ballots"
expect(budget).to be_balloting_or_later
budget.phase = "finished"
expect(budget).to be_balloting_or_later
end
end end
describe "heading_price" do describe "heading_price" do