Allow actions to be unexecuted

Before actions could be marked as executed. With this commit we are also allowing actions to be marked as unexecuted.
This commit is contained in:
voodoorai2000
2019-04-23 14:56:23 +02:00
committed by decabeza
parent e139057001
commit dfbdc0568c
4 changed files with 26 additions and 1 deletions

View File

@@ -35,6 +35,14 @@ class Dashboard::ActionsController < Dashboard::BaseController
redirect_to request.referer redirect_to request.referer
end end
def unexecute
authorize! :dashboard, proposal
Dashboard::ExecutedAction.where(proposal: proposal, action: dashboard_action).first.destroy
redirect_to request.referer
end
private private
def dashboard_action def dashboard_action

View File

@@ -1,7 +1,12 @@
<div id="<%= dom_id(proposed_action) %>"> <div id="<%= dom_id(proposed_action) %>">
<div class="action"> <div class="action">
<% if proposed_action.proposals.where(id: proposal.id).any? %> <% if proposed_action.proposals.where(id: proposal.id).any? %>
<span class="icon-check"></span> <%= link_to unexecute_proposal_dashboard_action_path(proposal, proposed_action),
id: "#{dom_id(proposed_action)}_unexecute",
method: :post,
class: "checked-link" do %>
<span class="icon-check"></span>
<% end %>
<% else %> <% else %>
<%= link_to execute_proposal_dashboard_action_path(proposal, proposed_action), <%= link_to execute_proposal_dashboard_action_path(proposal, proposed_action),
id: "#{dom_id(proposed_action)}_execute", id: "#{dom_id(proposed_action)}_execute",

View File

@@ -17,6 +17,7 @@ resources :proposals do
resources :actions, only: [], controller: "dashboard/actions" do resources :actions, only: [], controller: "dashboard/actions" do
member do member do
post :execute post :execute
post :unexecute
get :new_request get :new_request
post :create_request post :create_request
end end

View File

@@ -131,6 +131,17 @@ feature "Proposal's dashboard" do
expect(page).not_to have_selector(:css, "#dashboard_action_#{action.id}_execute") expect(page).not_to have_selector(:css, "#dashboard_action_#{action.id}_execute")
end end
scenario "Dashboard progress can unexecute proposed action" do
action = create(:dashboard_action, :proposed_action, :active)
executed_action = create(:dashboard_executed_action, proposal: proposal, action: action)
visit progress_proposal_dashboard_path(proposal)
expect(page).to have_content(action.title)
find(:css, "#dashboard_action_#{action.id}_unexecute").click
expect(page).to have_selector(:css, "#dashboard_action_#{action.id}_execute")
end
scenario "Dashboard progress dont show proposed actions with published_proposal: true" do scenario "Dashboard progress dont show proposed actions with published_proposal: true" do
action = create(:dashboard_action, :proposed_action, :active, published_proposal: true) action = create(:dashboard_action, :proposed_action, :active, published_proposal: true)