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:
@@ -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
|
||||||
|
|||||||
@@ -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? %>
|
||||||
|
<%= 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>
|
<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",
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user