Before actions could be marked as executed. With this commit we are also allowing actions to be marked as unexecuted.
52 lines
1.4 KiB
Ruby
52 lines
1.4 KiB
Ruby
class Dashboard::ActionsController < Dashboard::BaseController
|
|
helper_method :dashboard_action
|
|
|
|
def new_request
|
|
authorize! :dashboard, proposal
|
|
@dashboard_executed_action = Dashboard::ExecutedAction.new
|
|
end
|
|
|
|
def create_request
|
|
authorize! :dashboard, proposal
|
|
|
|
source_params = {
|
|
proposal: proposal,
|
|
action: dashboard_action,
|
|
executed_at: Time.now
|
|
}
|
|
|
|
@dashboard_executed_action = Dashboard::ExecutedAction.new(source_params)
|
|
if @dashboard_executed_action.save
|
|
Dashboard::AdministratorTask.create(source: @dashboard_executed_action)
|
|
|
|
redirect_to progress_proposal_dashboard_path(proposal.to_param),
|
|
{ flash: { info: t("dashboard.create_request.success") } }
|
|
else
|
|
flash.now[:alert] = @dashboard_executed_action.errors.full_messages.join("<br>")
|
|
render :new_request
|
|
end
|
|
end
|
|
|
|
def execute
|
|
authorize! :dashboard, proposal
|
|
|
|
Dashboard::ExecutedAction.create(proposal: proposal, action: dashboard_action,
|
|
executed_at: Time.now)
|
|
redirect_to request.referer
|
|
end
|
|
|
|
def unexecute
|
|
authorize! :dashboard, proposal
|
|
|
|
Dashboard::ExecutedAction.where(proposal: proposal, action: dashboard_action).first.destroy
|
|
|
|
redirect_to request.referer
|
|
end
|
|
|
|
private
|
|
|
|
def dashboard_action
|
|
@dashboard_action ||= Dashboard::Action.find(params[:id])
|
|
end
|
|
end
|