Matt-Yorkley
c038b485b1
Rename service and methods to remove use of "shop" term
2019-10-01 14:43:47 +01:00
Matt-Yorkley
6153789055
Eager-load serialized objects in variant query
2019-09-29 20:44:48 +01:00
Matt-Yorkley
032741c54f
Refactor ProductsRenderer variants queries
...
This removes another N+1 and allows pagination applied to the inital query to also affect the returned variants
2019-09-29 17:41:58 +01:00
Matt-Yorkley
e9acf6e0de
Refactor #load_products and memoize
2019-09-29 14:30:04 +01:00
Matt-Yorkley
d5e90c3c6c
Extract #load_products logic into a new service
2019-09-29 00:10:47 +01:00
Matt-Yorkley
535e389fb4
Query variant stock including overrides
...
This allows the results to be properly filtered and paginated whilst showing the correct stock, and removes a big N+1
2019-09-27 17:25:52 +01:00
Matt-Yorkley
cecebb82f4
Move distributed products relation out from OrderCycleDistributedProducts
2019-09-27 17:25:50 +01:00
Matt-Yorkley
fe0b3172c7
Move scoper to method
2019-09-27 01:52:45 +01:00
Matt-Yorkley
5b27ed6b9f
Remove unnecessary #deleted? check
...
It should be included in te default product scope
2019-09-27 01:52:29 +01:00
JASON KNOEPFLER
0f55049eda
OrderCycleManagementReport sets default date range before querying for orders
2019-09-13 17:15:57 -07: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
luisramos0
a98a0bd264
Adapt db truncate task to ofn v2 by removing db tables from v1
2019-09-08 14:05:49 +01:00
Pau Perez
410e23085e
Remove integrity check for deleted variants in OCs
...
We have no way to see the output of this weird RSpec integrity check
thus, it's pointless. It only adds unnecessary load the server.
However, the issue it checks seems to still be happening although
not very often. UK's server has 70 occurrences the last one being from
early 2019 while FR's server returns 10.
2019-09-06 10:30:26 +02:00
Kristina Lim
590ce67f38
Fetch and scope variants for shop in ProductsRenderer only once
2019-09-05 22:42:50 +08:00
Luis Ramos
cd263b761c
Merge pull request #4055 from luisramos0/remove_spree_api
...
Remove dependency to spree_api - step 1 - controllers and routes
2019-08-28 15:34:08 +01:00
Maikel
de2d4a5870
Merge pull request #4125 from Matt-Yorkley/variant_overrides
...
Variant overrides with on_demand
2019-08-07 10:25:32 +10:00
Maikel
68393f1444
Merge pull request #4037 from luisramos0/subs_stock
...
Subscriptions - When editing subscriptions, check stock levels when changing orders in current OC
2019-08-06 15:16:00 +10:00
Matt-Yorkley
4c7d3a491a
Don't decrement variant stock if override is on_demand
2019-08-05 17:01:56 +01:00
luisramos0
25451eed6b
Bring api spec helpers from spree_api into ofn/api_helper
2019-07-31 09:36:48 +01:00
luisramos0
2ae75ce13e
Add ControllerSetup from spree_api as it is used in spree/api/base_controller
2019-07-31 09:35:46 +01:00
Luis Ramos
340b92e580
Merge pull request #3700 from luisramos0/2-0-without-auth-devise
...
Remove dependency to spree_auth_devise
2019-07-26 10:57:38 +01:00
Luis Ramos
a6a695660f
Merge pull request #4002 from luisramos0/more_rails4
...
Adapting queries in permissions to Rails 4
2019-07-19 15:17:01 +01:00
Maikel
869431c68d
Merge pull request #3926 from mkllnk/report-missing-payments
...
Add rake task to report lost payments
2019-07-18 15:01:14 +10:00
luisramos0
d0c246c345
Fix some rubocop issues
2019-07-14 12:28:32 +01:00
luisramos0
e897eb0439
Remove Spree::BaseController.class_eval, these methods are already in the application helper through spree::application_helpers
...
We can ignore the difference in spree_logout_path as spree.logout_path is the user_sessions#destroy route
2019-07-08 13:59:26 +01:00
luisramos0
10e123a9c4
Move spree/authentication_helpers injection from spree initializers directly to the application_controller
...
Also, switch from using send to public_send making rubocop happier
2019-07-08 13:11:57 +01:00
luisramos0
17448699f9
Bring devise initializer from spree_auth_devise and fix spree initializer details
2019-07-05 22:45:59 +01:00
Pau Perez
f42bf72b32
Fix rubocop violations
...
It's not affordable to fix the failed Metrics cops in the scope of this
bug fix, but now, with a separate class, it'll be easier.
2019-07-05 18:19:58 +02:00
Pau Perez
9b03833df0
Extract orders & fulfillments default report clasts
2019-07-05 18:19:58 +02:00
Pau Perez
fada30435f
DRY some procs from report
2019-07-05 18:19:58 +02:00
luisramos0
a5b5e5de32
Remove trailing backslash
2019-07-05 10:58:53 +01:00
Pau Perez
db7b7bbde2
Fix finding supplier for a deleted product
2019-07-04 18:52:56 +02:00
luisramos0
ef61310bad
Fix long lines in order_cycle_permissions and permissions
2019-07-04 17:17:58 +01:00
Pau Perez
ee301c5e2f
Address Code Climate (rubocop) issues
2019-07-04 17:01:06 +02:00
Pau Perez
4d060815d0
Extract unscoping logic into method
...
DRYies out the code a bit.
2019-07-04 17:01:06 +02:00
Pau Perez
f91bd03c25
Add clarifying comment to report
2019-07-04 17:01:06 +02:00
Pau Perez
7de4ec2a90
Fix orders and fulfillments report
...
It bypasses the default_scope to retrieve deleted variants in the orders
and fulfillment report.
2019-07-04 17:01:06 +02:00
Pau Perez
812d8cac4a
Make complex method a bit more readable
2019-07-04 17:01:06 +02:00
luisramos0
dee1c3d139
Fix typo in order_cycle_permissions.rb
2019-07-03 22:58:33 +01:00
luisramos0
bb9c54a445
Use enterprises.id instead of :id to remove ambiguous column errors
2019-07-03 22:03:40 +01:00
luisramos0
e5f396f975
Fix Permissions.related_enterprises_granted by adding explicit reference to table
2019-07-03 20:18:01 +01:00
luisramos0
a57a93d414
Adapt permissions.rb and order_cycle_permissions to rails 4
2019-07-03 20:18:01 +01:00
luisramos0
a82b1d8129
Adapt exchange.involving scope to rails 4
2019-07-03 20:18:00 +01:00
luisramos0
5184fa540c
Adapt enterprise_relationship permitting and permitted_by scopes to rails 4
2019-07-03 20:18:00 +01:00
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
Pau Pérez Fabregat
b3b66d5825
Merge pull request #3970 from mkllnk/444-feature-toggle-use-env
...
Toggle features via env instead of initializer
2019-07-03 16:27:01 +02: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
0da7c93bc6
Collect affected exchanges more efficiently
...
When an incoming exchange of an order cycle changes, the ProductsCache
queries all affected outgoing exchanges to update them. It was creating
a big collection of exchanges with duplicates and then calling `uniq`.
That call was hitting a custom implementation of `eql?` which is very
inefficient. And since `Exchange.eql?` is ignoring the order cycle id,
it was probably filtering too many exchanges from the collection.
Fixed bug: If two order cycles sell exactly the same variants to the
same shop, the two outgoing exchanges are seen as equal. When the
variants change, ProductsCache would only update one of those two
exchanges, leaving one order cycle out of sync. This case is very rare.
It only happens if there is a shop with two active order cycles selling
exactly the same.
The new uniqueness test looks only at the attributes that are later used
to refresh the cache. I measured a page speed improvement from 90
seconds to 3 seconds (30 times faster).
2019-07-02 18:29:50 +10:00
Maikel Linke
bfe41d4cbc
Extract method to simplify
2019-07-02 18:29:50 +10:00
Maikel Linke
3e6e0b73ee
Style products cache
...
The `private` modifier doesn't affect class methods. Class methods have
to be declared as private separately. Also using more guard clauses,
brackets and linebreaks.
2019-07-02 18:29:49 +10:00