Merge pull request #2368 from Matt-Yorkley/uk/admin_orders

Uk/admin orders
This commit is contained in:
Pau Pérez Fabregat
2018-06-19 11:00:35 +02:00
committed by GitHub
5 changed files with 79 additions and 3 deletions

View File

@@ -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

View File

@@ -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

View File

@@ -0,0 +1,2 @@
/ set_attributes "div[data-hook='customer_fields'] div.alpha"
/ attributes({class: "fullwidth"})

View File

@@ -0,0 +1 @@
remove "div[data-hook='customer_fields'] div.omega"

View File

@@ -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