removes investments from sidebar

This commit is contained in:
rgarcia
2016-09-09 19:37:02 +02:00
parent 24740578ff
commit 4ded0350a1
5 changed files with 80 additions and 116 deletions

View File

@@ -0,0 +1,55 @@
<div class="row ballot">
<%= render 'shared/back_link' %>
<h1 class="text-center"><%= t("budgets.ballots.show.title") %></h1>
<div class="small-12 medium-8 column small-centered text-center">
<h2>
<%= t("budgets.ballots.show.voted_html",
count: @ballot.investments.count) %>
</h2>
<p>
<small>
<%= t("budgets.ballots.show.voted_info_html") %>
</small>
</p>
</div>
<hr>
<div class="margin-top">
<% @ballot.groups.each do |group| %>
<div id="<%= dom_id(group) %>"
class="small-12 medium-6 column">
<h3 class="subtitle">
<%= group.name %> - <%= group.headings.first.name %>
</h3>
<% if @ballot.has_lines_in_group?(group) %>
<h4 class="amount-spent text-right">
<%= t("budgets.ballots.show.amount_spent") %>
<span>
<%= format_price(@budget, @ballot.amount_spent(@ballot.heading_for_group(group).id)) %>
</span>
</h4>
<% else %>
<p>
<%= t("budgets.ballots.show.zero") %><br>
<%= link_to t("budgets.ballots.show.heading_link"),
budget_investments_path(budget, heading_id: heading.id),
data: { no_turbolink: true } %>
</p>
<% end %>
<ul class="ballot-list">
<%= render partial: 'budgets/ballot/investment',
collection: @ballot.investments.by_group(group.id) %>
</ul>
<h4>
<%= t("budgets.ballots.show.remaining",
amount_city: format_price(@budget, @ballot.amount_available(@ballot.heading_for_group(group)))).html_safe %>
</h4>
</div>
<% end %>
</div>
</div>

View File

@@ -3,12 +3,12 @@
<span><%= format_price(@budget, investment.price) %></span> <span><%= format_price(@budget, investment.price) %></span>
<% if @budget.balloting? %> <% if @budget.balloting? %>
<%# link_to budget_ballot_line_path(budget, id: investment.id), <%= link_to budget_ballot_line_path(@budget, id: investment.id),
title: t('budgets.ballots.show.remove'), title: t('budgets.ballots.show.remove'),
class: "remove-investment-project", class: "remove-investment-project",
method: :delete, method: :delete,
remote: true do %> remote: true do %>
<span class="icon-x"></span> <span class="icon-x"></span>
<%# end %> <% end %>
<% end %> <% end %>
</li> </li>

View File

@@ -1,6 +1,6 @@
$("#progress_bar").html('<%= j render("budgets/ballot/progress_bar", ballot: @ballot) %>'); $("#progress_bar").html('<%= j render("budgets/ballot/progress_bar", ballot: @ballot) %>');
$("#sidebar").html('<%= j render("spending_proposals/sidebar") %>'); $("#sidebar").html('<%= j render("budgets/investments/sidebar") %>');
// $("#ballot").html('<%# j render("ballots/ballot") %>') $("#ballot").html('<%= j render("budgets/ballot/ballot") %>')
$("#<%= dom_id(@investment) %>_ballot").html('<%= j render("budgets/investments/ballot", investment: @investment) %>'); $("#<%= dom_id(@investment) %>_ballot").html('<%= j render("budgets/investments/ballot", investment: @investment) %>');
<%= render 'refresh_ballots' %> <%= render 'refresh_ballots' %>

View File

@@ -1,57 +1,3 @@
<div id="ballot"> <div id="ballot">
<div class="row ballot"> <%= render "budgets/ballot/ballot" %>
<%= render 'shared/back_link' %>
<h1 class="text-center"><%= t("budgets.ballots.show.title") %></h1>
<div class="small-12 medium-8 column small-centered text-center">
<h2>
<%= t("budgets.ballots.show.voted_html",
count: @ballot.investments.count) %>
</h2>
<p>
<small>
<%= t("budgets.ballots.show.voted_info_html") %>
</small>
</p>
</div>
<hr>
<div class="margin-top">
<% @ballot.groups.each do |group| %>
<div id="<%= dom_id(group) %>"
class="small-12 medium-6 column">
<h3 class="subtitle">
<%= group.name %> - <%= group.headings.first.name %>
</h3>
<% if @ballot.has_lines_in_group?(group) %>
<h4 class="amount-spent text-right">
<%= t("budgets.ballots.show.amount_spent") %>
<span>
<%= format_price(@budget, @ballot.amount_spent(@ballot.heading_for_group(group).id)) %>
</span>
</h4>
<% else %>
<p>
<%= t("budgets.ballots.show.zero") %><br>
<%= link_to t("budgets.ballots.show.heading_link"),
budget_investments_path(budget, heading_id: heading.id),
data: { no_turbolink: true } %>
</p>
<% end %>
<ul class="ballot-list">
<%= render partial: 'budgets/ballot/investment',
collection: @ballot.investments.by_group(group.id) %>
</ul>
<h4>
<%= t("budgets.ballots.show.remaining",
amount_city: format_price(@budget, @ballot.amount_available(@ballot.heading_for_group(group)))).html_safe %>
</h4>
</div>
<% end %>
</div>
</div>
</div> </div>

View File

@@ -363,93 +363,56 @@ feature 'Ballots' do
scenario 'Removing spending proposals from ballot', :js do scenario 'Removing spending proposals from ballot', :js do
user = create(:user, :level_two) user = create(:user, :level_two)
ballot = create(:ballot, user: user) ballot = create(:budget_ballot, user: user, budget: budget)
sp = create(:spending_proposal, :feasible, :finished, price: 10) investment = create(:budget_investment, :feasible, :finished, price: 10, heading: heading, group: group)
ballot.spending_proposals = [sp] create(:budget_ballot_line, ballot: ballot, investment: investment, heading: heading, group: group)
login_as(user) login_as(user)
visit ballot_path visit budget_ballot_path(budget)
expect(page).to have_content("You voted one proposal") expect(page).to have_content("You have voted one proposal")
within("#spending_proposal_#{sp.id}") do within("#budget_investment_#{investment.id}") do
find(".remove-investment-project").trigger('click') find(".remove-investment-project").trigger('click')
end end
expect(current_path).to eq(ballot_path) expect(current_path).to eq(budget_ballot_path(budget))
expect(page).to have_content("You voted 0 proposals") expect(page).to have_content("You have voted 0 proposals")
end end
scenario 'Removing spending proposals from ballot (sidebar)', :js do scenario 'Removing spending proposals from ballot (sidebar)', :js, :focus do
user = create(:user, :level_two) user = create(:user, :level_two)
sp1 = create(:spending_proposal, :feasible, :finished, price: 10000) investment1 = create(:budget_investment, :feasible, :finished, price: 10000, heading: heading)
sp2 = create(:spending_proposal, :feasible, :finished, price: 20000) investment2 = create(:budget_investment, :feasible, :finished, price: 20000, heading: heading)
ballot = create(:ballot, user: user, spending_proposals: [sp1, sp2]) ballot = create(:budget_ballot, budget: budget, user: user, investments: [investment1, investment2])
login_as(user) login_as(user)
visit spending_proposals_path(geozone: 'all') visit budget_investments_path(budget, heading_id: heading.id)
expect(page).to have_css("#amount-spent", text: "€30,000") expect(page).to have_css("#amount-spent", text: "€30,000")
expect(page).to have_css("#amount-available", text: "23,970,000") expect(page).to have_css("#amount-available", text: "€970,000")
within("#sidebar") do within("#sidebar") do
expect(page).to have_content sp1.title expect(page).to have_content investment1.title
expect(page).to have_content "€10,000" expect(page).to have_content "€10,000"
expect(page).to have_content sp2.title expect(page).to have_content investment2.title
expect(page).to have_content "€20,000" expect(page).to have_content "€20,000"
end end
within("#sidebar #spending_proposal_#{sp1.id}_sidebar") do within("#sidebar #budget_investment_#{investment1.id}_sidebar") do
find(".remove-investment-project").trigger('click') find(".remove-investment-project").trigger('click')
end end
expect(page).to have_css("#amount-spent", text: "€20,000") expect(page).to have_css("#amount-spent", text: "€20,000")
expect(page).to have_css("#amount-available", text: "23,980,000") expect(page).to have_css("#amount-available", text: "€980,000")
within("#sidebar") do within("#sidebar") do
expect(page).to_not have_content sp1.title expect(page).to_not have_content investment1.title
expect(page).to_not have_content "€10,000" expect(page).to_not have_content "€10,000"
expect(page).to have_content sp2.title expect(page).to have_content investment2.title
expect(page).to have_content "€20,000"
end
end
scenario 'Removing spending proposals from ballot (sidebar)', :js do
user = create(:user, :level_two)
sp1 = create(:spending_proposal, :feasible, :finished, price: 10000)
sp2 = create(:spending_proposal, :feasible, :finished, price: 20000)
ballot = create(:ballot, user: user, spending_proposals: [sp1, sp2])
login_as(user)
visit spending_proposals_path(geozone: 'all')
expect(page).to have_css("#amount-spent", text: "€30,000")
expect(page).to have_css("#amount-available", text: "€23,970,000")
within("#sidebar") do
expect(page).to have_content sp1.title
expect(page).to have_content "€10,000"
expect(page).to have_content sp2.title
expect(page).to have_content "€20,000"
end
within("#sidebar #spending_proposal_#{sp1.id}_sidebar") do
find(".remove-investment-project").trigger('click')
end
expect(page).to have_css("#amount-spent", text: "€20,000")
expect(page).to have_css("#amount-available", text: "€23,980,000")
within("#sidebar") do
expect(page).to_not have_content sp1.title
expect(page).to_not have_content "€10,000"
expect(page).to have_content sp2.title
expect(page).to have_content "€20,000" expect(page).to have_content "€20,000"
end end
end end