mirror of
https://github.com/openfoodfoundation/openfoodnetwork
synced 2026-02-27 01:43:22 +00:00
Merge pull request #2368 from Matt-Yorkley/uk/admin_orders
Uk/admin orders
This commit is contained in:
@@ -56,7 +56,4 @@ angular.module("admin.orders").directive 'customerSearchOverride', ->
|
||||
return
|
||||
$('#order_email').val customer.email
|
||||
$('#user_id').val customer.user_id # modified
|
||||
$('#guest_checkout_true').prop 'checked', false
|
||||
$('#guest_checkout_false').prop 'checked', true
|
||||
$('#guest_checkout_false').prop 'disabled', false
|
||||
customer.email
|
||||
|
||||
@@ -1,7 +1,20 @@
|
||||
Spree::Admin::Orders::CustomerDetailsController.class_eval do
|
||||
before_filter :set_guest_checkout_status, only: :update
|
||||
|
||||
# Inherit CanCan permissions for the current order
|
||||
def model_class
|
||||
load_order unless @order
|
||||
@order
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def set_guest_checkout_status
|
||||
registered_user = Spree::User.find_by_email(params[:order][:email])
|
||||
|
||||
params[:order][:guest_checkout] = registered_user.nil?
|
||||
|
||||
return unless registered_user
|
||||
@order.user_id = registered_user.id
|
||||
end
|
||||
end
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
/ set_attributes "div[data-hook='customer_fields'] div.alpha"
|
||||
/ attributes({class: "fullwidth"})
|
||||
@@ -0,0 +1 @@
|
||||
remove "div[data-hook='customer_fields'] div.omega"
|
||||
@@ -0,0 +1,63 @@
|
||||
require 'spec_helper'
|
||||
|
||||
describe Spree::Admin::Orders::CustomerDetailsController, type: :controller do
|
||||
include AuthenticationWorkflow
|
||||
|
||||
describe "#update" do
|
||||
context "adding customer details via newly created admin order" do
|
||||
let!(:user) { create(:user) }
|
||||
let(:address) { create(:address) }
|
||||
let!(:distributor) { create(:distributor_enterprise) }
|
||||
let!(:shipping_method) { create(:shipping_method) }
|
||||
let!(:order) {
|
||||
create(
|
||||
:order_with_totals_and_distribution,
|
||||
state: 'cart',
|
||||
shipping_method: shipping_method,
|
||||
distributor: distributor,
|
||||
user: nil,
|
||||
email: nil,
|
||||
bill_address: nil,
|
||||
ship_address: nil,
|
||||
)
|
||||
}
|
||||
let(:address_params) {
|
||||
{
|
||||
firstname: address.firstname,
|
||||
lastname: address.lastname,
|
||||
address1: address.address1,
|
||||
address2: address.address2,
|
||||
city: address.city,
|
||||
zipcode: address.zipcode,
|
||||
country_id: address.country_id,
|
||||
state_id: address.state_id,
|
||||
phone: address.phone
|
||||
}
|
||||
}
|
||||
|
||||
before do
|
||||
login_as_enterprise_user [order.distributor]
|
||||
end
|
||||
|
||||
context "when adding details of a registered user" do
|
||||
it "redirects to shipments on success" do
|
||||
spree_post :update, order: { email: user.email, bill_address_attributes: address_params, ship_address_attributes: address_params }, order_id: order.number
|
||||
|
||||
order.reload
|
||||
|
||||
expect(response).to redirect_to spree.edit_admin_order_shipment_path(order, order.shipment)
|
||||
end
|
||||
end
|
||||
|
||||
context "when adding details of an unregistered user" do
|
||||
it "redirects to shipments on success" do
|
||||
spree_post :update, order: { email: 'unregistered@email.com', bill_address_attributes: address_params, ship_address_attributes: address_params }, order_id: order.number
|
||||
|
||||
order.reload
|
||||
|
||||
expect(response).to redirect_to spree.edit_admin_order_shipment_path(order, order.shipment)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user