Commit Graph

13012 Commits

Author SHA1 Message Date
luisramos0
c66e5fe1e9 Make subscription line items handle soft deleted variants
This ensures subscription list page works. The variant can be removed from the subscription by the user in the edit subscription page
2019-09-22 14:59:59 +01:00
Kristina Lim
311ee92e84 Update all locales with the latest Transifex translations 2019-09-19 17:08:17 +08:00
Kristina Lim
241e97d938 Merge pull request #4241 from openfoodfoundation/transifex
Transifex
2019-09-19 16:58:57 +08:00
Pau Pérez Fabregat
85b1ba8eae Merge pull request #4263 from coopdevs/index-frequent-spree-orders-query
Index spree_orders on various columns
2019-09-19 10:12:54 +02:00
Pau Pérez Fabregat
baa4783141 Merge pull request #4260 from jasonk357/4184-delivery-report-default-range
Add default date range to Delivery Report
2019-09-19 09:58:06 +02:00
Transifex-Openfoodnetwork
ce40fcaf7b Updating translations for config/locales/fr.yml 2019-09-19 07:44:00 +10:00
Luis Ramos
40438de7fe Merge pull request #4250 from Matt-Yorkley/ruby-2.1.9
Bump Ruby version from 2.1.5 to 2.1.9
2019-09-18 11:39:15 +01:00
Luis Ramos
29dcd96fca Merge pull request #4265 from openfoodfoundation/dependabot/bundler/simplecov-0.17.1
Bump simplecov from 0.17.0 to 0.17.1
2019-09-18 10:25:54 +01:00
Pau Pérez Fabregat
7fd6a7e654 Merge pull request #4270 from openfoodfoundation/dependabot/bundler/webmock-3.7.4
Bump webmock from 3.7.3 to 3.7.4
2019-09-18 10:11:11 +02:00
dependabot-preview[bot]
8f2a80f199 Bump webmock from 3.7.3 to 3.7.4
Bumps [webmock](https://github.com/bblimke/webmock) from 3.7.3 to 3.7.4.
- [Release notes](https://github.com/bblimke/webmock/releases)
- [Changelog](https://github.com/bblimke/webmock/blob/master/CHANGELOG.md)
- [Commits](https://github.com/bblimke/webmock/compare/v3.7.3...v3.7.4)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-09-17 19:21:37 +00:00
Pau Perez
ea41405209 Index spree_orders on various columns
The following query

```sql
SELECT spree_orders . *
FROM spree_orders
WHERE spree_orders . user_id = ?
AND spree_orders . completed_at IS ?
AND spree_orders . created_by_id = ?
ORDER BY created_at DESC LIMIT ?
```

performs quite badly even though LIMIT is always 1 because:

* ORDER BY requires sorting by a column which is not indexed therefore
a sequential scan is performed.
* Although `completed_at` is indexed, `user_id` and `created_by_id` are
not causing a sequential scan.

To make it worse this query is executed very often in the following
controllers among others also related to checkout:

* CartController#populate
* EnterprisesController#Shop
* LineItemsController#bought
* ShopController#products
* ShopController#order_cycle

In some cases this query alone accounts for 66.8% of the total time
of the endpoint.

Results

See by yourself. We move from 56.643ms to 0.077ms. Pretty neat.

```
openfoodnetwork=> explain analyze SELECT "spree_orders".* FROM "spree_orders" WHERE "spree_orders"."user_id" = 1 AND "spree_orders"."completed_at" IS NULL AND "spree_orders"."created_by_id" = 1 ORDER BY created_at DESC LIMIT 1;
                                                        QUERY PLAN
--------------------------------------------------------------------------------------------------------------------------
 Limit  (cost=11753.03..11753.04 rows=1 width=195) (actual time=56.580..56.580 rows=0 loops=1)
   ->  Sort  (cost=11753.03..11753.04 rows=1 width=195) (actual time=56.578..56.578 rows=0 loops=1)
         Sort Key: created_at DESC
         Sort Method: quicksort  Memory: 25kB
         ->  Seq Scan on spree_orders  (cost=0.00..11753.02 rows=1 width=195) (actual time=56.571..56.571 rows=0 loops=1)
               Filter: ((completed_at IS NULL) AND (user_id = 1) AND (created_by_id = 1))
               Rows Removed by Filter: 256135
 Planning time: 0.252 ms
 Execution time: 56.643 ms
(9 rows)

openfoodnetwork=> CREATE INDEX ON spree_orders (completed_at, user_id, created_by_id, created_at);
CREATE INDEX
openfoodnetwork=> explain analyze SELECT "spree_orders".* FROM "spree_orders" WHERE "spree_orders"."user_id" = 1 AND "spree_orders"."completed_at" IS NULL AND "spree_orders"."created_by_id" = 1 ORDER BY created_at DESC LIMIT 1;
mit  (cost=8.45..8.46 rows=1 width=195) (actual time=0.030..0.030 rows=0 loops=1)
   ->  Sort  (cost=8.45..8.46 rows=1 width=195) (actual time=0.029..0.029 rows=0 loops=1)
         Sort Key: created_at DESC
         Sort Method: quicksort  Memory: 25kB
         ->  Index Scan using spree_orders_completed_at_user_id_created_by_id_created_at_idx on spree_orders  (cost=0.42..8.44 rows=1 width=195) (actual time=0.021..0.021 rows=0 loops=1)
               Index Cond: ((completed_at IS NULL) AND (user_id = 1) AND (created_by_id = 1))
 Planning time: 0.199 ms
 Execution time: 0.077 ms
```
2019-09-17 17:02:14 +02:00
luisramos0
2683efdd3c Add missing update to db/schema by running db:migrate
This was missed in PR 4242
2019-09-17 15:27:56 +01:00
Luis Ramos
ed1c154b78 Merge pull request #4252 from luisramos0/remove_clear_ship_address
On checkout of pickup orders, set ship_address to shipping_address_from_distributor instead of empty Spree::Address.default
2019-09-17 13:18:20 +01:00
Pau Pérez Fabregat
4aba2730f7 Merge pull request #4230 from openfoodfoundation/dependabot/bundler/ddtrace-0.27.0
Bump ddtrace from 0.26.0 to 0.27.0
2019-09-17 13:11:12 +02:00
Pau Pérez Fabregat
07ae51560e Merge pull request #4259 from openfoodfoundation/dependabot/bundler/webmock-3.7.3
Bump webmock from 3.7.2 to 3.7.3
2019-09-17 09:32:21 +02:00
dependabot-preview[bot]
3c5c842bbf Bump simplecov from 0.17.0 to 0.17.1
Bumps [simplecov](https://github.com/colszowka/simplecov) from 0.17.0 to 0.17.1.
- [Release notes](https://github.com/colszowka/simplecov/releases)
- [Changelog](https://github.com/colszowka/simplecov/blob/master/CHANGELOG.md)
- [Commits](https://github.com/colszowka/simplecov/compare/v0.17.0...v0.17.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-09-16 21:08:17 +00:00
Luis Ramos
e7e4508555 Merge pull request #4242 from Matt-Yorkley/another_cartastrophe
Soft-delete price objects
2019-09-16 17:18:39 +01:00
Luis Ramos
9a3b5d0700 Merge pull request #4257 from daningenthron/daningenthron/payment-method-translation
Fix typo on 'no payment methods' translation keys
2019-09-16 13:18:46 +01:00
Luis Ramos
46353be9a3 Merge pull request #4237 from coopdevs/unobfuscate-bulk-management-action
Add implicit #bulk_management including filter
2019-09-15 12:15:11 +01:00
JASON KNOEPFLER
0f55049eda OrderCycleManagementReport sets default date range before querying for orders 2019-09-13 17:15:57 -07:00
Luis Ramos
83f1a7a9a9 Merge pull request #4258 from coopdevs/fix-test-example-name
Fix test example name
2019-09-13 23:04:45 +01:00
dependabot-preview[bot]
fac118fce2 Bump webmock from 3.7.2 to 3.7.3
Bumps [webmock](https://github.com/bblimke/webmock) from 3.7.2 to 3.7.3.
- [Release notes](https://github.com/bblimke/webmock/releases)
- [Changelog](https://github.com/bblimke/webmock/blob/master/CHANGELOG.md)
- [Commits](https://github.com/bblimke/webmock/compare/v3.7.2...v3.7.3)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-09-13 19:19:34 +00:00
Dan Ingenthron
5270cdaa32 Fixed typo on 'no payment methods' translation keys
Modified to remove edits to translation files. These will be updated via Transifex webhook.
2019-09-13 13:43:13 -05:00
Luis Ramos
ecf336fe51 Merge pull request #4244 from luisramos0/fix_truncate_data
Adapt db truncate task to ofn v2 by removing db tables from v1
2019-09-13 13:09:07 +01:00
Matt-Yorkley
2ff0169016 Replace hard-deleted prices with empty (0.00) price records 2019-09-13 12:55:24 +01:00
Pau Perez
08d37bbed7 Fix test example name
The name wasn't reflecting the method being tested.
2019-09-13 12:55:34 +02:00
Transifex-Openfoodnetwork
b71443ccd8 Updating translations for config/locales/ca.yml 2019-09-13 20:45:12 +10:00
Transifex-Openfoodnetwork
8fd3d9e03c Updating translations for config/locales/es.yml 2019-09-13 20:42:43 +10:00
Transifex-Openfoodnetwork
787727872f Updating translations for config/locales/ca.yml 2019-09-13 20:42:04 +10:00
Pau Pérez Fabregat
5bf72ae780 Merge pull request #4234 from coopdevs/remove-hidden-integrity-check
Remove integrity check for deleted variants in OCs
2019-09-13 11:27:41 +02:00
Pau Pérez Fabregat
290d00f17d Merge pull request #4232 from coopdevs/remove-guard
Remove Guard and Guard-related gems
2019-09-13 11:25:29 +02:00
Pau Perez
3d7bbbbb19 Remove unused Guardfile 2019-09-13 08:25:54 +02:00
Sigmund Petersen
fd77f48aca Merge pull request #4253 from openfoodfoundation/RachL-patch-1
Update Slack invite link
2019-09-12 09:17:37 +02:00
Rachel Arnould
9a31b99de6 Update missing second link 2019-09-11 15:52:44 +02:00
Transifex-Openfoodnetwork
d98e302047 Updating translations for config/locales/nb.yml 2019-09-11 19:47:09 +10:00
Luis Ramos
500ef901fd Merge pull request #4164 from luisramos0/little_de_deface
Remove some unused deface overrides and move some others to their views
2019-09-11 10:26:56 +01:00
Matt-Yorkley
a15db65e69 Reload tested variant and price objects 2019-09-11 04:32:19 +01:00
Matt-Yorkley
64a501ee20 Don't index new deleted_at column for spree_prices 2019-09-11 04:29:02 +01:00
Matt-Yorkley
95fcff8bb1 Add migration to remove broken variants from open carts 2019-09-11 04:29:00 +01:00
Luis Ramos
c0bf7e2e75 Merge pull request #4236 from mkllnk/4222-checkout-paypal-error-handling
4233 Add missing Spree route for Paypal
2019-09-10 12:24:21 +01:00
Luis Ramos
1d177a164b Merge pull request #4247 from mkllnk/4243-inventory-pagination
4243 Restore old pagination API for inventory products
2019-09-10 11:35:04 +01:00
Rachel Arnould
d846c31db9 Update Slack invite link
Updated Slack invite link in README
2019-09-10 09:51:59 +02:00
Maikel Linke
efd01f8c9e Move new inventory spec to existing variant overrides spec
I decided to not share the same data setup with the other parts of the
spec because we don't need as much data and it's slow to create.
2019-09-10 10:05:23 +10:00
luisramos0
fb65c64c68 Keep the ship_address clearing logic (this time reusing the OrderUpdate method) thus making the restart_checkout process work for these cases (because order.ship_address is not empty)
OrderUpdater#shipping_address_from_distributor uses order.address_from_distributor to set order.ship_address when order is not delivery: this will clear the ship address as it was done previously without setting an empty address like Spree::Address.default
2019-09-09 22:05:20 +01:00
Transifex-Openfoodnetwork
b8d8ee4edc Updating translations for config/locales/en_GB.yml 2019-09-10 05:14:09 +10:00
Luis Ramos
936784404e Merge pull request #4112 from luisramos0/convert_shipments_rabl
Convert spree/api/shipments views from rabl to ams
2019-09-09 18:34:02 +01:00
luisramos0
cc7461e692 Remove clear_ship_address from checkout_controller because it is setting an empty address on order.ship_address which is breaking the reset_checkout process in some cases.
This logic is already repeated in the before_save hook in the OrderUpdater where the distributor address is put into the ship_address on order.finalize

In cases the order is not to be finalized we keep the ship_address sent from the client as we may need it to make the order workflow work properly
2019-09-09 17:48:17 +01:00
luisramos0
c4d5eec7fd Covering restart_checkout code with more tests to clarify behaviour with different order.ship_address objects
The edge case here is when ship_address is present but empty, on the checkout_controller we are going to move from using an empty ship_address to using a non-empty one. We keep the original case where this spec was testing with a nil order.ship_address
2019-09-09 17:48:04 +01:00
Luis Ramos
2dc85463ce Merge pull request #4226 from HugsDaniel/4090-missing-translations-order
Add missing translations for orders
2019-09-09 15:16:47 +01:00
Matt-Yorkley
aa3bd93ad0 Bump Ruby version to 2.1.9 2019-09-09 12:22:20 +01:00