Commit Graph

1881 Commits

Author SHA1 Message Date
Luis Ramos
951787d456 Merge pull request #3987 from mkllnk/3978-optimise-products-cache
3978 Optimise products cache
2019-07-03 19:59:07 +01:00
Luis Ramos
b35743b6e4 Merge pull request #3968 from mkllnk/3924-rescue-failing-shipment
Rescue checkout on shipping id conflict
2019-07-03 19:56:24 +01:00
Maikel Linke
73372a58ef Remove unused and dangerous Exchange#eql? override
The `eql?` override has been added in very early commits but was
actually not used except in a test. It also caused performance problems
since each call to `eql?` would issue two database queries. A developer
would unknowingly trigger these when using `exchanges.uniq`. A mistake
that could have happened again in the future.

I moved the implementation to the test that was actually using it and
made a second test a bit more explicit.
2019-07-02 18:42:02 +10:00
Maikel Linke
287d6a926a Document Exchange 2019-07-02 18:42:02 +10:00
Maikel Linke
04b07a1ff5 Further optimise querying affected exchanges
The implementation queried the database for each incoming variant that
was changed. This rewrite combines ActiveRecord relations so that it
creates only one query. This saves another 5-10% of execution time when
updating enterprise fees on production instances.
2019-07-02 18:42:01 +10:00
Maikel Linke
980b4a86ab Move shipment rescue to its own method 2019-06-26 10:48:51 +10:00
Matt-Yorkley
5100ad6b51 Improve #line_items_for logic and add more tests 2019-06-25 15:33:42 +01:00
Matt-Yorkley
0a155da273 Avoid undefined method 'order' errors when removing lineitems from basket 2019-06-25 11:13:56 +01:00
Maikel Linke
1e1e88fe51 Rescue checkout on shipping id conflict
Helps to investigate https://github.com/openfoodfoundation/openfoodnetwork/issues/3924

A better solution would be to move the update of shipments out of the
after_save callback and deal with it in controllers. Unfortunately,
that's a big and tricky task.

Since this exception is causing a lot of pain for some Australian
farmers, I introduced more logging here to understand the problem
better. The issue was observed in OFN v1 and may disappear with v2. But
we don't know that and should monitor it.
2019-06-21 16:05:54 +10:00
Maikel
5b0c8bbaef Merge pull request #3836 from Matt-Yorkley/fast_and_furious2
Improve /shops, /producers, and /groups performance
2019-06-21 15:02:19 +10:00
Maikel
5aea361d87 Merge pull request #3709 from luisramos0/2-0-prepare-4-rails-4
Start upgrade to Rails 4
2019-06-21 14:58:24 +10:00
Maikel
12f0ed9955 Merge pull request #3940 from luisramos0/zones
Remove matching of shipping method zone to user address on checkout
2019-06-21 14:43:40 +10:00
Maikel
4c4881430c Merge pull request #3908 from kristinalim/fix/3843-unit_type_in_product_import
3877,3843 Improve handling of units and unit type in product import
2019-06-21 14:43:01 +10:00
luisramos0
2b3865855d Simplify shipping_method.include? method 2019-06-18 11:42:34 +01:00
luisramos0
1da18d3386 Fix enterprise model scopes by making ready_for_checkout return enterprises and not ids again and by making not_ready_for_checkout select the id field from the ready_for_checkout scope 2019-06-18 10:52:56 +01:00
luisramos0
b025df1798 Fix a few more rubocop issues 2019-06-18 10:52:56 +01:00
luisramos0
178924af5d Fix long lines in order_cycle model 2019-06-18 10:52:45 +01:00
luisramos0
c15c5435ff Fix long lines in exchange model 2019-06-18 10:45:01 +01:00
luisramos0
0cdb49818d Remove distinct from enterprise.ready_for_checkout scope
Adapt use of enterprise scope not_ready_for_checkout to rails 4 by adding enterprises table alias to selected field id
2019-06-18 10:40:49 +01:00
luisramos0
9548f5c5f7 Adapt order_cycle scopes to rail 4 2019-06-18 10:40:49 +01:00
luisramos0
ba91abd20e Adapt exchanges.with_any_variant scope to rails 4 2019-06-18 10:40:49 +01:00
luisramos0
0d07bf2a3b Adapt enterprise.distributing_products scope to rails 4 2019-06-18 10:40:49 +01:00
luisramos0
07a6e62d09 Adapt query in product destroy process to rails 4 2019-06-18 10:40:49 +01:00
luisramos0
e9667ab289 Adapt product.managed_by scope to rails 4 2019-06-18 10:40:49 +01:00
luisramos0
ccc7a43a06 Bypass validation of shipping methods zone on checkout 2019-06-15 21:11:51 +01:00
luisramos0
e4fcaa5992 Fix typo in package.rb 2019-06-15 20:45:57 +01:00
Luis Ramos
91401446a5 Merge pull request #3915 from mkllnk/3844-permalink-conflicts
Consider deleted products when creating permalinks
2019-06-14 13:20:35 +01:00
Luis Ramos
e15ccdbd74 Merge pull request #3840 from mkllnk/3727-default-credit-cards
Make only reusable credit cards the default card
2019-06-13 14:13:32 +01:00
Luis Ramos
b02bf3b83c Merge pull request #3872 from luisramos0/rails4_where_scope
[Rails 4] Change all model scopes without a callable object to use a proc
2019-06-12 12:53:10 +01:00
Matt-Yorkley
698d3672a6 List only current taxons for active enterprises 2019-06-12 09:47:01 +01:00
Maikel Linke
b3b8cb778f Make only reusable credit cards the default card
https://github.com/openfoodfoundation/openfoodnetwork/issues/3727

When a user didn't have a default credit card and then checked out with
a credit card it became the default even when the user didn't intend to
store it. That lead to subscriptions trying to charge a one-time card
which fails.
2019-06-11 18:01:41 +01:00
Maikel Linke
a10bb5acbd Consider deleted products when creating permalinks
https://github.com/openfoodfoundation/openfoodnetwork/issues/3844

Spree's implementation and our implementation to create a unique
permalink failed to notice conflicts with soft-deleted products. This
patch looks at deleted products as well.
2019-06-11 18:20:41 +10:00
Kristina Lim
cf11ef8ba2 Ignore parameter list length for ProductImport::EntryValidator
This can be done in a separate PR. More tests might be needed when
extracting to a class.
2019-06-10 04:20:04 +08:00
Kristina Lim
8c69ee67b8 Refactor code for validating variant in reference to existing product 2019-06-10 04:20:04 +08:00
Kristina Lim
70614de955 Require product import rows to match unit of preceding rows 2019-06-10 04:20:03 +08:00
Kristina Lim
5d282f7e9f Update code layout in ProductImporter method 2019-06-10 04:20:03 +08:00
Kristina Lim
73b388da87 Simplify product import all_entries method 2019-06-10 04:20:03 +08:00
Kristina Lim
38519b2bae Simplify building of product import entries for range 2019-06-10 04:19:50 +08:00
Kristina Lim
37101a6b64 Extract build_entries_from_rows for product import 2019-06-09 23:38:36 +08:00
Luis Ramos
568e3003ba Merge pull request #3882 from kristinalim/feature/3408-enable_enterprise_fee_summary_for_non_superadmin
3408 Remove feature flag for Enterprise Fee Summary
2019-06-06 16:28:36 +01:00
Kristina Lim
2c52c1a6fc Remove unused argument from Spree::Ability method 2019-06-02 01:30:46 +08:00
luisramos0
c5a95dee79 Remove matching of product shipping category with shipping method's category to allow users to checkout products with categories not supported by the shipping methods.
See issue #3884 for more details.
2019-05-29 14:43:19 +01:00
Kristina Lim
ecea0600b6 Remove feature flag for Enterprise Fee Summary 2019-05-29 02:50:41 +08:00
luisramos0
f2bfb9bedb Fix rubocop issues in adjustment_decorator, line_item_decorator and product_decorator 2019-05-28 16:50:59 +01:00
luisramos0
ced6264846 Fix rubocop issues in enterprise model 2019-05-28 16:30:50 +01:00
luisramos0
f58d9ec790 Fix rubocop issues in exchange model 2019-05-28 16:10:40 +01:00
luisramos0
06c0b1375b Fix rubocop issues in enterprise_relationship model 2019-05-28 16:07:10 +01:00
luisramos0
ffbd79d3dd Change all model scopes without a callable object to use a proc 2019-05-28 15:55:13 +01:00
luisramos0
86b0d71c7e Result of rubocop auto-correct and rebuilding rubocop_manual_todo 2019-05-28 12:57:29 +01:00
Maikel
50ca1f7173 Merge pull request #3824 from mkllnk/aus-content-updates
Aus content updates
2019-05-10 10:40:09 +10:00