diff --git a/app/controllers/dashboard/actions_controller.rb b/app/controllers/dashboard/actions_controller.rb new file mode 100644 index 000000000..7035658ec --- /dev/null +++ b/app/controllers/dashboard/actions_controller.rb @@ -0,0 +1,42 @@ +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('
') + render :new_request + end + end + + def execute + authorize! :dashboard, proposal + + Dashboard::ExecutedAction.create(proposal: proposal, action: dashboard_action, executed_at: Time.now) + redirect_to progress_proposal_dashboard_path(proposal.to_param) + end + + private + + def dashboard_action + @dashboard_action ||= Dashboard::Action.find(params[:id]) + end +end + diff --git a/app/controllers/dashboard_controller.rb b/app/controllers/dashboard_controller.rb index f9f6903b6..75f2e0bc0 100644 --- a/app/controllers/dashboard_controller.rb +++ b/app/controllers/dashboard_controller.rb @@ -1,7 +1,7 @@ class DashboardController < Dashboard::BaseController helper_method :dashboard_action, :active_resources, :course - def index + def show authorize! :dashboard, proposal end @@ -9,41 +9,9 @@ class DashboardController < Dashboard::BaseController authorize! :publish, proposal proposal.publish - redirect_to proposal_dashboard_index_path(proposal), notice: t('proposals.notice.published') + redirect_to proposal_dashboard_path(proposal), notice: t('proposals.notice.published') end - - def execute - authorize! :dashboard, proposal - - Dashboard::ExecutedAction.create(proposal: proposal, action: dashboard_action, executed_at: Time.now) - redirect_to progress_proposal_dashboard_index_path(proposal.to_param) - end - - 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_index_path(proposal.to_param), { flash: { info: t('dashboard.create_request.success') } } - else - flash.now[:alert] = @dashboard_executed_action.errors.full_messages.join('
') - render :new_request - end - end - + def progress authorize! :dashboard, proposal end @@ -53,11 +21,7 @@ class DashboardController < Dashboard::BaseController end private - - def dashboard_action - @dashboard_action ||= Dashboard::Action.find(params[:id]) - end - + def active_resources @active_resources ||= Dashboard::Action.active.resources.order(required_supports: :asc, day_offset: :asc) end diff --git a/app/views/dashboard/_form.html.erb b/app/views/dashboard/_form.html.erb index 543424efc..aabf9ad70 100644 --- a/app/views/dashboard/_form.html.erb +++ b/app/views/dashboard/_form.html.erb @@ -1,6 +1,6 @@ <% if dashboard_action.request_to_administrators && !dashboard_action.requested_for?(proposal) %> <%= form_for @dashboard_executed_action, - url: create_request_proposal_dashboard_url(proposal, dashboard_action) do |f| %> + url: create_request_proposal_dashboard_action_url(proposal, dashboard_action) do |f| %>
<%= f.submit(class: 'button', value: t("dashboard.form.request")) %>
diff --git a/app/views/dashboard/_menu.html.erb b/app/views/dashboard/_menu.html.erb index c40257d87..8902ebc30 100644 --- a/app/views/dashboard/_menu.html.erb +++ b/app/views/dashboard/_menu.html.erb @@ -1,13 +1,13 @@