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