Maikel Linke
c5bb2f52e1
Check "Select all" to start with
...
Reflect the state of the shipping method checkboxes.
2022-09-30 13:13:39 +01:00
Maikel Linke
758030e81a
Test with readable labels instead of ids
2022-09-30 13:13:39 +01:00
Maikel Linke
da2ef3fae2
Give order cycle spec some structure
2022-09-30 13:13:39 +01:00
Cillian O'Ruanaidh
87431c188e
Use ShippingMethod :frontend method and drop :backend to avoid ClassLength Rubocop error
2022-09-30 13:13:39 +01:00
Cillian O'Ruanaidh
0673f9a5ae
Use a more simple layout on the order cycle checkout options form
...
Before there was a row for each distributor and a 'shared' row for shipping methods which were shared among more than one distributor. This layout displays a single list of shipping methods with the distributor or distributors it belongs to beside it as suggested by @lin-d-hop
2022-09-30 13:13:39 +01:00
Cillian O'Ruanaidh
8cb2767f9a
The no shipping/payment method warnings on order cycle checkout options looks better left aligned
2022-09-30 13:13:39 +01:00
Cillian O'Ruanaidh
1a70cc0c4c
Don't display no shipping/payment method warnings on order cycle checkout options if the distributor has some that are shared with other distributors
2022-09-30 13:13:39 +01:00
Cillian O'Ruanaidh
464a9b95a4
On order cycle checkout options shipping methods shared between distributors should be checked by default too
2022-09-30 13:13:39 +01:00
Cillian O'Ruanaidh
8b59b7a796
Use if exclude instead of if !include in OrderCycleForm
...
Co-authored-by: Maikel <maikel@email.org.au >
2022-09-30 13:13:39 +01:00
Cillian O'Ruanaidh
ad51b41bb3
Use :belongs_to instead of :references in :order_cycles_shipping_methods
...
Also fix migration class name.
2022-09-30 13:13:39 +01:00
Cillian O'Ruanaidh
472bd150bb
For consistency with other '<em>' don't strip whitespace.
...
Although both '%em' and '%em>' are rendering the same markup, perhaps because the tag is on it's own new line.
Co-authored-by: Maikel <maikel@email.org.au >
2022-09-30 13:13:39 +01:00
Cillian O'Ruanaidh
af87943fd0
Change 'if !' to 'unless' in OrderCyclesList
...
Co-authored-by: Maikel <maikel@email.org.au >
2022-09-30 13:13:39 +01:00
Cillian O'Ruanaidh
efb1a326b4
Fix line length in OrderCycleForm spec for Rubocop
2022-09-30 13:13:39 +01:00
Cillian O'Ruanaidh
94b96e18ed
Remove OrderCycleForm specs that are no longer necessary
...
These were added for a previous approach which is no longer used.
2022-09-30 13:13:39 +01:00
Cillian O'Ruanaidh
80b7a5d39a
Remove OrderCycleShippingMethod model and use a :has_and_belongs_to_many association instead
...
Before the OrderCycleShippingMethod had a validation which checked the shipping method belonged to the order cycle distributor. Instead of this validation this just ignores shipping methods which don't belong to one of the order cycle's distributors when they are being attached in the OrderCycleForm service. This pattern is already being used in the OrderCycleForm service for ignoring Schedules that the person doesn't own.
Co-authored-by: Maikel <maikel@email.org.au >
2022-09-30 13:13:39 +01:00
Cillian O'Ruanaidh
61bbf0714e
Remove flag argument anti-pattern from Shop::OrderCyclesList
...
Co-authored-by: Maikel <maikel@email.org.au >
2022-09-30 13:13:39 +01:00
Cillian O'Ruanaidh
da3eea6005
Fetch shared shipping/payment methods for order cycle checkout options in single query
2022-09-30 13:13:39 +01:00
Cillian O'Ruanaidh
6453bbcc1c
Fix :selected_shipping_method_ids param for shared shipping methods.
2022-09-30 13:13:39 +01:00
Cillian O'Ruanaidh
541a340dcf
If an OrderCycle or Spree::ShippingMethod is destroyed then remove it's associated OrderCycleShippingMethod records too
2022-09-30 13:13:39 +01:00
Cillian O'Ruanaidh
593da4996f
A shop won't be shown as open if it doesn't have useable shipping method so these shipping method validations are really necessary
2022-09-30 13:13:39 +01:00
Cillian O'Ruanaidh
a3a52a07b7
Build shipping method with a category so it's valid in the test
2022-09-30 13:13:39 +01:00
Cillian O'Ruanaidh
ed13ee6cbc
Fix association alignment in OrderCycle
2022-09-30 13:13:39 +01:00
Cillian O'Ruanaidh
564e4d802c
Don't use :html_safe with payment method name in checkout options in case it contains something malicious
...
Co-authored-by: Maikel <maikel@email.org.au >
2022-09-30 13:13:39 +01:00
Cillian O'Ruanaidh
747c88fb35
Update the Shop::OrderCyclesList service so it's clearer what kind of order cycles are being fetched
...
Before the Shop::OrderCyclesList service would return order cycles even if they are not ready for checkout and we had a check before calling the service in BaseController which would return OrderCycle.where('false'). It seems like this check should be part of the service too.
2022-09-30 13:13:39 +01:00
Cillian O'Ruanaidh
f4a4f7c9ff
Remove validations checking order cycle has shipping methods
...
Instead we will make sure the order cycle is not available on the shopfront if it is doesn't have valid shipping methods. This will preven the issue where if one distributor deletes their shipping method, we don't want to invalidate the order cycle for all other distributors.
Co-authored-by: Maikel <maikel@email.org.au >
2022-09-30 13:13:39 +01:00
Cillian O'Ruanaidh
81730f725d
Enterprises shouldn't be considered ready for checkout if it only has backend shipping methods
2022-09-30 13:13:39 +01:00
Cillian O'Ruanaidh
7bd56007bd
Don't use :html_safe in case shipping method name contains something malicious in app/views/admin/order_cycles/checkout_options.html.haml
...
Co-authored-by: Maikel <maikel@email.org.au >
2022-09-30 13:13:39 +01:00
Cillian O'Ruanaidh
d9de35799d
Array difference operator is neater than reject in app/views/admin/order_cycles/checkout_options.html.haml
...
Co-authored-by: Maikel <maikel@email.org.au >
2022-09-30 13:13:39 +01:00
Cillian O'Ruanaidh
67d4c38550
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 >
2022-09-30 13:13:39 +01:00
Cillian O'Ruanaidh
cc5daf51b1
Expect to be_valid instead of checking presence of specific error spec/models/spree/shipping_method_spec.rb
...
Co-authored-by: Maikel <maikel@email.org.au >
2022-09-30 13:13:39 +01:00
Cillian O'Ruanaidh
f25de984d2
Use .empty? instead of !exists? in app/models/order_cycle_shipping_method.rb
...
Co-authored-by: Maikel <maikel@email.org.au >
2022-09-30 13:13:39 +01:00
Cillian O'Ruanaidh
9a511e9e94
Rubocop adjustments
2022-09-30 13:13:39 +01:00
Cillian O'Ruanaidh
0671e52a29
Undo changes to tests, now that order cycle returns all shipping methods by default and doesn't explicitly require OrderCycleShippingMethods anymore
2022-09-30 13:13:39 +01:00
Cillian O'Ruanaidh
9296686384
Make backend, frontend scopes on Spree::ShippingMethod neater
...
Co-authored-by: Co-authored-by: Maikel <maikel@email.org.au >
2022-09-30 13:13:39 +01:00
Cillian O'Ruanaidh
f6c754839b
Make OrderCycleShippingMethod inherit from ApplicationRecord
2022-09-30 13:13:39 +01:00
Cillian O'Ruanaidh
fc4f951a1a
Only require OrderCycleShippingMethod records if people want to override the default shipping methods
...
It makes things much simpler if we return all shipping methods by default without needing OrderCycleShippingMethod records to be added to the database.
Co-authored-by: Maikel <maikel@email.org.au >
2022-09-30 13:13:39 +01:00
Cillian O'Ruanaidh
4e0bf75ecf
Get tests broken because of new order cycle shipping method validations working again
2022-09-30 13:13:39 +01:00
Cillian O'Ruanaidh
a46b77d10c
Ensure hack for showing products on a shop with closed order cycles also works if an order cycle has no shipping methods
...
If a distributor order cycle has no shipping methods it will be invalid. This is a bit confusing because adding a check for :invalid seems like it would be better if it was done in the Shop::OrderCyclesList service but the hack doesn't work if you put it in there, it seems like something needs a refactor.
2022-09-30 13:13:39 +01:00
Cillian O'Ruanaidh
5a4bc79c74
Update sample data task so distributor order cycles have shipping methods attached i.e. are valid
2022-09-30 13:13:39 +01:00
Cillian O'Ruanaidh
bff7650b35
Change :available_shipping_methods helper to use new OrderAvailableShippingMethods service.
2022-09-30 13:13:39 +01:00
Cillian O'Ruanaidh
855ec1a708
Add new 'Checkout options' step to the edit order cycle form so people can attach shipping methods
2022-09-30 13:13:39 +01:00
Cillian O'Ruanaidh
1e817af5aa
Validate deleting a shipping method or switching it to backoffice only doesn't invalidate any order cycles
2022-09-30 13:13:39 +01:00
Cillian O'Ruanaidh
48c2e48b24
Update the OrderCycleForm service so it supports attaching shipping methods
2022-09-30 13:13:39 +01:00
Cillian O'Ruanaidh
ca97a7f52d
Add :shipping_methods association to OrderCyle and validations
2022-09-30 13:13:39 +01:00
Cillian O'Ruanaidh
9a6e8a1113
Add an OrderCycleShippingMethod model to handle attaching shipping methods to order cycles
2022-09-30 13:13:39 +01:00
Cillian O'Ruanaidh
94d71b8dce
Remove extra unnecessary :display_on_checkout scope and reuse :frontend scope instead
2022-09-30 13:13:39 +01:00
Cillian O'Ruanaidh
a5daee39e3
Extract out a DISPLAY_ON_OPTIONS constant in Spree::ShippingMethod instead of magic strings
2022-09-30 13:13:39 +01:00
Cillian O'Ruanaidh
37617f63ea
Remove non-functional :backend scope from Spree::ShippingRate
...
It finds shipping methods where 'display_on != front_end' but :front_end values were removed in a1317be19b/db/migrate/20200508101630_convert_frontend_shipping_method_to_both.rb so it will always return true.
2022-09-30 13:13:39 +01:00
Cillian O'Ruanaidh
9b5f743fa5
Extract out a OrderCycle#simple? method so it can be used in models
2022-09-30 13:13:39 +01:00
Filipe
e85dd99e04
Merge pull request #9633 from binarygit/add-stimulus-reflex
...
Add StimulusReflex
2022-09-29 17:11:18 +01:00