Merge pull request #1433 from consul/budget-investments-delete

Budget investments delete
This commit is contained in:
Juanjo Bazán
2017-03-07 11:22:01 +01:00
committed by GitHub
8 changed files with 44 additions and 3 deletions

View File

@@ -55,7 +55,7 @@ module Budgets
end
def destroy
investment.destroy
@investment.destroy
redirect_to user_path(current_user, filter: 'budget_investments'), notice: t('flash.actions.destroy.budget_investment')
end

View File

@@ -46,6 +46,7 @@ module Abilities
can :create, SpendingProposal
can :create, Budget::Investment, budget: { phase: "accepting" }
can :destroy, Budget::Investment, budget: { phase: ["accepting", "reviewing"] }, author_id: user.id
can :vote, Budget::Investment, budget: { phase: "selecting" }
can [:show, :create], Budget::Ballot, budget: { phase: "balloting" }
can [:create, :destroy], Budget::Ballot::Line, budget: { phase: "balloting" }

View File

@@ -4,6 +4,12 @@
<td>
<%= link_to budget_investment.title, budget_investment_path(budget_investment.budget, budget_investment) %>
</td>
<td class="text-right">
<% if can? :destroy, budget_investment %>
<%= link_to t('shared.delete'), budget_investment_path(budget_investment.budget, budget_investment),
method: :delete, class: "button hollow alert" %>
<% end %>
</td>
</tr>
<% end %>
</table>

View File

@@ -428,6 +428,7 @@ en:
search: 'Filter'
title: 'Advanced search'
to: 'To'
delete: Delete
author_info:
author_deleted: User deleted
back: Go back

View File

@@ -428,6 +428,7 @@ es:
search: 'Filtrar'
title: 'Búsqueda avanzada'
to: 'Hasta'
delete: 'Borrar'
author_info:
author_deleted: Usuario eliminado
back: Volver

View File

@@ -298,7 +298,7 @@ Rails.application.routes.draw do
get :support_investments
get :print_investments
end
resources :investments, only: [:index, :new, :create, :show], controller: 'budgets/investments' do
resources :investments, only: [:index, :new, :create, :show, :destroy], controller: 'budgets/investments' do
post :vote, on: :member
get :print, on: :collection
end

View File

@@ -315,6 +315,20 @@ feature 'Budget Investments' do
end
end
scenario "Author can destroy while on the selecting phase" do
user = create(:user, :level_two)
sp1 = create(:budget_investment, :selected, heading: heading, price: 10000, author: user)
login_as(user)
visit user_path(user, tab: :budget_investments)
within("#budget_investment_#{sp1.id}") do
expect(page).to have_content(sp1.title)
click_link('Delete')
end
visit user_path(user, tab: :budget_investments)
end
end
context "Selecting Phase" do
@@ -476,6 +490,8 @@ feature 'Budget Investments' do
expect(page).to have_content "€10,000"
end
scenario "Sidebar in show should display vote text" do
investment = create(:budget_investment, :selected, budget: budget)
visit budget_investment_path(budget, investment)
@@ -561,4 +577,4 @@ feature 'Budget Investments' do
end
end
end
end

View File

@@ -10,12 +10,18 @@ describe "Abilities::Common" do
let(:comment) { create(:comment) }
let(:proposal) { create(:proposal) }
let(:accepting_budget) { create(:budget, phase: 'accepting') }
let(:reviewing_budget) { create(:budget, phase: 'reviewing') }
let(:selecting_budget) { create(:budget, phase: 'selecting') }
let(:balloting_budget) { create(:budget, phase: 'balloting') }
let(:investment_in_accepting_budget) { create(:budget_investment, budget: accepting_budget) }
let(:investment_in_reviewing_budget) { create(:budget_investment, budget: reviewing_budget) }
let(:investment_in_selecting_budget) { create(:budget_investment, budget: selecting_budget) }
let(:investment_in_balloting_budget) { create(:budget_investment, budget: balloting_budget) }
let(:own_investment_in_accepting_budget) { create(:budget_investment, budget: accepting_budget, author: user) }
let(:own_investment_in_reviewing_budget) { create(:budget_investment, budget: reviewing_budget, author: user) }
let(:own_investment_in_selecting_budget) { create(:budget_investment, budget: selecting_budget, author: user) }
let(:own_investment_in_balloting_budget) { create(:budget_investment, budget: balloting_budget, author: user) }
let(:ballot_in_accepting_budget) { create(:budget_ballot, budget: accepting_budget) }
let(:ballot_in_selecting_budget) { create(:budget_ballot, budget: selecting_budget) }
let(:ballot_in_balloting_budget) { create(:budget_ballot, budget: balloting_budget) }
@@ -117,6 +123,16 @@ describe "Abilities::Common" do
it { should be_able_to(:vote, investment_in_selecting_budget) }
it { should_not be_able_to(:vote, investment_in_balloting_budget) }
it { should_not be_able_to(:destroy, investment_in_accepting_budget) }
it { should_not be_able_to(:destroy, investment_in_reviewing_budget) }
it { should_not be_able_to(:destroy, investment_in_selecting_budget) }
it { should_not be_able_to(:destroy, investment_in_balloting_budget) }
it { should be_able_to(:destroy, own_investment_in_accepting_budget) }
it { should be_able_to(:destroy, own_investment_in_reviewing_budget) }
it { should_not be_able_to(:destroy, own_investment_in_selecting_budget) }
it { should_not be_able_to(:destroy, investment_in_balloting_budget) }
it { should_not be_able_to(:create, ballot_in_accepting_budget) }
it { should_not be_able_to(:create, ballot_in_selecting_budget) }
it { should be_able_to(:create, ballot_in_balloting_budget) }