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
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
Maikel
592a468448
Merge pull request #3960 from mkllnk/test-spec-stability
...
Remove retries from previously flaky specs
2019-07-02 13:50:16 +10:00
Transifex-Openfoodnetwork
f09b1fc1a8
Updating translations for config/locales/en_ZA.yml
2019-07-02 01:13:09 +10:00
Ecksi
bdbd869b06
Modify English tool tip text in yml file
...
Modify GB English tool tip text in yml file
Modify US English tool tip text in yml file
2019-06-28 10:59:50 +10:00
Maikel
8b42bd205a
Merge pull request #3977 from openfoodfoundation/transifex
...
Transifex
2019-06-27 09:29:09 +10:00
Transifex-Openfoodnetwork
6108a74fec
Updating translations for config/locales/fr.yml
2019-06-27 00:47:45 +10:00
Luis Ramos
5ecab7a0c2
Merge pull request #3971 from Matt-Yorkley/basket_errors
...
Avoid `undefined method 'order'` errors when removing lineitems from basket
2019-06-26 15:33:26 +01:00
Luis Ramos
d8785bdaba
Merge pull request #3932 from luisramos0/shpfront_message
...
Improve message in private shopfront when user is not logged in or not a customer
2019-06-26 15:31:06 +01:00
Luis Ramos
00841cb537
Merge pull request #3923 from luisramos0/prod_image_error
...
User friendly error when creating a product with an image in an unsupported format
2019-06-26 15:30:18 +01:00
luisramos0
61c8859da8
Fix problem in array concatenation in orders helper and cover it with specs
2019-06-26 14:17:41 +01:00
luisramos0
e33ce235c4
Hide invoice links in order edit page if invoices are disabled
2019-06-26 14:17:41 +01:00
luisramos0
ec2f99a467
Refactor OrderHelper.order_links: extract some logic from order_links to make it more simple and pass rubocop tests
2019-06-26 14:17:41 +01:00
luisramos0
67b5f08b07
Refactor OrderHelper.order_links: extract links object to separate methods
2019-06-26 14:17:41 +01:00
luisramos0
95170bacd5
Show print invoices button in orders list page only if invoices are enabled in the backoffice
2019-06-26 14:17:25 +01:00
Maikel
eebc49f27c
Merge pull request #3887 from pacodelaluna/add-docker-configuration-for-dev-setup
...
Add docker configuration for quick local setup
2019-06-26 21:23:34 +10:00
luisramos0
8b0296eae6
Use a single query to get filter_schedules_by_enterprise_id
2019-06-26 11:38:03 +01:00
François Turbelin
b6120a9105
Fix docker-compose application yml file
2019-06-26 11:03:20 +02:00
Maikel Linke
5d3dbca9c3
Toggle features via env instead of initializer
...
A FeatureToggle could be switched via a class_eval in an initializer.
The initializer was installed via ofn-install. We want to get rid of
custom, untracked initializers. Here I'm changing the FeatureToggle
class to use environment variables instead.
This change needs to be followed up with a change in ofn-install to use
the new environment variable. It affects only Australian production.
2019-06-26 11:43:22 +10:00
Maikel Linke
5bbd63bcd8
Add spec for rescuing order saving shipment
2019-06-26 11:32:01 +10:00
Maikel Linke
980b4a86ab
Move shipment rescue to its own method
2019-06-26 10:48:51 +10:00
Luis Ramos
118ed79070
Merge pull request #3904 from luisramos0/subs_stock
...
Fix ofn-on-hand directive and fix usage of variant.on_hand in subscriptions order factory
2019-06-25 20:25:06 +01:00
François Turbelin
623d1e0285
Add missing file
2019-06-25 20:05:55 +02:00
François Turbelin
2dcced8810
Put back application example file as it was
2019-06-25 17:59:37 +02:00
Matt-Yorkley
5100ad6b51
Improve #line_items_for logic and add more tests
2019-06-25 15:33:42 +01:00
luisramos0
7e2bead54d
Make finalizedquantity optional in the ofn-on-hand directive and extract avaiable quantity to a separate method for clarity
2019-06-25 14:50:03 +01:00
luisramos0
2b6e6c62dd
Simplify order_factory_spec by extracting copy pasted code to method
2019-06-25 14:50:03 +01:00
luisramos0
05a15d9441
Extract method to remove some copy pasted code in order_factory_spec
2019-06-25 14:50:03 +01:00
luisramos0
567196fe0e
Fix line item verification of stock on the browser side by adding logic to handle completed orders with some reserved stock
...
The shopping/orders_spec is now validating this edge case by using all stock available in one of the line items
2019-06-25 14:50:03 +01:00
luisramos0
7bd32d4967
Fix usage of variant.on_hand in subscriptions order factory, we now take on_demand into account
...
This fixes a problem introduced in 12eab1bfa9 (diff-c3c4192f302cc77e9a8547012fe86ddb) , since then variant.on_hand does not return infinity if variant is on_demand
2019-06-25 14:47:47 +01:00
Luis Ramos
9b6f1a5e11
Merge pull request #3958 from Matt-Yorkley/pi_encoding
...
Improve handling of invalid characters in uploaded CSV files
2019-06-25 14:44:32 +01:00
François Turbelin
84389d1392
Fix setup script with new application YAML file
2019-06-25 14:38:38 +02:00
François Turbelin
da3b467d47
Use https to fetch Postgres repo
2019-06-25 14:09:59 +02:00
François Turbelin
ceffae2efc
Delete extra example file
2019-06-25 14:08:18 +02:00
Matt-Yorkley
f19a6f0dec
Add tests for class_eval on Spree::Calculator private method #line_items_for
2019-06-25 12:19:16 +01:00
Matt-Yorkley
0a155da273
Avoid undefined method 'order' errors when removing lineitems from basket
2019-06-25 11:13:56 +01:00
François Turbelin
c0d02c8d42
Fix errors while relauching container
2019-06-25 12:05:26 +02:00
François Turbelin
e68d72c0dd
Update DOCKER.md
2019-06-25 11:47:54 +02:00
Matt-Yorkley
034e8b180a
Use let for CSV data
2019-06-25 10:24:53 +01:00
Matt-Yorkley
ead0e1c08d
Store attributes list in constant
2019-06-25 10:20:59 +01:00
Matt-Yorkley
8dfb628d88
Add test for ignoring non-updatable description field in validations when updating
2019-06-25 10:19:05 +01:00
Matt-Yorkley
85b3d7dac5
Move attribute check to method
2019-06-25 10:19:05 +01:00
Matt-Yorkley
84040fd2a6
Allow import to proceed when updating a product and description is set
2019-06-25 10:19:05 +01:00
François Turbelin
5dcf456c90
Remove old Rake task for sample data
2019-06-25 11:18:48 +02:00
François Turbelin
79ec3d5a3f
Remove extra copy on Docker file
2019-06-25 11:18:48 +02:00
François Turbelin
e893197c49
Use example files instead of extra Docker ones
2019-06-25 11:18:48 +02:00
Matt-Yorkley
60e67ae1a4
Run all setup steps on startup
...
It's a bit dirty, but it works :)
2019-06-25 11:18:48 +02:00