app/controllers/decidim/budgets/orders_controller.rb in decidim-budgets-0.22.0 vs app/controllers/decidim/budgets/orders_controller.rb in decidim-budgets-0.23.0

- old
+ new

@@ -5,35 +5,49 @@ # Exposes the order resource so users can checkout it. class OrdersController < Decidim::Budgets::ApplicationController include NeedsCurrentOrder def checkout - enforce_permission_to :vote, :project, order: current_order + enforce_permission_to :vote, :project, order: current_order, budget: budget, workflow: current_workflow - Checkout.call(current_order, current_component) do + Checkout.call(current_order) do on(:ok) do flash[:notice] = I18n.t("orders.checkout.success", scope: "decidim") - redirect_to projects_path + redirect_to budgets_path end on(:invalid) do flash.now[:alert] = I18n.t("orders.checkout.error", scope: "decidim") - redirect_to projects_path + redirect_to budgets_path end end end def destroy CancelOrder.call(current_order) do on(:ok) do flash[:notice] = I18n.t("orders.destroy.success", scope: "decidim") - redirect_to projects_path + redirect_to redirect_path end on(:invalid) do flash.now[:alert] = I18n.t("orders.destroy.error", scope: "decidim") - redirect_to projects_path + redirect_to redirect_path end + end + end + + private + + def budget + @budget ||= Budget.find_by(id: params[:budget_id]) + end + + def redirect_path + if params.dig(:return_to) == "budget" + budget_path(budget) + else + budgets_path end end end end end