Commit Graph

6955 Commits

Author SHA1 Message Date
Pau Pérez Fabregat
79f98bdfa7 Merge pull request #6770 from Matt-Yorkley/more-dead-code
Dead code: Spree::Order#clear_adjustments
2021-02-03 09:37:42 +01:00
Pau Pérez Fabregat
fbab5120f1 Merge pull request #6771 from Matt-Yorkley/touch-updated-at
Touch updated_at column when updating records via #update_column
2021-02-03 09:33:37 +01:00
Pau Pérez Fabregat
640681d664 Merge pull request #6719 from coopdevs/stop-using-spree-req-helpers-in-users-controller-spec
[Rails 5] Stop using deprecated req. helpers in users specs
2021-02-01 14:56:28 +01:00
Matt-Yorkley
2de54e5ae2 Fix updated_at issue in RemoveTransientData spec
The value in the test setup was not what was expected after the updates to touching the updated_at columns.
2021-01-30 13:10:38 +00:00
Matt-Yorkley
0e82160b76 Touch the updated_at column when updating records via #update_column
#update_column(s) skips callbacks (which is useful), but it doesn't change the updated_at field on the record by default (which we should be doing in these cases).

This change is made in Spree 2.2 here: b367c629ce
2021-01-30 12:49:38 +00:00
Matt-Yorkley
fc06e5e4c3 Remove dead code Spree::Order#clear_adjustments 2021-01-29 19:58:05 +00:00
Matt-Yorkley
b97734d918 Merge pull request #6720 from cillian/cancel-email-for-shop
When an order is cancelled by a customer send an email to the shop.
2021-01-29 18:30:28 +01:00
Cillian O'Ruanaidh
0cfd7de8a8 Fix the link to the order in the order cancelled email. 2021-01-29 14:14:11 +00:00
Matt-Yorkley
e4d7e03903 Merge pull request #6740 from Matt-Yorkley/carts-cleanup
Remove old abandoned carts
2021-01-29 12:32:16 +01:00
Cillian O'Ruanaidh
899dffec96 When an order is cancelled by a customer send an email to the shop.
Fixes #6435 i.e. If the customer paid for their order by Stripe/Paypal then the Enterprise needs to know that the order was cancelled in order to arrange a refund.  Refunds are not automatically processed when an order is cancelled.

This will send a very basic email to the shop, it only includes a link to view the cancelled order in the admin area initially.

I created a CustomerOrderCancellation object here because orders can be cancelled in two ways (1) by the customer, so an email should be sent to the shop. (2) by the shop, so an email doesn't need to be sent. However the code for cancelling order happens in Order#cancel via the state machine. Rather than passing some sort of parameter into #cancel to indicate whether it is a customer or shop cancelled order it might be clearer to have a CustomerOrderCancellation object, there could be other differences between customer or shop cancelled orders in future maybe.
2021-01-29 11:23:05 +00:00
Pau Pérez Fabregat
818dfc0399 Merge pull request #6751 from jibees/4971-profile-tabs-back-forward-buttons
Make user's profile tabs aware of location change event
2021-01-29 10:01:58 +01:00
Matt-Yorkley
4f7c8062a1 Create class to map join table and simplify code 2021-01-28 21:51:50 +00:00
Pau Pérez Fabregat
6cc19ac6d5 Merge pull request #6726 from filipefurtad0/shipping_methods_spec_pending_fix
Fixes a pending test case and improves the spec run time
2021-01-28 16:39:39 +01:00
Pau Pérez Fabregat
2668747237 Merge pull request #6723 from luisramos0/spree_routes_2
Move spree orders routes out of the spree engine routes into the main app routes
2021-01-28 16:31:49 +01:00
Matt-Yorkley
57f429db58 Merge pull request #6606 from mkllnk/6081-add-to-cart
Add quantity input to shop front
2021-01-28 15:51:08 +01:00
Jean-Baptiste Bellet
553053bad1 use find instead of click_link because <a> element no longer has href attribute
- click_link only looks for <a> element with href attribute
 - Use a regexp for a case-insensitive search (as CSS use a uppercase transform)
2021-01-28 09:45:24 +01:00
Luis Ramos
7cea4138c2 Fix spec setup 2021-01-27 22:44:52 +00:00
Matt-Yorkley
e6c59fbd96 Update data retention periods
Sessions and cart data are removed if older than 3 months, instead of 6.
2021-01-27 22:40:23 +00:00
Matt-Yorkley
0a88712926 Clear orphaned records in join table spree_option_value_line_items 2021-01-27 22:40:23 +00:00
Matt-Yorkley
4230d46a06 Remove carts older than 6 months 2021-01-27 22:40:23 +00:00
Maikel
8a757812e7 Merge pull request #6735 from coopdevs/enable-mail-delivery-always
Enable mail delivery always
2021-01-28 09:31:12 +11:00
Matt-Yorkley
f49355e5d3 Merge pull request #6724 from Matt-Yorkley/remove-price-adjustments
Delete dead code Spree::Order#price_adjustments
2021-01-27 23:29:38 +01:00
Luis Ramos
c604f4c0c6 Remove dead endpoint 2021-01-27 22:05:04 +00:00
Pau Pérez Fabregat
c3897dd3df Merge pull request #6643 from coopdevs/customer-balance-frontoffice
Customer balance frontoffice
2021-01-27 19:55:56 +01:00
Luis Ramos
ab135e30c0 Fix order_path in stripe connect spec 2021-01-25 20:25:13 +00:00
Luis Ramos
11fdbe5e9f Switch spree from namespace to scope in routes so helpers like order_path keep working 2021-01-25 20:01:08 +00:00
Luis Ramos
34ae3ca24d Replace spree_order_url with order_url so we can use scope in the routes file 2021-01-25 19:56:25 +00:00
Luis Ramos
f3da7afd55 Replace spree_order_path with order_path so we can use scope in the routes file 2021-01-25 19:55:42 +00:00
Luis Ramos
dbef7b60a6 Adapt spec to new orders url 2021-01-25 19:52:48 +00:00
Luis Ramos
21f48b52c8 Fix cancel order route 2021-01-25 19:52:48 +00:00
Luis Ramos
00fcb89af1 Fix order_url routes in a few places 2021-01-25 19:52:48 +00:00
Luis Ramos
6e7ee02191 Change spree.order_path to spree_order_path everywhere 2021-01-25 19:52:48 +00:00
Luis Ramos
e98d97ae0d Move spree orders routes out of the spree engine routes into the main app routes, still inside the spree namespace 2021-01-25 19:52:48 +00:00
Pau Perez
4a5869b60c Remove ability to toggle mail delivery
OFN requires mails to work so there's no point in having this
conditional with the maintenance cost it entails.
2021-01-25 13:27:44 +01:00
filipefurtad0
c5c9e803ab Fixes a pending test case and improves the spec run time 2021-01-24 13:32:04 +00:00
Matt-Yorkley
0247386f82 Delete dead code Spree::Order#price_adjustments
This method returns the same thing as the Spree::Order#line_items_adjustments scope, but in a slightly less useful format (an array instead of a relation). The method's name is also totally inaccurate, as currently the only adjustments that appear on line items are tax adjustments for inclusive tax rates, which by definition have no effect on the price whatsoever...
2021-01-23 00:05:56 +00:00
Luis Ramos
1643636d43 Replace spree_get with simple call to get 2021-01-22 22:32:48 +00:00
Luis Ramos
d6a53cb84f Replace spree_get with simple call to get 2021-01-22 22:30:11 +00:00
Luis Ramos
94275eedfb Replace spree_get with simple call to get 2021-01-22 22:28:53 +00:00
Luis Ramos
59e900826e Replace spree_get with get
Spree helper method is not needed
2021-01-22 22:22:50 +00:00
Luis Ramos
be9ee376a3 Use get instead of spree_get
spree_get is not needed in these cases
2021-01-22 22:20:52 +00:00
Pau Perez
cc2e46890e Stop using deprecated req. helpers in users specs
This removes the following two deprecation warnings that we are getting
by millions (the two for each controller action test):

```
DEPRECATION WARNING: You are trying to generate the URL for a named route called "main_app" but no such route was found. In the future, this will result in an `ActionController::UrlGenerationError` exception. (called from process_action_with_route at /usr/
src/app/spec/support/controller_requests_helper.rb:49)
DEPRECATION WARNING: Passing the `use_route` option in functional tests are deprecated. Support for this option in the `process` method (and the related `get`, `head`, `post`, `patch`, `put` and `delete` helpers) will be removed in the next version without
 replacement. Functional tests are essentially unit tests for controllers and they should not require knowledge to how the application's routes are configured. Instead, you should explicitly pass the appropiate params to the `process` method. Previously th
e engines guide also contained an incorrect example that recommended using this option to test an engine's controllers within the dummy application. That recommendation was incorrect and has since been corrected. Instead, you should override the `@routes`
variable in the test case with `Foo::Engine.routes`. See the updated engines guide for details. (called from process_action_with_route at /usr/src/app/spec/support/controller_requests_helper.rb:49)
```

It slows down our test suite and clutters the output a lot. As per my
investigation, this is something that arose in
https://github.com/rails/rails/pull/17453 and addressed in
https://github.com/rails/rails/pull/17725. TL;DR: Engines need to define
their routes in controller tests as shown in
https://github.com/discourse/discourse/pull/3011.

This, however, revealed a much complex reality in our case. We're still
using a `Spree::Core::Engine` with its own routes at
`Spree::Core::Engine.routes`. So we can't skip defining `routes { }` for
each of its controllers unless we merge this engine into our app, but
that's going to require more effort. What could that entail in
https://github.com/openfoodfoundation/openfoodnetwork/compare/master...coopdevs:move-users-to-app-routes.

To make it even worse, note that we override spree's core routes from
our own, resulting in a controller whose actions are being served from
routes defined in either `config/routes.rb` or `config/spree/routes.rb`
🙈.
2021-01-22 11:42:17 +01:00
Maikel Linke
bd731267ec Allow user to get maximum available quantity
When the user entered a number beyond the stock level, the browser was
correcting that to the max number which is very helpful. But Angular was
setting the model to undefined which removes the item from the cart.

Deactivating Angular's max behaviour let's us set the value ourselves
which is then used in the cart.
2021-01-22 16:42:21 +11:00
Maikel Linke
35b4e8c4d1 Allow editing of invalid quantities
If the user entered an invalid quantity, Angular set the model to
undefined and we removed the input field to show the add button. That
makes it impossible for a user to see what the maximum quantity to enter
would be. For example:

- The variant has a stock level of 5.
- The user enters 7.
- Angular sets it to undefined.
- The input field disappears.
- The user is startled and doesn't know how to proceed.

But now we hide the input only if it's deliberately set to zero.
2021-01-22 16:42:21 +11:00
Maikel Linke
0166400b03 Guard against invalid quantity input
The user can now type anything into the quantity field and some of it
may not be valid. These safe guards ensure that the buttons still work
even if the quantity is undefined or out of range.

Angular guards against the value being out of range but that has other
side-effects. We want to be able to de-activate some of Angular's
behaviour.
2021-01-22 16:42:20 +11:00
Maikel Linke
af918e63ee Change bulk quantities on any quantity change
This prepares for changing the quantity with an input field. It also
applies if the quantity is changed after an ajax request.
2021-01-22 16:42:20 +11:00
Andy Brett
84689c43be Merge pull request #6534 from andrewpbrett/sca-emails
Send email when SCA authorization is required for admin payment
2021-01-21 13:53:35 -08:00
Andy Brett
0e7f4b2f14 Merge pull request #6537 from mkllnk/simplify-mail-config
Simplify mail config
2021-01-21 10:59:43 -08:00
Andy Brett
3ef4a74b84 Merge pull request #6655 from Matt-Yorkley/summing-amounts
Improve performance on summing adjustments and payment
2021-01-21 10:58:10 -08:00
Matt-Yorkley
d8b795ebee Merge pull request #6679 from Matt-Yorkley/soft-delete-enterprise-fees
Soft-delete Enterprise Fees
2021-01-21 19:57:29 +01:00