diff --git a/app/controllers/admin/spending_proposals_controller.rb b/app/controllers/admin/spending_proposals_controller.rb new file mode 100644 index 000000000..dae595716 --- /dev/null +++ b/app/controllers/admin/spending_proposals_controller.rb @@ -0,0 +1,26 @@ +class Admin::SpendingProposalsController < Admin::BaseController + has_filters %w{unresolved accepted rejected}, only: :index + + before_action :load_spending_proposal, except: [:index] + + def index + @spending_proposals = SpendingProposal.send(@current_filter).order(created_at: :desc).page(params[:page]) + end + + def accept + @spending_proposal.accept + redirect_to request.query_parameters.merge(action: :index) + end + + def reject + @spending_proposal.reject + redirect_to request.query_parameters.merge(action: :index) + end + + private + + def load_spending_proposal + @spending_proposal = SpendingProposal.find(params[:id]) + end + +end \ No newline at end of file diff --git a/app/views/admin/_menu.html.erb b/app/views/admin/_menu.html.erb index 5f45e96c8..b27a8a73b 100644 --- a/app/views/admin/_menu.html.erb +++ b/app/views/admin/_menu.html.erb @@ -32,6 +32,13 @@ <% end %> +
| + <%= spending_proposal.title %> + | ++ <% unless spending_proposal.accepted? %> + <%= link_to t("admin.spending_proposals.actions.accept"), + accept_admin_spending_proposal_path(spending_proposal, request.query_parameters), + method: :put, + data: { confirm: t("admin.actions.confirm") }, + class: "button radius tiny success no-margin" %> + <% end %> + <% unless spending_proposal.rejected? %> + <%= link_to t("admin.spending_proposals.actions.reject"), + reject_admin_spending_proposal_path(spending_proposal, request.query_parameters), + method: :put, + data: { confirm: t("admin.actions.confirm") }, + class: "button radius tiny warning right" %> + <% end %> + | +