From 3d3013a5928cbf7108df01fc396e7516b3360900 Mon Sep 17 00:00:00 2001 From: Rob Harrington Date: Mon, 12 Dec 2016 11:33:49 +1100 Subject: [PATCH] WIP: ProxyOrders don't require an order, adding an edit path for proxy orders initialises an order if one does not exist and redirects to its edit path --- app/controllers/admin/proxy_orders_controller.rb | 5 +++++ app/models/spree/ability_decorator.rb | 2 +- app/serializers/api/admin/proxy_order_serializer.rb | 2 +- config/routes.rb | 6 +++--- 4 files changed, 10 insertions(+), 5 deletions(-) diff --git a/app/controllers/admin/proxy_orders_controller.rb b/app/controllers/admin/proxy_orders_controller.rb index f9a2f7184b..c70857d360 100644 --- a/app/controllers/admin/proxy_orders_controller.rb +++ b/app/controllers/admin/proxy_orders_controller.rb @@ -2,6 +2,11 @@ module Admin class ProxyOrdersController < ResourceController respond_to :json + def edit + @proxy_order.initialise_order! unless @proxy_order.order + redirect_to spree.edit_admin_order_path(@proxy_order.order) + end + def cancel if @proxy_order.cancel respond_with(@proxy_order) do |format| diff --git a/app/models/spree/ability_decorator.rb b/app/models/spree/ability_decorator.rb index 7cc0d222e1..8085f4fee0 100644 --- a/app/models/spree/ability_decorator.rb +++ b/app/models/spree/ability_decorator.rb @@ -260,7 +260,7 @@ class AbilityDecorator can [:destroy], StandingLineItem do |standing_line_item| user.enterprises.include?(standing_line_item.standing_order.shop) end - can [:admin, :cancel, :resume], ProxyOrder do |proxy_order| + can [:admin, :edit, :cancel, :resume], ProxyOrder do |proxy_order| user.enterprises.include?(proxy_order.standing_order.shop) end end diff --git a/app/serializers/api/admin/proxy_order_serializer.rb b/app/serializers/api/admin/proxy_order_serializer.rb index a6014c7a50..678b517eed 100644 --- a/app/serializers/api/admin/proxy_order_serializer.rb +++ b/app/serializers/api/admin/proxy_order_serializer.rb @@ -10,6 +10,6 @@ class Api::Admin::ProxyOrderSerializer < ActiveModel::Serializer end def edit_path - spree.edit_admin_order_path(object.order) + edit_admin_proxy_order_path(object) end end diff --git a/config/routes.rb b/config/routes.rb index 96f04a62ed..e8ce16d875 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -187,9 +187,9 @@ Openfoodnetwork::Application.routes.draw do post :build, on: :collection end - resources :proxy_orders, only: [], format: :json do - put :cancel, on: :member - put :resume, on: :member + resources :proxy_orders, only: [:edit] do + put :cancel, on: :member, format: :json + put :resume, on: :member, format: :json end end