Commit Graph

18928 Commits

Author SHA1 Message Date
Andy Brett
51630ac77b remove "Bogus" payment providers from staging and production 2021-02-03 14:03:13 -08:00
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
Andy Brett
4ba5d9dafc Merge pull request #6779 from openfoodfoundation/dependabot/bundler/test-unit-3.4.0
Bump test-unit from 3.3.9 to 3.4.0
2021-02-02 14:50:23 -08:00
Pau Pérez Fabregat
19636c687e Merge pull request #6796 from openfoodfoundation/transifex
Transifex
2021-02-02 15:50:15 +01:00
Pau Pérez Fabregat
32892b7ae5 Merge pull request #6793 from openfoodfoundation/dependabot/bundler/rubocop-1.9.1
Bump rubocop from 1.9.0 to 1.9.1
2021-02-02 15:49:48 +01:00
Pau Pérez Fabregat
9bb2970a07 Merge pull request #6782 from jibees/6766-manage-hover-on-account-tabs
User profile tabs: specify :hover rule only for devices that can effectively handle it
2021-02-02 15:47:03 +01:00
Pau Pérez Fabregat
d48aa4a73f Merge pull request #6748 from coopdevs/dont-fetch-vos-with-deleted-variant
Do not fetch VOs with deleted variant
2021-02-02 15:38:29 +01:00
Matt-Yorkley
d7b130d293 Update all locales with the latest Transifex translations v3.5.6 2021-02-02 12:23:25 +00:00
Matt-Yorkley
617d914835 Merge pull request #6788 from jibees/6783-align-new-product-form
Use full width for "new product" form
2021-02-02 13:11:12 +01:00
Matt-Yorkley
b1349306f9 Merge pull request #6787 from jibees/6784-align-items-on-shipping-and-payment-methods-forms
Align items on shipping and payment methods forms
2021-02-02 13:08:28 +01:00
Transifex-Openfoodnetwork
596e8a6828 Updating translations for config/locales/ru.yml 2021-02-02 20:48:36 +11:00
dependabot[bot]
1613c2e6fb Bump rubocop from 1.9.0 to 1.9.1
Bumps [rubocop](https://github.com/rubocop-hq/rubocop) from 1.9.0 to 1.9.1.
- [Release notes](https://github.com/rubocop-hq/rubocop/releases)
- [Changelog](https://github.com/rubocop-hq/rubocop/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rubocop-hq/rubocop/compare/v1.9.0...v1.9.1)

Signed-off-by: dependabot[bot] <support@github.com>
2021-02-02 05:34:32 +00:00
Pau Pérez Fabregat
9db9d2d138 Merge pull request #6786 from jibees/6781-align-packages-selection-on-registration
Package selection: use "columns" system to display 3 items on same line
2021-02-01 21:06:00 +01:00
Pau Pérez Fabregat
bcbd1ce8bc Merge pull request #6790 from openfoodfoundation/transifex
Transifex
2021-02-01 21:05:16 +01:00
Jean-Baptiste Bellet
370a108b3d Add stripe account owner selector as a new row
Otherwise, not displayed.
2021-02-01 18:00:28 +01:00
Transifex-Openfoodnetwork
38dde5e063 Updating translations for config/locales/es.yml 2021-02-02 03:04:56 +11:00
Transifex-Openfoodnetwork
fe79186bec Updating translations for config/locales/ca.yml 2021-02-02 03:03:33 +11:00
Pau Pérez Fabregat
d5413224b7 Merge pull request #6769 from openfoodfoundation/transifex
Transifex
2021-02-01 16:57:45 +01:00
Pau Pérez Fabregat
90466e19dc Merge pull request #6776 from Matt-Yorkley/dead-argument
Dead code: superfluous argument in CartService#populate
2021-02-01 16:49:02 +01:00
Pau Perez
0ee1e2cd72 Eager load taggings related to variant overrides
This removes an N+1 with taggings but doesn't solve the one with tags.
Using `includes(taggings: :base_tags)` based on
47da5036de/lib/acts_as_taggable_on/taggable.rb (L83-L84)
wasn't enough to solve it and I got to stop here. This is scope-creeping
too much.
2021-02-01 16:38:40 +01:00
Pau Perez
ee4f2a7b02 Remove N+1 on variants and products
We get from an initial INNER JOIN with variants and products to fetch
the variant overrides + N queries like:

```sql
SELECT "spree_variants".* FROM "spree_variants" WHERE
"spree_variants"."deleted_at" IS NULL AND "spree_variants"."id" = $1
LIMIT 1  [["id", 1545]]

SELECT "spree_products".* FROM "spree_products" WHERE
"spree_products"."id" = $1 LIMIT 1  [["id", 604]]
```

to the same initial INNER JOIN + just 2 queries like:

```sql
SELECT "spree_variants".* FROM "spree_variants" WHERE
"spree_variants"."deleted_at" IS NULL AND "spree_variants"."id" IN
(1551, 1554)

SELECT "spree_products".* FROM "spree_products" WHERE
"spree_products"."deleted_at" IS NULL AND "spree_products"."id" IN (606,
607)
```
2021-02-01 16:38:40 +01:00
Pau Perez
6584f510e8 Remove now dead code 2021-02-01 16:38:40 +01:00
Jean-Baptiste Bellet
acbe0faa1e use full width for new product form
- use the sixteen full width: eight + eight or eight + four + four, ...
2021-02-01 16:35:55 +01:00
Pau Pérez Fabregat
1420c43a0a Merge pull request #6778 from openfoodfoundation/dependabot/bundler/database_cleaner-1.99.0
Bump database_cleaner from 1.8.5 to 1.99.0
2021-02-01 16:06:51 +01:00
Jean-Baptiste Bellet
adf67475be special aligment for stripe form 2021-02-01 15:39:51 +01:00
Jean-Baptiste Bellet
c44ce85f30 alignment for specific provider settings form in payment method 2021-02-01 15:31:39 +01:00
Jean-Baptiste Bellet
46e6bc6179 align payment method form
- enlarge the form to be "full size" (four + twelve = 16 columns)
2021-02-01 15:18:45 +01:00
Jean-Baptiste Bellet
e57acd3163 align shipping method form (editing)
- use `row` and no more `field` to be consistent
- enlarge the form to be "full size" (four + twelve = 16 columns)
- enlarge "hubs sidebar"
2021-02-01 15:11:47 +01:00
Pau Pérez Fabregat
0878db70fe Merge pull request #6780 from openfoodfoundation/dependabot/bundler/webmock-3.11.2
Bump webmock from 3.11.1 to 3.11.2
2021-02-01 14:57:45 +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
Pau Perez
060530cda8 Do not fetch VOs with deleted variant
In the line below we filter them out in Ruby so it's a waste of
resources. The fundamental difference is that `#includes` and
`#references` results in LEFT JOINs, whereas `#joins` results in INNER
JOIN, and because there's a default scope on `deleted_at IS NULL`, these
are not included in the result set.

This however, requires us to move away from the current algorithm but
unfortunately we can't refactor it completely yet.

Before:

```sql
SELECT *
  FROM "variant_overrides"
  LEFT OUTER
  JOIN "spree_variants"
    ON "spree_variants"."id"              =  "variant_overrides"."variant_id"
   AND "spree_variants"."deleted_at" IS NULL
  LEFT OUTER
  JOIN "spree_products"
    ON "spree_products"."id"              =  "spree_variants"."product_id"
   AND "spree_products"."deleted_at" IS NULL
 WHERE "variant_overrides"."permission_revoked_at" IS NULL
   AND "variant_overrides"."hub_id" IN (
    SELECT "enterprises"."id"
      FROM "enterprises"
    INNER
      JOIN "enterprise_roles"
        ON "enterprise_roles"."enterprise_id" =  "enterprises"."id"
    WHERE (enterprise_roles.user_id          =  ?)
      AND (sells                             != 'none')
 ORDER BY name)
```

After:

```sql
SELECT "variant_overrides".*
  FROM "variant_overrides"
 INNER
  JOIN "spree_variants"
    ON "spree_variants"."id"              =  "variant_overrides"."variant_id"
   AND "spree_variants"."deleted_at" IS NULL
 INNER
  JOIN "spree_products"
    ON "spree_products"."id"              =  "spree_variants"."product_id"
   AND "spree_products"."deleted_at" IS NULL
 WHERE "variant_overrides"."permission_revoked_at" IS NULL
   AND "variant_overrides"."hub_id" IN (
    SELECT "enterprises"."id"
      FROM "enterprises"
    INNER
      JOIN "enterprise_roles"
        ON "enterprise_roles"."enterprise_id" =  "enterprises"."id"
    WHERE (enterprise_roles.user_id          =  ?)
      AND (sells                             != 'none')
 ORDER BY name)
```

This is covered in the test suite by
spec/controllers/admin/variant_overrides_controller_spec.rb:72. It keeps
passing so we're good to go.
2021-02-01 14:47:51 +01:00
Jean-Baptiste Bellet
b7e23a7401 user "columns" system to display 3 items on same line 2021-02-01 14:15:50 +01:00
Jean-Baptiste Bellet
fcd304182b specify :hover rule only for devices that can handle it
Since mobile device cannot handle :hover rule (hover is non sense for touch devices), specify css for only devices that effectivly handle it.

see https://css-tricks.com/solving-sticky-hover-states-with-media-hover-hover/
and https://caniuse.com/mdn-css_at-rules_media_hover for compatibility (quite good)
2021-02-01 10:53:34 +01:00
dependabot[bot]
863a7ec688 Bump webmock from 3.11.1 to 3.11.2
Bumps [webmock](https://github.com/bblimke/webmock) from 3.11.1 to 3.11.2.
- [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.11.1...v3.11.2)

Signed-off-by: dependabot[bot] <support@github.com>
2021-02-01 06:29:04 +00:00
dependabot[bot]
6f4b18a7d5 Bump test-unit from 3.3.9 to 3.4.0
Bumps [test-unit](https://github.com/test-unit/test-unit) from 3.3.9 to 3.4.0.
- [Release notes](https://github.com/test-unit/test-unit/releases)
- [Commits](https://github.com/test-unit/test-unit/compare/3.3.9...3.4.0)

Signed-off-by: dependabot[bot] <support@github.com>
2021-02-01 06:23:46 +00:00
dependabot[bot]
e9c789a459 Bump database_cleaner from 1.8.5 to 1.99.0
Bumps [database_cleaner](https://github.com/DatabaseCleaner/database_cleaner) from 1.8.5 to 1.99.0.
- [Release notes](https://github.com/DatabaseCleaner/database_cleaner/releases)
- [Changelog](https://github.com/DatabaseCleaner/database_cleaner/blob/master/History.rdoc)
- [Commits](https://github.com/DatabaseCleaner/database_cleaner/compare/v1.8.5...v1.99.0)

Signed-off-by: dependabot[bot] <support@github.com>
2021-02-01 06:20:51 +00:00
Matt-Yorkley
3da21ce2bd Add historical note to CartService
Useful background when applying upstream fixes from Spree::OrderPopulator, and means grepping for OrderPopulator doesn't come up empty.
2021-01-30 16:57:05 +00:00
Matt-Yorkley
d39468013e Clarify CartService#populate arguments
This method doesn't use :products anywhere, it doesn't need to be passed in as part of the argument.
2021-01-30 16:52:59 +00: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
Andy Brett
87bce505ec Merge pull request #6765 from openfoodfoundation/dependabot/bundler/rack-mini-profiler-2.3.1
Bump rack-mini-profiler from 2.3.0 to 2.3.1
2021-01-29 20:04:13 -08:00
Andy Brett
fb5668afa6 Merge pull request #6764 from openfoodfoundation/dependabot/bundler/rubocop-1.9.0
Bump rubocop from 1.8.1 to 1.9.0
2021-01-29 20:03:56 -08:00
Matt-Yorkley
fc06e5e4c3 Remove dead code Spree::Order#clear_adjustments 2021-01-29 19:58:05 +00:00
Transifex-Openfoodnetwork
8f163cf5b5 Updating translations for config/locales/en_CA.yml 2021-01-30 06:08:22 +11: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
d03be3b8dc Update all locales with the latest Transifex translations 2021-01-29 11:42:09 +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