mirror of
https://github.com/openfoodfoundation/openfoodnetwork
synced 2026-02-08 22:56:06 +00:00
Rename :preferred_shipping_methods to :selected_shipping_methods on OrderCycle
It's a clearer name because 'preferred' implies there could be other unpreferred shipping methods available as well. Co-authored-by: Maikel <maikel@email.org.au>
This commit is contained in:
committed by
Filipe
parent
cc5daf51b1
commit
67d4c38550
@@ -25,7 +25,7 @@ class OrderCycle < ApplicationRecord
|
||||
has_many :order_cycle_schedules
|
||||
has_many :schedules, through: :order_cycle_schedules
|
||||
has_many :order_cycle_shipping_methods
|
||||
has_many :preferred_shipping_methods, class_name: "Spree::ShippingMethod",
|
||||
has_many :selected_shipping_methods, class_name: "Spree::ShippingMethod",
|
||||
through: :order_cycle_shipping_methods,
|
||||
source: :shipping_method
|
||||
has_paper_trail meta: { custom_data: proc { |order_cycle| order_cycle.schedule_ids.to_s } }
|
||||
@@ -181,7 +181,7 @@ class OrderCycle < ApplicationRecord
|
||||
oc.schedule_ids = schedule_ids
|
||||
oc.save!
|
||||
exchanges.each { |e| e.clone!(oc) }
|
||||
oc.preferred_shipping_method_ids = preferred_shipping_method_ids
|
||||
oc.selected_shipping_method_ids = selected_shipping_method_ids
|
||||
sync_subscriptions
|
||||
oc.reload
|
||||
end
|
||||
@@ -296,10 +296,10 @@ class OrderCycle < ApplicationRecord
|
||||
end
|
||||
|
||||
def shipping_methods
|
||||
if simple? || preferred_shipping_methods.none?
|
||||
if simple? || selected_shipping_methods.none?
|
||||
attachable_shipping_methods
|
||||
else
|
||||
preferred_shipping_methods
|
||||
selected_shipping_methods
|
||||
end
|
||||
end
|
||||
|
||||
@@ -311,12 +311,12 @@ class OrderCycle < ApplicationRecord
|
||||
|
||||
def all_distributors_have_at_least_one_shipping_method?
|
||||
distributors.all? do |distributor|
|
||||
(distributor.shipping_method_ids & preferred_shipping_method_ids).any?
|
||||
(distributor.shipping_method_ids & selected_shipping_method_ids).any?
|
||||
end
|
||||
end
|
||||
|
||||
def at_least_one_shipping_method_selected_for_each_distributor
|
||||
return if preferred_shipping_methods.none? ||
|
||||
return if selected_shipping_methods.none? ||
|
||||
coordinator.nil? ||
|
||||
simple? ||
|
||||
all_distributors_have_at_least_one_shipping_method?
|
||||
|
||||
@@ -11,7 +11,7 @@ class OrderCycleForm
|
||||
@user = user
|
||||
@permissions = OpenFoodNetwork::Permissions.new(user)
|
||||
@schedule_ids = order_cycle_params.delete(:schedule_ids)
|
||||
@preferred_shipping_method_ids = order_cycle_params.delete(:preferred_shipping_method_ids)
|
||||
@selected_shipping_method_ids = order_cycle_params.delete(:selected_shipping_method_ids)
|
||||
end
|
||||
|
||||
def save
|
||||
@@ -24,7 +24,7 @@ class OrderCycleForm
|
||||
order_cycle.schedule_ids = schedule_ids
|
||||
order_cycle.save!
|
||||
apply_exchange_changes
|
||||
attach_preferred_shipping_methods
|
||||
attach_selected_shipping_methods
|
||||
sync_subscriptions
|
||||
true
|
||||
end
|
||||
@@ -48,11 +48,11 @@ class OrderCycleForm
|
||||
OpenFoodNetwork::OrderCycleFormApplicator.new(order_cycle, user).go!
|
||||
end
|
||||
|
||||
def attach_preferred_shipping_methods
|
||||
return if @preferred_shipping_method_ids.nil?
|
||||
def attach_selected_shipping_methods
|
||||
return if @selected_shipping_method_ids.nil?
|
||||
|
||||
order_cycle.reload # so outgoing exchanges are up-to-date for shipping method validations
|
||||
order_cycle.preferred_shipping_method_ids = preferred_shipping_method_ids
|
||||
order_cycle.selected_shipping_method_ids = selected_shipping_method_ids
|
||||
order_cycle.save!
|
||||
end
|
||||
|
||||
@@ -62,14 +62,14 @@ class OrderCycleForm
|
||||
end
|
||||
end
|
||||
|
||||
def preferred_shipping_method_ids
|
||||
@preferred_shipping_method_ids = @preferred_shipping_method_ids.reject(&:blank?).map(&:to_i)
|
||||
def selected_shipping_method_ids
|
||||
@selected_shipping_method_ids = @selected_shipping_method_ids.reject(&:blank?).map(&:to_i)
|
||||
|
||||
if order_cycle.attachable_shipping_methods.map(&:id).sort == @preferred_shipping_method_ids.sort
|
||||
@preferred_shipping_method_ids = []
|
||||
if order_cycle.attachable_shipping_methods.map(&:id).sort == @selected_shipping_method_ids.sort
|
||||
@selected_shipping_method_ids = []
|
||||
end
|
||||
|
||||
@preferred_shipping_method_ids
|
||||
@selected_shipping_method_ids
|
||||
end
|
||||
|
||||
def schedule_ids?
|
||||
|
||||
@@ -17,7 +17,7 @@ module PermittedAttributes
|
||||
:name, :orders_open_at, :orders_close_at, :coordinator_id,
|
||||
:preferred_product_selection_from_coordinator_inventory_only,
|
||||
:automatic_notifications,
|
||||
{ schedule_ids: [], preferred_shipping_method_ids: [], coordinator_fee_ids: [] }
|
||||
{ schedule_ids: [], selected_shipping_method_ids: [], coordinator_fee_ids: [] }
|
||||
]
|
||||
end
|
||||
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
%fieldset.no-border-bottom
|
||||
%legend{ align: 'center'}= t('.checkout_options')
|
||||
|
||||
= hidden_field_tag "order_cycle[preferred_shipping_method_ids][]", ""
|
||||
= hidden_field_tag "order_cycle[selected_shipping_method_ids][]", ""
|
||||
|
||||
%table.checkout-options
|
||||
%thead
|
||||
@@ -30,9 +30,9 @@
|
||||
- shipping_methods.each do |shipping_method|
|
||||
%p
|
||||
%label
|
||||
= check_box_tag "order_cycle[preferred_shipping_method_ids][]",
|
||||
= check_box_tag "order_cycle[selected_shipping_method_ids][]",
|
||||
shipping_method.id, @order_cycle.shipping_methods.include?(shipping_method),
|
||||
id: "order_cycle_preferred_shipping_method_ids_#{shipping_method.id}"
|
||||
id: "order_cycle_selected_shipping_method_ids_#{shipping_method.id}"
|
||||
= shipping_method.name
|
||||
- distributor.shipping_methods.backend.each do |shipping_method|
|
||||
%label.disabled
|
||||
|
||||
@@ -31,7 +31,7 @@ describe OrderCycle do
|
||||
order_cycle = create(:distributor_order_cycle,
|
||||
distributors: [distributor_i, distributor_ii])
|
||||
|
||||
order_cycle.preferred_shipping_method_ids = [
|
||||
order_cycle.selected_shipping_method_ids = [
|
||||
distributor_i_shipping_method.id,
|
||||
distributor_ii_shipping_method.id
|
||||
]
|
||||
@@ -47,7 +47,7 @@ describe OrderCycle do
|
||||
distributor_ii_shipping_method = create(:shipping_method, distributors: [distributor_i])
|
||||
order_cycle = create(:distributor_order_cycle, distributors: [distributor_i, distributor_ii])
|
||||
|
||||
order_cycle.preferred_shipping_method_ids = [distributor_i_shipping_method.id]
|
||||
order_cycle.selected_shipping_method_ids = [distributor_i_shipping_method.id]
|
||||
|
||||
expect(order_cycle).to be_invalid
|
||||
expect(order_cycle.errors.to_a).to eq [
|
||||
@@ -64,7 +64,7 @@ describe OrderCycle do
|
||||
shipping_method = create(:shipping_method)
|
||||
distributor = create(:distributor_enterprise, shipping_methods: [shipping_method])
|
||||
order_cycle = create(:distributor_order_cycle, distributors: [distributor])
|
||||
order_cycle.preferred_shipping_methods << shipping_method
|
||||
order_cycle.selected_shipping_methods << shipping_method
|
||||
|
||||
shipping_method.update_column(:display_on, "back_end")
|
||||
|
||||
@@ -468,7 +468,7 @@ describe OrderCycle do
|
||||
distributor = create(:distributor_enterprise)
|
||||
shipping_method = create(:shipping_method, distributors: [distributor])
|
||||
order_cycle = create(:distributor_order_cycle, distributors: [distributor])
|
||||
order_cycle.preferred_shipping_methods << shipping_method
|
||||
order_cycle.selected_shipping_methods << shipping_method
|
||||
|
||||
shipping_method.update_column(:display_on, "back_end")
|
||||
|
||||
@@ -721,7 +721,7 @@ describe OrderCycle do
|
||||
it "returns all attachable shipping methods if no preferred shipping methods have been chosen" do
|
||||
shipping_method = create(:shipping_method, distributors: [distributor])
|
||||
|
||||
expect(oc.preferred_shipping_methods).to be_empty
|
||||
expect(oc.selected_shipping_methods).to be_empty
|
||||
expect(oc.shipping_methods).to eq [shipping_method]
|
||||
end
|
||||
|
||||
@@ -729,7 +729,7 @@ describe OrderCycle do
|
||||
shipping_method_i = create(:shipping_method, distributors: [distributor])
|
||||
shipping_method_ii = create(:shipping_method, distributors: [distributor])
|
||||
|
||||
oc.preferred_shipping_methods << shipping_method_ii
|
||||
oc.selected_shipping_methods << shipping_method_ii
|
||||
|
||||
expect(oc.shipping_methods).to eq [shipping_method_ii]
|
||||
end
|
||||
|
||||
@@ -55,7 +55,7 @@ describe OrderAvailableShippingMethods do
|
||||
shipping_method_iv = create(:shipping_method, distributors: [distributor_ii])
|
||||
order_cycle = create(:distributor_order_cycle,
|
||||
distributors: [distributor_i, distributor_ii])
|
||||
order_cycle.preferred_shipping_methods << [shipping_method_i, shipping_method_iii]
|
||||
order_cycle.selected_shipping_methods << [shipping_method_i, shipping_method_iii]
|
||||
order = build(:order, distributor: distributor_i, order_cycle: order_cycle)
|
||||
|
||||
available_shipping_methods = OrderAvailableShippingMethods.new(order).to_a
|
||||
|
||||
@@ -159,7 +159,7 @@ describe OrderCycleForm do
|
||||
enterprise_fee_ids: []
|
||||
}],
|
||||
outgoing_exchanges: [outgoing_exchange_params],
|
||||
preferred_shipping_method_ids: [shipping_method.id]
|
||||
selected_shipping_method_ids: [shipping_method.id]
|
||||
)
|
||||
end
|
||||
|
||||
@@ -176,7 +176,7 @@ describe OrderCycleForm do
|
||||
before do
|
||||
params.merge!(
|
||||
outgoing_exchanges: [outgoing_exchange_params],
|
||||
preferred_shipping_method_ids: nil
|
||||
selected_shipping_method_ids: nil
|
||||
)
|
||||
end
|
||||
|
||||
@@ -195,7 +195,7 @@ describe OrderCycleForm do
|
||||
before do
|
||||
params.merge!(
|
||||
outgoing_exchanges: [outgoing_exchange_params],
|
||||
preferred_shipping_method_ids: [other_distributor_shipping_method.id]
|
||||
selected_shipping_method_ids: [other_distributor_shipping_method.id]
|
||||
)
|
||||
end
|
||||
|
||||
@@ -216,7 +216,7 @@ describe OrderCycleForm do
|
||||
|
||||
form = OrderCycleForm.new(
|
||||
order_cycle,
|
||||
params.except(:preferred_shipping_method_ids),
|
||||
params.except(:selected_shipping_method_ids),
|
||||
order_cycle.coordinator
|
||||
)
|
||||
|
||||
@@ -232,7 +232,7 @@ describe OrderCycleForm do
|
||||
order_cycle = create(:distributor_order_cycle, distributors: [distributor])
|
||||
|
||||
form = OrderCycleForm.new(order_cycle,
|
||||
{ preferred_shipping_method_ids: [shipping_method.id] },
|
||||
{ selected_shipping_method_ids: [shipping_method.id] },
|
||||
order_cycle.coordinator)
|
||||
|
||||
expect(form.save).to be true
|
||||
@@ -250,7 +250,7 @@ describe OrderCycleForm do
|
||||
distributors: [distributor_i, distributor_ii])
|
||||
|
||||
form = OrderCycleForm.new(order_cycle,
|
||||
{ preferred_shipping_method_ids: [shipping_method_i.id] },
|
||||
{ selected_shipping_method_ids: [shipping_method_i.id] },
|
||||
order_cycle.coordinator)
|
||||
|
||||
expect(form.save).to be false
|
||||
|
||||
@@ -134,8 +134,8 @@ describe '
|
||||
click_button 'Save and Next'
|
||||
|
||||
# And I select preferred shipping methods
|
||||
check "order_cycle_preferred_shipping_method_ids_#{shipping_method_i.id}"
|
||||
uncheck "order_cycle_preferred_shipping_method_ids_#{shipping_method_ii.id}"
|
||||
check "order_cycle_selected_shipping_method_ids_#{shipping_method_i.id}"
|
||||
uncheck "order_cycle_selected_shipping_method_ids_#{shipping_method_ii.id}"
|
||||
|
||||
click_button 'Save and Back to List'
|
||||
|
||||
|
||||
Reference in New Issue
Block a user