The user should need to tick only one box to agree.
We don't remember yet if someone agreed to the platform TOS and
therefore the box is always unticked to start with.
Remembering the agreement is another issue:
https://github.com/openfoodfoundation/openfoodnetwork/issues/6328
The checkout page shows a checkbox to accept the platform's Terms of
Service. Ticking the box doesn't have any effect yet but at least people
are aware and are presented with a link to the terms.
This removes the deprecation warning:
```
[WARNING] The default currency will change from `USD` to `nil` in the
next major release. Make sure to set it explicitly using
`Money.default_currency=` to avoid potential issues
```
This removes the deprecation warning:
```
[WARNING] The default rounding mode will change from `ROUND_HALF_EVEN`
to `ROUND_HALF_UP` in the next major release. Set it explicitly using
`Money.rounding_mode=` to avoid potential problems.
```
by specifying the default rounding mode at boot time so that it's only
set once for the whole app. See
https://github.com/RubyMoney/money#rounding for details.
We set this value to `true` unconditionally in an initializer, and then check the value in various places via Spree::Config. It's never false, and it's not configurable, so we can just drop it and remove the related conditionals. 🔥
This will log any N+1 it finds, pointing to the line causing it and
a way to solve it, aka. which `#includes` to add. Like so
```
web_1 | GET /admin/order_cycles.json?ams_prefix=index&q%5Borders_close_at_gt%5D=Sun+Jan+31+2021+00:00:00+GMT%2B0100+(Central+European+Standard+Time)
web_1 | USE eager loading detected
web_1 | OrderCycle => [:coordinator]
web_1 | Add to your query: .includes([:coordinator])
web_1 | Call stack
web_1 | /usr/src/app/app/serializers/api/admin/index_order_cycle_serializer.rb:41:in `coordinator'
web_1 | /usr/src/app/app/controllers/spree/admin/base_controller.rb:98:in `render_as_json'
web_1 | /usr/src/app/app/controllers/admin/order_cycles_controller.rb:17:in `block (2 levels) in index'
web_1 | /usr/src/app/app/controllers/admin/order_cycles_controller.rb:14:in `index'
web_1 | bin/rails:4:in `require'
web_1 | bin/rails:4:in `<main>'
```
We gave a try at Bullet long ago and abandoned it because it's not
a silver bullet (pun intended) due to false positives. However, it's
pretty clear that this won't happen often; we have endless N+1 still to fix.
I recently experienced how, relying on Bullet made it just extra 30s to fix
additional N+1s other than the one I was fixing. Usually, finding the
culprit line takes me more of 30min.