Compare commits

...

3349 Commits

Author SHA1 Message Date
Luis Ramos
60e241b2c8 Merge pull request #5984 from openfoodfoundation/transifex
Transifex
2020-09-04 17:19:37 +01:00
Luis Ramos
d8165aeec1 Merge pull request #5987 from luisramos0/spree_core_without_ctrl_hlpers
Depend on version of spree without controller helpers
2020-09-04 17:18:17 +01:00
Pau Pérez Fabregat
c7bcd61755 Merge pull request #5990 from coopdevs/dont-require-overrides
Do not require view overrides
2020-09-04 17:20:04 +02:00
Luis Ramos
9c0c324835 Add some requires now required as spree does not contain controller helpers 2020-09-04 14:30:17 +01:00
Luis Ramos
874cb78809 Depend on version of spree without controller helpers, which are already on OFN side. This way we avoid conflicts 2020-09-04 12:48:22 +01:00
Pau Perez
4499bc7313 Do not require view overrides
View overrides were removed long ago, so no need to require an empty
list.

The next step will be class decorators.
2020-09-04 13:27:38 +02:00
Luis Ramos
4fe24da3ec Merge pull request #5748 from mbudm/issue/5072
Add redirect to shop on order cycle change
2020-09-04 10:03:07 +01:00
Luis Ramos
d80a44ade0 Merge pull request #5867 from luisramos0/stock
[Bye bye Spree] Bring models stock_location and stock_movement from spree_core
2020-09-03 18:35:55 +01:00
Transifex-Openfoodnetwork
42d90465b1 Updating translations for config/locales/fr_CA.yml 2020-09-04 03:21:50 +10:00
Transifex-Openfoodnetwork
457dfdd18a Updating translations for config/locales/en_CA.yml 2020-09-04 03:13:22 +10:00
Transifex-Openfoodnetwork
8f896a806a Updating translations for config/locales/es.yml 2020-09-03 23:36:07 +10:00
Transifex-Openfoodnetwork
71b1c5a3b3 Updating translations for config/locales/ca.yml 2020-09-03 23:35:02 +10:00
Luis Ramos
8256a20aea Update all locales with the latest Transifex translations 2020-09-03 13:27:16 +01:00
Luis Ramos
07e17d7931 Merge pull request #5979 from mkllnk/fix-locale-for-transifex
Add required plural form to locale
2020-09-03 13:21:13 +01:00
Luis Ramos
e177ba5e29 Merge pull request #5977 from openfoodfoundation/transifex
Transifex
2020-09-03 13:19:33 +01:00
Transifex-Openfoodnetwork
d3f48bf684 Updating translations for config/locales/nb.yml 2020-09-03 22:16:04 +10:00
Transifex-Openfoodnetwork
63a6ceede3 Updating translations for config/locales/en_NZ.yml 2020-09-03 19:57:50 +10:00
Luis Ramos
185c246a83 Merge pull request #5965 from coopdevs/ignore-pyenv-file
Gitignore pyenv's Python version file
2020-09-02 23:50:42 +01:00
Luis Ramos
83361255aa Merge pull request #5969 from luisramos0/fungi
Replace beef with fungi in sample data 🐮
2020-09-02 23:47:43 +01:00
Luis Ramos
b4759ff869 Merge pull request #5869 from luisramos0/images
[Bye bye Spree] Bring models image and asset from spree_core
2020-09-02 19:44:40 +01:00
Transifex-Openfoodnetwork
5bc0eca493 Updating translations for config/locales/en_FR.yml 2020-09-02 23:08:34 +10:00
Transifex-Openfoodnetwork
f6eb05a6f1 Updating translations for config/locales/fr.yml 2020-09-02 23:07:46 +10:00
Maikel Linke
09f0035bbd Add required plural form to locale
Transifex complained:

> Key 'spree.activerecord.models.spree/payment' has the wrong number of plurals

While our application may not need that translation, Transifex won't
accept the source file and our updates were broken.
2020-09-02 15:06:15 +10:00
Luis Ramos
2cb6124b7a Use existing product factory, the custom product is not needed here 2020-09-01 17:13:07 +01:00
Luis Ramos
653b71dbd4 Remove duplicated spec 2020-09-01 17:10:51 +01:00
Luis Ramos
b36d0bc4f3 Fix easy rubocop isssues 2020-09-01 17:09:22 +01:00
Luis Ramos
b2cf414fb8 Use exiting translation 2020-09-01 17:09:22 +01:00
Luis Ramos
5958c2f68c Rubocop autocorrect 2020-09-01 17:09:22 +01:00
Luis Ramos
13f0a46bc2 Merge decorator with original file from spree 2020-09-01 17:09:22 +01:00
Luis Ramos
b9f7a98c46 Bring image, asset and images_helper from spree_core 2020-09-01 17:09:22 +01:00
Transifex-Openfoodnetwork
a65bd8edac Updating translations for config/locales/en_US.yml 2020-09-02 01:28:57 +10:00
Luis Ramos
ea053552b9 Merge pull request #5938 from cillian/bulk-coop-report-filter-fixes
Fix the bulk coop report date and distributor filters.
2020-09-01 16:21:31 +01:00
Luis Ramos
52fb3c92f0 Merge pull request #5954 from romale/patch-10
Missing translation key en.credit_owed and en.new_adjustment
2020-09-01 16:21:22 +01:00
Luis Ramos
5e49e03477 Merge pull request #5964 from coopdevs/fix-flaky-product-update-spec
Check taxon's attribute instead of object identity
2020-09-01 12:06:02 +01:00
Luis Ramos
b35d579f64 Bring stock_movement factory from spree_core 2020-09-01 10:20:51 +01:00
Luis Ramos
3198bbd3cb Bring required factory from spree_core 2020-09-01 10:17:45 +01:00
Luis Ramos
bf81b5a305 Remove unnecessary setup code in spec, propagate_all_variants is always true in OFN 2020-09-01 09:42:24 +01:00
Luis Ramos
d87d5d3537 Fix stock_movement and stock_location specs brought from spree_core
propagate_all_variants is always true in OFN
2020-09-01 09:42:24 +01:00
Luis Ramos
e0ea25b7a3 track_inventory_levels is always true in OFN 2020-09-01 09:42:24 +01:00
Luis Ramos
8f19ad0646 Delete dead code 2020-09-01 09:42:24 +01:00
Luis Ramos
e89eb8f76c Fix simepl rubocop issues 2020-09-01 09:42:24 +01:00
Luis Ramos
0b053c18af Merge decoorator with original file from spree 2020-09-01 09:42:24 +01:00
Luis Ramos
d13bd86e4c Bring stocck movement and stock location from spree 2020-09-01 09:42:24 +01:00
Pau Pérez Fabregat
c56962b949 Merge pull request #5966 from openfoodfoundation/dependabot/bundler/bugsnag-6.17.0
Bump bugsnag from 6.16.0 to 6.17.0
2020-09-01 09:55:11 +02:00
Luis Ramos
3df5a0644f Make sample data vegetarian 2020-08-31 10:57:07 +01:00
Pau Perez
6bb37a3942 Check taxon's attribute instead of object identity
We don't care about the Ruby object instance but the actual DB record it
represents.
2020-08-31 11:05:12 +02:00
Maikel
a029a86f0d Merge pull request #5893 from arku/chore/resend-button-removal
Remove resend button on the orders edit page
2020-08-31 11:18:05 +10:00
Luis Ramos
c9758b8b0b Merge pull request #5957 from coopdevs/improve-stripe-connection-spec
Improve StripeAccountsController#connect spec
2020-08-30 22:02:22 +01:00
Arun Kumar Mohan
bf07da6267 Fix the order resend message translation 2020-08-29 20:47:28 -05:00
Arun Kumar Mohan
bb9ab57699 Remove resend button on the orders edit page 2020-08-29 20:47:28 -05:00
dependabot-preview[bot]
7e274868fa Bump bugsnag from 6.16.0 to 6.17.0
Bumps [bugsnag](https://github.com/bugsnag/bugsnag-ruby) from 6.16.0 to 6.17.0.
- [Release notes](https://github.com/bugsnag/bugsnag-ruby/releases)
- [Changelog](https://github.com/bugsnag/bugsnag-ruby/blob/master/CHANGELOG.md)
- [Commits](https://github.com/bugsnag/bugsnag-ruby/compare/v6.16.0...v6.17.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-08-28 15:16:12 +00:00
Pau Pérez Fabregat
7cb49ac9a8 Merge pull request #5866 from luisramos0/ctry_zone
[Bye bye Spree] Bring models country, zone and zone_member from spree_core
2020-08-28 13:23:59 +02:00
Cillian O'Ruanaidh
9efee1b0be In bulk coop report service spec just check array has the same elements but don't check the order.
The #table_items methos seems to return line items in different order sometimes making this test a bit flaky. The test passed on Semaphore previously and is passing in development. I don't think the order matters so using :match_array instead of :eq.
2020-08-28 12:20:47 +01:00
Pau Perez
defb6e4fa4 Update all locales with the latest Transifex translations 2020-08-28 13:19:39 +02:00
Pau Perez
96cd40e446 Gitignore pyenv's Python version file
I use pyenv to manage the Python version to run the Transifex client.
That's the only bit of Python I use in this repo.

Without this I have to select the version each time and remove the file
after preparing the release. Annoying.
2020-08-28 12:56:17 +02:00
Pau Perez
37bfdf69a9 Bring required state factory
It was removed from master in
2abbfad18c
but it's still required by the zone_specs and the address factory.
2020-08-28 12:44:30 +02:00
Cillian O'Ruanaidh
a441979649 Pass in :report_type parameter correctly to bulk coop report so different report types are generated
Also add tests for each of the different report types. I didn't make these JavaScript tests because not sure that is necessary and they would be slower.
2020-08-28 11:09:34 +01:00
Pau Pérez Fabregat
62339de603 Merge pull request #5963 from coopdevs/fix-payment-translation
Fix payment translation
2020-08-28 11:20:24 +02:00
Pau Perez
9b2cb1c3ef Fix payment translation
One in the i18n key refers to singular/plural not the copy itself. Now
we see `Order #R587218174 -> Payment -> Cash on collection` instead of
`Order #R587218174 -> One -> Cash on collection`.
2020-08-28 10:06:19 +02:00
Pau Perez
58c0b1e0fd Update all locales with the latest Transifex translations 2020-08-28 09:51:53 +02:00
Pau Pérez Fabregat
4984cc9758 Merge branch 'master' into ctry_zone 2020-08-28 09:21:57 +02:00
Maikel
2a71af7c6b Merge pull request #5944 from romale/patch-9
Missing translation key en.spree.activerecord.models.spree/payment.one
2020-08-28 09:48:46 +10:00
Maikel
819a445547 Merge pull request #5712 from mbudm/issue/5208
Add payment details to invoice
2020-08-28 09:46:49 +10:00
Maikel
d57f20a542 Merge pull request #4925 from luisramos0/finders
Adapt remaining AR finders to rails 4
2020-08-28 09:46:20 +10:00
Matt-Yorkley
28651bbecf Merge pull request #5941 from luisramos0/no_spree_specs
[Bye bye Spree] Make OFN independent of spec helpers under core/lib/testing_support
2020-08-27 17:05:45 +02:00
Pau Pérez Fabregat
06b41a8236 Merge pull request #5908 from Matt-Yorkley/subs-logging
Improve subs logging
2020-08-27 16:23:15 +02:00
Pau Pérez Fabregat
2fa8cd54fd Merge pull request #5769 from Matt-Yorkley/customer-names
Customer names in reports
2020-08-27 15:39:47 +02:00
Pau Pérez Fabregat
043e175fa1 Merge pull request #5952 from openfoodfoundation/transifex
Transifex
2020-08-27 13:51:31 +02:00
Pau Pérez Fabregat
a1b4c7fdf2 Merge pull request #5923 from openfoodfoundation/dependabot/bundler/jwt-2.2.2
Bump jwt from 2.2.1 to 2.2.2
2020-08-27 13:50:44 +02:00
Pau Perez
6e3cfe9c54 Improve StripeAccountsController#connect spec
We are manually testing this while this is already covering the
connection of a Stripe account to an OFN instance. This makes it a bit
more comprehensive.
2020-08-27 13:43:54 +02:00
romale
8583ac5573 Update en.yml 2020-08-27 14:38:10 +03:00
Pau Pérez Fabregat
300e12371a Merge pull request #5918 from luisramos0/stripe_disabled
Do not add stripe JS code to layout if stripe is disabled at instance level
2020-08-27 13:27:40 +02:00
romale
8f59b048f3 Update en.yml 2020-08-27 13:53:13 +03:00
Transifex-Openfoodnetwork
8290acfd91 Updating translations for config/locales/es.yml 2020-08-27 18:15:46 +10:00
Transifex-Openfoodnetwork
a8bfedd847 Updating translations for config/locales/ca.yml 2020-08-27 18:15:32 +10:00
Steve Roberts
ef0038a661 Change trigger to update filters after ProductsCtrl is loaded. 2020-08-27 18:02:01 +10:00
Pau Pérez Fabregat
6f33ae586e Merge pull request #5943 from luisramos0/spree_factories
[Bye bye Spree] Make OFN independent of all spree spec factories
2020-08-27 08:54:20 +02:00
Steve Roberts
4e635e114c Merge branch 'master' of https://github.com/openfoodfoundation/openfoodnetwork into issue/5072 2020-08-27 14:48:51 +10:00
Maikel
da1569abda Merge pull request #5914 from romale/patch-8
Missing translation key 'listing_reports'
2020-08-27 11:02:40 +10:00
Maikel
7ce9a3f988 Merge pull request #5894 from julesemmac/places-error
adding required argument to resolve Places error
2020-08-27 11:01:19 +10:00
Maikel
7a0b036edd Merge pull request #5899 from andrewpbrett/dashboard-link
Update dashboard link to point to enterprise shop
2020-08-27 10:53:43 +10:00
Maikel
d81ed36eef Merge pull request #5892 from arku/fix/price-i18n
Fix price translation in Bulk Order Management
2020-08-27 10:31:38 +10:00
Luis Ramos
5b3e350204 Rename zone.country_list to zone.countries 2020-08-26 23:12:48 +01:00
Luis Ramos
53de04121c Fix rubocop issue 2020-08-26 23:09:41 +01:00
Luis Ramos
23c86a1937 Replace select2_search usages with faster targetted_select2_search and remove select2_search and dependent code 2020-08-26 23:06:25 +01:00
Luis Ramos
fb88cfedcf Remove unused helpers 2020-08-26 22:49:52 +01:00
Luis Ramos
94d1d5f3ae Run rubocop -a on spec/factories 2020-08-26 22:18:40 +01:00
Luis Ramos
f9aac02e13 Run rubocop -a 2020-08-26 22:16:02 +01:00
Luis Ramos
274cdefa26 Remove commented code 2020-08-26 22:14:24 +01:00
Luis Ramos
9264badaaf Merge pull request #5879 from luisramos0/payments
[Bye bye Spree] Bring models payment_method, credit_card and gateway from spree_core
2020-08-26 22:09:16 +01:00
Pau Pérez Fabregat
152eb11913 Merge pull request #5940 from openfoodfoundation/transifex
Transifex
2020-08-26 09:12:58 +02:00
Pau Pérez Fabregat
0421d23e7b Merge pull request #5851 from cillian/osm-tile-provider-updates
Open Street Map tile provider updates
2020-08-25 10:51:55 +02:00
Transifex-Openfoodnetwork
5ce51a4abb Updating translations for config/locales/nb.yml 2020-08-25 18:23:24 +10:00
Transifex-Openfoodnetwork
1c7ce9997a Updating translations for config/locales/es.yml 2020-08-25 18:21:19 +10:00
Transifex-Openfoodnetwork
489665f3f9 Updating translations for config/locales/ca.yml 2020-08-25 18:21:04 +10:00
Maikel
cad79d74c8 Merge pull request #5696 from jeduardo824/enhancement/5210-action-buttons-on-all-tabs
Enhancement/5210 - Add Actions dropdown menu to all pages of Order Details menu
2020-08-25 15:39:50 +10:00
Transifex-Openfoodnetwork
f9e29c5aa7 Updating translations for config/locales/ar.yml 2020-08-25 07:24:29 +10:00
romale
ad9d9afd6a Update en.yml 2020-08-24 17:51:06 +03:00
Luis Ramos
41d67d8b2e Fix estimator spec 2020-08-23 18:07:01 +01:00
Luis Ramos
5568fd5826 Fix problem in order factory
We dont need the global zone
2020-08-23 17:40:54 +01:00
Luis Ramos
f6277416ce Simplify stock location factory and fix related issues in several factories 2020-08-23 17:34:02 +01:00
Luis Ramos
4de4cc642d Fix stock location factory 2020-08-23 17:34:02 +01:00
Luis Ramos
cd22361d13 Fix shipping category factory 2020-08-23 17:34:02 +01:00
Luis Ramos
1ddda92f4d Move factories from generic factories file to their respective factory file 2020-08-23 14:55:45 +01:00
Luis Ramos
4048957e2e Bring the final batch of factories from spree_core 2020-08-23 14:51:15 +01:00
Luis Ramos
2abbfad18c Remove the need to import both :role and :state factory to OFN 2020-08-23 14:47:30 +01:00
Luis Ramos
292199441a Fix problem with shipment's stock location creation 2020-08-23 14:35:59 +01:00
Luis Ramos
f56fa0b7a5 Bring calculator factories from spree_core 2020-08-23 14:35:59 +01:00
Luis Ramos
a432bbf789 Fix problem with shipping method's shipping category creation 2020-08-23 14:35:59 +01:00
Luis Ramos
6d9250c014 Bring tax category factory from spree_core and fix a problem with the stock location of the product factory 2020-08-23 14:35:59 +01:00
Luis Ramos
6d05de742e Fix problem with product shipping category factory 2020-08-23 14:35:59 +01:00
Luis Ramos
aa00756f9c Bring product factory from spree_core and merge with modification 2020-08-23 14:35:59 +01:00
Luis Ramos
ee65b4ba27 Bring taxon and taxonomy factories from spree_core 2020-08-23 14:35:59 +01:00
Luis Ramos
e2a865476d Bring adjustment factory from spree_core 2020-08-23 14:35:59 +01:00
Luis Ramos
9e7e63cc94 Bring line_item factory from spree_core 2020-08-23 14:35:59 +01:00
Luis Ramos
4dd1a52f8e Bring random_email and random description from spree_core factories 2020-08-23 14:35:59 +01:00
Luis Ramos
f6f6d9b46f Bring variant factory from spree_core and merge with modification 2020-08-23 14:35:59 +01:00
Luis Ramos
204e3979d9 Bring user factory from spree_core and merge with modification 2020-08-23 14:35:58 +01:00
Luis Ramos
ad8c41e0ad Bring shipping_method factory from spree_core and merge with modification 2020-08-23 14:35:58 +01:00
Luis Ramos
acb1c41461 Bring shipment factory from spree_core and merge with modification 2020-08-23 14:35:58 +01:00
Luis Ramos
859d34c235 Remove nice trick to reuse traits by copy pasting the traits to each of
the 3 factories

I cannot figure out out to make this work again...
2020-08-23 14:35:58 +01:00
Luis Ramos
8d74c69402 Bring order factory from spree_core and merge with modification 2020-08-23 14:35:58 +01:00
Luis Ramos
4ac6664502 Replace FactoryGirl with FactoryBot weverywhere 2020-08-23 14:35:58 +01:00
Luis Ramos
53a8fec181 Bring shipping_category factory from spree_core and merge with modification 2020-08-23 14:35:58 +01:00
Luis Ramos
313e6e2b45 Bring stock_location factory from spree_core and merge with modification 2020-08-23 14:35:58 +01:00
Luis Ramos
6819042489 Bring options factories from spree_core and merge with modification 2020-08-23 14:35:58 +01:00
Luis Ramos
e1fb13b491 Bring payment method factory from spree_core and merge with modification 2020-08-23 14:35:58 +01:00
Luis Ramos
aa9054659e Bring payment factory from spree_core and merge with modification 2020-08-23 14:35:56 +01:00
Luis Ramos
172a12d7d9 Bring credit_card factory from spree_core and merge with modification 2020-08-23 13:13:50 +01:00
Luis Ramos
e561bcc895 Bring address factory from spree_core and merge with modification 2020-08-23 13:13:11 +01:00
Luis Ramos
9390fd6ccb Remove all factories from spree so we can see exactly what factories we need to bring from spree_core 2020-08-23 13:10:00 +01:00
Luis Ramos
b227c78aeb Fix rubocop issues 2020-08-22 18:14:53 +01:00
Luis Ramos
a44d0f7af6 Add WebHelper where necessary 2020-08-22 18:14:53 +01:00
Luis Ramos
41a7e26fcd Remove unused helper 2020-08-22 18:14:53 +01:00
Luis Ramos
5cd40cb19f Remove dependency to Spree::TestingSupport code 2020-08-22 18:14:53 +01:00
Luis Ramos
907afe3131 Remove dependency to BarAbility from spree_core 2020-08-22 18:14:53 +01:00
Luis Ramos
261269bd57 Bring core/lib/spree/testing_support/i18n from spree_core to ofn as i18n_translations_checker 2020-08-22 18:14:53 +01:00
Luis Ramos
d0c07b931a Bring Spree::TestingSupport::Preferences from spree_core to ofn as PreferencesHelper 2020-08-22 16:50:12 +01:00
Luis Ramos
b6adef38e5 Remove unused auth helpers 2020-08-22 16:50:12 +01:00
Luis Ramos
0ca4d0842a Remove capybara_ext from spree and bring its helpers that are required in ofn 2020-08-22 16:50:12 +01:00
Transifex-Openfoodnetwork
e5395709cc Updating translations for config/locales/en_NZ.yml 2020-08-22 21:18:58 +10:00
Transifex-Openfoodnetwork
2515b1ae2c Updating translations for config/locales/en_IE.yml 2020-08-22 00:58:13 +10:00
Cillian O'Ruanaidh
cdd09e8f97 Fix the bulk coop report date and distributor filters.
Before the date and distributor filters would have no effect. This is because the BulkCoopReport is still generated using an older style method, and isn't generated using the newer method like in the EnterpriseFeeSummaryReport. This older style report expects to receive a :q parameter but it actually received the newer style :report parameter so the filters were not being applied.

This keeps the newer style report params but converts them, after they are authorised as safe, into the older style in the controller.
2020-08-21 15:08:58 +01:00
Luis Ramos
9fd8613107 Update all locales with the latest Transifex translations 2020-08-21 14:56:26 +01:00
Luis Ramos
bea8c2035f Merge pull request #5909 from openfoodfoundation/transifex
Transifex
2020-08-21 14:54:49 +01:00
Luis Ramos
e616e32bbc Merge pull request #5931 from Matt-Yorkley/customer-totals-fees
Customer totals fee calculations
2020-08-21 14:09:00 +01:00
Luis Ramos
19b5a004dd Merge pull request #5877 from Matt-Yorkley/bugsnagger
BugsnagJS checkout errors
2020-08-21 14:01:48 +01:00
Luis Ramos
4a5a6a2242 Merge pull request #5906 from Matt-Yorkley/checkout_flash_errors
Fix flash error issues in checkout requests
2020-08-21 13:03:30 +01:00
Luis Ramos
d1b60e3778 Merge pull request #5905 from mkllnk/lost-decorators
Load previously lost decorator code and don't delete orders
2020-08-21 12:34:37 +01:00
Matt-Yorkley
2f1fdc5852 Simplify conditional statement 2020-08-21 12:12:30 +01:00
Maikel
31fe8850b5 Merge pull request #5913 from openfoodfoundation/luisramos0-patch-1
Remove spree upgrade section from the PR template ❤️
2020-08-21 16:35:09 +10:00
Maikel
0309a20cb1 Merge pull request #5904 from Matt-Yorkley/favicon
Fix broken favicon path
2020-08-21 14:05:00 +10:00
Matt-Yorkley
07b819ab4b Adjust payment state conditional
The `Spree::Order#paid?` method actually includes orders with `payment_state == "credit_owed"`, which was breaking the desired display logic here.
2020-08-20 17:16:20 +01:00
Steve Roberts
50fd3656ef Fix tests - the move of payments to shared has wider impact than first thought (yay tests) 2020-08-20 17:16:20 +01:00
Steve Roberts
4243ff293f Update invoice2 to also use the shared payment partial 2020-08-20 17:16:20 +01:00
Steve Roberts
c79f2326fc Fix some more issues raised by semaphore 2020-08-20 17:16:20 +01:00
Steve Roberts
ac69bef459 Fix issues raised by linter 2020-08-20 17:16:20 +01:00
Steve Roberts
debbf9b361 Modify payment_list partial to be shared
- Partial is used by both the invoice pdf and the order confirmation email
- separate scss file for new payment list table
- extracted outstanding balance logic (also changed in payments view.. admin/orders/RXXX/payments)
- translations in shared.payments_list and lazy loaded
2020-08-20 17:16:20 +01:00
Steve Roberts
1f470830c8 add vars to email.scss 2020-08-20 17:16:20 +01:00
Steve Roberts
a00e964eb6 Clean up scss - picked up by codeclimate 2020-08-20 17:16:20 +01:00
Steve Roberts
8e5cfdeb97 Add more details on payments to invoice. 2020-08-20 17:16:20 +01:00
Matt-Yorkley
9d772dbcc9 Merge pull request #5935 from luisramos0/fix_build
Fix master build - fix mail interceptor spec
2020-08-20 18:15:37 +02:00
Luis Ramos
0abcbc7b8f Fix specs in mail interceptor spec
This was due to an incompatibility between two recent PRs: 5763 and
5733. PR 5733 did not take into account 5763 (the confirm email method was removed) and so the specs introduced
were broken.
2020-08-20 12:52:54 +01:00
Matt-Yorkley
3badaa07d2 Fix adjustment calculations; only "eligible" adjustments should be regarded as applied to an order.
When an order is submitted and the payment fails, the failed payment's adjustments (payment fees) are set to `eligible: false` to indicate they do not apply. These should not be counted as being included in an order's adjustments.
2020-08-19 22:50:37 +01:00
Matt-Yorkley
977ab26b00 Add failing spec for payment fee calculation in customer totals report 2020-08-19 22:50:35 +01:00
Luis Ramos
d6160b5759 Merge pull request #5758 from luisramos0/order_updater
Bring Order Updater from spree_core
2020-08-19 20:47:27 +01:00
Luis Ramos
40d4ed2c95 Merge pull request #5733 from luisramos0/base_ctrl
Move lib/spree to OFN
2020-08-19 18:35:17 +01:00
Luis Ramos
72f5b1b251 Revert "Remove unreachable order recovery code"
This reverts commit 355c5f5c55.

This code is necessary to preserver cart contents across logins on
different browser sessions.
2020-08-19 17:36:36 +01:00
Luis Ramos
eb2d8e65ed Merge pull request #5910 from Matt-Yorkley/silky-mooth-sidebar-scrolling-for-danni
Add scrolling animate on sidebar hide
2020-08-19 11:47:39 +01:00
Maikel Linke
355c5f5c55 Remove unreachable order recovery code
Every page load creates a cart order if none is present. So when a user
logs in, they always have an order stored in their session. And
therefore, we never got to recover an old order.

We could have fixed the code to restore old orders. But as far as I can
tell, order recovery hasn't been working for years and I couldn't find
any issue requesting this feature.

If we wanted to implement order recovery, it should probably be designed
more carefully and included in the `current_order` method.
2020-08-19 12:06:58 +10:00
dependabot-preview[bot]
eb420d9eed Bump jwt from 2.2.1 to 2.2.2
Bumps [jwt](https://github.com/jwt/ruby-jwt) from 2.2.1 to 2.2.2.
- [Release notes](https://github.com/jwt/ruby-jwt/releases)
- [Changelog](https://github.com/jwt/ruby-jwt/blob/master/CHANGELOG.md)
- [Commits](https://github.com/jwt/ruby-jwt/compare/v2.2.1...v2.2.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-08-19 00:52:03 +00:00
Maikel Linke
bb3f958dd2 Remove redundant includes 2020-08-19 10:37:18 +10:00
Luis Ramos
d1ef0e0a0b Do not add stripe JS code to layout if stripe is disabled at instance level 2020-08-18 16:41:29 +01:00
romale
0efcf1536f Update en.yml 2020-08-17 23:10:43 +03:00
Luis Ramos
b367d4328e Remove spree upgrade section from the PR template ❤️ 2020-08-17 18:28:23 +01:00
Matt-Yorkley
ed346b3b54 Add scrolling animate on sidebar hide 2020-08-17 13:41:06 +01:00
Matt-Yorkley
290120d015 Fix broken favicon path
Ensures the non-fingerprinted version of the favicon will be used directly from `/public/favicon.ico`. Needed after recent changes to the Rails asset pipeline.
2020-08-17 11:59:22 +01:00
Matt-Yorkley
0fd163602d Rename method for clarity 2020-08-17 11:17:42 +01:00
Transifex-Openfoodnetwork
4c3a3d5d1a Updating translations for config/locales/en_GB.yml 2020-08-17 18:19:09 +10:00
Luis Ramos
f8146fb946 Adapt finders to rails 4 2020-08-16 16:50:54 +01:00
Luis Ramos
9771fd7f13 Merge pull request #5902 from openfoodfoundation/dependabot/bundler/bugsnag-6.16.0
Bump bugsnag from 6.15.0 to 6.16.0
2020-08-16 16:19:36 +01:00
Luis Ramos
6a61bf7656 Merge pull request #5898 from mkllnk/remove-diffy
Remove unused dependency diffy
2020-08-16 16:04:42 +01:00
Luis Ramos
9754d8d754 Merge pull request #5616 from openfoodfoundation/dependabot/bundler/paper_trail-7.1.3
Bump paper_trail from 5.2.3 to 7.1.3
2020-08-15 21:53:33 +01:00
Matt-Yorkley
91789494b0 Fix error: Unpermitted attribute: order_cycle_ids 2020-08-15 17:03:19 +01:00
Matt-Yorkley
2eda8789d1 Add user id logging to OrderCycle an Schedule PaperTrail entries 2020-08-15 14:49:08 +01:00
Matt-Yorkley
67a00173f8 Replace one-letter-variables in old spec and wrap long lines 2020-08-15 12:26:59 +01:00
Matt-Yorkley
5f8fc64b31 Move layout adjustment from view to CSS 2020-08-15 12:18:41 +01:00
Matt-Yorkley
2f5efc86ee Add missing include 2020-08-14 20:48:33 +01:00
Matt-Yorkley
102df28e97 Extract data masking to service 2020-08-14 20:48:33 +01:00
Matt-Yorkley
0b91991919 Add explanatory user message for viewing customer names 2020-08-14 20:48:33 +01:00
Matt-Yorkley
9a9538dace Don't hide customer names if enterprise has enabled :allow_customer_names perference 2020-08-14 20:48:33 +01:00
Matt-Yorkley
23bb72faa6 Add Enterprise shop preference to allow customer names in reports 2020-08-14 20:48:32 +01:00
Matt-Yorkley
ce5bcaaa20 Explicitly notify Bugsnag on checkout failure 2020-08-14 18:06:30 +01:00
Matt-Yorkley
de22ad0000 Fix flash error issues in checkout requests 2020-08-14 12:41:56 +01:00
Maikel Linke
23706ec1d6 Load our version of the Spree environment
We didn't actually change any logic in our version of the Spree
environment file but if we do that in the future, we want to be sure
that it takes effect. Our file was ignored and not loaded before.
2020-08-14 15:38:10 +10:00
Maikel Linke
c3e0f45f1a Remove unused Report class from lib
Also removing related unused classes and their specs.
2020-08-14 15:38:10 +10:00
Maikel Linke
0a1947ae34 Remove unused module from lib
I was looking for library files that may be used but are not loaded.
I would then add the missing `require` statements. But I found that this
module isn't used any more.

Usage removed in:
310d1b3726
2020-08-14 15:38:10 +10:00
Maikel Linke
b79c568b08 Load our spree overrides instead of the originals
We changed some of Spree's logic and want to use that. And once we
remove the spree_core gem, we need to load those files before using
them.
2020-08-14 15:38:00 +10:00
Maikel Linke
e8139d3948 Keep old incomplete (cart) orders
We used to delete old cart orders so that they wouldn't re-appear after
a successful checkout of another order. Keeping them ensures that we
don't remove an order that is still used by another device. It also
makes sure that we keep references of failed payments.
2020-08-14 10:02:48 +10:00
Maikel Linke
5761014205 Restore Spree customisations for controllers 2020-08-13 16:59:15 +10:00
Maikel Linke
90bf4f312b Document and spec current controller behaviour
When we imported and merged Spree's controller modules with our
decorators, Rails started using Spree's original code again.

This was first included in v3.2.0 and deployed on 28 July 2020.
2020-08-13 16:59:15 +10:00
Maikel Linke
63a9765fea Update rubocop todo lists 2020-08-13 16:33:47 +10:00
dependabot-preview[bot]
5c6cb4840e Bump bugsnag from 6.15.0 to 6.16.0
Bumps [bugsnag](https://github.com/bugsnag/bugsnag-ruby) from 6.15.0 to 6.16.0.
- [Release notes](https://github.com/bugsnag/bugsnag-ruby/releases)
- [Changelog](https://github.com/bugsnag/bugsnag-ruby/blob/master/CHANGELOG.md)
- [Commits](https://github.com/bugsnag/bugsnag-ruby/compare/v6.15.0...v6.16.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-08-13 01:56:14 +00:00
Maikel Linke
271d1ec103 Update translations from Transifex 2020-08-13 10:52:55 +10:00
Maikel
2271a57ffe Merge pull request #5880 from openfoodfoundation/transifex
Transifex
2020-08-13 10:35:00 +10:00
Andy Brett
7c223a43fc remove unused key from en.yml 2020-08-12 12:59:38 -07:00
Andy Brett
d46fad3a02 remove map reference 2020-08-12 12:33:15 -07:00
Andy Brett
c75a864ff2 link to the enterprise's shop instead of a full map 2020-08-12 12:21:07 -07:00
Transifex-Openfoodnetwork
95e048b37f Updating translations for config/locales/en_CA.yml 2020-08-13 02:50:37 +10:00
Maikel Linke
99ca0adf64 Remove unused dependency diffy
It was used to show differences in the product cache. But we removed the
cache in ab330e882e and the gem hasn't
been used since.
2020-08-12 13:10:51 +10:00
Maikel
a8207128df Merge pull request #5889 from Matt-Yorkley/suppress-selenium-warings
Suppress Selenium warnings in test log output.
2020-08-12 11:29:30 +10:00
Transifex-Openfoodnetwork
47bde1e77c Updating translations for config/locales/tr.yml 2020-08-12 00:50:03 +10:00
Matt-Yorkley
0edeb82c32 Update spec/spec_helper.rb
Co-authored-by: Maikel <maikel@email.org.au>
2020-08-11 14:02:49 +02:00
julesemmac
dee34d1f26 adding required argument to resolve Places error 2020-08-10 23:19:21 -04:00
Transifex-Openfoodnetwork
acf984699e Updating translations for config/locales/en_US.yml 2020-08-11 12:02:26 +10:00
Arun Kumar Mohan
13bf7497a9 Fix price translation in Bulk Order Management 2020-08-10 18:26:09 -05:00
Pau Pérez Fabregat
70e2fb759c Merge pull request #5751 from luisramos0/subs_jobs
Add rescue statements with bugsnag alerts to subs jobs
2020-08-10 12:50:54 +02:00
Eduardo
a860b5ea42 remove unnecessary code 2020-08-09 20:45:33 -03:00
Matt-Yorkley
74252e9d13 Suppress Selenium warnings in test log output. 2020-08-09 14:02:07 +01:00
Luis Ramos
09b7aa134b Ammend payment method spec and specify a calculator so that the default calculator is not the spree one that is based on a calculator that does not exist in OFN: Spree::Calculator::FlatRate 2020-08-07 18:36:59 +01:00
Luis Ramos
78fbac8ff2 Merge pull request #5882 from coopdevs/fix-doc-ocd
Fix docs OCD in Gemfile
2020-08-07 16:38:40 +01:00
Pau Perez
4e22787386 Fix docs OCD in Gemfile
@luisramos0 and I can't cope with reading TWO and seeing THREE items listed.
2020-08-07 17:20:14 +02:00
Transifex-Openfoodnetwork
f6c85af4da Updating translations for config/locales/fr.yml 2020-08-08 00:21:32 +10:00
Luis Ramos
49a60374e6 Remove dead method in payment method, it's a scope in OFN and remove unnecessary comments about spree 2020-08-07 14:14:46 +01:00
Luis Ramos
1b66a72c7f Run transpec 2020-08-07 14:03:15 +01:00
Luis Ramos
798194c03e Fix payment_method spec 2020-08-07 14:02:05 +01:00
Luis Ramos
b21a969502 Fix new credit_card_spec 2020-08-07 13:45:25 +01:00
Luis Ramos
d746ae3d9e Fix easy rubocop issues 2020-08-07 13:28:09 +01:00
Luis Ramos
621e2a3132 Run rubocop autocorrect 2020-08-07 13:16:38 +01:00
Luis Ramos
142bab8c35 Merge decorators with original spree files 2020-08-07 13:13:43 +01:00
Luis Ramos
abaa66cc14 Bring models from spree_core 2020-08-07 13:06:16 +01:00
Matt-Yorkley
1123e08a98 Update BugsnagJS to latest version and update initialization syntax 2020-08-07 12:59:33 +01:00
Matt-Yorkley
3a2802f5aa Merge pull request #5871 from coopdevs/fix-paypal-ssl-error
Point better_spree_paypal_express to its latest commit
2020-08-07 11:43:52 +02:00
Matt-Yorkley
766b7449d8 Update all locales with the latest Transifex translations 2020-08-07 10:00:21 +01:00
Matt-Yorkley
2caa559869 Merge pull request #5860 from openfoodfoundation/transifex
Transifex
2020-08-07 10:58:25 +02:00
Luis Ramos
04feccaef3 Merge pull request #5863 from romale/patch-7
Missing translation key 'item', 'qty'
2020-08-07 09:22:34 +01:00
Pau Pérez Fabregat
dfc31b9338 Merge pull request #5864 from openfoodfoundation/dependabot/bundler/ddtrace-0.39.0
Bump ddtrace from 0.38.0 to 0.39.0
2020-08-07 08:22:17 +02:00
Pau Perez
2ccb7c3eb0 Point spree_paypal_express to its latest commit
This brings in the fix for the intermittent PayPal connection failures
due to SSL verification failed. Checkout that gem's commit for details.
2020-08-07 08:18:24 +02:00
Luis Ramos
6f17b80bb8 Move address factory modification to address_factory file and make it always create a state and country in the address if they dont exist in the DB 2020-08-06 10:11:47 +01:00
Transifex-Openfoodnetwork
f92d05656c Updating translations for config/locales/en_FR.yml 2020-08-06 17:17:36 +10:00
Transifex-Openfoodnetwork
1e2c092b70 Updating translations for config/locales/fr.yml 2020-08-06 17:14:33 +10:00
Luis Ramos
43e64f3555 Delete dead code 2020-08-06 01:41:28 +01:00
Luis Ramos
73e1530a30 Fix specs 2020-08-06 01:35:09 +01:00
Luis Ramos
b09a9c5b8b Fix easy rubocop issues 2020-08-06 01:22:31 +01:00
Luis Ramos
00ae3a25f7 Fix easy rubocop issues 2020-08-06 01:18:43 +01:00
Luis Ramos
14358256ed Bring country, zone, state and zone_member from spree together with respective specs 2020-08-06 01:09:35 +01:00
dependabot-preview[bot]
6e626447d0 Bump ddtrace from 0.38.0 to 0.39.0
Bumps [ddtrace](https://github.com/DataDog/dd-trace-rb) from 0.38.0 to 0.39.0.
- [Release notes](https://github.com/DataDog/dd-trace-rb/releases)
- [Changelog](https://github.com/DataDog/dd-trace-rb/blob/master/CHANGELOG.md)
- [Commits](https://github.com/DataDog/dd-trace-rb/compare/v0.38.0...v0.39.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-08-05 23:48:20 +00:00
Luis Ramos
f14bb280c1 Merge pull request #5680 from cillian/prevent-blank-open-street-map
If no enterprises have been geocoded yet make sure Open Street Map displays correctly
2020-08-05 20:27:40 +01:00
Luis Ramos
f093656c6b Merge pull request #5763 from luisramos0/mailers
Bring Mailers from Spree and make order shipped email translatable
2020-08-05 18:09:12 +01:00
romale
dd86e00913 Update en.yml 2020-08-05 18:17:14 +03:00
Transifex-Openfoodnetwork
b2309f8673 Updating translations for config/locales/en_FR.yml 2020-08-06 00:21:16 +10:00
Transifex-Openfoodnetwork
5404efcbce Updating translations for config/locales/fr.yml 2020-08-06 00:21:09 +10:00
Luis Ramos
d8acf90240 Merge pull request #5770 from openfoodfoundation/revert-5601-enhancement/5454-links-to-shops-in-new-tabs
Revert "Enhancement/5454 make links to shops under Groups > Producers open in new tab"
2020-08-05 11:51:48 +01:00
Luis Ramos
6cc296926c Merge pull request #5847 from rmklaus12/5579-missing-translation-subscriptions
5579 missing translation subscriptions
2020-08-05 11:29:34 +01:00
Pau Pérez Fabregat
6e1dd78e9f Merge pull request #5828 from luisramos0/ent_user
Clean up AuthenticationWorkflow spec helper
2020-08-04 12:07:54 +02:00
Pau Perez
6e39ab779c Make RSpec infer the file type from its location
Apparently, although we tend to add the type of spec file some RSpec
methods are not working without it. We're getting:

```
NoMethodError:
  undefined method `helper' for RSpec::ExampleGroups::SpreeSharedOrderDetailsHtmlHaml:Class
```

```
NameError:
   undefined local variable or method `controller' for #<RSpec::ExampleGroups::SpreeAdminUsersController::AuthorizeAdmin:0x00007fa8b32addf8>
 # ./spec/controllers/spree/admin/users_controller_spec.rb:10:in `block (3 levels) in <top (required)>'
```

It needs more investigation but another day.
2020-08-04 11:24:49 +02:00
Transifex-Openfoodnetwork
8792ec1de3 Updating translations for config/locales/es.yml 2020-08-04 18:14:45 +10:00
Transifex-Openfoodnetwork
b91f1578c9 Updating translations for config/locales/ca.yml 2020-08-04 18:14:27 +10:00
Pau Pérez Fabregat
9b91c490cb Merge pull request #5859 from openfoodfoundation/transifex
Transifex
2020-08-04 10:13:37 +02:00
Transifex-Openfoodnetwork
e8ba44f958 Updating translations for config/locales/en_FR.yml 2020-08-04 17:27:10 +10:00
Transifex-Openfoodnetwork
800ac0cabf Updating translations for config/locales/fr.yml 2020-08-04 17:26:53 +10:00
Pau Perez
9ef59f440b Remove commented out includes 2020-08-04 08:50:14 +02:00
Pau Perez
61c14cb61d Remove unneeded RSpec config block
Spec files individually include the module and we specify the type of
spec in each RSpec's describe so none of this settings are needed. They
are just Spree's legacy I bet.
2020-08-04 08:48:08 +02:00
Pau Pérez Fabregat
467fa7e566 Merge pull request #5856 from openfoodfoundation/transifex
Transifex
2020-08-04 08:37:32 +02:00
Pau Pérez Fabregat
ef48187332 Merge pull request #5745 from openfoodfoundation/dependabot/bundler/rswag-2.3.1
Bump rswag from 2.2.0 to 2.3.1
2020-08-04 08:00:32 +02:00
Luis Ramos
425901fa7a Add some paragraphs and breaklines to the tempalte that used to be text and is now html
This template needs to be revisited, this is just a quick fix
2020-08-03 16:43:11 +01:00
Luis Ramos
6e57e1ad56 Fix conflict between unused Spree::CheckoutHelper in spree_core and the required ::CheckoutHelper in OFN
The OFN checkoutHelper was not being included and instead the Spree::CheckoutHelper, that doesnt have the necessary helpers, was used
2020-08-03 16:25:18 +01:00
Luis Ramos
6b4a518371 Merge pull request #5845 from romale/patch-6
Missing translation key for "height", "width", "depth"
2020-08-03 16:02:20 +01:00
Cillian O'Ruanaidh
e6ab2ae753 Remove unused positiveAngles and negativeAngles arrays from map centre calculator service.
I forgot to remove these when I was refactoring this earlier.
2020-08-03 15:12:40 +01:00
Transifex-Openfoodnetwork
c97fc45109 Updating translations for config/locales/nb.yml 2020-08-03 22:53:31 +10:00
Transifex-Openfoodnetwork
1d44d463e7 Updating translations for config/locales/tr.yml 2020-08-03 22:48:36 +10:00
Luis Ramos
13b72154fa Merge pull request #5852 from openfoodfoundation/dependabot/bundler/activerecord-import-1.0.6
Bump activerecord-import from 1.0.5 to 1.0.6
2020-08-03 11:54:00 +01:00
dependabot-preview[bot]
619e13ccba Bump rswag from 2.2.0 to 2.3.1
Bumps [rswag](https://github.com/rswag/rswag) from 2.2.0 to 2.3.1.
- [Release notes](https://github.com/rswag/rswag/releases)
- [Changelog](https://github.com/rswag/rswag/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rswag/rswag/compare/2.2.0...2.3.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-08-03 08:32:45 +00:00
Pau Pérez Fabregat
bc66c10a52 Merge pull request #5848 from openfoodfoundation/transifex
Transifex
2020-08-03 09:59:12 +02:00
Pau Pérez Fabregat
06e77372be Merge pull request #5842 from openfoodfoundation/dependabot/bundler/bugsnag-6.15.0
Bump bugsnag from 6.14.0 to 6.15.0
2020-08-03 09:58:52 +02:00
Eduardo
422958ed6f create specific spec for order links partial 2020-08-02 20:02:36 -03:00
Eduardo
51f39ee89d move coffee directive to partial 2020-08-02 20:01:49 -03:00
dependabot-preview[bot]
e615674541 Bump bugsnag from 6.14.0 to 6.15.0
Bumps [bugsnag](https://github.com/bugsnag/bugsnag-ruby) from 6.14.0 to 6.15.0.
- [Release notes](https://github.com/bugsnag/bugsnag-ruby/releases)
- [Changelog](https://github.com/bugsnag/bugsnag-ruby/blob/master/CHANGELOG.md)
- [Commits](https://github.com/bugsnag/bugsnag-ruby/compare/v6.14.0...v6.15.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-08-01 14:57:18 +00:00
Luis Ramos
327d6c43d9 Merge pull request #4084 from openfoodfoundation/dependabot/bundler/devise-3.5.10
[Security] Bump devise from 2.2.8 to 3.5.10
2020-08-01 15:55:19 +01:00
Luis Ramos
cc7363d9e7 Merge pull request #5824 from luisramos0/improve_checkout
Reset order state to cart in case the stripe SCA authorization step fails
2020-08-01 15:53:41 +01:00
dependabot-preview[bot]
ff82a1b73f Bump activerecord-import from 1.0.5 to 1.0.6
Bumps [activerecord-import](https://github.com/zdennis/activerecord-import) from 1.0.5 to 1.0.6.
- [Release notes](https://github.com/zdennis/activerecord-import/releases)
- [Changelog](https://github.com/zdennis/activerecord-import/blob/master/CHANGELOG.md)
- [Commits](https://github.com/zdennis/activerecord-import/compare/v1.0.5...v1.0.6)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-08-01 07:31:53 +00:00
Cillian O'Ruanaidh
ef7c7a3e73 Upgrade vendored :leaflet-providers JS to 1.10.2 to update available OSM tile providers and fix deprecated MapBox endpoint.
Before MapBox could no longer be used as an OSM tile provider as they recently deprecated their tile API endpoint (https://blog.mapbox.com/deprecating-studio-classic-styles-d8892ac38cb4)

This update of leaflet-providers from 1.9.1 to 1.10.2 uses the new MapBox endpoint, it also adds new tile providers and removes some ones no longer supported. See https://github.com/leaflet-extras/leaflet-providers/blob/master/CHANGELOG.md#1102-2020-07-31
2020-07-31 20:18:15 +01:00
Cillian O'Ruanaidh
3c23952fd6 Don't double escape :open_street_map_provider_options so they are parsed into a JS object rather than a string.
Before if you entered '{ accessToken: secret }' into the open street map provider options field in the admin content settings the 'JSON.parse(openStreetMapConfig.open_street_map_provider_options)' call in the open_street_map directive was converting them into a string because they were double escaped. They need to be converted into a JS object in order to set the Leaflet provider options.
2020-07-31 20:08:09 +01:00
Luis Ramos
b025d5a600 Merge pull request #5822 from luisramos0/improve_ocs_perf
Performance improvement of the outgoing products page when editing OCs
2020-07-31 16:07:16 +01:00
Luis Ramos
2aa6c70dc6 Remove select from relation
This relation is only used above for a call to empty? so we don't need to worry about the select part of the query, specially not introducing an expensive DISTINCT
2020-07-31 09:26:04 +01:00
Luis Ramos
d052a7b796 Verify the user is confirmed before returning a reset password token
Co-authored-by: Maikel <maikel@email.org.au>
2020-07-31 09:14:07 +01:00
Transifex-Openfoodnetwork
9d1e12da68 Updating translations for config/locales/en_FR.yml 2020-07-31 18:11:19 +10:00
Transifex-Openfoodnetwork
aae0a6533a Updating translations for config/locales/fr.yml 2020-07-31 18:10:57 +10:00
Luis Ramos
7c498a573c Make shopfront redirect work when logging out by storing it outside session data 2020-07-31 09:05:42 +01:00
Luis Ramos
86afa6f413 Adapt to devise 3.2 and use after_confirmation callback to send welcome email 2020-07-31 09:05:42 +01:00
Luis Ramos
ca9898839a Confirm! is deprecated and only redirects to confirm now in devise 3.5 2020-07-31 09:05:42 +01:00
Luis Ramos
f31d790714 Add auth spec to cover case where user tries to reset password before confirming their email 2020-07-31 09:05:42 +01:00
Luis Ramos
0f29806198 Adapt code to devise 3.2 where the reset_password_token stored in the db is a encrypted version of the token sent in the email
In this particular case, the user confirmations controller is redirecting to the reset password page but it doesnt know what is the raw reset_password_token

So we regenerate the reset password token so that it can know what's the raw value for the redirect

The method User#regenerate_reset_password_token is a proxy to the protected method in Devise::Recoverable
2020-07-31 09:05:42 +01:00
Luis Ramos
c0f9f8c8bf Remove comment refering to old spree upgrade 2020-07-31 09:05:42 +01:00
Luis Ramos
a2ae78bde9 Replay commit from spree_auth_devise that upgrades to devise 3
fe7941f674
2020-07-31 09:05:42 +01:00
Luis Ramos
26ca374a76 Adpat user mailer to devise v3 2020-07-31 09:05:42 +01:00
Luis Ramos
40e065eada Add gem for Devise::TokenAuthenticatable and configure it 2020-07-31 09:05:42 +01:00
dependabot-preview[bot]
f7ee6ce6c5 [Security] Bump devise from 2.2.8 to 3.5.10
Bumps [devise](https://github.com/plataformatec/devise) from 2.2.8 to 3.5.10. **This update includes a security fix.**
- [Release notes](https://github.com/plataformatec/devise/releases)
- [Changelog](https://github.com/plataformatec/devise/blob/v3.5.10/CHANGELOG.md)
- [Commits](https://github.com/plataformatec/devise/compare/v2.2.8...v3.5.10)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-07-31 09:05:42 +01:00
Luis Ramos
85e9819c3b Make more translation keys use lazy look ups 2020-07-31 09:00:48 +01:00
Transifex-Openfoodnetwork
1ea06763f8 Updating translations for config/locales/es.yml 2020-07-31 17:00:19 +10:00
Transifex-Openfoodnetwork
5064769717 Updating translations for config/locales/ca.yml 2020-07-31 16:59:55 +10:00
Robin Klaus
581a246b4f Added translation key for subscriptions heading 2020-07-31 16:29:04 +10:00
Maikel Linke
bee7990c60 Update translations 2020-07-31 15:58:04 +10:00
romale
27404872de Missing translation key for "height", "width", "depth"
When edit product in path admin/products/PRODUCT_NAME/varians/NN/edit
2020-07-31 00:20:55 +03:00
Luis Ramos
1e9b11d209 Merge pull request #5807 from romale/patch-5
Add Russian to list of momentJS locales
2020-07-30 19:01:38 +01:00
Luis Ramos
df465cf45b Merge pull request #5698 from rmklaus12/5575-backofficepay-missing-translation
Added translation key to locale/en.yml for backoffice admin payment
2020-07-30 19:01:11 +01:00
Luis Ramos
f524560624 Merge pull request #5800 from romale/patch-4
Missing translation key for "permalink" and "shipping_categories"
2020-07-30 18:00:45 +01:00
Luis Ramos
7af47df570 Merge pull request #5843 from andrewpbrett/master
Update Docker instructions to recommend creating your own fork
2020-07-30 17:57:33 +01:00
dependabot-preview[bot]
18cb0e0980 Bump paper_trail from 5.2.3 to 7.1.3
Bumps [paper_trail](https://github.com/airblade/paper_trail) from 5.2.3 to 7.1.3.
- [Release notes](https://github.com/airblade/paper_trail/releases)
- [Changelog](https://github.com/paper-trail-gem/paper_trail/blob/master/CHANGELOG.md)
- [Commits](https://github.com/airblade/paper_trail/compare/v5.2.3...v7.1.3)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-07-30 16:56:15 +00:00
Luis Ramos
354b76205e Merge pull request #5839 from openfoodfoundation/dependabot/bundler/oj-3.10.8
Bump oj from 3.10.7 to 3.10.8
2020-07-30 17:54:12 +01:00
Luis Ramos
fbc7eea1a5 Merge pull request #5811 from jttyeung/master
Fix #5730 content header overlap with long product names
2020-07-30 17:53:09 +01:00
Luis Ramos
0359d103b2 Improve code comments on dodgy and/but critical checkout process method 2020-07-30 17:18:34 +01:00
Luis Ramos
1400b3667b Merge pull request #5788 from romale/patch-2
Missing translation key for shipping_method and new_order
2020-07-30 16:54:07 +01:00
Luis Ramos
e739c5185e Add specs to verify that Spree::Core::Gateway exceptions are handled correctly 2020-07-29 23:56:52 +01:00
Luis Ramos
2136eecd09 Avoid reloading the payment every time, so that in-memory data is not wiped out
When checkout fails and the payment states dont match (inside the if), in-memory data of the failed payment can be lost but updating the payment state is the fundamental part here so that further checkout attempts work. We may improve this update statement so that all the data of the failed payment is persisted
2020-07-29 22:50:30 +01:00
Luis Ramos
9e9e0d0bd8 Remove rescue_from and just add the rescue to the edit action, the update action has a different logic where there is a generic rescue StandardError after the GatewayError rescue 2020-07-29 22:50:25 +01:00
Luis Ramos
da4abf6617 Add a comment to explain the necessity of the first rescue in the update action 2020-07-29 22:50:20 +01:00
Luis Ramos
ad00971ca8 Improve readability and add bugsnag error (now in the checkout_failed method) when checkout_fails while handling stripe redirect 2020-07-29 22:50:18 +01:00
Andy Brett
54cb479fa1 Update Docker instructions to mention the recommendation to create one's own fork 2020-07-29 13:04:34 -07:00
Pau Pérez Fabregat
e9787552c8 Merge pull request #5713 from Matt-Yorkley/taxon-icons
Remove taxon icons
2020-07-29 18:43:06 +02:00
Luis Ramos
bea472623d Merge pull request #5834 from openfoodfoundation/dependabot/bundler/unicorn-5.6.0
Bump unicorn from 5.5.5 to 5.6.0
2020-07-29 14:33:04 +01:00
Pau Perez
84178c637e Add missing momentjs languages to back-office 2020-07-29 13:02:46 +02:00
Pau Perez
9bf58a8258 Add missing Catalan, Arabic & Turkish for momentjs 2020-07-29 12:53:34 +02:00
Pau Perez
c923edd3bb Replace hardcoded URL with path helper 2020-07-29 11:36:49 +02:00
Pau Pérez Fabregat
bcaa308ac8 Merge pull request #5825 from openfoodfoundation/transifex
Transifex
2020-07-29 11:20:56 +02:00
Maikel Linke
fe0c04b650 Complete renaming of AdvanceOrderService to OrderWorkflow 2020-07-29 12:24:18 +10:00
Robin Klaus
4375a34ef8 Updated message to Paypal payments cannot be captured in the Backoffice 2020-07-29 10:18:25 +10:00
Luis Ramos
07005594ff Move payments persistence code to order workflow service 2020-07-28 23:56:43 +01:00
Luis Ramos
ac5882e3e6 Refactor OrderWorkflow 2020-07-28 23:55:36 +01:00
Luis Ramos
9cbcf14485 Move shipping method id setting code to OrderWorkflow service 2020-07-28 23:50:47 +01:00
Luis Ramos
c3f99050fd Move advance_order_state from checkout_controller to OrderWorkflow service 2020-07-28 23:43:07 +01:00
Luis Ramos
26eee4631f Rename AdvanceOrderService to OrderWorkflow 2020-07-28 23:40:49 +01:00
Luis Ramos
734fce5ce7 Add code to persist payments after failed payments. The state machine
rollbacks the transactions, with this we keep record of what went wrong.
2020-07-28 23:29:49 +01:00
Luis Ramos
e80337a458 Transpec checkout_spec 2020-07-28 23:29:49 +01:00
Luis Ramos
51de5269dc Fix specs in checkout_spec 2020-07-28 23:29:49 +01:00
Luis Ramos
e99f0dc6b7 Rubocop autocorrect and easy rubocop issues 2020-07-28 23:29:49 +01:00
Luis Ramos
d8a96c9d34 Bring order checkout workflow and some of its specs from spree_core 2020-07-28 23:29:49 +01:00
dependabot-preview[bot]
555a74c9e6 Bump oj from 3.10.7 to 3.10.8
Bumps [oj](https://github.com/ohler55/oj) from 3.10.7 to 3.10.8.
- [Release notes](https://github.com/ohler55/oj/releases)
- [Changelog](https://github.com/ohler55/oj/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/ohler55/oj/compare/v3.10.7...v3.10.8)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-07-28 21:10:22 +00:00
Pau Perez
be3a10b2b1 Fix some easy rubocop issues 2020-07-28 19:01:14 +02:00
Luis Ramos
275a864e51 Merge pull request #5815 from coopdevs/eager-load-option-values-line-items
Eager load spree_option_values_line_items
2020-07-28 17:21:02 +01:00
Luis Ramos
61453968dd Merge pull request #5833 from luisramos0/pend_payments
Add unit tests for order.charge_shipping_and_payment_fees!
2020-07-28 17:18:57 +01:00
Transifex-Openfoodnetwork
8263e2e373 Updating translations for config/locales/es.yml 2020-07-29 00:39:21 +10:00
Transifex-Openfoodnetwork
aff8933d25 Updating translations for config/locales/ca.yml 2020-07-29 00:36:57 +10:00
Pau Pérez Fabregat
d4570240ae Merge pull request #5826 from openfoodfoundation/luisramos0-patch-1
Update GETTING_STARTED.md
2020-07-28 15:59:38 +02:00
dependabot-preview[bot]
d0a7f8e1af Bump unicorn from 5.5.5 to 5.6.0
Bumps [unicorn](https://yhbt.net/unicorn/) from 5.5.5 to 5.6.0.

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-07-27 23:44:40 +00:00
Luis Ramos
d673f278ce Add unit test to order.charge_shipping_and_payment_fees! 2020-07-27 21:27:23 +01:00
Luis Ramos
a002ec1894 Simplify login_as_admin by using existing factory admin_user 2020-07-27 16:02:59 +01:00
Luis Ramos
ecc58cedd9 Fix navigation problem in spec 2020-07-27 16:02:59 +01:00
Luis Ramos
27ace50eb7 Fix general settings path in specs 2020-07-27 16:02:57 +01:00
Luis Ramos
4df81f0864 Remove unnecesasary and now broken require statement from spec and fix rubocop todo files 2020-07-27 15:32:35 +01:00
Luis Ramos
95a9ca7775 Remove redundant method, login_as is the name of the test helper in warden 2020-07-27 15:32:35 +01:00
Luis Ramos
d6a5ad70a8 Adapt specs in order mgmt engine to new authentication helper 2020-07-27 15:32:35 +01:00
Luis Ramos
a2ebc614d9 Rename AuthenticationWorkflow to AuthenticationHelper 2020-07-27 15:32:35 +01:00
Luis Ramos
10b07aabd9 Rename quick_login_as to login_as 2020-07-27 15:32:35 +01:00
Luis Ramos
5738ec0542 Rename login_to_admin_and_visit to login_as_admin_and_visit 2020-07-27 15:32:34 +01:00
Luis Ramos
c6bb756531 Rename quick_login_as_admin to login_as_admin and also re-use login_to_admin_and_visit when applicable 2020-07-27 15:31:23 +01:00
Luis Ramos
8b04e45ea5 Create login_to_admin_and_visit to avoid loading the admin dashboard unnecessarily
This commit removes 19 unnecessary page loads of the admin dashboard
2020-07-27 15:31:11 +01:00
Luis Ramos
f1a3814c0d Rename login_as_enterprise_user to a more specific name controller_login_as_enterprise_user 2020-07-27 14:44:25 +01:00
Luis Ramos
8e84754f35 Rename login_as_admin to a more specific name controller_login_as_admin 2020-07-27 14:44:25 +01:00
Luis Ramos
81710a2704 Remove now dead create_enterprise_user, the user factory should be used instead 2020-07-27 14:44:25 +01:00
Luis Ramos
1af4bf6994 Replace usage of create_enterprise_user with :user factory 2020-07-27 14:44:23 +01:00
Luis Ramos
3217b3ba86 Delete dead commented code 2020-07-27 12:28:53 +01:00
Luis Ramos
16b9c8c814 Replace usage of create_enterprise_user with :user factory 2020-07-27 12:28:33 +01:00
Transifex-Openfoodnetwork
79aadf5c86 Updating translations for config/locales/tr.yml 2020-07-27 03:23:28 +10:00
Luis Ramos
ec0d06af54 Reuse update_failed method as the code needed is exactly the same 2020-07-25 19:39:46 +01:00
Luis Ramos
b23b707b5d Notify bugsnag and execute post checkout actions (reset to cart state) whenever there's a payment gateway exceeption raised 2020-07-25 19:39:46 +01:00
Luis Ramos
1bf946d124 Reused code in checkout controller, the reponse for the case when there is a stripe exception anywhere is the same as when the update action fails 2020-07-25 19:39:46 +01:00
Luis Ramos
5266d95910 Move method closer to related/similar methods 2020-07-25 19:39:46 +01:00
Luis Ramos
df22ad46d6 Update GETTING_STARTED.md
Clarify users landing on this page that they should use ofn-install for server deployments.
2020-07-25 14:53:35 +01:00
Transifex-Openfoodnetwork
227892b629 Updating translations for config/locales/en_FR.yml 2020-07-25 23:36:58 +10:00
Transifex-Openfoodnetwork
ffc98c63fa Updating translations for config/locales/fr.yml 2020-07-25 23:36:48 +10:00
Luis Ramos
add7bb489f Update all locales with the latest Transifex translations 2020-07-25 13:13:35 +01:00
Cillian O'Ruanaidh
702669e61c Merge branch 'master' into prevent-blank-open-street-map 2020-07-24 16:00:37 +01:00
Cillian O'Ruanaidh
cc317bc8c9 Move the :initialLatitude and :initialLongitude methods from the OpenStreetMap service to the MapCenterCalculator service. 2020-07-24 16:00:30 +01:00
Luis Ramos
752d9e9bb8 Merge pull request #5806 from openfoodfoundation/bring-in-payment-model
Bring in payment model
2020-07-24 14:52:20 +01:00
Luis Ramos
d93c1684b9 Merge pull request #5780 from coopdevs/handle-credit-validation-errors
Handle credit validation errors
2020-07-24 14:49:52 +01:00
Luis Ramos
603991996f Merge pull request #5799 from luisramos0/calcs_bug
Add migration to fix calculator preferences
2020-07-24 14:22:55 +01:00
Luis Ramos
32d45f6fe5 Merge pull request #5747 from mbudm/issue/5434
Make keyboard UI close on iOS when done searching
2020-07-24 13:25:39 +01:00
Luis Ramos
8f4395a6ea We need to clear Rails cache after updating preferences so that the app picks the new values immediately 2020-07-24 13:17:43 +01:00
Luis Ramos
1b31b727c7 Add migration to fix calculator preferences 2020-07-24 13:17:43 +01:00
Pau Perez
97f551a2dd Replace literal with AR's 4 #not 2020-07-23 20:24:31 +02:00
Pau Perez
357037e429 Recalculate adjustments when invalidating payments
Switching from `#invalidate` to `#update_column` skipped both
validations and callbacks and thus, `#ensure_correct_adjustments` was no
longer called for older payments.
2020-07-23 20:24:31 +02:00
Pau Perez
e6943ce554 Fix simple Rubocop issues 2020-07-23 20:24:31 +02:00
Pau Perez
4d9fbb68d6 Add missing attribute to skip source validation 2020-07-23 20:24:31 +02:00
Pau Perez
813459ee38 Clarify method documentation 2020-07-23 20:24:31 +02:00
Pau Perez
c0f72f89f2 Handle #refund! as we do with #credit! 2020-07-23 20:24:31 +02:00
Pau Perez
0f0a704147 Skip source validation when applying credit
The original payment may not be valid because its credit card may be
expired. Stripe gives this as a valid scenario returning a success and
we should do too.

When creating the credit payment we end up validating all sources in
a chain as follows.

```
Payment being persisted -> source payment -> original credit card.
```

The source payment was valid when created (It would not be persisted
otherwise) but its source card may now be expired, and that's legit.

There was also an issue with the `#invalidate_old_payments` callback. It
was causing the original payment to be validated again and thus the
credit payment failed to be persisted due to the original credit card
being expired. Switching this callback to use `#update_column` skips
validations and so we don't validate the source payment. We only care
about the state there, so it should be fine.
2020-07-23 20:24:31 +02:00
Pau Perez
f2b28a198d Replace before_validation with custom validation
No reason to use a callback when custom validation methods can be
defined.
2020-07-23 20:24:31 +02:00
Pau Perez
f2fd426c4a Fix old Spree specs
Given the importance of this code, it doesn't bring me much confidence.
Apparently, this specs where using a non-existent state by mistake and
this went unnoticed because the payment creation was failing silently in
payment/processing.rb.

This unearthed the fact that our `#ensure_correct_adjustment` needs the
order to be persisted to succeed.
2020-07-23 20:24:31 +02:00
Pau Perez
1c026479f5 Replace spec's syntax to RSpec 3 2020-07-23 20:24:31 +02:00
Pau Perez
73b1b1f172 DRY specs and fix rubocop failures 2020-07-23 20:24:31 +02:00
Pau Perez
59da07de66 Handle all errors when dealing with payment event
This basically catches ActiveRecord::RecordInvalid caused by an invalid
credit record, for instance, but also other situations we haven't
forseen.
2020-07-23 20:24:31 +02:00
Pau Perez
26ed601996 Test the payment controller handles GatewayError
After that, we can TDD a second one that also handles validation errors.
2020-07-23 20:24:31 +02:00
Pau Perez
6ca6938df4 Merge branch 'master' into bring-in-payment-model
* master: (91 commits)
  Bump ddtrace from 0.37.0 to 0.38.0
  Add spec to cover SQL query issue with OCs where the only products from the coordinator inventory are renderer
  Remove unnecessary order statement, the relation will only be used for counting products
  Move select out of scope visible_for because it is breaking exchange_product queries and it's just not needed there. The only other use of this product's scope visible_for is the enterprise serializer so we add the select to it.
  Make OC advanced settings work by permitting the extra parameter
  Remove conflicting and duplicate route
  Bump bugsnag from 6.13.1 to 6.14.0
  Make charges update method update the first pending payment
  Move require_login_then_redirect_to to the only place where it is called
  Make broken spec fail reliably and set it pending
  Updating translations for config/locales/en_GB.yml
  Update all locales with the latest Transifex translations
  Doc defensive coding needed by pin payments
  Make method a little simple by extracting method
  Simplify spec, the 2 minutes wait is not necessary anylonger
  Make unauthorized in ControllerHelpers::Auth the same as in Spree::Admin::BaseController
  Move unauthorized view to HomeController only, all other calls to unauthorized will go through Auth which will redirect to the home controller IF the user is logged in or to login if user is not logged in
  Adapt specs to the move of unauthorized route from the spree routes to the main app routes
  Delete spree_user_signup which is from spree promotions code that we dont use
  Remove try_spree_current_user
  ...
2020-07-23 20:20:43 +02:00
Joanne Yeung
abc132d3db Remove trailing whitespace 2020-07-23 09:37:10 -06:00
Joanne Yeung
b16f486dcc Address missing semi-colon 2020-07-23 09:25:56 -06:00
Luis Ramos
6cc91d457e Merge pull request #5796 from coopdevs/remove-conlicting-spree-route
Remove conflicting and duplicate route
2020-07-23 14:29:12 +01:00
Luis Ramos
438aef1e7a Merge pull request #5798 from luisramos0/payment_fees_master
Make charges update method update the first pending payment
2020-07-23 14:23:03 +01:00
Pau Perez
c8b738cbd5 Eager load spree_option_values_line_items
For the BulkCoop report to speed up. We move from an output like

```
web_1     |   CACHE (0.3ms)  SELECT id FROM "spree_line_items" WHERE "spree_line_items"."order_id" IN (SELECT id FROM "spree_orders" WHERE (("spree_orders"."distributor_id" IN (SELECT enterprises.id FROM "enterprises") OR "spree_orders"."order_cycle_id" IN (SELECT id FROM "order_cycles"))))
web_1     |   CACHE (0.0ms)  SELECT "spree_option_values".* FROM "spree_option_values" INNER JOIN "spree_option_types" ON "spree_option_types"."id" = "spree_option_values"."option_type_id" INNER JOIN "spree_option_values_line_items" ON "spree_option_values"."id" = "spree_option_values_line_items"."option_value_id" WHERE "spree_option_values_line_items"."line_item_id" = $1 ORDER BY spree_option_types.position asc  [["line_item_id", 4]]
web_1     |   CACHE (0.0ms)  SELECT "spree_option_values".* FROM "spree_option_values" INNER JOIN "spree_option_types" ON "spree_option_types"."id" = "spree_option_values"."option_type_id" INNER JOIN "spree_option_values_line_items" ON "spree_option_values"."id" = "spree_option_values_line_items"."option_value_id" WHERE "spree_option_values_line_items"."line_item_id" = $1 ORDER BY spree_option_types.position asc  [["line_item_id", 6]]
web_1     |   CACHE (0.0ms)  SELECT "spree_option_values".* FROM "spree_option_values" INNER JOIN "spree_option_types" ON "spree_option_types"."id" = "spree_option_values"."option_type_id" INNER JOIN "spree_option_values_line_items" ON "spree_option_values"."id" = "spree_option_values_line_items"."option_value_id" WHERE "spree_option_values_line_items"."line_item_id" = $1 ORDER BY spree_option_types.position asc  [["line_item_id", 8]]
web_1     |   CACHE (0.0ms)  SELECT "spree_option_values".* FROM "spree_option_values" INNER JOIN "spree_option_types" ON "spree_option_types"."id" = "spree_option_values"."option_type_id" INNER JOIN "spree_option_values_line_items" ON "spree_option_values"."id" = "spree_option_values_line_items"."option_value_id" WHERE "spree_option_values_line_items"."line_item_id" = $1 ORDER BY spree_option_types.position asc  [["line_item_id", 5]]
web_1     |   CACHE (0.0ms)  SELECT "spree_option_values".* FROM "spree_option_values" INNER JOIN "spree_option_types" ON "spree_option_types"."id" = "spree_option_values"."option_type_id" INNER JOIN "spree_option_values_line_items" ON "spree_option_values"."id" = "spree_option_values_line_items"."option_value_id" WHERE "spree_option_values_line_items"."line_item_id" = $1 ORDER BY spree_option_types.position asc  [["line_item_id", 7]]
web_1     |   CACHE (0.0ms)  SELECT "spree_option_values".* FROM "spree_option_values" INNER JOIN "spree_option_types" ON "spree_option_types"."id" = "spree_option_values"."option_type_id" INNER JOIN "spree_option_values_line_items" ON "spree_option_values"."id" = "spree_option_values_line_items"."option_value_id" WHERE "spree_option_values_line_items"."line_item_id" = $1 ORDER BY spree_option_types.position asc  [["line_item_id", 4]]
web_1     |   CACHE (0.0ms)  SELECT "spree_option_values".* FROM "spree_option_values" INNER JOIN "spree_option_types" ON "spree_option_types"."id" = "spree_option_values"."option_type_id" INNER JOIN "spree_option_values_line_items" ON "spree_option_values"."id" = "spree_option_values_line_items"."option_value_id" WHERE "spree_option_values_line_items"."line_item_id" = $1 ORDER BY spree_option_types.position asc  [["line_item_id", 5]]
web_1     |   Rendered engines/order_management/app/views/order_management/reports/_report.html.haml (158.5ms)
web_1     |   Rendered engines/order_management/app/views/order_management/reports/bulk_coop/create.html.haml within spree/layouts/admin (187.3ms)
```

to

```
web_1     |   CACHE (0.0ms)  SELECT id FROM "spree_line_items" WHERE "spree_line_items"."order_id" IN (SELECT id FROM "spree_orders" WHERE (("spree_orders"."distributor_id" IN (SELECT enterprises.id FROM "enterprises") OR "spree_orders"."order_cycle_id" IN (SELECT id FROM "order_cycles"))))
web_1     |   CACHE (0.0ms)  SELECT "spree_option_types".* FROM "spree_option_types" WHERE "spree_option_types"."id" = $1 ORDER BY spree_option_types.position LIMIT 1  [["id", 1]]
web_1     |   Rendered engines/order_management/app/views/order_management/reports/_report.html.haml (101.1ms)
web_1     |   Rendered engines/order_management/app/views/order_management/reports/bulk_coop/create.html.haml within spree/layouts/admin (107.9ms)
```
2020-07-23 12:34:39 +02:00
Joanne Yeung
6419036a26 Fix content header overlap with long product names 2020-07-22 15:53:44 -06:00
Luis Ramos
3dc9548fb3 Merge pull request #5775 from luisramos0/oc_inv_bug
Make OC advanced settings work by permitting the extra parameter and make the OC edit page work with that option activated
2020-07-22 22:23:28 +01:00
romale
daa3f00302 Update all.js.coffee 2020-07-22 20:30:21 +03:00
romale
77c920daab Update all.js 2020-07-22 20:29:15 +03:00
Pau Pérez Fabregat
d3296dd5ee Merge pull request #5801 from openfoodfoundation/dependabot/bundler/ddtrace-0.38.0
Bump ddtrace from 0.37.0 to 0.38.0
2020-07-22 17:42:15 +02:00
dependabot-preview[bot]
48efb42b1a Bump ddtrace from 0.37.0 to 0.38.0
Bumps [ddtrace](https://github.com/DataDog/dd-trace-rb) from 0.37.0 to 0.38.0.
- [Release notes](https://github.com/DataDog/dd-trace-rb/releases)
- [Changelog](https://github.com/DataDog/dd-trace-rb/blob/master/CHANGELOG.md)
- [Commits](https://github.com/DataDog/dd-trace-rb/compare/v0.37.0...v0.38.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-07-21 21:27:14 +00:00
Luis Ramos
e445fc33a1 Add spec to cover SQL query issue with OCs where the only products from the coordinator inventory are renderer 2020-07-21 20:48:16 +01:00
Luis Ramos
aadbc9ed5d Remove unnecessary order statement, the relation will only be used for counting products 2020-07-21 19:44:43 +01:00
Luis Ramos
9b5875a7d1 Move select out of scope visible_for because it is breaking exchange_product queries and it's just not needed there. The only other use of this product's scope visible_for is the enterprise serializer so we add the select to it. 2020-07-21 19:44:43 +01:00
Luis Ramos
7ba8c5ace1 Make OC advanced settings work by permitting the extra parameter 2020-07-21 19:44:41 +01:00
Luis Ramos
8d7b383b72 Merge pull request #5794 from openfoodfoundation/dependabot/bundler/bugsnag-6.14.0
Bump bugsnag from 6.13.1 to 6.14.0
2020-07-21 17:58:30 +01:00
romale
4d6920bd92 Missing translation key for "permalink" and "shipping_categories"
When edit product in path admin/products/PRODUCT_NAME/edit
2020-07-21 18:49:24 +03:00
Pau Pérez Fabregat
426c536750 Merge pull request #5677 from luisramos0/remove_spree_root_path
Bring ControllerHelpers from Spree and remove spree root path
2020-07-21 16:15:21 +02:00
Pau Perez
9be199a6cc Remove conflicting and duplicate route
This Spree route conflicts with the one we define:

```
get "/login", to: redirect("/#/login")
```

for whatever reason there are 7 users that managed to hit the Spree one
instead of ours when confirming their signup email. It's not clear to me
though when this `/login?validation=confirmed` is really hit. The
confirmation email link passes a token in the query params and this is
not the case.

The idea is that `GET /login` makes the login modal to show up instead
of Devise's default behaviour (through inheritance) of showing a login
form page. OFN was never prepared to handle this as this bug proofs.
2020-07-21 13:27:06 +02:00
Eduardo
bda47d97ee add view specs to admin edit page 2020-07-20 21:08:04 -03:00
Eduardo
d43e9b5716 add Actions dropdown to all pages of order details menu 2020-07-20 20:45:50 -03:00
dependabot-preview[bot]
bb178c71b2 Bump bugsnag from 6.13.1 to 6.14.0
Bumps [bugsnag](https://github.com/bugsnag/bugsnag-ruby) from 6.13.1 to 6.14.0.
- [Release notes](https://github.com/bugsnag/bugsnag-ruby/releases)
- [Changelog](https://github.com/bugsnag/bugsnag-ruby/blob/master/CHANGELOG.md)
- [Commits](https://github.com/bugsnag/bugsnag-ruby/compare/v6.13.1...v6.14.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-07-20 23:35:34 +00:00
Luis Ramos
21227d7482 Make charges update method update the first pending payment
Updating the first overall payment could select a failed payment and ignore the pending payment that is about to be processed
2020-07-20 18:23:06 +01:00
Robin Klaus
d43a3ac65e Added translation key to locale/en.yml for backoffice admin payment and added lazy loading 2020-07-20 13:07:41 +10:00
romale
19c7d11df5 Missing translation key for new_order
admin/orders/new
2020-07-19 22:06:07 +03:00
romale
eb2e894802 Missing translation key for shipping_method
admin/orders
2020-07-19 21:55:37 +03:00
Luis Ramos
62a3b6b720 Merge pull request #5406 from kristinalim/fix/5300-optimistic_locking_in_stock_items
5300 Avoid race conditions in Spree::StockItem
2020-07-17 22:24:59 +01:00
Luis Ramos
152e432f78 Merge pull request #5749 from mbudm/issue/1253
Ensure the hero image doesn't pixelate on hamburger menu open
2020-07-17 22:15:46 +01:00
Pau Pérez Fabregat
89906f581d Merge pull request #5778 from openfoodfoundation/transifex
Transifex
2020-07-17 18:37:22 +02:00
Luis Ramos
001d40d691 Move require_login_then_redirect_to to the only place where it is called
This fixes a class loading issue where orders controllers was getting a undefined method require_login_then_redirect_to
2020-07-17 14:35:42 +01:00
Maikel
ea1e23abab Merge pull request #5756 from mkllnk/broken-spec
Make broken spec fail reliably and set it pending
2020-07-17 09:56:56 +10:00
Maikel Linke
b0ac188430 Make broken spec fail reliably and set it pending
This spec has been broken for a long time, at least eight months. But it
regularly passed because the search filter is applied with a delay and
in that time the content matches. And once the filter is applied, no
products are shown and the negative matchers pass.
2020-07-17 09:28:17 +10:00
Transifex-Openfoodnetwork
f31a1ff59c Updating translations for config/locales/en_GB.yml 2020-07-17 04:10:57 +10:00
Luis Ramos
2fe37b5237 Update all locales with the latest Transifex translations 2020-07-16 18:07:40 +01:00
Luis Ramos
981f1c0932 Merge pull request #5754 from openfoodfoundation/transifex
Transifex
2020-07-16 18:06:17 +01:00
Pau Perez
dd5e679f69 Address code review comments
Mostly styling issues.
2020-07-16 15:30:28 +02:00
Steve Roberts
429c88c000 Add watcher to update filter after products are loaded
Also remove the other redundant trigger
2020-07-16 12:06:26 +10:00
Maikel
4e3502cce7 Merge pull request #5766 from mkllnk/5764-fix-pin-payments
5764 Provide credit card brand to Pin Payments
2020-07-16 10:28:18 +10:00
Matt-Yorkley
19b3041e1d Merge pull request #5768 from Matt-Yorkley/pin-payments-params
Update StrongParams for Pin Payments
2020-07-16 00:01:34 +02:00
Pau Perez
4e00c45782 Doc defensive coding needed by pin payments
[skip ci]
2020-07-15 16:46:09 +02:00
Luis Ramos
efacca6292 Revert "Enhancement/5454 make links to shops under Groups > Producers open in new tab" 2020-07-15 15:33:03 +01:00
Luis Ramos
31e072179b Make method a little simple by extracting method 2020-07-15 15:23:16 +01:00
Luis Ramos
57fd1bdee2 Merge pull request #5744 from openfoodfoundation/dependabot/bundler/i18n-js-3.7.1
Bump i18n-js from 3.7.0 to 3.7.1
2020-07-15 15:04:55 +01:00
Luis Ramos
2605c4249b Simplify spec, the 2 minutes wait is not necessary anylonger 2020-07-15 14:54:53 +01:00
Luis Ramos
3599cb2047 Make unauthorized in ControllerHelpers::Auth the same as in Spree::Admin::BaseController
It adapts the method in ControllerHelpers::Auth to also use the after_login mechanism.

Ideally we would remove one of the two after_login mechanisms after_login and spree_user_return_to but they might still be in use.
2020-07-15 14:54:53 +01:00
Luis Ramos
8fac1bc9ca Move unauthorized view to HomeController only, all other calls to unauthorized will go through Auth which will redirect to the home controller IF the user is logged in or to login if user is not logged in 2020-07-15 14:54:52 +01:00
Luis Ramos
7f1797de58 Adapt specs to the move of unauthorized route from the spree routes to the main app routes 2020-07-15 14:54:52 +01:00
Luis Ramos
bf3150ddc8 Delete spree_user_signup which is from spree promotions code that we dont use 2020-07-15 14:53:35 +01:00
Luis Ramos
1666ffb191 Remove try_spree_current_user
This can be done because the method is defined in OFN's ApplicationController, so spree_current_user is available in all controllers
2020-07-15 14:53:35 +01:00
Luis Ramos
144811268e Adapt require statements to new undecorated classes 2020-07-15 14:53:35 +01:00
Luis Ramos
d2e52f3136 Update rubocop manual todo 2020-07-15 14:53:35 +01:00
Luis Ramos
046c5f6585 Fix easy rubocop issues 2020-07-15 14:53:08 +01:00
Luis Ramos
97f00153ad Bring controller_helpers/ssl.rb from spree 2020-07-15 14:53:08 +01:00
Luis Ramos
643a82c73c Fix easy rubocop issues, some early returns make the indentation changes 2020-07-15 14:53:08 +01:00
Luis Ramos
a3ea4b757d Merge decorator into the class brought from spree 2020-07-15 14:53:08 +01:00
Luis Ramos
1167a1a9bb Bring ControllerHelpers respond_with from spree 2020-07-15 14:53:08 +01:00
Luis Ramos
20f610fbee Merge controller_helpers/order with decorator 2020-07-15 14:53:08 +01:00
Luis Ramos
d5744572f7 Fix easy rubocop issues 2020-07-15 14:53:08 +01:00
Luis Ramos
23ff9d6fbb Bring controller_helpers/order to OFN 2020-07-15 14:53:08 +01:00
Luis Ramos
10849504c3 Fix easy rubocop issues 2020-07-15 14:53:08 +01:00
Luis Ramos
2452202e92 Move lib/spree/core/controller_helpers/common.rb from spree 2020-07-15 14:53:08 +01:00
Luis Ramos
96839a03aa Move lib/spree/core/controller_helpers.rb from spree 2020-07-15 14:53:08 +01:00
Luis Ramos
4ee30d7cac Remove spree.root route and respective controller. Also move
unauthorized route to main app.

This route is no longer used in OFN
2020-07-15 14:53:08 +01:00
Luis Ramos
7e75581da6 Merge class brought from spree with decorator 2020-07-15 14:53:08 +01:00
Luis Ramos
c8dd841c48 Fix some rubocop issues 2020-07-15 14:53:08 +01:00
Luis Ramos
2ea026ea31 Bring controller helper auth from spree 2020-07-15 14:53:08 +01:00
Pau Perez
70afcee3fc Fix Spree's spec clashing with a customization
`#save_requested_by_customer` is an accessor we added and thus, the
Spree's spec didn't consider.
2020-07-15 14:18:36 +02:00
Pau Perez
3a64cc426a Reuse #calculate_refund_amount method 2020-07-15 14:01:58 +02:00
Pau Perez
a8af3a27b1 Fix all but Metrics Rubocop cops in processing.rb 2020-07-15 14:01:58 +02:00
Pau Perez
42658b5255 Refactor #process! nested ifs to guard clauses
Following Rubocop's indications.
2020-07-15 14:01:58 +02:00
Pau Perez
66dbd85eb4 Run rubocop autocorrect on payment/processing.rb 2020-07-15 14:01:58 +02:00
Pau Perez
3435d5ac97 Fix Rubocop non-metrics issues in payment model 2020-07-15 14:01:30 +02:00
Matt-Yorkley
c009fed6be Update StrongParams for Pin Payments 2020-07-15 14:00:19 +02:00
dependabot-preview[bot]
5fae2c08c8 Bump i18n-js from 3.7.0 to 3.7.1
Bumps [i18n-js](https://github.com/fnando/i18n-js) from 3.7.0 to 3.7.1.
- [Release notes](https://github.com/fnando/i18n-js/releases)
- [Changelog](https://github.com/fnando/i18n-js/blob/master/CHANGELOG.md)
- [Commits](https://github.com/fnando/i18n-js/compare/v3.7.0...v3.7.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-07-15 08:13:42 +00:00
Pau Pérez Fabregat
d4fea5223d Merge pull request #5762 from openfoodfoundation/dependabot/bundler/oj-3.10.7
Bump oj from 3.10.6 to 3.10.7
2020-07-15 10:13:19 +02:00
Maikel Linke
25155cab18 Provide credit card brand to Pin Payments
Spree replaced the Ruby code providing the credit card brand with a
jquery plugin providing it on the checkout screen.

I re-added Ruby code because it's easier and more robust than updating
the user interface with new Javascript.
2020-07-15 17:13:46 +10:00
Steve Roberts
79abc191ff Move location change to PageSelection controller 2020-07-15 15:51:33 +10:00
Steve Roberts
dbc7632c4e Add inline comment to explain two height properties 2020-07-15 09:52:04 +10:00
Luis Ramos
646f48f0af Add translation keys for test and shipment emails and make them lazy lookups 2020-07-14 14:35:36 +01:00
Luis Ramos
f66538d2cb Convert test and shipment email templates to haml 2020-07-14 14:26:05 +01:00
Luis Ramos
55f160c309 Bring test and shipment email templates from spree_core 2020-07-14 14:23:09 +01:00
Luis Ramos
5835a0ee3a Transpec mailer specs 2020-07-14 14:20:30 +01:00
Luis Ramos
e96d9c1f45 Fix mailer specs brought from spree_core 2020-07-14 14:19:19 +01:00
Luis Ramos
5162964936 Fix easy rubocop issues 2020-07-14 13:46:01 +01:00
Luis Ramos
d12495f3db Merge decorators with original classes brought from spree and merge order_mailer specs 2020-07-14 13:38:11 +01:00
Luis Ramos
c6cd695b3c Bring remaing mailers from spree_core 2020-07-14 13:28:11 +01:00
Steve Roberts
c4d7899a99 Use vh units for new browsers and align tagline bg to top. 2020-07-14 19:26:12 +10:00
Transifex-Openfoodnetwork
f79269e96b Updating translations for config/locales/ca.yml 2020-07-14 17:46:12 +10:00
Steve Roberts
3a722bc697 Merge branch 'master' of https://github.com/openfoodfoundation/openfoodnetwork into issue/5072 2020-07-14 13:31:53 +10:00
Steve Roberts
60870a1215 Fix linting errors 2020-07-14 12:58:48 +10:00
Steve Roberts
63a080266e Merge branch 'master' of https://github.com/openfoodfoundation/openfoodnetwork into issue/1253 2020-07-14 12:45:14 +10:00
dependabot-preview[bot]
f4cb14ab1a Bump oj from 3.10.6 to 3.10.7
Bumps [oj](https://github.com/ohler55/oj) from 3.10.6 to 3.10.7.
- [Release notes](https://github.com/ohler55/oj/releases)
- [Changelog](https://github.com/ohler55/oj/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/ohler55/oj/compare/v3.10.6...v3.10.7)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-07-14 00:10:40 +00:00
Luis Ramos
9c8318d828 Merge pull request #5613 from luisramos0/calculators
Move all Calculators from spree to OFN and out of the Spree namespace
2020-07-13 15:16:15 +01:00
Luis Ramos
d536cc8108 Merge pull request #5755 from Matt-Yorkley/groups-images
Fix StrongParameters for groups images
2020-07-13 14:50:24 +01:00
Luis Ramos
ebf9be41bb Transpec specs 2020-07-11 17:02:03 +01:00
Luis Ramos
95ffff5087 Fix specs brought from spree 2020-07-11 16:59:35 +01:00
Luis Ramos
03bb1f053a Fix easy rubocop issues 2020-07-11 16:43:42 +01:00
Luis Ramos
2e3702550d Bring a number of files from spree_core needed in OFN 2020-07-11 16:09:13 +01:00
Luis Ramos
56b83b6bb5 Fix easy rubocop issues 2020-07-11 15:56:08 +01:00
Luis Ramos
e367cbd1e6 Fix one rubocop issues and add the remaining to the manual todo 2020-07-11 15:53:06 +01:00
Luis Ramos
bdf9c1e405 Simplify update_shipment_state based on the fact there's only one shipment per order in OFN 2020-07-11 15:53:06 +01:00
Luis Ramos
2070cfd5bb Fix easy rubocop issues 2020-07-11 15:44:23 +01:00
Luis Ramos
8001e63f77 Unnest OrderManagement::Order declaration in two module declaration 2020-07-11 15:44:23 +01:00
Luis Ramos
aed384183b Move Spree::OrderUpdater to OrderManagement engine 2020-07-11 15:44:23 +01:00
Luis Ramos
e453b130e4 Bring core/lib/spree/core/ext/active_record.rb to OFN and add it to Spree::Order, the only place where it is used 2020-07-11 15:44:23 +01:00
Luis Ramos
7e355a3248 Remove hash rockets 2020-07-11 15:44:23 +01:00
Luis Ramos
a8a81f8023 Merge and fix OrderUpdater spec with Spree::OrderUpdater spec 2020-07-11 15:44:23 +01:00
Luis Ramos
d4c48e2b94 Merge OrderUpdate Delegator into Spree::OrderUpdater 2020-07-11 15:44:23 +01:00
Luis Ramos
872cfcfc58 Remove unused promotions code 2020-07-11 15:44:23 +01:00
Luis Ramos
5b3fbe0aed Merge decorator OrderUpdater 2020-07-11 15:44:23 +01:00
Luis Ramos
ebeeeb7ed3 Fix easy rubocop issues 2020-07-11 15:44:23 +01:00
Luis Ramos
a929d82580 Transpec order_updater_spec 2020-07-11 15:44:23 +01:00
Luis Ramos
1f39731068 Modernize and fix spec brought from spree 2020-07-11 15:44:23 +01:00
Luis Ramos
d2f0d96174 Bring Spree::OrderUpdater spec 2020-07-11 15:44:23 +01:00
Luis Ramos
7218bb0c7d Bring Spree::OrderUpdater from spree 2020-07-11 15:44:23 +01:00
Luis Ramos
58da11fde7 Bring Environment Calculators and Environment Extension from spree_core 2020-07-11 15:43:20 +01:00
Luis Ramos
2c65cea911 Fix easy rubocop issues 2020-07-11 15:41:26 +01:00
Luis Ramos
95698fac37 Bring responder from spree_core 2020-07-11 15:41:26 +01:00
Luis Ramos
7b30008e8b Run transpec 2020-07-11 15:41:26 +01:00
Luis Ramos
50e6ce92b3 Fix easy rubocop issues 2020-07-11 15:41:26 +01:00
Luis Ramos
a78d615936 Bring money_spec from spree_core 2020-07-11 15:41:26 +01:00
Luis Ramos
cd8355ea66 Bring money.rb from spree 2020-07-11 15:41:26 +01:00
Luis Ramos
724a88344e Run transpec 2020-07-11 15:41:26 +01:00
Luis Ramos
9a09f420c1 Modernize spec 2020-07-11 15:41:26 +01:00
Luis Ramos
12a5a266fd Fix easy rubocop issues 2020-07-11 15:41:26 +01:00
Luis Ramos
efeda61e40 Bring i18n.rb from spree 2020-07-11 15:41:26 +01:00
Luis Ramos
38c5a9e105 Remove coupon applicator, it's not used in ofn 2020-07-11 15:41:26 +01:00
Luis Ramos
89e5221dc5 Fix easy rubocop issues 2020-07-11 15:41:26 +01:00
Luis Ramos
c75341838e Bring core.rb from spree_core 2020-07-11 15:41:26 +01:00
Luis Ramos
84d7538b1b Bring i18n code from spree 2020-07-11 15:41:26 +01:00
Luis Ramos
388d575cc8 Remove strong parameters and search helpers, they are not used in OFN 2020-07-11 15:41:26 +01:00
Luis Ramos
fdd21d7d7d Fix easy rubocop issues 2020-07-11 15:41:26 +01:00
Luis Ramos
ab67a4f80c Bring base controller from spree 2020-07-11 15:41:26 +01:00
Matt-Yorkley
f450c21308 Merge pull request #5759 from luisramos0/vo_spec
Comment very flaky spec
2020-07-10 21:44:03 +02:00
Luis Ramos
eb4d648a23 Comment this very flaky spec for now 2020-07-10 19:27:31 +01:00
Pau Perez
cf64d3a290 Merge skipped callback from decorator into model
If we don't want that callback we can just as well remove it now that we
own that code.
2020-07-10 15:07:12 +02:00
Pau Perez
55d52b875f Run rubocop autocorrect on payment model 2020-07-10 15:04:29 +02:00
Luis Ramos
5afb862ce1 Extract setup and authorize to a new method called prepare_for_payment to fix rubocop ABCsize issue
It looks like this rubocop rule weights a raise over a return...
2020-07-10 13:14:07 +01:00
Pau Perez
6389fdb16e Simplify code related to error handling 2020-07-10 13:14:07 +01:00
Luis Ramos
01ab974a3b Add rescue statment to failed payment email so that the processing of other orders continues if there is a problem while sending the email 2020-07-10 13:14:07 +01:00
Luis Ramos
7a9f9a5624 Log bugsnag and still send failed payment email when any exception is caught during the confirmation process 2020-07-10 13:14:05 +01:00
Transifex-Openfoodnetwork
50427472c4 Updating translations for config/locales/en_NZ.yml 2020-07-10 20:25:20 +10:00
Pau Perez
683794636b Rename spec file 2020-07-10 11:57:36 +02:00
Pau Perez
2f4648342f Merge decorator specs with Spree's ones
They are now isolated from each other.
2020-07-10 11:50:20 +02:00
Pau Perez
562f397b22 Isolate Spree's specs into their own context
This way we don't mix contexts while merging in our own decorator tests.
2020-07-10 11:46:59 +02:00
Pau Perez
8fbbb0bb64 Bring back our card factory modification
Merging Spree's an our factory didn't really work.
2020-07-10 11:42:56 +02:00
Pau Perez
d8b748a851 Merge alias_method method and its original version 2020-07-10 10:41:44 +02:00
Pau Perez
d49068ce66 Move method delegation from decorator to model 2020-07-10 10:41:44 +02:00
Pau Perez
cf6138da66 Replace model method with its decorated version 2020-07-10 10:41:44 +02:00
Pau Perez
3fb6193098 Move adjustments logic from decorator into model 2020-07-10 10:41:44 +02:00
Pau Perez
861726200c Move localize_number from decorator to model 2020-07-10 10:41:44 +02:00
Pau Perez
48910aeb77 Move #refund! to the processing.rb 2020-07-10 10:41:44 +02:00
Pau Perez
6d9a518616 Move method from decorator to model 2020-07-10 10:41:44 +02:00
Pau Perez
322c4d0f3f Move decorator's callbacks to model 2020-07-10 10:41:44 +02:00
Pau Perez
eafaa97b0e Temporarily skip spec
I'll move on to other easier issues and get back to it when we're in
a better position.
2020-07-10 10:41:44 +02:00
Pau Perez
31d0d4bcae Fix error "no parent is saved"
The exact error is

```
ActiveRecord::RecordNotSaved:
       You cannot call create unless the parent is saved
```

raised from app/models/spree/payment_decorator.rb:29:in `ensure_correct_adjustment'
2020-07-10 10:41:44 +02:00
Pau Perez
9935df9f2d Move Pin payment method from decorator into model 2020-07-10 10:41:44 +02:00
Pau Perez
0ad8dcc2c5 Fix payment log entries specs
The tight coupling between doesn't give other option but to check the
private method is called. The specs successfully stub
`log_entries#create` but for some reason the model instance that gets
evaluated it's not the stubbed one.
2020-07-10 10:41:44 +02:00
Pau Perez
a01f601363 Fix yet another spec 2020-07-10 10:41:44 +02:00
Pau Perez
34de219233 Bring in missing translation 2020-07-10 10:41:44 +02:00
Pau Perez
e1ea5dbcb3 Fix all but the 7 last payment specs 2020-07-10 10:41:44 +02:00
Pau Perez
abacd06f6b Fix credit card instance in specs 2020-07-10 10:41:44 +02:00
Pau Perez
06aa56164f Bring in Payment model from Spree 2020-07-10 10:41:44 +02:00
Maikel
c1d700196b Merge pull request #5739 from Matt-Yorkley/flaky-spec-complex-oc
Flaky spec order_cycles/complex_updating_specific_time
2020-07-10 14:59:59 +10:00
Luis Ramos
cc3361aaac Merge pull request #5659 from dmarcoux/issue-5555
Filter orders on inclusive dates in admin/orders
2020-07-09 20:40:45 +01:00
Luis Ramos
ed915006fa Merge pull request #5738 from openfoodfoundation/dependabot/bundler/wicked_pdf-2.1.0
Bump wicked_pdf from 1.4.0 to 2.1.0
2020-07-09 20:40:11 +01:00
Matt-Yorkley
1a132924d2 Fix StrongParameters for groups images 2020-07-09 10:00:02 +02:00
Transifex-Openfoodnetwork
e3980521ea Updating translations for config/locales/fr_CA.yml 2020-07-09 07:58:41 +10:00
Transifex-Openfoodnetwork
e6a2eb8af9 Updating translations for config/locales/en_CA.yml 2020-07-09 07:53:34 +10:00
Luis Ramos
5648b2e281 Add rescue statements to subs jobs so that when an order placement or confirmation fails, there's a bugsnag alert for it and the job continues processing the rest of the orders 2020-07-08 18:41:14 +01:00
Luis Ramos
fabddbd1c0 Merge pull request #5746 from coopdevs/remove-specs-dead-code
Remove dead specs helper method
2020-07-08 12:38:24 +01:00
Steve Roberts
2f562809c0 Ensure the hero image doesn't attempt to use the full height of all page content
Not sure exactly why this happens, but when the mobile nav is opened the hero image at #tagline:before uses the height of the full window - often around 4000px. Adding max-height of 100% to the nearest safe parent prevents this behaviour.
2020-07-08 21:31:52 +10:00
Matt-Yorkley
a763a5ee0b Update all locales with the latest Transifex translations 2020-07-08 12:49:20 +02:00
Matt-Yorkley
d718eb9a23 Merge pull request #5726 from openfoodfoundation/transifex
Transifex
2020-07-08 12:33:09 +02:00
Matt-Yorkley
d78db16abe Merge pull request #5718 from Matt-Yorkley/available-locales-bug
Available locales bug
2020-07-08 12:30:18 +02:00
Steve Roberts
7e195c3856 Add redirect to shop on order cycle change 2020-07-08 20:18:21 +10:00
Steve Roberts
eda9293619 Change to new directive that prevents enter default and blurs the input field 2020-07-08 19:19:46 +10:00
Matt-Yorkley
e742069959 Refactor UI interactions for opening exchange product tabs in OC edit 2020-07-08 11:11:39 +02:00
Matt-Yorkley
c8254b8338 Adjust exchange_row assertion to use slightly more specific criteria 2020-07-08 11:11:39 +02:00
Matt-Yorkley
be1e39f0cb Ensure next page has loaded before interacting with form elements 2020-07-08 11:11:39 +02:00
Pau Perez
a1e8c8ad03 Remove dead specs helper method
I found it while reviewing
https://github.com/openfoodfoundation/openfoodnetwork/pull/5718#discussion_r451390809.
2020-07-08 10:59:13 +02:00
Luis Ramos
312e78ba61 Merge pull request #5742 from Matt-Yorkley/flaky-spec-shopping
Fix flaky shopping_spec
2020-07-07 18:11:00 +01:00
Luis Ramos
207c6bc205 Merge pull request #5741 from Matt-Yorkley/flaky-spec-exchange-renderer
Re-enable and fix flaky exchange products renderer spec
2020-07-07 18:09:02 +01:00
Luis Ramos
f8f7b30095 Merge pull request #5716 from openfoodfoundation/dependabot/bundler/database_cleaner-1.8.5
Bump database_cleaner from 1.7.0 to 1.8.5
2020-07-07 17:29:10 +01:00
Luis Ramos
ebc1ab4469 Merge pull request #5710 from openfoodfoundation/dependabot/bundler/mini_racer-0.2.15
Bump mini_racer from 0.2.14 to 0.2.15
2020-07-07 17:28:33 +01:00
Luis Ramos
5e6739c9f7 Fix long lines in new spec 2020-07-07 17:26:24 +01:00
Luis Ramos
99e12b6f07 Convert calculators in new spec 2020-07-07 17:26:24 +01:00
Luis Ramos
0b79e7c48c Fix rubucop issue in enterprise_fee model 2020-07-07 17:26:24 +01:00
Luis Ramos
d92f97716a Extract compute_for and thus resolve the rubocop complexity issue 2020-07-07 17:26:24 +01:00
Luis Ramos
68359d4d1a Remove unnecessary variable (this sum and += come from the original
spree code and is not necessary here now)
2020-07-07 17:26:24 +01:00
Luis Ramos
70432e301d Early exit if max is zero to make method shorted 2020-07-07 17:26:24 +01:00
Luis Ramos
fbe0a3246d Extract applicable_rate? and thus resolve rubocop complexity issue 2020-07-07 17:26:24 +01:00
Luis Ramos
b096717172 Extract per_order_fees_total out of compute_order 2020-07-07 17:26:24 +01:00
Luis Ramos
21120dd6ab Extract per_item_fees_total out of compute_order 2020-07-07 17:26:24 +01:00
Luis Ramos
4b12a5f592 Extract line_items_total from compute_order 2020-07-07 17:26:24 +01:00
Luis Ramos
eedf31e449 Make migration a bit easier to read 2020-07-07 17:26:24 +01:00
Luis Ramos
e225c5ce3a Migrate calculators to outside spree namespace 2020-07-07 17:26:24 +01:00
Luis Ramos
f62546254f Define DefaultTax calculator outside of spree namespace the tax_rate to be used by the app and make spree specs use calculators outside the spree namespace 2020-07-07 17:26:24 +01:00
Luis Ramos
6a94168ee5 Remove Spree namespace from DefaultTax 2020-07-07 17:26:24 +01:00
Luis Ramos
9c7cb23262 Move calculator specs out of the spree namespace 2020-07-07 17:26:24 +01:00
Luis Ramos
5e8438c446 Move all calculators outside the spree namespace 2020-07-07 17:26:23 +01:00
Luis Ramos
9c3eb3725e Remove dead code related to promotions, we dont have promotions in OFN 2020-07-07 17:20:22 +01:00
Luis Ramos
a544102b1b Fix some rubocop issues 2020-07-07 17:20:22 +01:00
Luis Ramos
f2a46d2cef Merge decorators into original classes brought from spree_core 2020-07-07 17:20:22 +01:00
Luis Ramos
6b04df0dea Fix indentation and extract Calculator as a separate module declaration 2020-07-07 17:20:22 +01:00
Luis Ramos
c2898ba389 Bring calculators from spree_core 2020-07-07 17:20:22 +01:00
Transifex-Openfoodnetwork
6be0ae543a Updating translations for config/locales/pt_BR.yml 2020-07-07 21:46:44 +10:00
Matt-Yorkley
f2e0b0f35a Ensure products list has loaded before interacting with product list UI elements 2020-07-07 13:14:11 +02:00
Matt-Yorkley
0f659d0f5e Merge pull request #5728 from luisramos0/ams_comment
Update ams dependency comment
2020-07-07 12:32:03 +02:00
Matt-Yorkley
30492157f9 Re-enable and fix flaky exchange products renderer spec
For some inexplicable reason `order_cycle.exchanges.incoming.first` and `order_cycle.exchanges.incoming.second` were returning the same exchange. Subsequently the inventory items being created were for the same variant, which throws an error due to a uniqueness validation in InventoryItem on variant_id. Changing from #first and #second to #first and #last results in the correct exchanges being assigned.
2020-07-07 11:21:18 +02:00
Luis Ramos
c1fa4fcc85 Merge pull request #5736 from Matt-Yorkley/flaky-spec-embedded
Fix flaky embedded shopping spec
2020-07-07 09:36:27 +01:00
dependabot-preview[bot]
4bee038109 Bump wicked_pdf from 1.4.0 to 2.1.0
Bumps [wicked_pdf](https://github.com/mileszs/wicked_pdf) from 1.4.0 to 2.1.0.
- [Release notes](https://github.com/mileszs/wicked_pdf/releases)
- [Changelog](https://github.com/mileszs/wicked_pdf/blob/master/CHANGELOG.md)
- [Commits](https://github.com/mileszs/wicked_pdf/compare/1.4.0...2.1.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-07-06 23:50:22 +00:00
Matt-Yorkley
447a873e5c Fix flaky embedded spec
The new cart sidebar takes 300ms to animate in. If we try to click the button on the left during this time, we may click the button on the right as it slides in.
2020-07-07 00:23:43 +02:00
Matt-Yorkley
3d955a952c Merge pull request #5674 from mkllnk/caching_spec
Fix flaky caching spec
2020-07-06 21:56:02 +02:00
Luis Ramos
ce1114556d Merge pull request #5578 from mbudm/issue/3770-manual-update
Update orders swagger spec and fix api_key access to orders endpoint
2020-07-06 20:32:25 +01:00
Luis Ramos
761871c90e Merge pull request #5715 from luisramos0/ship_method
Fix issue in Spree 2.1 and bring Spree::Stock classes to OFN 🎉
2020-07-06 19:15:50 +01:00
Transifex-Openfoodnetwork
2a68e0fbba Updating translations for config/locales/tr.yml 2020-07-07 03:55:56 +10:00
Luis Ramos
ceac8a5d40 Merge pull request #5725 from Matt-Yorkley/admin-order-images
Fix default image display in admin order edit
2020-07-06 14:03:56 +01:00
Luis Ramos
b0dd83b773 Update ams dependency comment 2020-07-05 19:55:53 +01:00
Dany Marcoux
3dfabdc117 Filter orders on inclusive dates in admin/orders
Closes #5555

Co-authored-by: Luis Ramos <luisramos0@gmail.com>
2020-07-05 20:12:16 +02:00
Transifex-Openfoodnetwork
b951bcc379 Updating translations for config/locales/en_IN.yml 2020-07-05 04:34:29 +10:00
Transifex-Openfoodnetwork
6f6e8c0c92 Updating translations for config/locales/en_IN.yml 2020-07-05 04:29:50 +10:00
Transifex-Openfoodnetwork
787648eff2 Updating translations for config/locales/en_FR.yml 2020-07-04 23:52:01 +10:00
Transifex-Openfoodnetwork
7a4a673578 Updating translations for config/locales/fr.yml 2020-07-04 23:51:45 +10:00
Matt-Yorkley
96138e9129 Refactor UserLocaleSetter public methods 2020-07-04 10:15:35 +02:00
Matt-Yorkley
f08a530877 Make #valid_locale_for_user an instance method 2020-07-04 09:51:00 +02:00
Luis Ramos
d2adcd20e5 Merge pull request #5719 from coopdevs/index-state-changes
Index spree_state_changes.stateful_id column
2020-07-03 23:02:01 +01:00
Luis Ramos
ff9133b7aa Merge pull request #5699 from coopdevs/fix-order-button-radius
Make button border radius consistent
2020-07-03 23:01:14 +01:00
Luis Ramos
b917238d1e Merge pull request #5446 from luisramos0/sca_refunds
Make StripeSCA void action work
2020-07-03 22:45:35 +01:00
Transifex-Openfoodnetwork
45b960a7ee Updating translations for config/locales/pt_BR.yml 2020-07-04 07:39:50 +10:00
Matt-Yorkley
e2626a0c3b Add unit tests for UserLocaleSetter service 2020-07-03 23:14:38 +02:00
Matt-Yorkley
46c40bdf33 Fix default image display in admin order edit 2020-07-03 22:58:29 +02:00
Luis Ramos
a472b6525f Merge pull request #5707 from luisramos0/missing_spaces
Add space after translations so that translators dont have to guess a space is needed
2020-07-03 16:10:55 +01:00
Matt-Yorkley
05c1f093b2 Delete dead code
There's nothing done in this bit of code that isn't already done somewhere else, and more effectively.
2020-07-03 16:44:37 +02:00
Matt-Yorkley
0c2fd4bfd2 Fix ensure_valid_locale_persisted and change public interface of service 2020-07-03 16:39:24 +02:00
Matt-Yorkley
cc7b5e2df3 Add pending test for setting locale from cookies during login
This test currently fails
2020-07-03 16:39:23 +02:00
Luis Ramos
804450bcc5 Fix buggy spec
The different shipping method was in the page but only as an option in the dropdown, not as the final selected shipping method! That was the cause of bug #5694. We now check for the label Shipping which preceeds the final shipping method selection in the order page
2020-07-03 15:35:13 +01:00
Luis Ramos
b883a0eb75 Fix easy rubocop issues in shipment_spec 2020-07-03 13:48:12 +01:00
Luis Ramos
7b89b52ab8 Transpec shipment_spec brough from spree_core 2020-07-03 13:48:12 +01:00
Luis Ramos
07a44cfaf3 Update selected shipping rate if there is an original shipping method to keep and it is different from the one selected through the Estimator process
Make sure the shipment is saved (callbacks!) whenever the ship method has changed in the refresh_rates process
2020-07-03 13:48:12 +01:00
Luis Ramos
cd60ee2116 Use flat_map to make ship methods selection faster 2020-07-03 13:48:08 +01:00
Matt-Yorkley
ab63d2234c Guard against nils in conditions 2020-07-03 14:22:32 +02:00
Matt-Yorkley
078726dcca Add explanatory comment on saving selected locale in cookies 2020-07-03 14:21:45 +02:00
Matt-Yorkley
dab0add492 Make conditional more concise 2020-07-03 14:20:51 +02:00
Matt-Yorkley
ebffa381c6 Update cookies[:locale] logic 2020-07-03 14:06:05 +02:00
Matt-Yorkley
faa7c0a7c5 Extract save_cookies_from_locale comment-method 2020-07-03 14:03:52 +02:00
Matt-Yorkley
02549d1b0f Extract all locale-setting logic to a service 2020-07-03 13:44:13 +02:00
Matt-Yorkley
7a00a3ba1e Rename method and add explanatory comment 2020-07-03 11:52:21 +02:00
Matt-Yorkley
c726340ba3 Extract #save_locale_from_params comment-method 2020-07-03 11:48:39 +02:00
Luis Ramos
fcaa9d1b37 Remove extra space from base translations in closing and welcome to 2020-07-03 10:32:09 +01:00
Matt-Yorkley
d2db9b3a66 Merge pull request #5599 from luisramos0/submit_on_enteer
Make Enter submit the form on both products and orders admin
2020-07-03 11:14:57 +02:00
Luis Ramos
91026e6606 Merge pull request #5601 from jeduardo824/enhancement/5454-links-to-shops-in-new-tabs
Enhancement/5454 make links to shops under Groups > Producers open in new tab
2020-07-02 23:51:59 +01:00
Luis Ramos
d9ab7a8d49 Merge pull request #5667 from mkllnk/shopping-spec
Stabilise shopping specs and open them for change
2020-07-02 23:51:25 +01:00
Luis Ramos
758bb17142 Fix some easy rubocop issues and add some exceptions to to manual todo list 2020-07-02 21:24:15 +01:00
Luis Ramos
659de3d24d Replay spree commit a4622ee13a723f0dba2943967b445b9989f67fb2 to fix issue introduced in spree 2.1 2020-07-02 21:24:15 +01:00
Luis Ramos
21ec6ccf0d Remove unused sort packages from prioritizer 2020-07-02 21:24:15 +01:00
Luis Ramos
d323c5bdcb Simplify packer and coordinator baed on the fact that there's only one stock_location so there will only be one package per order 2020-07-02 21:24:15 +01:00
Luis Ramos
ff046f7a6c Remove conditionals related to Config.track_inventory_levels, this config is always true in OFN 2020-07-02 21:24:14 +01:00
Luis Ramos
ee937988e8 Fix easy rubocop issues 2020-07-02 21:24:14 +01:00
Luis Ramos
ee66e37521 Move adjuster, estimator, packer and prioritizer to order management engine 2020-07-02 21:24:14 +01:00
Luis Ramos
83974a832c Move Coordinator from Spree::Stock to OrderManagement::Stock 2020-07-02 21:24:14 +01:00
Luis Ramos
01b1abbd52 Bring method from Spree::Order so that we can move Coordiantor to the order management engine 2020-07-02 21:24:14 +01:00
Luis Ramos
b487185a65 Remove package factory, it is no longer needed, we can just call the Package class in the two places where it is used 2020-07-02 21:24:14 +01:00
Luis Ramos
f0b3ed0d79 Merge Spree::Stock::Package into OrderManagement::Stock::Package 2020-07-02 21:24:14 +01:00
Luis Ramos
943cb7bf05 Move Stock::Package to OrderManagement::Stock::Package 2020-07-02 21:24:14 +01:00
Luis Ramos
1b28592f58 Now that the stock code is on out side we can clean up!
Remove everything related to splitters (including bringing environment.rb so we remove the splitters variable from it
2020-07-02 21:24:14 +01:00
Luis Ramos
8e116dd58a Make ensure_correct_adjustment a public method because we call it in OFN 2020-07-02 21:24:14 +01:00
Luis Ramos
46cf106047 Fix shipment spec brought from spree 2020-07-02 21:24:14 +01:00
Luis Ramos
2e33e02d7f Remove dead code, this method was removed in spree 2.0.4 2020-07-02 21:24:14 +01:00
Luis Ramos
7a03f57da0 Merge shipment decorator with class brought from spree_core 2020-07-02 21:24:14 +01:00
Luis Ramos
494251b7cf Fix simple rubocop issues 2020-07-02 21:24:14 +01:00
Luis Ramos
4e5259f491 Bring shipment from spree_core 2020-07-02 21:24:14 +01:00
Luis Ramos
55a4021157 Convert to modern rspec syntax 2020-07-02 21:24:14 +01:00
Luis Ramos
bdb40d68e9 Fix easy rubocop issues 2020-07-02 21:24:14 +01:00
Luis Ramos
b7255130b6 Bring Package from spree_core 2020-07-02 21:24:14 +01:00
Luis Ramos
0ca8b6aab6 Fix easy rubocop issue 2020-07-02 21:24:14 +01:00
Luis Ramos
3e14c9777e Merge decorator with class brought from spree_core 2020-07-02 21:24:14 +01:00
Luis Ramos
d505fc2131 Bring availability validator from spree_core 2020-07-02 21:24:14 +01:00
Luis Ramos
720ad9de0e Convert specs to modern rsspec syntax 2020-07-02 21:24:14 +01:00
Luis Ramos
feadbb086f Adapt spec to OFN context 2020-07-02 21:24:14 +01:00
Luis Ramos
b16db2f40e Fix easy rubocop issues 2020-07-02 21:24:14 +01:00
Luis Ramos
8c3b8c4db5 Bring estimator from spree_core 2020-07-02 21:24:14 +01:00
Luis Ramos
4711a7469a Adapt coordinator spec to ofn and remove spec that is not applicable (multi stock locations) 2020-07-02 21:24:14 +01:00
Luis Ramos
69b9cfbad2 Make packer use BasicSplitter by default 2020-07-02 21:24:14 +01:00
Luis Ramos
fdc085f701 Convert to modern rspec and remove specs not applicable to ofn 2020-07-02 21:24:14 +01:00
Luis Ramos
ccf928df12 Fix simple rubocop issues 2020-07-02 21:24:14 +01:00
Luis Ramos
e0f9894b7a Bring packer from spree_core 2020-07-02 21:24:14 +01:00
Luis Ramos
ec50a788a6 Fix easy rubocop issues 2020-07-02 21:24:14 +01:00
Luis Ramos
c2ec34ab9f Bring coordinator from spree_core 2020-07-02 21:24:14 +01:00
Luis Ramos
a6d7acb6f1 Convert spec to modern rspec syntax 2020-07-02 21:24:14 +01:00
Luis Ramos
eb13595fd3 Fix simple rubocop issues 2020-07-02 21:24:14 +01:00
Luis Ramos
3ae2877d4e Bring adjuster and prioritizer from spree_core 2020-07-02 21:24:14 +01:00
Luis Ramos
d18fec7125 Move Base splitter from main app models to order management engine services 2020-07-02 21:24:14 +01:00
Luis Ramos
735ee1e7ed Fix simple rubocop issues 2020-07-02 21:24:14 +01:00
Luis Ramos
4fce506201 Bring splitter/base from spree 2020-07-02 21:24:14 +01:00
Luis Ramos
658c77f3f5 Merge pull request #5701 from Matt-Yorkley/noimage
Noimage
2020-07-02 20:17:04 +01:00
Luis Ramos
510449547f Merge pull request #5644 from coopdevs/manage-font-with-asset-pipeline
Manage OFN's font through the asset pipeline
2020-07-02 20:09:08 +01:00
Matt-Yorkley
8fc407a9d5 Extract repeated variant thumbnail code to a shared partial 2020-07-02 18:36:43 +02:00
Matt-Yorkley
eeb6c57f99 Update missing image paths in other order views 2020-07-02 18:36:27 +02:00
Matt-Yorkley
b10fd99a53 Update all locales with the latest Transifex translations 2020-07-02 16:46:53 +02:00
Matt-Yorkley
e328dc7657 Merge pull request #5717 from openfoodfoundation/transifex
Transifex
2020-07-02 16:43:58 +02:00
Pau Perez
dee61e8b82 Index spree_state_changes.stateful_id column
This speeds up a great deal one of the most awful queries our DB servers
execute. It's not rare to see traces above 20s in Datadog 😱.

In staging, with no traffic, we go from

```
EXPLAIN ANALYZE SELECT COUNT ( * )
FROM spree_state_changes
WHERE spree_state_changes . stateful_id = 2024
  AND spree_state_changes . stateful_type = 'Spree::Order';

Planning time: 0.142 ms
Execution time: 9.073 ms
```

to

```
EXPLAIN ANALYZE SELECT COUNT ( * )
FROM spree_state_changes
WHERE spree_state_changes . stateful_id = 2024
  AND spree_state_changes . stateful_type = 'Spree::Order';

Planning time: 0.284 ms
Execution time: 0.202 ms
```
2020-07-02 15:39:08 +02:00
Matt-Yorkley
4e08d2049f Ensure a valid locale is persisted during login
This action has to be performed here and not in I18nHelper, as spree_current_user is not initialized yet during the other checks / setting the selected locale value in the app
2020-07-02 15:33:19 +02:00
Matt-Yorkley
91880cdbec Make I18nHelper #available_locale? method public 2020-07-02 14:35:59 +02:00
Matt-Yorkley
d70d61439a Always return an available locale 2020-07-02 14:35:59 +02:00
Matt-Yorkley
aa6f4d4fb9 Don't set unavailable locales on the current user 2020-07-02 14:35:59 +02:00
Matt-Yorkley
8dfaea629b Refactor current_user_locale to a new method 2020-07-02 14:35:59 +02:00
Matt-Yorkley
3326366c6e Add specs for applying stored locales during login 2020-07-02 14:35:58 +02:00
dependabot-preview[bot]
cc34f126ec Bump mini_racer from 0.2.14 to 0.2.15
Bumps [mini_racer](https://github.com/discourse/mini_racer) from 0.2.14 to 0.2.15.
- [Release notes](https://github.com/discourse/mini_racer/releases)
- [Changelog](https://github.com/rubyjs/mini_racer/blob/master/CHANGELOG)
- [Commits](https://github.com/discourse/mini_racer/compare/v0.2.14...v0.2.15)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-07-02 11:22:57 +00:00
Pau Pérez Fabregat
4ced16c206 Merge pull request #5709 from luisramos0/empty
Replace empty? with blank? and replace unless empty? with if present?
2020-07-02 11:36:37 +02:00
Matt-Yorkley
26c511d47e Remove taxon icons
These icons are inconsistently used across instances and have already been removed in a few places in the app in the mobile UX redesign.
2020-07-02 11:25:17 +02:00
Transifex-Openfoodnetwork
1b8669bb0b Updating translations for config/locales/en_NZ.yml 2020-07-02 18:28:33 +10:00
Pau Pérez Fabregat
c1b635903c Merge pull request #5658 from openfoodfoundation/transifex
Transifex
2020-07-02 10:05:16 +02:00
dependabot-preview[bot]
eff9d6edd0 Bump database_cleaner from 1.7.0 to 1.8.5
Bumps [database_cleaner](https://github.com/DatabaseCleaner/database_cleaner) from 1.7.0 to 1.8.5.
- [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.7.0...v1.8.5)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-07-02 00:06:17 +00:00
Luis Ramos
7dcc2bb27c Merge pull request #5703 from Matt-Yorkley/checkout-addresses
Checkout addresses
2020-07-01 19:06:29 +01:00
Luis Ramos
e8417b8be6 Remove specs testing filtering of master variants
Master variants are not used in the report
2020-07-01 18:13:30 +01:00
Luis Ramos
6555f8bfba Add specs to cover stripeSCA refunds
Duplication between stripe connect and stripeSCA is done on purpose so we can easily delete stripeConnect code when the migration is done
2020-07-01 18:13:27 +01:00
Pau Pérez Fabregat
66ddde1808 Merge pull request #5682 from Matt-Yorkley/in-digest-ion
Move default versions of Paperclip-managed images to /public
2020-07-01 18:02:15 +02:00
Pau Pérez Fabregat
28376b1056 Merge pull request #5561 from coopdevs/defend-from-invoice-without-bill-address
Do not print the bill addr. name when there's none
2020-07-01 17:50:09 +02:00
Luis Ramos
2d4326ded3 Replace empty? with blank? which is equivalent but a bit more resilient, returns false for nil
Present is not blank, so unless blank? becomes if present?
2020-07-01 14:08:07 +01:00
Luis Ramos
ce493866f9 Extract refunds specs from payments controller spec 2020-07-01 13:19:38 +01:00
Luis Ramos
ecb1920fa9 Move payment_controller_spec to specific folder so we can break it in more specific parts 2020-07-01 13:14:39 +01:00
Luis Ramos
9e4a793b24 Fix rubocop issues 2020-07-01 13:14:39 +01:00
Luis Ramos
2179cc7faf Make StripeSCA void action make a refund instead
StripeSCA does not support voiding confirmed payment intents so we need to make a refund instead
2020-07-01 13:10:56 +01:00
Luis Ramos
63934b7863 Add space after translation so that translators dont have to guess a space is needed after the translation 2020-07-01 11:56:37 +01:00
Pau Pérez Fabregat
819af03239 Merge pull request #5706 from luisramos0/ent
Fix admin enterprises controller spec
2020-07-01 12:28:19 +02:00
Pau Pérez Fabregat
5a72526107 Merge pull request #5692 from luisramos0/taxonomies
Fix taxonomies flaky spec
2020-07-01 12:26:56 +02:00
Pau Perez
8c371fd0d1 Do not print bill addr. in invoice2 either 2020-07-01 11:27:57 +02:00
Matt-Yorkley
49fb01a3bb Add assign default value of current time whilst altering NOT NULL constraint
This argument in #change_column_null assigns this value where any NULL values are found, but it doesn't alter the table's `:default` value
2020-07-01 10:00:21 +02:00
Luis Ramos
2dce10bec2 Fix admin enterprises controller spec, for some reason the correct controller is not being picked up in the test 2020-06-30 10:49:45 +01:00
Matt-Yorkley
11da385624 Enable pending checkout spec 2020-06-30 11:30:16 +02:00
Matt-Yorkley
3e7f5a4ea9 Update user address tests
I considered deleting these tests, as they're not very good and are testing Rails functionality. I decided to leave them in case something explodes in a future upgrade. For reference: there are issues in Rails 4 when using `object.clone.attributes`, and with assigning a hash containing `created_at` and `updated_at` values with `object.update(attributes_hash)`.
2020-06-30 11:30:16 +02:00
Matt-Yorkley
87cd936c94 Blacklist timestamp attributes when assigning for update
Doing #clone or #dup of an object's attributes then passing it to an #update/#update_attributes call means we are manually passing values for created_at and updated_at, which can cause problems, especially if the object being duped hasn't been persisted yet: in this case we would be manually attempting to save timestamps with nil values, which is not a good idea. Here they are blacklisted from the attributes hash.
2020-06-30 11:30:16 +02:00
Matt-Yorkley
ce8908f53b Use #dup when copying attributes hash
In Rails 4, #clone behaves differently. The attributes hash of the cloned object is shared with the original, it's not a separate object! https://github.com/rails/rails/blob/4-0-stable/activerecord/lib/active_record/core.rb#L217-L220
2020-06-30 11:30:16 +02:00
Matt-Yorkley
abe96c6f32 Add specs for updating existing default addresses during checkout
These specs fail with the "NULL values for created_at / updated_at" errors we've been seeing.
2020-06-30 11:30:14 +02:00
Pau Pérez Fabregat
e69d3e5e0c Merge pull request #5693 from luisramos0/knapsack
Reload knapsack report
2020-06-30 09:43:36 +02:00
Pau Pérez Fabregat
2a1fe3f05f Merge pull request #5684 from openfoodfoundation/dependabot/bundler/ddtrace-0.37.0
Bump ddtrace from 0.36.0 to 0.37.0
2020-06-30 09:41:48 +02:00
Matt-Yorkley
57ba2481c4 Require timestamps 2020-06-30 09:09:35 +02:00
Pau Perez
0c93de8298 Manage OFN's font through the asset pipeline 2020-06-30 09:02:36 +02:00
Pau Perez
23178763b0 Do not print the bill addr. name when there's none
The error

```
ActionView::Template::Error: undefined method `full_name' for nil:NilClass
```

happens a few times a day and raises exceptions we don't pay attention to.
They add unnecessary noise that hides other more relevant issues.

This, however, is a symptom of a deeper data integrity problem that needs
solving at some point. This is just a countermeasure.
2020-06-30 08:46:01 +02:00
Luis Ramos
de8b97b2e1 Merge pull request #5526 from cillian/drop-blockenspiel
Drop blockenspiel
2020-06-29 20:09:26 +01:00
Matt-Yorkley
be0131b94c Merge pull request #5645 from coopdevs/fix-scss-deprecation-warning
Rename *.css.scss to *.scss
2020-06-29 20:36:42 +02:00
Matt-Yorkley
bd0e4c75c4 Merge pull request #5636 from fatihorhan/make-user-guide-links-consistent
Update Sell page to use User Guide links from configuration
2020-06-29 20:33:00 +02:00
Matt-Yorkley
b441ac2644 Update paths to "noimage" images 2020-06-29 20:07:08 +02:00
Matt-Yorkley
5bec887f93 Move /assets/images/noimage/* to /public/noimage/* 2020-06-29 19:58:38 +02:00
Cillian O'Ruanaidh
a9664e103d Merge latest :master into :drop-blockenspiel branch and resolve conflicts related to Rubocop fixes. 2020-06-29 18:11:08 +01:00
Pau Perez
c892f9c69b Make button border radius consistent 2020-06-29 12:01:59 +02:00
Transifex-Openfoodnetwork
bb80c81097 Updating translations for config/locales/en_US.yml 2020-06-29 05:22:13 +10:00
Luis Ramos
6516037420 Reload knapsack report 2020-06-27 20:36:33 +01:00
Luis Ramos
10b8c2b789 Relax the assertion and dont check row number so that it passes even if order of elements is not the same 2020-06-27 15:54:58 +01:00
Matt-Yorkley
b325e48957 Update content config spec to use new default image paths 2020-06-27 10:32:38 +02:00
Matt-Yorkley
a5f541b59d Update admin logo path 2020-06-27 08:53:05 +02:00
Matt-Yorkley
ff8cb43717 Move default versions of Paperclip-managed images to /public
Image paths for these files are handled by Paperclip, which (with our current version) does not handle fingerprints on assets. Therefore we need to make these images available under /public
2020-06-27 08:45:59 +02:00
Cillian O'Ruanaidh
1199a356c4 Extract out a JS service for calculating where to centre the map when given a set of coordinates.
Also removing the hardcoded default latitude/longitude from open_street_map directive because it's probably not very likely that it will be needed.
2020-06-26 22:26:39 +01:00
dependabot-preview[bot]
032a70fa7e Bump ddtrace from 0.36.0 to 0.37.0
Bumps [ddtrace](https://github.com/DataDog/dd-trace-rb) from 0.36.0 to 0.37.0.
- [Release notes](https://github.com/DataDog/dd-trace-rb/releases)
- [Changelog](https://github.com/DataDog/dd-trace-rb/blob/master/CHANGELOG.md)
- [Commits](https://github.com/DataDog/dd-trace-rb/compare/v0.36.0...v0.37.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-26 19:16:32 +00:00
Transifex-Openfoodnetwork
4f2d32b262 Updating translations for config/locales/tr.yml 2020-06-27 04:22:14 +10:00
Cillian O'Ruanaidh
c40697cf61 If no enterprises have been geocoded yet make sure Open Street Map still displays correctly.
Before it would display a gray/blank div instead of map because the map latitude, longitude couldn't be calculated without geocoded enterprises. This adds a setting so the default coordinates can be set even if no geocoded enterprises present.
2020-06-26 15:45:58 +01:00
Luis Ramos
5e3d7be545 Merge pull request #5630 from openfoodfoundation/dependabot/bundler/ransack-1.8.10
Bump ransack from 1.2.3 to 1.8.10
2020-06-26 13:37:03 +01:00
Transifex-Openfoodnetwork
0d5ad6fac3 Updating translations for config/locales/en_IE.yml 2020-06-26 21:04:54 +10:00
Transifex-Openfoodnetwork
a1227d93ae Updating translations for config/locales/en_GB.yml 2020-06-26 20:27:34 +10:00
Transifex-Openfoodnetwork
f47271ba98 Updating translations for config/locales/fr.yml 2020-06-26 16:59:37 +10:00
Transifex-Openfoodnetwork
1266bcde1b Updating translations for config/locales/en_FR.yml 2020-06-26 16:56:19 +10:00
Maikel Linke
e567348a69 Ensure that enough time passes for caching spec 2020-06-26 14:24:01 +10:00
Maikel Linke
4b25c2d49a Correct typo in file naming 2020-06-26 14:21:21 +10:00
Maikel Linke
d7c9bb2e5a Navigate more efficiently in spec
The spec is not supposed to test the navigation to the shop. Going
directly to the shop reduces the test execution time by 7%.
2020-06-26 09:55:57 +10:00
Maikel Linke
70347148a1 Stabilise shopping specs and open them for change
The way we add items to the cart will change. Encapsulating that code in
a common place will make the mobile ux work clearer and avoid merge
conflicts.

The waiting for background requests has also been improved and made more
consistent which should make these specs more reliable.
2020-06-26 09:55:57 +10:00
Maikel Linke
a0c7dc2ccb Remove leftover empty spec context 2020-06-26 09:55:57 +10:00
Luis Ramos
5929b9c1e5 Merge pull request #5627 from openfoodfoundation/dependabot/bundler/geocoder-1.6.3
[Security] Bump geocoder from 1.5.2 to 1.6.3
2020-06-25 20:34:19 +01:00
Luis Ramos
2ad2836ac6 Merge pull request #5563 from luchiago/fix-missing-closed-oc-info-i18n
add missing i18n key for closed OC
2020-06-25 20:33:55 +01:00
Luis Ramos
93a2e57bc6 Merge pull request #5538 from jeduardo824/bug/4592-payment-methods-table-in-dashboard
Fix Payment Methods table to show proper provider name
2020-06-25 20:32:04 +01:00
Luis Ramos
cb2ccf76d2 Merge pull request #5590 from rmklaus12/5558-shippingcategory-translation
Added translation key to config/locales/en.yml file for shipping_cat…
2020-06-25 20:31:48 +01:00
Luis Ramos
f44533bbd5 Merge pull request #5589 from rmklaus12/2617-mainmenu-translation
Added more key to en.yml to translate More dropdown text
2020-06-25 20:27:46 +01:00
Luis Ramos
bfc134c9e6 Merge pull request #5615 from openfoodfoundation/dependabot/bundler/acts-as-taggable-on-4.0.0
Bump acts-as-taggable-on from 3.5.0 to 4.0.0
2020-06-25 20:26:59 +01:00
Pau Pérez Fabregat
7338f196e9 Merge pull request #5663 from luisramos0/constraints
Make db timestamps nullable
2020-06-25 13:14:41 +02:00
Luis Ramos
68946a765e Make timestamps nullable 2020-06-25 08:47:18 +01:00
Transifex-Openfoodnetwork
0b48a53c2f Updating translations for config/locales/tr.yml 2020-06-25 16:02:01 +10:00
Transifex-Openfoodnetwork
54ce5d8c0f Updating translations for config/locales/en_CA.yml 2020-06-25 09:15:11 +10:00
Luis Ramos
ba50491c6d Restructure the spec a little 2020-06-24 16:16:58 +01:00
Luis Ramos
34207fc20f Bring changes to stock_item from spree 2.1, the previous version was from spree 2.0.4 2020-06-24 16:16:58 +01:00
Luis Ramos
e12e50aa84 Move rubocop exception to rubocop todo 2020-06-24 16:16:58 +01:00
Kristina Lim
20fd3c2642 Reset negative count on hand in existing non backorderable stock items 2020-06-24 16:16:58 +01:00
Kristina Lim
4694f1b21a Require count on hand in non backorderable StockItem to be positive or zero
Fix setting of count on hand in line item specs
2020-06-24 16:16:45 +01:00
Kristina Lim
e53913756c Add lock_version to Spree::StockItem 2020-06-24 16:15:37 +01:00
Kristina Lim
774b3720d5 Update stock item count on hand in Spree core specs 2020-06-24 16:15:09 +01:00
Kristina Lim
13ecf0ec73 Update specs for StockItem with transpec 2020-06-24 16:15:09 +01:00
Kristina Lim
fb20f220c0 Use break instead of return in StockItem#process_backorders
We are not using the return value of this method anywhere.
2020-06-24 16:15:09 +01:00
Kristina Lim
0a1cb71ee4 Ignore Rails/UniqueValidationWithoutIndex for unique index of StockItem#stock_location 2020-06-24 16:15:09 +01:00
Kristina Lim
bc530b92b5 Address violation of Rubocop Rails/Validation: 2020-06-24 16:15:09 +01:00
Kristina Lim
2acf61fd0f Address violation of Rubocop Rails/Delegate 2020-06-24 16:15:09 +01:00
Kristina Lim
1e8543dfe7 Address violation of Rubocop Rails/ReadWriteAttribute 2020-06-24 16:15:09 +01:00
Kristina Lim
22c0693beb Address violation of Rubocop Style/NumericPredicate 2020-06-24 16:15:09 +01:00
Kristina Lim
d1725014c4 Auto-correct violationso of Rubocop Layout/* 2020-06-24 16:15:09 +01:00
Kristina Lim
0fd66f9a55 Auto-correct violationso of Rubocop Style/* 2020-06-24 16:15:09 +01:00
Kristina Lim
b783118700 Auto-correct violationso of Rubocop Style/RedundantSelf 2020-06-24 16:15:09 +01:00
Kristina Lim
84d973d383 Specify RSpec.describe in StockItem spec file 2020-06-24 16:15:09 +01:00
Kristina Lim
0e711832fd Bring Spree::StockItem code from spree_core into the app 2020-06-24 16:15:09 +01:00
Transifex-Openfoodnetwork
8d4a9cba21 Updating translations for config/locales/nb.yml 2020-06-24 23:33:12 +10:00
Steve Roberts
3d2a0d4d67 Remove UI and API engine as we will not host the swagger spec right now 2020-06-24 15:51:08 +10:00
Steve Roberts
9541dbf495 Fix order api spec and add incomplete generated swagger.yml 2020-06-24 15:15:18 +10:00
Steve Roberts
b59dbebba6 Revert Gemfile change to specific version of rubocop
Turns out it wasn't necessary. I thought it was needed to install a compatible version of rswag
2020-06-24 13:21:49 +10:00
Steve Roberts
e619ae621c Add rswag and coverage for orders endpoint
Add coverage for core orders endpoint queries (WIP)
2020-06-24 13:21:49 +10:00
Steve Roberts
9e19d79337 Add more detail on the ransack based queries in the description 2020-06-24 13:21:49 +10:00
Steve Roberts
8b79d41b81 Update orders swagger spec and fix api_key access to orders endpoint 2020-06-24 13:21:49 +10:00
Luis Ramos
9e39d970ca Result of running db:migrate 2020-06-23 19:19:18 +01:00
Pau Pérez Fabregat
9e730e6445 Merge pull request #5660 from coopdevs/fix-spree-preferences
Migrate all spree pref. keys to the new format
2020-06-23 18:00:01 +02:00
Transifex-Openfoodnetwork
99096eee2d Updating translations for config/locales/ca.yml 2020-06-24 01:41:21 +10:00
Pau Perez
a81e17f23c Flush the cache
So all preferences are fetch from DB now that they have changed.
2020-06-23 17:23:22 +02:00
Pau Perez
190797717a Defend from the running the migration twice
We only migrate preferences if there are any to migrate.
2020-06-23 17:22:11 +02:00
Pau Perez
0ffa7b3734 Migrate all spree pref. keys to the new format
We realized in Spree v2.1 they follow this format instead and this is
what's causing issues to Katuma production.

This will remove the duplicate ones and convert the current preferences
to the new thus, keeping the values.
2020-06-23 16:21:20 +02:00
Transifex-Openfoodnetwork
923b905a9c Updating translations for config/locales/en_GB.yml 2020-06-23 22:30:53 +10:00
Pau Pérez Fabregat
973ea2ea2d Merge pull request #5641 from openfoodfoundation/transifex
Transifex
2020-06-23 10:43:26 +02:00
Pau Pérez Fabregat
3939febc2f Merge pull request #5653 from luisramos0/rubocop_refresher
Auto correct rubocop, refresh todo lists and fix some more rubocop issues
2020-06-23 10:25:59 +02:00
Luis Ramos
91fc0cd26f Adapt specs to new Ar method update that replaces update_attributes 2020-06-22 17:39:20 +01:00
Luis Ramos
f004b3d573 Fix rubocop issue 2020-06-22 17:39:20 +01:00
Luis Ramos
b49eef5fa9 Fix rubocop issue 2020-06-22 17:39:20 +01:00
Luis Ramos
1c550a594f Fix rubocop issue 2020-06-22 17:39:20 +01:00
Luis Ramos
0ba1642bd2 Fix rubocop issues 2020-06-22 17:39:20 +01:00
Luis Ramos
1e5975c6e2 Fix rubocop issues 2020-06-22 17:39:20 +01:00
Luis Ramos
aa14fd236c Fix rubocop issue 2020-06-22 17:39:20 +01:00
Luis Ramos
ab59ab45f5 Use auto correct to fix rubocop issues 2020-06-22 17:39:20 +01:00
Luis Ramos
f54abbd376 Fix rubocop issues 2020-06-22 17:39:20 +01:00
Luis Ramos
730959f85f Fix rubocop issue 2020-06-22 17:39:20 +01:00
Luis Ramos
8870dc4b06 Move rubocop exception to code 2020-06-22 17:39:20 +01:00
Luis Ramos
1b5f9f105a Fix block alignment 2020-06-22 17:39:20 +01:00
Luis Ramos
ed5fc29c44 Fix hash alignment issue 2020-06-22 17:39:20 +01:00
Luis Ramos
ff68303ef6 Fix long lines 2020-06-22 17:39:20 +01:00
Luis Ramos
0f2e07cc2d Fix long lines 2020-06-22 17:39:20 +01:00
Luis Ramos
0e3b5ad4c3 Revert rubocop auto correct because update! is a method in the adjustment model 2020-06-22 17:39:17 +01:00
Luis Ramos
41ff406e86 Fix rubocop issue by avoiding rails method name update_attributes 2020-06-22 16:51:46 +01:00
Luis Ramos
6a7ed6e0c9 Rebuild .rubocop_manual_todo.yml 2020-06-22 16:51:46 +01:00
Luis Ramos
4e9c21d525 Add new regenerated rubocop_todo 2020-06-22 16:51:46 +01:00
Luis Ramos
b879439d58 Use rubocop auto correct to fix Style/SafeNavigation issue 2020-06-22 16:51:46 +01:00
Luis Ramos
1b6e51c79e Fix rubocop issue 2020-06-22 16:51:46 +01:00
Luis Ramos
f848a89a00 Rename update_attributes to update #rails4 2020-06-22 16:51:43 +01:00
Luis Ramos
8a61257547 Rename all before_filter to before_action, it's the same function with a new name 2020-06-22 13:11:57 +01:00
Luis Ramos
46a1c1cf26 Fix rubocop issue 2020-06-22 13:08:54 +01:00
Luis Ramos
adfe1f89b6 Revert previous rubocop auto correct fix that breaks the cart spec 2020-06-22 13:08:38 +01:00
Luis Ramos
473fee19eb Fix rubocop issues 2020-06-22 13:03:18 +01:00
Luis Ramos
6eebb0e399 Use rubocop autocorrect to fix rubocop issue 2020-06-22 12:58:33 +01:00
Luis Ramos
e574e254db Use rubocop autocorrect to fix rubocop issue 2020-06-22 12:57:12 +01:00
Luis Ramos
3b91dd9dea Use rubocop auto-correct to fix more issues 2020-06-22 12:51:47 +01:00
Luis Ramos
5d710f1e24 Use ruboccop autocorrect to fix issues 2020-06-22 12:46:07 +01:00
Luis Ramos
fb92745db4 Fix rubocop issues 2020-06-22 12:41:31 +01:00
Luis Ramos
8a9dae0ee2 Run rubocop autocorrect
This is the result of bundle exec rubocop --auto-correct
2020-06-22 12:23:10 +01:00
Luis Ramos
15babd8bc4 Merge pull request #5651 from luisramos0/xhr
[Rails 4.1] Change for xhr rquest to avoid csrf during testing
2020-06-22 12:20:41 +01:00
Luis Ramos
57d925a7de Add new rubocop rules and fix the single offence 2020-06-22 12:19:19 +01:00
Lucas Hiago
357c2c7b25 change for xhr to avoid csrf during testing 2020-06-21 20:22:33 +01:00
Transifex-Openfoodnetwork
eb55d00051 Updating translations for config/locales/en_US.yml 2020-06-20 03:34:37 +10:00
Transifex-Openfoodnetwork
c5d3156351 Updating translations for config/locales/fr.yml 2020-06-20 02:37:11 +10:00
Transifex-Openfoodnetwork
28a6f694de Updating translations for config/locales/en_FR.yml 2020-06-20 02:34:30 +10:00
Pau Pérez Fabregat
dd9d9e3316 Merge pull request #5639 from luchiago/fix-seeds-on-setup
FIx setup seed
2020-06-19 16:49:16 +02:00
Pau Perez
f36e08a163 Rename *.css.scss to *.scss
This fixes the following deprecation warning

```
DEPRECATION WARNING: Extra .css in SCSS file is unnecessary. Rename /usr/src/app/app/assets/stylesheets/darkswarm/variables.css.scss to /usr/src/app/app/assets/stylesheets/darkswar
m/variables.scss. (called from _app_views_layouts_darkswarm_html_haml___3990351141569700945_46957256630860 at /usr/src/app/app/views/layouts/darkswarm.html.haml:18)
(...)
```
2020-06-19 16:29:08 +02:00
Matt-Yorkley
66de0a4a71 Merge pull request #5642 from Matt-Yorkley/fix-table-width
Ensure cart page table is full-width
2020-06-19 14:27:00 +02:00
Matt-Yorkley
cda5a042b3 Ensure cart page table is full-width 2020-06-19 12:56:47 +02:00
Transifex-Openfoodnetwork
fd6cbe064d Updating translations for config/locales/tr.yml 2020-06-19 20:27:09 +10:00
Pau Pérez Fabregat
db80992326 Merge branch 'master' into drop-blockenspiel 2020-06-19 12:12:10 +02:00
Matt-Yorkley
444097c75f Merge pull request #5559 from luisramos0/display_only_shop
Make display only shops work again
2020-06-19 11:12:55 +02:00
Matt-Yorkley
be4a4c48d9 Merge pull request #5480 from Matt-Yorkley/mobile-cart-restyle
[Mobile] Cart Dropdown
2020-06-19 09:25:04 +02:00
Matt-Yorkley
b189d06eb7 Update shopping CTA logic
Shows "Take me shopping!" button on /shops page if a shop is selected
2020-06-19 08:59:43 +02:00
Lucas Hiago
52da896b03 Fix name when try to search on seed 2020-06-18 21:06:04 -03:00
Eduardo
573f7b1087 make shop links on the producers page open in new tab 2020-06-18 19:55:06 -03:00
Matt-Yorkley
ff6ba8819f Use image_tag helper with relative paths when loading static images in /app/assets/images folder
This seems to be needed for Rails 4
2020-06-18 22:22:31 +02:00
Matt-Yorkley
7c7ab322bb Ensure cart-header has the same height when the cart is empty
Fixes a minor visual bug
2020-06-18 22:21:55 +02:00
Matt-Yorkley
5a480439ca Remove test for items from previous orders looking in cart dropdown
This feature has been removed
2020-06-18 22:21:55 +02:00
Matt-Yorkley
a6edc1c973 Enable control over body scroll with BodyScroll service 2020-06-18 22:21:55 +02:00
Matt-Yorkley
ed086c2db5 Add character limit to product and variant names in cart sidebar 2020-06-18 22:21:55 +02:00
Matt-Yorkley
2cc02d9711 Make cart header stick to top of cart 2020-06-18 22:21:55 +02:00
Matt-Yorkley
886df0e87d Fix cart page button style regression 2020-06-18 22:21:55 +02:00
Matt-Yorkley
076ecfdb43 Adjust scrollbar visibility in sidebar 2020-06-18 22:21:55 +02:00
Matt-Yorkley
7093e0f7a3 Use plural or singular description in cart, depending on number of items 2020-06-18 22:21:55 +02:00
Matt-Yorkley
850e1b0364 Reduce specificity in cart css rules 2020-06-18 22:21:55 +02:00
Matt-Yorkley
b58ccc02ee Adjust shop.css.scss and remove indentation 2020-06-18 22:21:55 +02:00
Matt-Yorkley
234f0f94cf Change images in serializer to use product.images over variant.images 2020-06-18 22:21:55 +02:00
Matt-Yorkley
9c6dd1b324 Add comment on z-index 2020-06-18 22:21:55 +02:00
Matt-Yorkley
1eb9d11e27 Update colour variables 2020-06-18 22:21:55 +02:00
Matt-Yorkley
17c2721ab6 Remove unused translation keys 2020-06-18 22:21:55 +02:00
Matt-Yorkley
656c23f407 Replace previous min-width breakpoint.
This was mistakenly changed to use a max-width breakpoint in a previous commit.
2020-06-18 22:21:55 +02:00
Matt-Yorkley
1d8386bee8 Disable two SCSS-lint rules 2020-06-18 22:21:55 +02:00
Matt-Yorkley
c0282b57b6 Fix some linting warnings 2020-06-18 22:21:55 +02:00
Matt-Yorkley
042b4fc395 Remove tests for viewing previous order items in cart dropdown
This behavior has been removed
2020-06-18 22:21:55 +02:00
Matt-Yorkley
bd97939062 Move homepage "register here" CTA to bottom of screen.
The CTA breaks the layout when the new cart sidebar is open. I can't see a nice way to keep it at the top without making a mess.
2020-06-18 22:21:55 +02:00
Matt-Yorkley
2bcadd52e8 Hide "Take me shopping" button on /shop and /shops pages 2020-06-18 22:21:55 +02:00
Matt-Yorkley
387a5ec950 Implement "Take me shopping" button 2020-06-18 22:21:55 +02:00
Matt-Yorkley
10b8470e29 Set a fixed width for cart sidebar on tablet up 2020-06-18 22:21:55 +02:00
Matt-Yorkley
4acb08e52b Update hamburger menu icon 2020-06-18 22:21:55 +02:00
Matt-Yorkley
786348bc71 Remove colon from cart total text 2020-06-18 22:21:55 +02:00
Matt-Yorkley
8ac971651c Fix flaky spec 2020-06-18 22:21:55 +02:00
Matt-Yorkley
459e53f43d Adjust specs for new cart display 2020-06-18 22:21:55 +02:00
Matt-Yorkley
2f2ef28351 Use links instead of buttons and fix up styles 2020-06-18 22:21:55 +02:00
Matt-Yorkley
b74b9fbd1d Shift sidebar down vertically (below navigation) and bring navigation up (z-index) 2020-06-18 22:21:55 +02:00
Matt-Yorkley
4a0f43a831 Ensure cart item count is visible in header cart button (for screens smaller than desktop) 2020-06-18 22:21:55 +02:00
Matt-Yorkley
439674ad9c Make cart view fullwidth on mobile 2020-06-18 22:21:55 +02:00
Matt-Yorkley
8ca0119f5d Add empty cart feedback 2020-06-18 22:21:55 +02:00
Matt-Yorkley
95686eda78 Update translations 2020-06-18 22:21:54 +02:00
Matt-Yorkley
7efccac7bb Add close functionality to close button 2020-06-18 22:21:54 +02:00
Matt-Yorkley
4362b8b25b Improve line spacing on cart product list 2020-06-18 22:21:54 +02:00
Matt-Yorkley
be8c0f3600 Remove old cart dropdown view and directive 2020-06-18 22:21:54 +02:00
Matt-Yorkley
33a2dd100e Add new layout for cart sidebar 2020-06-18 22:21:54 +02:00
Matt-Yorkley
400fce8ef9 Separate cart page and cart dropdown styles 2020-06-18 22:21:54 +02:00
Matt-Yorkley
b4e5542e5f Extract re-usable sidebar styes 2020-06-18 22:21:54 +02:00
Matt-Yorkley
a8b981e9cd Add product thumbnais to serializer for cart dropdown images 2020-06-18 22:21:54 +02:00
Matt-Yorkley
b1ce7f2c15 Simplify product naming in cart 2020-06-18 22:21:54 +02:00
Matt-Yorkley
85abfd2056 Create Cart sidebar and controller 2020-06-18 22:21:54 +02:00
Matt-Yorkley
7290d68687 Update all locales with the latest Transifex translations 2020-06-18 20:46:41 +02:00
Fatih Orhan
27fb3f156c Update sell.html.haml 2020-06-18 20:36:50 +03:00
Luis Ramos
208623bb0a Merge pull request #5635 from Matt-Yorkley/map-icons
Ensure map icon URLs are correctly generated with fingerprints
2020-06-18 18:02:47 +01:00
Matt-Yorkley
130f639b61 Rename service and use #call 2020-06-18 17:14:50 +02:00
Pau Pérez Fabregat
63f8830eba Merge pull request #5530 from cillian/remove-spinjs
Remove spinjs-rails dependency and use spinning-circles.svg instead.
2020-06-18 16:47:09 +02:00
Matt-Yorkley
5338e782f8 Extract serializer helper method to service so the method isn't globally available 2020-06-18 16:44:15 +02:00
Luis Ramos
66f955f00d Merge pull request #5597 from luisramos0/bo_stripe_payments
[Spree 2.1] Make backoffice stripe payments work in rails 4
2020-06-18 14:50:27 +01:00
Matt-Yorkley
75e57e5c2c Call #image_path on map cluster icon 2020-06-18 14:14:41 +02:00
Matt-Yorkley
9a39cbbbc5 Convert MapConfiguration service to .js.erb.coffee 2020-06-18 14:14:41 +02:00
Matt-Yorkley
551daaadea Use #image_path correctly on map marker icons 2020-06-18 14:14:41 +02:00
Matt-Yorkley
2143122a30 Add helper method for correctly generating with fingerprints in Serializers 2020-06-18 14:14:39 +02:00
Pau Pérez Fabregat
e02191078d Merge pull request #5595 from coopdevs/improve-payments-report-performance
Remove N+1 fetching payments in report
2020-06-18 12:32:40 +02:00
Pau Pérez Fabregat
762b3a4a59 Merge pull request #5618 from openfoodfoundation/dependabot/bundler/httparty-0.18.1
Bump httparty from 0.17.3 to 0.18.1
2020-06-18 12:30:18 +02:00
Pau Pérez Fabregat
98490efbb3 Merge pull request #5600 from openfoodfoundation/transifex
Transifex
2020-06-18 12:29:10 +02:00
Matt-Yorkley
7cc47d652c Merge pull request #5624 from Matt-Yorkley/rails4-image-precompile
v3 image precompile
2020-06-18 12:01:23 +02:00
Luis Ramos
52dd7ce916 Improve comment about httparty 2020-06-18 10:12:37 +01:00
dependabot-preview[bot]
669330ee90 Bump httparty from 0.17.3 to 0.18.1
Bumps [httparty](https://github.com/jnunemaker/httparty) from 0.17.3 to 0.18.1.
- [Release notes](https://github.com/jnunemaker/httparty/releases)
- [Changelog](https://github.com/jnunemaker/httparty/blob/master/Changelog.md)
- [Commits](https://github.com/jnunemaker/httparty/compare/v0.17.3...v0.18.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-18 10:12:37 +01:00
Transifex-Openfoodnetwork
20c41ce69e Updating translations for config/locales/it.yml 2020-06-18 19:11:23 +10:00
Luis Ramos
f6e3e01a10 Extract permitted payment_source attributes from checkout to use them in the backoffice payments controller
Add spec to verify payment source attributes are passed
2020-06-18 09:54:34 +01:00
Transifex-Openfoodnetwork
b5a67e65c5 Updating translations for config/locales/es.yml 2020-06-18 17:42:06 +10:00
Transifex-Openfoodnetwork
da7d36cd0e Updating translations for config/locales/ca.yml 2020-06-18 17:41:48 +10:00
Pau Pérez Fabregat
8f885dd1c5 Merge pull request #5628 from Matt-Yorkley/flaky-caching-spec
Flaky caching spec
2020-06-18 09:37:45 +02:00
Transifex-Openfoodnetwork
fba5f96968 Updating translations for config/locales/nb.yml 2020-06-18 17:33:09 +10:00
Transifex-Openfoodnetwork
0c634c566c Updating translations for config/locales/fr.yml 2020-06-18 17:08:17 +10:00
Transifex-Openfoodnetwork
a9ed081488 Updating translations for config/locales/en_FR.yml 2020-06-18 17:01:02 +10:00
dependabot-preview[bot]
9c643447c2 Bump ransack from 1.2.3 to 1.8.10
Bumps [ransack](https://github.com/activerecord-hackery/ransack) from 1.2.3 to 1.8.10.
- [Release notes](https://github.com/activerecord-hackery/ransack/releases)
- [Changelog](https://github.com/activerecord-hackery/ransack/blob/master/CHANGELOG.md)
- [Commits](https://github.com/activerecord-hackery/ransack/compare/v1.2.3...v1.8.10)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-17 19:15:45 +00:00
Luis Ramos
37cbcf4172 Merge pull request #5605 from luisramos0/spree_rev
Update spree revision and upgrade ransack to 1.2.3
2020-06-17 20:00:25 +01:00
Luis Ramos
06a37d8ff0 Merge pull request #5566 from rioug/5132-no-error-when-product-csv-malformed
Add handling of CSV::MalformedCSVError for product_importer
2020-06-17 19:58:35 +01:00
Luis Ramos
d0bb625c19 Merge pull request #5593 from coopdevs/fix-report-order-link
Fix link from report to order
2020-06-17 19:55:40 +01:00
Luis Ramos
5163317b10 Merge pull request #5623 from luisramos0/zones
Make Zones editable again
2020-06-17 19:41:20 +01:00
Luis Ramos
91489827a1 Merge pull request #5614 from openfoodfoundation/dependabot/bundler/coffee-rails-4.2.2
Bump coffee-rails from 4.0.1 to 4.2.2
2020-06-17 19:40:59 +01:00
Matt-Yorkley
64b5bde952 Wait for page to actually load after visit shops_path 2020-06-17 12:47:08 +02:00
Matt-Yorkley
86fe032cdb Update calls to #update_attributes! (Rails 4 Rubocop violation) 2020-06-17 12:37:20 +02:00
Matt-Yorkley
640c9e6d2b Re-enable flaky spec 2020-06-17 12:36:42 +02:00
dependabot-preview[bot]
d67fa6fa5a [Security] Bump geocoder from 1.5.2 to 1.6.3
Bumps [geocoder](https://github.com/alexreisner/geocoder) from 1.5.2 to 1.6.3. **This update includes a security fix.**
- [Release notes](https://github.com/alexreisner/geocoder/releases)
- [Changelog](https://github.com/alexreisner/geocoder/blob/master/CHANGELOG.md)
- [Commits](https://github.com/alexreisner/geocoder/compare/v.1.5.2...v1.6.3)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-16 23:49:32 +00:00
Lucas Hiago
419b3ef26e add missing i18n key for check hub ready for checkout 2020-06-16 19:49:43 -03:00
Lucas Hiago
e9e43c985f add missing i18n key for closed OC 2020-06-16 19:48:24 -03:00
Luis Ramos
01e27dd68c Merge pull request #5492 from pacodelaluna/include-negative-tax-adjustments-in-sales-report
Include adjustments with negative taxes on Sales Tax reports
2020-06-16 20:23:04 +01:00
Matt-Yorkley
add38bf550 Use #image_path helper correctly
Paths should be relative. For example an image under `/app/assets/images/home/banner.jpg` should be: `image_path("home/banner.jpg")`
2020-06-16 18:25:13 +02:00
Matt-Yorkley
c07476e22c Use new Rails 4 #image-url SCSS helper
Paths should be relative. For example an image under `/app/assets/images/home/banner.jpg` should be: `image-url("home/banner.jpg")`
2020-06-16 18:25:12 +02:00
Matt-Yorkley
c370ab04d7 Ensure images in /assets/images** are precompiled and moved correctly to /public/assets folder 2020-06-16 17:01:58 +02:00
Pau Pérez Fabregat
6a31c56601 Merge pull request #5598 from luisramos0/checkout_error
Make checkout js error handling a bit more defensive
2020-06-16 16:18:49 +02:00
François Turbelin
6672cfdaf5 Readd price_adustments after bad rebase 2020-06-16 16:13:56 +02:00
Luis Ramos
2fcafdcf45 Add spec to cover editing zones 2020-06-16 15:13:54 +01:00
Pau Pérez Fabregat
3cfec157ed Merge pull request #5621 from Matt-Yorkley/xit-caching-spec
Set flaky caching spec to pending
2020-06-16 16:11:34 +02:00
Luis Ramos
774b75b649 Make zones spec faster by going directly to zone list page withouth repeating the navigation through Configuration menu 2020-06-16 14:06:01 +01:00
Luis Ramos
3f7fb0ecc2 Add missing permitted attributes to zones 2020-06-16 13:56:39 +01:00
Pau Perez
ff4d7fbc45 Refactor with Arel to perform a single query 2020-06-16 14:01:27 +02:00
Pau Perez
00c9dd7ece Remove N+1 fetching order and li adjustments 2020-06-16 14:01:27 +02:00
François Turbelin
b4952dcbfb Cosmetics 2020-06-16 14:01:27 +02:00
François Turbelin
9abe41f6cb Use OrderTaxAdjustmentsFetcher service 2020-06-16 14:01:27 +02:00
François Turbelin
c729f64fcf Include adjustments without positive taxes 2020-06-16 14:01:27 +02:00
Matt-Yorkley
cf214251fa Set flaky caching spec to pending 2020-06-16 12:59:58 +02:00
dependabot-preview[bot]
f8c66cae81 Bump acts-as-taggable-on from 3.5.0 to 4.0.0
Bumps [acts-as-taggable-on](https://github.com/mbleigh/acts-as-taggable-on) from 3.5.0 to 4.0.0.
- [Release notes](https://github.com/mbleigh/acts-as-taggable-on/releases)
- [Changelog](https://github.com/mbleigh/acts-as-taggable-on/blob/master/CHANGELOG.md)
- [Commits](https://github.com/mbleigh/acts-as-taggable-on/compare/v3.5.0...v4.0.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-16 02:30:03 +00:00
dependabot-preview[bot]
dfdf57746a Bump coffee-rails from 4.0.1 to 4.2.2
Bumps [coffee-rails](https://github.com/rails/coffee-rails) from 4.0.1 to 4.2.2.
- [Release notes](https://github.com/rails/coffee-rails/releases)
- [Changelog](https://github.com/rails/coffee-rails/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rails/coffee-rails/compare/v4.0.1...v4.2.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-16 02:29:08 +00:00
Luis Ramos
7db519ab62 Merge pull request #5570 from luisramos0/ship_methods_form
[Spree 2.1] Make Shipping methods form save calculator details
2020-06-15 15:05:50 +01:00
Luis Ramos
0c97278d69 Upgrade ransack to 1.2.3 2020-06-15 14:20:34 +01:00
Luis Ramos
2c794c148b Update spree rev 2020-06-15 14:14:53 +01:00
Pau Pérez Fabregat
257b311e04 Merge pull request #5158 from openfoodfoundation/3-0-stable
Merge 3-0-stable to master
2020-06-15 13:35:58 +02:00
Pau Pérez Fabregat
62fe54d90d Merge pull request #5604 from luisramos0/xit_vo_flaky_2
Comment out flaky variant overrides spec
2020-06-15 13:11:24 +02:00
Luis Ramos
d5bdf306a9 Comment out flaky variant overrides spec 2020-06-15 11:43:30 +01:00
Luis Ramos
538d886c83 Merge pull request #5573 from Matt-Yorkley/payment-report-500
Fix fatal error in reports helper for orders without payments
2020-06-15 11:27:17 +01:00
Luis Ramos
c113ee92e6 Merge pull request #5603 from luisramos0/xit_exchange_prods
Comment out Exchange Products Renderer spec
2020-06-15 11:13:50 +01:00
Luis Ramos
d82a1c3bf1 Merge pull request #5602 from coopdevs/fix-style-issues
Fix outstanding Rubocop violations
2020-06-15 11:13:21 +01:00
Luis Ramos
ea8c5d2711 Comment out flaky spec 2020-06-15 11:01:35 +01:00
Pau Pérez Fabregat
e2e3b16250 Merge pull request #5549 from luisramos0/vo_flaky
[Spree 2.1] Make Variant Overrides spec less flaky and... comment it anyway
2020-06-15 12:00:16 +02:00
Pau Perez
456f369b76 Fix outstanding Rubocop violations 2020-06-15 10:17:34 +02:00
Pau Perez
df887b5576 Wrap long line
pick e84e0aebe Fix fatal error in reports helper for orders without payments
pick e725f3331 Defend from an order w/o payments when building table
2020-06-15 09:25:30 +02:00
Transifex-Openfoodnetwork
40dd9a8fda Updating translations for config/locales/en_NZ.yml 2020-06-14 08:11:27 +10:00
Eduardo
27c76cfae2 add view spec to replace feature spec 2020-06-13 14:24:17 -03:00
Cillian O'Ruanaidh
430e5ea9cc Permission to view :bulk_coop report is now added in the #add_bulk_coop_abilities method. 2020-06-13 16:57:43 +01:00
Cillian O'Ruanaidh
0ef3a7e24f Fix some more code climate violations for bulk coop specs which have been moved to the order management engine. 2020-06-13 16:23:11 +01:00
Cillian O'Ruanaidh
fdf0d92366 Move feature spec for bulk coop report to the order management engine. 2020-06-13 15:52:42 +01:00
Cillian O'Ruanaidh
ba126d5afc Move the bulk coop controller specs to the order management engine.
Also deleting old :bulk_coop_report action from the Spree::Admin::ReportsController.
2020-06-13 15:42:26 +01:00
Cillian O'Ruanaidh
c1e57fcc12 Adjust CanCan ability to reflect that the bulk coop report now runs from the order management engine. 2020-06-13 15:41:09 +01:00
Cillian O'Ruanaidh
3abcb5b23c Don't move the :parameter_not_allowed_error translation to a different scope yet.
It will make it harder to merge and deploy this PR if every translation locale file has to be updated too.
2020-06-13 15:37:44 +01:00
Cillian O'Ruanaidh
bcf79ef803 Fix code climate violations related to removing blockenspiel. 2020-06-13 13:27:44 +01:00
Cillian O'Ruanaidh
6dbb6f3f09 Add an underscore before unused method arguments rather than an empty splat operator so it's easier to understand what is being passed in. 2020-06-13 13:09:09 +01:00
Cillian O'Ruanaidh
293e8949a9 Remove unused AuthenticationWorkflow module from the BulkCoopReport specs. 2020-06-13 12:59:23 +01:00
Cillian O'Ruanaidh
bfc6daf076 Remove duplicate PackingReport tests from the BulkCoopReport spec.
These tests already exist in spec/lib/open_food_network/packing_report_spec.rb:72
2020-06-13 12:57:14 +01:00
Cillian O'Ruanaidh
ed82c7e3db BulkCoopReport has been moved to the engines/order_management so move it's spec there too. 2020-06-13 12:51:29 +01:00
Cillian O'Ruanaidh
e9ff84a746 Add a partial for the AJAX progress spinner so it can be reused in the spree admin and bare admin layouts. 2020-06-13 12:26:17 +01:00
Luis Ramos
e6e4b6f95c Add keypress events to text input fields on orders search page 2020-06-13 12:15:49 +01:00
Luis Ramos
1740879261 Revert directive and just use ng-kkeypress 2020-06-13 12:07:45 +01:00
Luis Ramos
f08b837115 Make enter submit the search form in products list 2020-06-13 11:51:00 +01:00
Eduardo
5ed5ed2873 fix payment methods table to show proper provider name 2020-06-12 18:26:54 -03:00
Luis Ramos
ed262a19a9 Make checkout js error handling a bit more defensive 2020-06-12 20:33:22 +01:00
Luis Ramos
02b351b9d5 Make display only shops work again, this will show the product list when the OC is open but ship and pay methods are not available
Add spec to cover display only shops, it's oficially a feature now :-)
2020-06-12 20:15:08 +01:00
Pau Perez
018772bbba Remove N+1 fetching payments in report 2020-06-12 16:42:40 +02:00
Pau Perez
29246c15fe Defend from order without billing address
This a data integrity issue that needs deeper investigation but while
this happens, our users can still render their reports.
2020-06-12 16:34:23 +02:00
Luis Ramos
6dcb2d4a3b Add xit, spec is still too flaky on semaphore
It's not the most important spec, this scenario should never happen as
the user will not be able to access the page.
2020-06-12 15:33:34 +01:00
Luis Ramos
f56e0ba0c0 Mock current_spree_user to return a user without permissions so that the controller does not use an already loaded version of current_spree_user that still has enough permissions 2020-06-12 14:23:45 +01:00
Luis Ramos
cf5af68438 Make spec less flaky by making it wait for the Saving text to go away 2020-06-12 13:04:33 +01:00
Luis Ramos
72870530ce Merge pull request #5594 from Matt-Yorkley/3-0-reports-subquery
[Spree 2.1] Fix "subquery has too many columns" in reports query
2020-06-12 12:42:04 +01:00
Matt-Yorkley
86db1b6d68 Fix "subquery has too many columns" in reports query 2020-06-12 12:55:50 +02:00
Pau Perez
6a7df0b165 Fix link from report to order 2020-06-12 12:26:56 +02:00
Pau Pérez Fabregat
034c3d9568 Merge pull request #5548 from luisramos0/3-0-stable-jun-2
[Spree 2.1] Merge master into 3-0-stable
2020-06-12 11:27:29 +02:00
Pau Pérez Fabregat
a91c81059f Merge pull request #5588 from openfoodfoundation/transifex
Transifex
2020-06-12 11:00:10 +02:00
Luis Ramos
7245a80f94 Merge branch 'master' into 3-0-stable-jun-2 2020-06-12 09:22:47 +01:00
Robin Klaus
f8ebe11728 Added translation keyt to config/locales/en.yml file for shipping_category 2020-06-12 13:19:15 +10:00
Transifex-Openfoodnetwork
10f0958819 Updating translations for config/locales/fr_CA.yml 2020-06-12 12:19:08 +10:00
Transifex-Openfoodnetwork
fce74bd008 Updating translations for config/locales/es.yml 2020-06-12 12:19:00 +10:00
Transifex-Openfoodnetwork
9908692da9 Updating translations for config/locales/en_FR.yml 2020-06-12 12:16:07 +10:00
Transifex-Openfoodnetwork
ff0e3ed379 Updating translations for config/locales/fr.yml 2020-06-12 12:16:00 +10:00
Transifex-Openfoodnetwork
2914500d5b Updating translations for config/locales/ca.yml 2020-06-12 12:15:53 +10:00
Robin Klaus
b8f228cc3d Added more key to en.yml to translate More dropdown text 2020-06-12 11:34:22 +10:00
Luis Ramos
898d525201 Merge pull request #5552 from coopdevs/remove-forgotten-photos
Remove unused stock photo
2020-06-11 20:41:01 +01:00
Luis Ramos
e2265dd165 Fix issue in product_spec 2020-06-11 20:26:57 +01:00
Luis Ramos
983bed3c4e Merge branch 'master' into 3-0-stable-jun-2 2020-06-11 19:50:56 +01:00
Transifex-Openfoodnetwork
17bf163378 Updating translations for config/locales/fr_CA.yml 2020-06-12 03:53:33 +10:00
Transifex-Openfoodnetwork
e371c5f788 Updating translations for config/locales/en_CA.yml 2020-06-12 03:48:39 +10:00
Pau Pérez Fabregat
5cca8693b3 Merge pull request #5540 from romale/patch-1
Missing translation key "return_authorizations"
2020-06-11 16:39:15 +02:00
Transifex-Openfoodnetwork
bfcf5f8ca0 Updating translations for config/locales/ca.yml 2020-06-12 00:38:46 +10:00
Transifex-Openfoodnetwork
ab76319861 Updating translations for config/locales/en_FR.yml 2020-06-12 00:35:51 +10:00
Transifex-Openfoodnetwork
30917c64f5 Updating translations for config/locales/fr.yml 2020-06-12 00:35:44 +10:00
Transifex-Openfoodnetwork
6d7c1b7933 Updating translations for config/locales/es.yml 2020-06-12 00:35:36 +10:00
Pau Perez
9d5c657ff9 Update all locales with the latest Transifex translations 2020-06-11 15:49:05 +02:00
Pau Pérez Fabregat
e0bcc71882 Merge pull request #5569 from rmklaus12/5204-inventory-translation
Add translation keys to en.yml file for variant_override error messag…
2020-06-11 15:35:30 +02:00
Pau Pérez Fabregat
06feae994d Merge pull request #5353 from pacodelaluna/sort-invoices-in-bulk-invoice-with-forced-order
Sort invoices in bulk invoice with completed_at desc order
2020-06-11 15:34:39 +02:00
Pau Pérez Fabregat
2052756169 Merge pull request #5556 from Matt-Yorkley/geocoding-service
Rename Angular Geo service
2020-06-11 15:19:08 +02:00
Pau Pérez Fabregat
bc8a10c6a0 Merge pull request #5541 from luisramos0/has_variants
Delete dead code related to products without variants
2020-06-11 15:18:13 +02:00
Pau Pérez Fabregat
01a9b33fc9 Merge pull request #5482 from rmklaus12/5094-new-order-translation
created partial for order page title to resolve French translation of…
2020-06-11 13:23:28 +02:00
Pau Pérez Fabregat
ab743c3af9 Merge pull request #5407 from luisramos0/oc_sweep
Order Cycle design sweep
2020-06-11 12:49:04 +02:00
Pau Pérez Fabregat
246a4995cb Merge pull request #5490 from luchiago/change-price-sack-amount-int-to-float
Change minimal amount in price sack calculator to float
2020-06-11 12:42:11 +02:00
Matt-Yorkley
e725f33318 Defend from an order w/o payments when building table 2020-06-11 12:37:51 +02:00
Matt-Yorkley
e84e0aebe6 Fix fatal error in reports helper for orders without payments 2020-06-11 11:22:07 +02:00
Pau Pérez Fabregat
75d24c19fc Merge pull request #5206 from chrishil1/clear_filters
Clear filters on admin/products page
2020-06-11 10:37:17 +02:00
Pau Pérez Fabregat
bdc4340034 Merge pull request #5582 from openfoodfoundation/transifex
Transifex
2020-06-11 10:30:13 +02:00
Pau Pérez Fabregat
961be38734 Merge pull request #5581 from openfoodfoundation/dependabot/bundler/test-unit-3.3.6
Bump test-unit from 3.3.5 to 3.3.6
2020-06-11 09:16:57 +02:00
Transifex-Openfoodnetwork
e76bc07d72 Updating translations for config/locales/es.yml 2020-06-11 17:11:55 +10:00
Transifex-Openfoodnetwork
6ef94febe5 Updating translations for config/locales/ca.yml 2020-06-11 17:10:49 +10:00
Gaetan Riou
359c0b9d85 fix typo 2020-06-11 16:54:00 +10:00
Gaetan Riou
d3943bc92a refactor error handling of CSV::MalformedCSVError and fix some typos 2020-06-11 16:47:58 +10:00
Transifex-Openfoodnetwork
472338b522 Updating translations for config/locales/fr.yml 2020-06-11 16:32:02 +10:00
Transifex-Openfoodnetwork
220c84075f Updating translations for config/locales/en_FR.yml 2020-06-11 16:25:36 +10:00
Luis Ramos
ccf6cbb003 Merge pull request #5483 from rmklaus12/5281-missing-translation-ordercreation
Changed translation syntax to normal t() call and lazy lookup.
2020-06-10 23:00:44 +01:00
Luis Ramos
13a4a3edbe Merge pull request #5532 from luchiago/fix-admin-config-separator-withou-highlight
Fix admin config separator without highlight
2020-06-10 23:00:30 +01:00
Luis Ramos
21746e72ce Merge pull request #5484 from rmklaus12/5336-errormsg-translation
Added translation keys to error messages partial and en.yml file to a…
2020-06-10 23:00:07 +01:00
Luis Ramos
1e248c1848 Merge pull request #5354 from jeduardo824/enhancement/5277-be-able-to-filter-orders-according-to-shipping-method
Enhancement/5277 be able to filter orders according to shipping method
2020-06-10 20:50:06 +01:00
Luis Ramos
28f126eed1 Merge pull request #5545 from mbudm/task/matomo-tag-manager
Add configuration to enable Matomo Tag Manager
2020-06-10 20:49:34 +01:00
dependabot-preview[bot]
1a700f870c Bump test-unit from 3.3.5 to 3.3.6
Bumps [test-unit](https://github.com/test-unit/test-unit) from 3.3.5 to 3.3.6.
- [Release notes](https://github.com/test-unit/test-unit/releases)
- [Commits](https://github.com/test-unit/test-unit/compare/3.3.5...3.3.6)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-10 19:16:40 +00:00
Luis Ramos
113533e3b1 Merge pull request #5557 from Matt-Yorkley/reports-improvement
Improve performance in various reports
2020-06-10 18:54:51 +01:00
Pau Pérez Fabregat
a547aae770 Merge pull request #5562 from openfoodfoundation/transifex
Transifex
2020-06-10 17:57:07 +02:00
Transifex-Openfoodnetwork
1abbd7261e Updating translations for config/locales/es.yml 2020-06-11 01:13:33 +10:00
Transifex-Openfoodnetwork
9a2618cd39 Updating translations for config/locales/ca.yml 2020-06-11 01:09:41 +10:00
Steve Roberts
f8673fb575 Moved tag manager instructions to be directly below the field 2020-06-10 15:06:53 +10:00
Maikel Linke
7d53b12baf Preserve sorting by completion date 2020-06-10 10:19:15 +10:00
Maikel Linke
680ee3dc86 Check the bulk invoice rendering order
As it turns out, our performance optimisation with `find_each` overrides
or custom sorting.
2020-06-10 10:05:47 +10:00
Luis Ramos
89003aece7 Merge pull request #5414 from openfoodfoundation/dependabot/bundler/stripe-5.22.0
Bump stripe from 5.15.0 to 5.22.0
2020-06-09 17:41:20 +01:00
Pau Pérez Fabregat
86d59c4e86 Merge pull request #5564 from dmarcoux/improve-dockerfile
Improve Dockerfile
2020-06-09 16:17:37 +02:00
Luis Ramos
0c1ed1731d Add more specs to ship method controller 2020-06-09 12:33:55 +01:00
Luis Ramos
87292a8ce5 Refactor spec to add more similar specs 2020-06-09 12:15:52 +01:00
Luis Ramos
f05b0d1a57 Add missing fields to ship method controller permitted params list 2020-06-09 12:02:59 +01:00
Luis Ramos
fd5062429a Add context to delete specs so we can add other specs 2020-06-09 12:02:59 +01:00
Luis Ramos
7924330321 Fix problem with stub_const, we need auto load the controller before the const is stubbed otherwise the controller will be broken
See details here: https://github.com/rspec/rspec-mocks/issues/1079#issuecomment-215620243
2020-06-09 10:52:53 +01:00
Robin Klaus
c4fbce30c8 Add translation keys to en.yml file for variant_override error message translation 2020-06-09 19:20:29 +10:00
François Turbelin
795106aaa2 Use real orders inside spec to extend coverage 2020-06-09 10:11:11 +02:00
François Turbelin
6056c1699f Use batches in order to fetch orders 2020-06-09 10:10:34 +02:00
Steve Roberts
5fcc0dcd14 Add configuration to enable matomo tag manager
- Update embed codes and allow both scripts concurrently
- Add lines around blocks
- Update MTM copy based on PR feedback
- checked cookies unchanged
2020-06-09 10:21:11 +10:00
Luis Ramos
88896b7730 Merge branch 'master' into 3-0-stable-jun-2 2020-06-08 19:17:11 +01:00
jeffrey s hill md
c4e910a7c8 Make clear filters fetch products automatically without filters
The spec change is needed: fetchProducts() makes cleared filters values undefined in removeClearedValues.
2020-06-08 18:27:10 +01:00
Transifex-Openfoodnetwork
dceae2a98b Updating translations for config/locales/it.yml 2020-06-08 23:23:41 +10:00
Transifex-Openfoodnetwork
7515b9c86c Updating translations for config/locales/it.yml 2020-06-08 23:20:30 +10:00
Gaetan Riou
9b8a97aadd Add handling of CSV::MalformedCSVError for product_importer 2020-06-08 16:21:02 +10:00
Dany Marcoux
a751d24562 Run bundler install in parallel with the amount of available CPUs 2020-06-07 23:32:50 +02:00
Dany Marcoux
6c564dc7b2 Shallow clone specific release for rbenv and ruby-build
We don't need the whole git history, so doing a shallow clone is
favourable. Cloning a specific release (the latest at the time of
writing this) allows us to have reproducible results since we're not
cloning whatever is on master at the time of building the Docker image.
2020-06-07 23:29:17 +02:00
Transifex-Openfoodnetwork
e8f59ca80f Updating translations for config/locales/tr.yml 2020-06-06 20:02:55 +10:00
Cillian O'Ruanaidh
f90969134d Fix a couple of Rubocop violations. 2020-06-05 20:03:17 +01:00
Pau Perez
a287f370b5 Remove unused home photos 2020-06-05 18:05:58 +02:00
Cillian O'Ruanaidh
bafa8beab3 Use :parameter_not_allowed_error_message to from base Reports::Authorizer. 2020-06-05 17:05:26 +01:00
Cillian O'Ruanaidh
e58852289f Move the :require_valid_datetime_range method to OrderManagement::Reports::Parameters::Base so it can be reused on multiple reports. 2020-06-05 16:58:56 +01:00
Cillian O'Ruanaidh
9172606780 Allow the order management report partial to be reused on different reports. 2020-06-05 16:51:43 +01:00
Cillian O'Ruanaidh
406309c577 Move BulkCoop reports out of deprecated lib/ directory into OrderManagement engine.
The BulkCoop reports are not generated the same way as the EnterpriseFeeSummary report is generated yet so that may need to be updated.
2020-06-05 16:43:38 +01:00
Pau Pérez Fabregat
ca458018ca Merge pull request #5547 from luisramos0/ctrl_hacks
Bring the spree_get spec helpers from spree and move them together with the api_get spec helpers
2020-06-05 17:34:16 +02:00
Matt-Yorkley
9e278d5b2f Improve performance in various reports 2020-06-05 16:39:01 +02:00
Luis Ramos
e2e3ae68b7 Update all locales with the latest Transifex translations 2020-06-05 11:36:27 +01:00
Luis Ramos
8ba15931e3 Merge pull request #5521 from openfoodfoundation/transifex
Transifex
2020-06-05 11:34:13 +01:00
Cillian O'Ruanaidh
d436d18d19 Fix code climate violations in removal of Blockenspiel dependency. 2020-06-05 10:13:06 +01:00
Transifex-Openfoodnetwork
c317ae7bf3 Updating translations for config/locales/en_FR.yml 2020-06-05 17:51:47 +10:00
Transifex-Openfoodnetwork
76aded5fb5 Updating translations for config/locales/fr.yml 2020-06-05 17:51:06 +10:00
Matt-Yorkley
78fc6b7138 Rename "Geo" service to "GmapsGeo" for clarity.
This service directly calls methods in the google maps javascript included in the darkswarm layout. If we're moving away from it, we should clarify where it's used.
2020-06-05 08:35:15 +02:00
Robin Klaus
d5d6fbc01d created partial for order page title to resolve French translation of new order 2020-06-05 11:27:51 +10:00
Luis Ramos
82290bb5e1 Merge pull request #5448 from rmklaus12/5302-paypal-missingkey
Added translation keys for PayPalExpress payment method
2020-06-04 21:32:27 +01:00
Luis Ramos
3a20de1465 Merge pull request #5398 from cillian/open-street-map
Add support for using Open Street Map on the Map and Group pages.
2020-06-04 17:01:25 +01:00
Transifex-Openfoodnetwork
52323887b6 Updating translations for config/locales/en_FR.yml 2020-06-04 15:58:45 +10:00
Transifex-Openfoodnetwork
095d0f4ca8 Updating translations for config/locales/fr.yml 2020-06-04 15:58:22 +10:00
Luis Ramos
12000d2d44 Merge pull request #5425 from luisramos0/pay_method_warning
Add warning to payment method edit page
2020-06-03 21:03:56 +01:00
Luis Ramos
cce26cb453 Merge branch '3-0-stable' into 3-0-stable-jun-2 2020-06-03 19:51:43 +01:00
Pau Pérez Fabregat
93dd61c6fc Merge pull request #5456 from luisramos0/3-0-stable-with-spree-deps
[Spree 2.1] Move all spree_core dependencies to OFN so we can upgrade them later
2020-06-03 18:57:24 +02:00
Luis Ramos
0b76a25941 Add spree_core dependencies to OFN so we can upgrade them
This will enable us to upgrade these dependencies independently
2020-06-03 14:25:27 +01:00
Lucas Hiago
bfe17f54d7 Change minimal amount in price sack calculator to float 2020-06-03 08:51:41 -03:00
Pau Perez
7900cf9438 Style spinner SVG by inlining it
This way we can tweak the `fill` property of the SVG and style it with
CSS as the documented in the author's repo
(https://github.com/SamHerbert/SVG-Loaders)

> An icon's color can be manipulated by changing the fill attribute in
the SVG file.
2020-06-03 11:13:03 +02:00
Transifex-Openfoodnetwork
bbf381d130 Updating translations for config/locales/es.yml 2020-06-03 18:32:57 +10:00
Pau Pérez Fabregat
da3d51b500 Merge pull request #5539 from luisramos0/dev_docs
Improve Dev onboarding docs
2020-06-03 09:50:03 +02:00
Transifex-Openfoodnetwork
61d85eda61 Updating translations for config/locales/ca.yml 2020-06-03 17:40:19 +10:00
Pau Pérez Fabregat
8a62c8aeb5 Merge pull request #5544 from luisramos0/api_ctrl
[Spree 2.1] Fix specs in Api::EnterprisesController and Api::ShopsController
2020-06-03 09:34:43 +02:00
Pau Pérez Fabregat
833e2ff9c4 Merge pull request #5543 from luisramos0/product_stock
[Spree 2.1] Fix product_stock spec
2020-06-03 09:18:52 +02:00
Pau Pérez Fabregat
4935932e45 Merge pull request #5531 from openfoodfoundation/dependabot/bundler/i18n-js-3.7.0
Bump i18n-js from 3.6.0 to 3.7.0
2020-06-03 09:17:58 +02:00
Pau Pérez Fabregat
d9cf22fed5 Merge pull request #5528 from luisramos0/checkout_js
Make checkout JS code send bugsnag alert even if there's an error processing an error
2020-06-03 09:13:40 +02:00
Pau Pérez Fabregat
fb339d6a99 Merge pull request #5263 from luisramos0/pdp
[Mobile] Restyle product modal
2020-06-03 08:55:20 +02:00
Transifex-Openfoodnetwork
4e497d93b7 Updating translations for config/locales/en_CA.yml 2020-06-03 10:31:14 +10:00
romale
325cbbf3c7 formatting 2020-06-02 23:40:57 +03:00
Luis Ramos
f9d86eb7ed Join module and describe declaration so that rspec picks up correct controller under Api namespace and not the controller with the same name in the base namespace 2020-06-02 20:17:46 +01:00
Luis Ramos
251c04f2d9 Make all tests in enterprises_controller_spec use api_post instead of spree_post 2020-06-02 20:17:07 +01:00
Luis Ramos
ff0c93a76b Join module and describe declaration so that rspec picks up correct
controller under Api namespace and not the controller with the same name
in the base namespace
2020-06-02 20:15:25 +01:00
Luis Ramos
c68459f212 Make enterprises_controller_spec use api_post instead of spree_post 2020-06-02 20:06:52 +01:00
Luis Ramos
5fd0a6028f Merge pull request #5420 from luisramos0/pi_fix
[Spree 2.1] Product Import - Add variant_unit_name to the list of fields to be ignored when creating a variant
2020-06-02 18:13:48 +01:00
Luis Ramos
53a80de503 Improve method names and set use_route with reverse_merge so it can be overridden 2020-06-02 17:32:46 +01:00
Luis Ramos
4438f620e9 Merge pull request #5421 from luisramos0/more_strong_params
[Spree 2.1] Add missing strong params to less important controllers missed by specs
2020-06-02 16:59:27 +01:00
Luis Ramos
23b677f547 Merge pull request #5388 from luisramos0/reg_proc
[Spree 2.1] Fix enterprise package selection submit button
2020-06-02 16:23:52 +01:00
Luis Ramos
beb1b3f3bc Replay 02d46b7c51 lost in the last merge from master 2020-06-02 16:11:03 +01:00
Luis Ramos
c9a7a6e897 Merge branch 'master' into 3-0-stable-jun-2 2020-06-02 16:00:45 +01:00
Luis Ramos
8bb4310cba Merge pull request #5383 from luisramos0/admin_orders_bug
[Spree 2.1] Fix Update and Calculate Fees button
2020-06-02 15:30:16 +01:00
Luis Ramos
7b89f4d6c5 Switch controller helper calls routes from spree to main_app, this will include all routes all the time 2020-06-02 15:00:57 +01:00
Luis Ramos
13836a62bb Rename parameters to params and change default from nil to {} 2020-06-02 14:36:06 +01:00
Luis Ramos
3136aa5a8b Make api_process use process_spree_action 2020-06-02 14:00:24 +01:00
romale
9d56c180b2 formatting 2020-06-02 15:56:59 +03:00
Luis Ramos
2f76e0b15b Bring methods from Spree::TestingSupport::ControllerRequests to our ControllerRequestsHelper so we can merge them later 2020-06-02 13:54:33 +01:00
Luis Ramos
5d0856e5a3 Rename ControllerHacks to ControllerRequestsHelper and move it's configuration to spec_helper 2020-06-02 13:47:59 +01:00
Luis Ramos
cd3bc54c37 Remove resource_scoping to make things more simple 2020-06-02 13:43:33 +01:00
Luis Ramos
2c2263ab78 Fix rubocop issues in shipments_controller_spec 2020-06-02 13:41:50 +01:00
Luis Ramos
092e047b44 Remove resource_scoping from api/shipments_controller spec 2020-06-02 13:35:48 +01:00
Luis Ramos
a0aa42cd58 Remove resource_scoping from api/variants spec 2020-06-02 13:26:12 +01:00
romale
d16bfe3779 formatting 2020-06-02 14:44:16 +03:00
romale
9d3f010173 formating 2020-06-02 14:42:50 +03:00
Luis Ramos
89c461662f Merge pull request #5502 from Matt-Yorkley/dropshadow-regression
[mobile ux] Fix missing drop-shadow
2020-06-02 12:07:37 +01:00
romale
35648025df formating 2020-06-02 12:09:38 +03:00
romale
b21904ada1 moved to 2882 2020-06-02 10:38:36 +03:00
Robin Klaus
f4a64e89c2 Added translation keys to error messages partial and en.yml file to add translation to error messages 2020-06-02 15:41:01 +10:00
Luis Ramos
2d7f1ce283 Delete all variants from test product not just the first one 2020-06-01 21:21:26 +01:00
Luis Ramos
072da7316e Remove views code that tests for the existence of product variants
A product always has the standard variant, the only case where a product will not have variants is immediatly after creation and before being saved
2020-06-01 14:09:14 +01:00
Luis Ramos
e7828e107b Delete dead methods from product_decorator 2020-06-01 14:07:34 +01:00
Luis Ramos
a4a6431faf Fix strong params problem where order object is not sent to controller 2020-06-01 13:42:22 +01:00
Luis Ramos
48985bbcd1 Use patch instead of put, because it's rails 4
Extend the registration process spec to cover package selection
2020-06-01 13:41:37 +01:00
Luis Ramos
c6842ada7f Add variant_unit_name to the list of fields to be ignored when creating a variant, it's a product field 2020-06-01 13:41:15 +01:00
Luis Ramos
754b657f81 Move controller methods to protected to keeep consitency and isolation 2020-06-01 13:40:59 +01:00
Luis Ramos
bae128738b Add spec for return authorizations controller 2020-06-01 13:40:59 +01:00
Luis Ramos
583b4a1df7 Add spec to countries_controller 2020-06-01 13:40:59 +01:00
Luis Ramos
73f2844fe3 Add spec for shipping categories 2020-06-01 13:40:59 +01:00
Luis Ramos
e77d9aba7b Add missing strong params to less important controllers not tested in specs 2020-06-01 13:40:59 +01:00
romale
069241f307 Missing translation key "return_authorizations"
return_authorizations: Return Authorizations
2020-06-01 15:25:46 +03:00
Transifex-Openfoodnetwork
e5cc425662 Updating translations for config/locales/tr.yml 2020-06-01 16:39:17 +10:00
Luis Ramos
5d9e88a3bc Restructure GETTING STARTED to make it clear what the wiki pages are for 2020-05-31 23:00:32 +01:00
Luis Ramos
fb45cb602e Remove duplication from CONTRIBUTING 2020-05-31 21:07:52 +01:00
Matt-Yorkley
8e57f9d929 Adjust shared map partial 2020-05-31 19:21:20 +02:00
Cillian O'Ruanaidh
94b85fb9e3 Fix up Code Climate issues with Open Street Map code. 2020-05-31 18:42:55 +02:00
Cillian O'Ruanaidh
deafe32354 Add support for using Open Street Map on the Map and Group pages.
The map is displayed using https://leafletjs.com/

To enable Open Street Map go to the Admin -> Configuration -> Content section and click 'Open Street Map Enabled'.

The 'Open Street Map Provider Name' setting can be used to configure different tile providers thanks to the Leaflet-providers extension (https://github.com/leaflet-extras/leaflet-providers)

Some tile providers require an API key, this can provided in JSON format e.g. '{ apiKey: 123 }' in the 'Open Street Map Provider Options' setting.

Each tile provider has their own usage policy so this should be checked before enabling Open Street Map.

The search field for the Open Street Map works differently than searching on Google Maps. It matches producers by their name or address because it was easier to implement instead of matching place names all over the world.
2020-05-31 18:42:55 +02:00
Matt-Yorkley
1e3bf7fec4 Merge pull request #5487 from coopdevs/fix-schedule-factory
[Spree 2.1] Allow to create order_cycle_schedules
2020-05-30 13:49:47 +02:00
Luis Ramos
c01da01c70 Merge pull request #5518 from openfoodfoundation/dependabot/bundler/ddtrace-0.36.0
Bump ddtrace from 0.35.2 to 0.36.0
2020-05-30 11:05:40 +01:00
Lucas Hiago
528db54f36 Correct controller name for matching 2020-05-29 22:24:41 -03:00
Lucas Hiago
19ef66f3ad Change mail method config route 2020-05-29 21:51:57 -03:00
dependabot-preview[bot]
f773e57dee Bump i18n-js from 3.6.0 to 3.7.0
Bumps [i18n-js](https://github.com/fnando/i18n-js) from 3.6.0 to 3.7.0.
- [Release notes](https://github.com/fnando/i18n-js/releases)
- [Changelog](https://github.com/fnando/i18n-js/blob/master/CHANGELOG.md)
- [Commits](https://github.com/fnando/i18n-js/compare/v3.6.0...v3.7.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-05-29 19:20:40 +00:00
Cillian O'Ruanaidh
e6fa296d03 Remove spinjs-rails dependency and use spinning-circles.svg instead.
For https://github.com/openfoodfoundation/openfoodnetwork/issues/3491

The spinjs-rails gem provides a CSS3 a spinning activity indicator. This commit removes the gem so we don't have to keep the gem up-to-date and uses the spinning-circles.svg which is used already in other places.

The spinjs spinner can be seen when viewing or editing taxonomies in /admin/taxonomies. It is loaded from the .ajaxStart call in app/assets/javascripts/admin/spree/progress.coffee

To test or restyle this spinner you can change the display property of the #progress element in app/assets/stylesheets/admin/components/progress.scss to 'block'.
2020-05-29 18:04:49 +01:00
Pau Perez
24e897d145 Do not build OC with schedules at the same time
It's not possible when neither the OC nor the schedule has an id due to
the new join table order_cycle_schedules.
2020-05-29 17:00:52 +02:00
Pau Perez
538c53fe9e Improve code readability
Also removing an useless vars
2020-05-29 15:56:05 +02:00
Luis Ramos
6e842212ea Always throw back error even if there is an error loading the flash for example translating the error message 2020-05-29 14:45:22 +01:00
Luis Ramos
3e0839de73 Increase warning sign line height so that it renders correctly on smaller screens 2020-05-29 12:56:22 +01:00
Luis Ramos
2c55bef544 Remove unnecessary padding
This is looking broken in ipad mini 3
2020-05-29 12:56:22 +01:00
Luis Ramos
a376a17f64 Group related properties together 2020-05-29 12:56:20 +01:00
Cillian O'Ruanaidh
d02f64da06 Define bulk coop report summary row and columns with lists of method names instead of Procs. 2020-05-29 11:34:12 +01:00
Matt-Yorkley
c73defa8a1 Merge pull request #5494 from Matt-Yorkley/group-maps-fix
Fix group maps
2020-05-29 12:05:55 +02:00
Pau Pérez Fabregat
c0ad992352 Merge pull request #5465 from luisramos0/rename_accessible_by
[Rails 4.1] Rename order_cycle.accessible_by to remove name clash with active record
2020-05-29 12:04:19 +02:00
Pau Pérez Fabregat
8d1944d714 Merge pull request #5506 from Matt-Yorkley/3-0-dfc-specs
[Spree 2.1] DFC specs updates
2020-05-29 11:43:19 +02:00
Pau Perez
815cd73ff3 DRY specs 2020-05-29 11:15:47 +02:00
Pau Perez
032dce1a88 Move OC save within success block
This makes more evident there are two scenarios: schedule save success
or failure. We deal with OCs failures raising an exception.
2020-05-29 10:46:29 +02:00
Pau Perez
768568c75c Rename @object to @schedule
This level of abstraction makes sense in the framework-like code in
ResourceController but here it just makes things more difficult.
2020-05-29 10:44:43 +02:00
Pau Perez
4f3d01bd93 Remove unused HTML response format 2020-05-29 10:43:16 +02:00
Pau Perez
56b590a6f8 Extract #sync_subscription
This makes it far easier to spot what's the difference between create
and update regarding subs syncing without having to mess with `#update`
and its callbacks (for now).
2020-05-29 10:41:42 +02:00
Pau Perez
65c53df2ef Remove unnecessary callback invocations
There are no registered callback methods to execute.
2020-05-29 10:25:38 +02:00
Pau Perez
f25ee8c998 Extract #editable_order_cycles
This makes it far easier to spot what's the difference between create
and update regarding the editable order cycles.

I stop here before a slightly deeper refactor which would make the PR
quite hard to review. This will come an upcoming one.
2020-05-29 10:25:37 +02:00
Pau Perez
862364ebbb Fix schedule destroy spec 2020-05-29 10:24:50 +02:00
Pau Perez
4f635339e3 Fix schedule creation and subs syncing 2020-05-29 10:24:42 +02:00
Transifex-Openfoodnetwork
5e0e88bf2c Updating translations for config/locales/fr.yml 2020-05-29 17:24:01 +10:00
Transifex-Openfoodnetwork
9fbd8b4fe1 Updating translations for config/locales/en_FR.yml 2020-05-29 16:46:33 +10:00
Maikel
2f82a58055 Merge pull request #5365 from mbudm/task/orderCycleSpecSplit
Split order_cycle_spec into smaller specs grouped by theme
2020-05-29 13:46:42 +10:00
Transifex-Openfoodnetwork
11f33bd911 Updating translations for config/locales/pt_BR.yml 2020-05-29 08:12:24 +10:00
Luis Ramos
2203bca1ce Merge pull request #5489 from luisramos0/3-0-stable-may-22
[Spree 2.1] Merge master into 3-0-stable
2020-05-28 19:55:14 +01:00
Luis Ramos
bb8401a0fc Merge pull request #5444 from luisramos0/dead_js_code
Remove some dead JS code related to admin sub menus
2020-05-28 19:54:42 +01:00
Luis Ramos
bd5de9d82f Delete unused translations 2020-05-28 19:51:23 +01:00
Luis Ramos
bec798c6c9 Bring some spree translations to ofn in payment methods pages 2020-05-28 19:51:23 +01:00
Luis Ramos
fe6bcb5093 Add de-activation warning to payment methods edit page 2020-05-28 19:50:58 +01:00
Luis Ramos
26f1dfb080 Move payment_method display field translations to OFN and adapt them to changes on same field in shipping method 2020-05-28 19:50:58 +01:00
Luis Ramos
83edfbd1dd Merge pull request #5266 from luchiago/improve-order-cancellation-email
Improve order cancellation email
2020-05-28 19:48:26 +01:00
Cillian O'Ruanaidh
1fba998b9e Drop Blockenspiel and use :rules/:columns methods instead of :organise/:summary_columns DSL.
For https://github.com/openfoodfoundation/openfoodnetwork/issues/3231
2020-05-28 19:04:18 +01:00
Pau Perez
9a29e634fc Deal with Schedule creation in its own controller
This way it can assign the order cycles to the schedule when this is
persisted. An OrderCycleSchedule (the join table) can't be created until
both schedule and order_cycle got an id.

Also, we do not call `#adapt_params` when creating the Schedule as that
assigns `order_cycle_ids` to `@object.attributes` thus, attempting to
create the OrderCycleSchedule without a schedule_id.
2020-05-28 17:49:36 +02:00
Transifex-Openfoodnetwork
29f266d3a5 Updating translations for config/locales/tr.yml 2020-05-28 23:17:00 +10:00
Transifex-Openfoodnetwork
c428b2f133 Updating translations for config/locales/tr.yml 2020-05-28 23:07:06 +10:00
Pau Perez
06b7a95fb1 DRY duplicate subscription declaration 2020-05-28 14:00:53 +02:00
Matt-Yorkley
ea7a2c91ee Update all locales with the latest Transifex translations 2020-05-28 13:12:12 +02:00
Matt-Yorkley
2ae84ad710 Merge pull request #5491 from openfoodfoundation/transifex
Transifex
2020-05-28 13:08:36 +02:00
dependabot-preview[bot]
8632383e60 Bump ddtrace from 0.35.2 to 0.36.0
Bumps [ddtrace](https://github.com/DataDog/dd-trace-rb) from 0.35.2 to 0.36.0.
- [Release notes](https://github.com/DataDog/dd-trace-rb/releases)
- [Changelog](https://github.com/DataDog/dd-trace-rb/blob/master/CHANGELOG.md)
- [Commits](https://github.com/DataDog/dd-trace-rb/compare/v0.35.2...v0.36.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-05-27 20:23:11 +00:00
Luis Ramos
6f0106251e Move product-img css class to parent div so we can center align it and keep existing img styling 2020-05-27 19:16:31 +01:00
Pau Pérez Fabregat
3b4266cbc8 Merge pull request #5495 from luisramos0/byebug
Fix error in dependency requirement specification for byebug and pry-byebug
2020-05-27 08:54:32 +02:00
Pau Pérez Fabregat
22be41ebed Merge pull request #5498 from mbudm/task/local_db_port_config
Add support for an env var to override DB port
2020-05-27 08:53:29 +02:00
Pau Pérez Fabregat
127e48e579 Merge pull request #5413 from luisramos0/edit_orders_mobile
Show order edit link on mobile instead of the cancel link
2020-05-27 08:51:41 +02:00
Pau Pérez Fabregat
4d3ae8fa53 Merge pull request #5439 from coopdevs/fix-misplaced-paragraph
[mobile ux] Fix misplaced paragraph in shop tab
2020-05-27 08:51:13 +02:00
Luis Ramos
7313e3c096 Merge pull request #5501 from luisramos0/grumpy_cat_take_2
Enterprises Controller: reset_distributor must be called before any call to memoized current_distributor
2020-05-26 23:06:59 +01:00
Transifex-Openfoodnetwork
d2e46b8561 Updating translations for config/locales/ca.yml 2020-05-27 00:32:12 +10:00
Transifex-Openfoodnetwork
8d3c8c62fb Updating translations for config/locales/en_CA.yml 2020-05-27 00:02:52 +10:00
Transifex-Openfoodnetwork
daf9fab16d Updating translations for config/locales/en_CA.yml 2020-05-26 23:59:48 +10:00
Matt-Yorkley
89dd7ddb86 Update setting of request headers in DFC controller spec 2020-05-26 15:32:07 +02:00
Matt-Yorkley
bde4acd22f Update get calls in DFC controller spec 2020-05-26 15:21:02 +02:00
Matt-Yorkley
953e1f8ff4 Adjust z-index on overlapping elements to fix missing drop-shadow regression 2020-05-26 12:59:51 +02:00
Luis Ramos
52810b0f4a Make enterprises controller spec assert the corrrect state of current_distributor
This validates bug #5496 is fixed
2020-05-26 11:26:20 +01:00
Luis Ramos
4026e072d5 Break OrderCartReset in two steps so that memoized method current_customer (that uses memoized current_distributor) is called after reset_distributor 2020-05-26 11:13:16 +01:00
Luis Ramos
a582261d7a Merge pull request #5493 from luisramos0/display_on_4_managers
Make display_on attribute available for managers to change in shipping and payment methods
2020-05-26 09:57:56 +01:00
Pau Pérez Fabregat
c3f66203bb Merge pull request #5497 from openfoodfoundation/dependabot/bundler/rack-mini-profiler-2.0.2
Bump rack-mini-profiler from 2.0.1 to 2.0.2
2020-05-26 09:55:26 +02:00
Robin Klaus
50a63139e3 Changed translation syntax to normal t() call and lazy lookup. 2020-05-26 15:14:26 +10:00
Steve Roberts
d4a256fcca Add support for an env var to override DB port 2020-05-26 11:04:42 +10:00
Steve Roberts
2bb3cf1c54 Name checkbox element id var more informatively 2020-05-26 09:53:51 +10:00
dependabot-preview[bot]
fc186f5342 Bump rack-mini-profiler from 2.0.1 to 2.0.2
Bumps [rack-mini-profiler](https://github.com/MiniProfiler/rack-mini-profiler) from 2.0.1 to 2.0.2.
- [Release notes](https://github.com/MiniProfiler/rack-mini-profiler/releases)
- [Changelog](https://github.com/MiniProfiler/rack-mini-profiler/blob/master/CHANGELOG.md)
- [Commits](https://github.com/MiniProfiler/rack-mini-profiler/compare/v2.0.1...v2.0.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-05-25 21:24:42 +00:00
Luis Ramos
513ee6393a Make product modal display image on the right for medium screens like it was doing for large screens 2020-05-25 19:31:02 +01:00
Luis Ramos
1e0e3a063d Add margin right to product modal title so that the close button doesnt overlap with it 2020-05-25 19:14:40 +01:00
Luis Ramos
50e4896e32 Fix error in dependency requirement specification
~> 11.0 allows upgrades to 11.1, we want to lock it to 11.0.x so we need ~> 11.0.0

Same logic for pry-byebug
2020-05-25 18:15:47 +01:00
Matt-Yorkley
8095371304 Ensure OpenStreetMap credits are aways shown with map and fix credits positioning for /groups page map display 2020-05-25 14:12:12 +02:00
Matt-Yorkley
a3660dfe37 Extract repeated map code to new partial 2020-05-25 14:04:11 +02:00
Matt-Yorkley
e03005ed56 Fix maps and tidy up groups map code 2020-05-25 13:52:56 +02:00
Luis Ramos
cb0aefd29c Make display on attribute available for managers to change, not just super admins 2020-05-25 11:21:53 +01:00
Transifex-Openfoodnetwork
d9d221e4f3 Updating translations for config/locales/en_GB.yml 2020-05-25 18:46:48 +10:00
François Turbelin
b2b988b063 Apply new order directly inside service 2020-05-24 14:41:40 +02:00
Transifex-Openfoodnetwork
5de3fbba1e Updating translations for config/locales/en_FR.yml 2020-05-24 19:14:49 +10:00
Transifex-Openfoodnetwork
ed27ed32e3 Updating translations for config/locales/fr.yml 2020-05-24 19:14:25 +10:00
Luis Ramos
f34f693620 Merge branch 'master' into 3-0-stable-may-22 2020-05-22 22:54:19 +01:00
Kristina Lim
cf534237cd Update all locales with the latest Transifex translations 2020-05-23 01:51:23 +08:00
Pau Pérez Fabregat
da88399ca6 Merge pull request #5411 from Matt-Yorkley/orders-closed-fullwidth
Fix closed shop message not displaying full-width
2020-05-22 19:32:08 +02:00
Pau Pérez Fabregat
a5b4c5316c Merge pull request #5458 from Matt-Yorkley/oc-form-ui-bug
Fix display issue on order cycle edit form
2020-05-22 19:31:41 +02:00
Pau Pérez Fabregat
f1dbad1007 Merge pull request #5466 from Matt-Yorkley/shop-search-fix
Fix search bar in /shops and /groups
2020-05-22 18:40:27 +02:00
Pau Pérez Fabregat
17e77df14f Merge pull request #5451 from Matt-Yorkley/oc-selector-fix
Fix tab-buttons element overlapping order cycle selector
2020-05-22 18:39:10 +02:00
Pau Pérez Fabregat
3f593d6246 Merge pull request #5440 from luisramos0/grumpy_cat
Fix Grumpy Cat on shop page (cart with items from a closed OC)
2020-05-22 18:38:41 +02:00
Pau Pérez Fabregat
72399cb6df Merge pull request #5485 from luisramos0/byeby_phantom_js
Rename method refering to phantomjs
2020-05-22 18:37:28 +02:00
Pau Pérez Fabregat
ff0e85c877 Merge pull request #5486 from Matt-Yorkley/3-0-caching
[Spree 2.1] Caching
2020-05-22 18:36:49 +02:00
Pau Pérez Fabregat
b804036822 Merge pull request #5469 from openfoodfoundation/transifex
Transifex
2020-05-22 18:24:14 +02:00
Pau Perez
a33396984f Fix and DRY specs 2020-05-22 18:17:59 +02:00
Pau Perez
d9686d6982 Enable spec files to be executed alone
This fixes the annoying error

```
NameError:
  uninitialized constant OrderManagement::Subscriptions::Whatever
```

and let's you execute the spec file in isolation. It slows down way too
much having the run the entire engine test suite while developing. And
it makes me nervous too.
2020-05-22 15:55:03 +02:00
Transifex-Openfoodnetwork
88ab5c2dd7 Updating translations for config/locales/fr.yml 2020-05-22 23:31:48 +10:00
Transifex-Openfoodnetwork
466bbe52ae Updating translations for config/locales/en_FR.yml 2020-05-22 23:29:08 +10:00
Luis Ramos
9a71ffc093 Merge pull request #5438 from Matt-Yorkley/cart-stock-ux
Cart stock UX
2020-05-22 14:21:16 +01:00
Matt-Yorkley
f0525b861c Update expectations in API caching test
Rails 4 has slightly changed the format of the cache keys here, so the response was not as expected.
2020-05-22 14:54:57 +02:00
Pau Perez
e339a37cd5 Allow to create order_cycle_schedules
There's no way we can create an order_cycle_schedules if the schedule
doesn't have an id, which we can't get if to persist it we need an OC
first, which in turn, will create an order_cycle_schedules.
2020-05-22 14:22:31 +02:00
Matt-Yorkley
b00fbd69ae Update Fragment Caching for Rails 4
Rails 4 introduced "automagically" modified cache keys, that included a digest in the key on any cache entry related to views. This is not what we want at all, fixed here with the `skip_digest: true` option.
2020-05-22 14:22:21 +02:00
Matt-Yorkley
a9abe48ede Re-enable cache invalidation test 2020-05-22 14:21:45 +02:00
Matt-Yorkley
04ffe7b911 Fix expectations and mock responses for Rails 4
Mocking these objects is working differently in Rails 4, and utilising `#and_call_original` helped to ensure different parts of the codebase were receiving the correct response objects (AR relations, etc).
2020-05-22 14:21:45 +02:00
Pau Perez
be9fbae300 Fix misplaced paragraph in shop tab
By wrapping message within 12-cols container, keeping consistency with
the other shop tabs.
2020-05-22 12:37:07 +02:00
Luis Ramos
b7c601abcd Merge pull request #5424 from luisramos0/ship_method_warning
Add warning to enterprise Shipping Method list and to Shipping method edit page
2020-05-22 11:24:12 +01:00
Luis Ramos
639c1e1ccc Rename method, it's not phantomjs running underneath any more 2020-05-22 10:57:51 +01:00
Robin Klaus
53c0bcbd0b Changed translation syntax to normal t() call and lazy lookup. 2020-05-22 13:22:57 +10:00
Luis Ramos
6fcca0197c Merge pull request #5450 from rmklaus12/5095-ordercycle-amtqty-translations
Changed report_header fields for amount and quantity to reflect corre…
2020-05-21 21:21:14 +01:00
Luis Ramos
12f512e98b Move arrow on OC selector a little to the right so it's centered between end of text (if max length reached) and border 2020-05-21 15:41:26 +01:00
Luis Ramos
b2bfe28173 Remove extra right pad on OC selector, in mobile, this will make the selector be centered 2020-05-21 15:38:55 +01:00
Luis Ramos
ed14a92c7b Make OC selector wider to support more characters where there is enough space for that 2020-05-21 15:38:54 +01:00
Transifex-Openfoodnetwork
adb3c9e56f Updating translations for config/locales/en_NZ.yml 2020-05-22 00:22:33 +10:00
Pau Pérez Fabregat
c6c9dcc345 Merge pull request #5478 from luisramos0/bundler1-17-3
Upgrade bundler, byebug and pry-byebug
2020-05-21 16:10:38 +02:00
Pau Pérez Fabregat
16dfb3c7e9 Merge pull request #5408 from luisramos0/columns_params
[Spree 2.1] Add missing permitted param to Column Preferences controller
2020-05-21 14:41:30 +02:00
Luis Ramos
6e6dab8f72 Merge pull request #5474 from openfoodfoundation/dependabot/bundler/activerecord-import-1.0.5
Bump activerecord-import from 1.0.4 to 1.0.5
2020-05-21 13:17:51 +01:00
Luis Ramos
574e4a02c0 Force pry to 0.12 so that it works well with pry-byebug 3.7 2020-05-21 13:10:59 +01:00
Luis Ramos
01eda90a00 Upgrade bundler, byebug and pry-byebug 2020-05-21 12:59:57 +01:00
Pau Pérez Fabregat
050e83e745 Merge pull request #5410 from luisramos0/fix_some_specs
[Spree 2] Make api/enterprises_controller_spec less flaky
2020-05-21 13:45:39 +02:00
Pau Pérez Fabregat
6851921e9d Merge pull request #5443 from openfoodfoundation/dependabot/bundler/mini_racer-0.2.14
Bump mini_racer from 0.2.11 to 0.2.14
2020-05-21 13:32:30 +02:00
Luis Ramos
8cdc9b82df Merge pull request #5427 from luisramos0/jquery-ui-rails
Upgrade jquery-ui-rails to v4.2.1
2020-05-21 10:57:10 +01:00
Luis Ramos
2ae34d8df3 Merge pull request #5355 from jeduardo824/enhancement/make-shop-names-links-on-transactions-page
change shop name to be link to shop on transactions page
2020-05-21 10:56:19 +01:00
Luis Ramos
35b249f40d Merge pull request #5390 from rmklaus12/fix-enyml-keys
Fix translation keys in en.yml file from previous conflicting PRs
2020-05-21 10:56:01 +01:00
Luis Ramos
a6ea79d3a5 Add warning message to enterprise ship methods list and ship method edit page 2020-05-21 10:47:22 +01:00
Luis Ramos
d017c0b701 Change base translation from applies to active so the naming is consistent: ship methods can be active or inactive for an enterprises which means they can be linked or not to that enterprise 2020-05-21 10:45:58 +01:00
Luis Ramos
cf0ad179a1 Move hubs_sidebar to the last 4 columns at the top of the page 2020-05-21 10:45:58 +01:00
Transifex-Openfoodnetwork
8bb47ef467 Updating translations for config/locales/en_NZ.yml 2020-05-21 16:43:58 +10:00
Maikel
da55956a6e Merge pull request #5392 from luisramos0/ship_method_bo
Make "backoffice only" ship methods work and remove option "frontoffice only"
2020-05-21 10:16:15 +10:00
dependabot-preview[bot]
0e1ae03454 Bump activerecord-import from 1.0.4 to 1.0.5
Bumps [activerecord-import](https://github.com/zdennis/activerecord-import) from 1.0.4 to 1.0.5.
- [Release notes](https://github.com/zdennis/activerecord-import/releases)
- [Changelog](https://github.com/zdennis/activerecord-import/blob/master/CHANGELOG.md)
- [Commits](https://github.com/zdennis/activerecord-import/compare/v1.0.4...v1.0.5)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-05-20 20:02:29 +00:00
Luis Ramos
e287680c1b Merge pull request #5429 from mkllnk/5400-orders-distributors-report
5400 List each order only once in Orders And Distributors report
2020-05-20 20:36:58 +01:00
Matt-Yorkley
6b3a7228ce Update flash message with instruction to update the quantities 2020-05-20 09:43:29 +02:00
Transifex-Openfoodnetwork
8387c71b6e Updating translations for config/locales/tr.yml 2020-05-20 15:55:52 +10:00
Robin Klaus
16f2c8d7d1 Removed 5 keys per change request in ref to pr5425 2020-05-20 14:13:42 +10:00
Luis Ramos
76b721b663 Merge pull request #5457 from Matt-Yorkley/cart-fix
Fix cart fields sharing same scope
2020-05-19 19:31:49 +01:00
Luis Ramos
942dde62ff Merge pull request #5464 from luisramos0/3-0-action-caching
[Spree 2.1] Add actionpack-action_caching gem to make action caching work again
2020-05-19 18:47:55 +01:00
Matt-Yorkley
3df2d4721b Fix search bar in /shops and /groups 2020-05-19 14:00:20 +02:00
Luis Ramos
758d7c82f7 Rename order_cycle.accessible_by to remove name clash with active record 2020-05-19 12:21:13 +01:00
Luis Ramos
2e9f911958 Add actionpack-action_caching to support action caching 2020-05-19 12:06:24 +01:00
Matt-Yorkley
4a837e8c07 Fix display issue on order cycle form
Some of the form elements on the first OC edit page were covered up by the save bar in some cases. this ensures they are always visible and clickable.
2020-05-19 11:56:41 +02:00
Matt-Yorkley
05e6f5792d Fix cart fields sharing same scope
All cart page quantity fields were displaying a single max quantity instead of a different value for each one.
2020-05-19 10:23:12 +02:00
Matt-Yorkley
e54fad9bfd Add spec for maximum quantities with multiple items in cart
This currently fails
2020-05-19 10:21:24 +02:00
Steve Roberts
446bf268b4 scroll_to substitute 2020-05-19 14:16:45 +10:00
Lucas Hiago
ba30f55e70 Add fullwidth for table selector 2020-05-18 22:53:46 -03:00
Maikel Linke
2d95e9ebc0 List each order only once in report 2020-05-19 10:38:28 +10:00
Maikel Linke
19f7f04816 Add spec for report bug 2020-05-19 10:38:28 +10:00
Maikel Linke
359fd1ac98 Improve readability of report spec 2020-05-19 10:38:28 +10:00
Steve Roberts
049b1b4638 Split up the specs again.
This now shows that there is one consistent spec erroring, spec/features/admin/order_cycles/complex_editing_multiple_product_pages_spec.rb:
Capybara::ElementNotFound:
       Unable to find visible checkbox "order_cycle_incoming_exchange_0_select_all_variants" that is not disabled
2020-05-19 10:14:26 +10:00
Eduardo
6d54e6d4a0 change SearchOrders service to search with shipping_method 2020-05-18 20:44:55 -03:00
Eduardo
473b4c63c4 add Shipping Method filter to admin/orders page 2020-05-18 18:46:43 -03:00
Matt-Yorkley
e3c337ef7e Fix mixed error display issue 2020-05-18 16:41:57 +02:00
Matt-Yorkley
d70174becc Use fresh scope for each quantity field 2020-05-18 16:28:07 +02:00
Matt-Yorkley
f9f76f9082 Move reused available stock logic to service 2020-05-18 16:19:49 +02:00
Matt-Yorkley
111e700799 Update invalid input feedback 2020-05-18 16:14:14 +02:00
Luis Ramos
d1eebe1cfb Merge pull request #5426 from luisramos0/3-0-stable-may13
[Spree 2.1] Merge master into 3-0-stable
2020-05-18 15:05:11 +01:00
Matt-Yorkley
f7b4717f29 Improve validation code 2020-05-18 14:51:11 +02:00
Matt-Yorkley
fe27c8466e Add feature specs for full cart page stock correction process 2020-05-18 14:51:11 +02:00
Matt-Yorkley
63e4430ea4 Update cart page links to be disabled when changes are required and form is unsaved
See: https://stackoverflow.com/questions/23425254/enable-disable-anchor-tags-using-angularjs
2020-05-18 14:51:08 +02:00
Matt-Yorkley
5dd801b432 Fix tab-buttons element overlapping order cycle selector 2020-05-18 14:27:05 +02:00
Matt-Yorkley
3a46f32aa3 Merge pull request #5435 from openfoodfoundation/transifex
Transifex
2020-05-18 13:44:32 +02:00
Luis Ramos
ea8157a5c6 Merge pull request #5304 from dacook/5299-orders-filter-several-tags
5299 Impossible to filter orders with several tags
2020-05-18 11:25:54 +01:00
Luis Ramos
37350fcbb0 Add table name to condition so it doesnt cause trouble in the future if mixed with other tables in the same query 2020-05-18 10:55:03 +01:00
Luis Ramos
05136b51d1 Merge pull request #5356 from rmklaus12/4534-mobile-searchkey
Changed search input to inputmode to enable 'go' button on dynamic mo…
2020-05-18 10:30:56 +01:00
Robin Klaus
311bbd2aa2 Changed report_header fields for amount and quantity to reflect correct translation to French 2020-05-18 18:41:04 +10:00
Robin Klaus
a0334953db Added 14 translation keys for PayPalExpress payment method 2020-05-18 17:06:07 +10:00
Transifex-Openfoodnetwork
d2b8b5e888 Updating translations for config/locales/pt_BR.yml 2020-05-18 05:14:19 +10:00
Luis Ramos
6c81c19f00 Remove dead code 2020-05-16 14:19:25 +01:00
Robin Klaus
438c0ecde9 delete extra lines 2020-05-16 20:12:54 +10:00
Robin Klaus
ba8ecf19ac Added input code to two additional pages to cover shop tab search boxes 2020-05-16 12:56:06 +10:00
dependabot-preview[bot]
f4afc8ffcd Bump mini_racer from 0.2.11 to 0.2.14
Bumps [mini_racer](https://github.com/discourse/mini_racer) from 0.2.11 to 0.2.14.
- [Release notes](https://github.com/discourse/mini_racer/releases)
- [Changelog](https://github.com/rubyjs/mini_racer/blob/master/CHANGELOG)
- [Commits](https://github.com/discourse/mini_racer/compare/v0.2.11...v0.2.14)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-05-15 19:20:08 +00:00
Luis Ramos
ace73be4e2 Add unit tests to order_cart_reset 2020-05-15 20:05:45 +01:00
Luis Ramos
1c749a8029 Extract order_cycle_not_listed? method and rename order_cycles to listed_order_cycles 2020-05-15 19:36:59 +01:00
Luis Ramos
f22eae752d Adapt spec to validate issue #5340 2020-05-15 19:30:01 +01:00
Luis Ramos
a438317d69 Extract order_cart_reset service from enterprises_controller 2020-05-15 19:30:00 +01:00
Luis Ramos
35824c7aa1 Rename restartCheckout to order_checkout_restart to make it follow service naming convention 2020-05-15 19:29:37 +01:00
Luis Ramos
ba585064e1 Rename ResetOrderService to OrderCompletionReset to follow new service naming convention and also to make it more specific to completed orders 2020-05-15 19:29:37 +01:00
Luis Ramos
21d1a7bc04 Remove dead code 2020-05-15 19:29:37 +01:00
Luis Ramos
6827ce5c7f Refactor order.set_order_cycle, return early and remove indentation 2020-05-15 19:29:37 +01:00
Luis Ramos
493adc8b1f Fix problem in spec where wrong enterprise was being used 2020-05-15 19:29:37 +01:00
Luis Ramos
94bb95861b If selected OC is not in the available OCs, empty the order 2020-05-15 19:29:35 +01:00
Lucas Hiago
98cbe5762a Remove unused css property from image in cancel email 2020-05-15 10:59:56 -03:00
Lucas Hiago
0caa91d057 Remove second table of cancel email instructions style 2020-05-15 10:59:56 -03:00
Lucas Hiago
5d286cb349 Add i18n of new symbols for order cancel mail 2020-05-15 10:59:56 -03:00
Lucas Hiago
f72da4abe4 Add refund message in order cancel mail 2020-05-15 10:59:56 -03:00
Lucas Hiago
42012d6482 Add new order sumary in order cancel mail 2020-05-15 10:59:55 -03:00
Lucas Hiago
1c1200125e Add new greeting table in order cancel mail 2020-05-15 10:59:55 -03:00
Lucas Hiago
0b8771ccf0 Add connect with us footer to order cancelation email 2020-05-15 10:59:55 -03:00
Luis Ramos
52e7ca2417 Select first default OC only if no OC is already selected 2020-05-15 14:26:56 +01:00
Luis Ramos
c3f0c0ed7f Extract method to prepare work ahead 2020-05-15 14:25:20 +01:00
Transifex-Openfoodnetwork
4f14d7910a Updating translations for config/locales/en_IE.yml 2020-05-15 23:04:12 +10:00
Pau Pérez Fabregat
5c7541e63d Merge pull request #5415 from openfoodfoundation/dependabot/bundler/bugsnag-6.13.1
Bump bugsnag from 6.13.0 to 6.13.1
2020-05-15 13:47:46 +02:00
Matt-Yorkley
c2efa901c2 Don't highlight update button when form is invalid 2020-05-15 13:38:17 +02:00
Luis Ramos
4292636e70 Remove close button in product modal 2020-05-15 12:16:19 +01:00
Luis Ramos
d95b2a97b0 Add missing padding above close button (both for the case with image or just with text) and also below product image 2020-05-15 12:12:07 +01:00
Luis Ramos
edaf419857 Use rem instead of px or em 2020-05-15 12:12:07 +01:00
Luis Ramos
38bc076c77 Fix some rubocop issues 2020-05-15 12:12:07 +01:00
Luis Ramos
30fe457cb5 Make product modal show close button only if there is a scroll bar 2020-05-15 12:12:07 +01:00
Luis Ramos
e239bb33f8 Improve the mobile cookies policy modal with a margin 2020-05-15 12:12:07 +01:00
Luis Ramos
3a512478d6 Improve the mobile registration modal by adding a margin 2020-05-15 12:12:07 +01:00
Luis Ramos
4b63893377 Improve mobile login modal with a margin 2020-05-15 12:12:07 +01:00
Luis Ramos
50fa4fc93d Make modal close buttons a little darker with a white cross 2020-05-15 12:12:07 +01:00
Luis Ramos
cbfaaabb72 Adjust different paddings and margins to make mobile product modal contents similar to required design 2020-05-15 12:12:07 +01:00
Luis Ramos
0a378a897b Add close button to mobile product modal, this can be reused in other modals later 2020-05-15 12:12:07 +01:00
Luis Ramos
35ac5e093e Adapt modal size to leave some background visible so that user can click to disable modal 2020-05-15 12:12:07 +01:00
Luis Ramos
39e47998e1 Make the background opacity of modals in the FrontOffice a litle darker according to design 2020-05-15 12:12:07 +01:00
Luis Ramos
14478d5fc1 Style producer name and properties in product modal 2020-05-15 12:12:07 +01:00
Luis Ramos
59a13adff0 Remove product category from product modal 2020-05-15 12:11:32 +01:00
Luis Ramos
fee03c4101 Remove repeated/dead rules 2020-05-15 12:11:32 +01:00
Luis Ramos
9a115afd4f Remove bars around product description and border around product image 2020-05-15 12:11:32 +01:00
Matt-Yorkley
3ba1182661 Dynamically mark quantity field as invalid when stock is incorrect 2020-05-15 12:59:29 +02:00
Matt-Yorkley
42195b76d3 Highlight update button when cart page form is "dirty" 2020-05-15 12:59:29 +02:00
Matt-Yorkley
73b533690e Refactor cart update button syntax 2020-05-15 12:59:29 +02:00
Matt-Yorkley
78f736db45 Add red border on quantity field when it must be updated 2020-05-15 12:59:28 +02:00
Luis Ramos
367de87c61 Upgrade jquery-ui-rails to v4.2 2020-05-15 08:58:40 +01:00
Luis Ramos
4fe1135a33 Merge pull request #5376 from rmklaus12/5104-mobile-keyboard-inputs
Added inputmode attribute to show appropriate mobile keyboard for sel…
2020-05-15 08:49:42 +01:00
Transifex-Openfoodnetwork
78db7e0e5f Updating translations for config/locales/en_GB.yml 2020-05-15 17:36:21 +10:00
David Cook
b4228e8cdd 5299 Remove unnecessary comments 2020-05-15 15:11:26 +10:00
David Cook
f5629d59b0 5299: Add trailing square brackets for array parameters (distributor and order_cycle) 2020-05-15 15:04:01 +10:00
David Cook
8a2c65b6bb Remove duplicate line 2020-05-15 15:04:01 +10:00
David Cook
79df4868de 5299: Unit and feature test for filtering by multiple order cycles 2020-05-15 15:04:01 +10:00
Maikel Linke
51feef83ca Update translations from Transifex 2020-05-15 14:10:36 +10:00
Maikel
90baec0e2c Merge pull request #5393 from openfoodfoundation/transifex
Transifex
2020-05-15 13:53:56 +10:00
Maikel
d566051e7d Merge pull request #5432 from openfoodfoundation/dependabot/bundler/mini_racer-0.2.11
Bump mini_racer from 0.2.10 to 0.2.11
2020-05-15 11:20:46 +10:00
Maikel
6c409d6c70 Merge pull request #5380 from ckhung5/5201-fix-missing-jquery-ui
Update jquery-ui-rails version to 4.1.1
2020-05-15 11:11:36 +10:00
dependabot-preview[bot]
4613502707 Bump bugsnag from 6.13.0 to 6.13.1
Bumps [bugsnag](https://github.com/bugsnag/bugsnag-ruby) from 6.13.0 to 6.13.1.
- [Release notes](https://github.com/bugsnag/bugsnag-ruby/releases)
- [Changelog](https://github.com/bugsnag/bugsnag-ruby/blob/master/CHANGELOG.md)
- [Commits](https://github.com/bugsnag/bugsnag-ruby/compare/v6.13.0...v6.13.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-05-14 21:04:00 +00:00
dependabot-preview[bot]
3bc09cfcfb Bump stripe from 5.15.0 to 5.22.0
Bumps [stripe](https://github.com/stripe/stripe-ruby) from 5.15.0 to 5.22.0.
- [Release notes](https://github.com/stripe/stripe-ruby/releases)
- [Changelog](https://github.com/stripe/stripe-ruby/blob/master/CHANGELOG.md)
- [Commits](https://github.com/stripe/stripe-ruby/compare/v5.15.0...v5.22.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-05-14 21:03:21 +00:00
dependabot-preview[bot]
99ab7688b6 Bump mini_racer from 0.2.10 to 0.2.11
Bumps [mini_racer](https://github.com/discourse/mini_racer) from 0.2.10 to 0.2.11.
- [Release notes](https://github.com/discourse/mini_racer/releases)
- [Changelog](https://github.com/rubyjs/mini_racer/blob/master/CHANGELOG)
- [Commits](https://github.com/discourse/mini_racer/compare/v0.2.10...v0.2.11)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-05-14 20:36:44 +00:00
Luis Ramos
644c65b124 Merge pull request #5430 from coopdevs/make-logger-spec-more-reliable
Make JobLogger spec more reliable
2020-05-14 14:33:52 +01:00
Pau Perez
403e1d317d Make JobLogger spec more reliable
This will hopefully fix our bild. I believe that the underlying issue is
that the logger's test double gets leaked into other examples, as RSpec
tells when running `spec/jobs/` specs.

```
5) SubscriptionPlacementJob performing the job when unplaced proxy_orders exist processes placeable proxy_orders
     Failure/Error: JobLogger.logger.info("Placing Order for Proxy Order #{proxy_order.id}")
       #<InstanceDouble(Logger) (anonymous)> was originally created in one example but has leaked into another example and can no longer be used. rspec-mocks' doubles are designed to only last for one example, and you need to create a new one in each example you wish to use it for.
     # ./app/jobs/subscription_placement_job.rb:31:in `place_order_for'
```
Read more: https://relishapp.com/rspec/rspec-mocks/v/3-4/docs/basics/scope#doubles-cannot-be-reused-in-another-example

For whatever reason the JobLogger keeps its `.logger` being stubbed
after this spec.
2020-05-14 13:51:57 +02:00
Transifex-Openfoodnetwork
bd8b3f11d1 Updating translations for config/locales/en_FR.yml 2020-05-14 05:42:38 +10:00
Transifex-Openfoodnetwork
937c981dd8 Updating translations for config/locales/fr.yml 2020-05-14 05:41:55 +10:00
Luis Ramos
19da0ba969 Merge branch 'master' into 3-0-stable-may13 2020-05-13 19:50:32 +01:00
Luis Ramos
5f7c1474a2 Merge pull request #5377 from manvil/1782_enterprise_at_same_address
Handling multiple enterprises at the same location
2020-05-13 19:31:14 +01:00
Luis Ramos
1671184a3c Merge pull request #5375 from luisramos0/sample_order
[Spree 2.1] OFN v3 comes with sample orders :-)
2020-05-13 12:04:06 +01:00
Luis Ramos
be998a9eb6 Reload shipment before shipping otherwise shipment stays as ready but with shipped_at defined 2020-05-13 12:00:37 +01:00
Transifex-Openfoodnetwork
9b7de5ee6e Updating translations for config/locales/en_NZ.yml 2020-05-13 19:27:55 +10:00
Luis Ramos
ef2d7f9485 Merge pull request #5330 from openfoodfoundation/mobile-ux-filters
[mobile ux] Merge search and filter epic to master
2020-05-13 08:59:32 +01:00
Luis Ramos
58842e8cab Show order edit link on mobile instead of the cancel link 2020-05-12 19:44:01 +01:00
Matt-Yorkley
598071fa78 Remove conflicting "clear search" buttons added by Chrome 2020-05-12 18:59:15 +02:00
Matt-Yorkley
70e3f0f1f1 Fix closed shop message not displaying full-width 2020-05-12 18:29:48 +02:00
Matt-Yorkley
265a8ed573 Move messages and products form outside of row and columns to enable full-width 2020-05-12 18:24:10 +02:00
Luis Ramos
83381ad439 Relax array order verification 2020-05-12 15:46:23 +01:00
Luis Ramos
7804c740a6 Add name to permitted params and fix some rubocop issues 2020-05-12 15:35:47 +01:00
Luis Ramos
41645e8351 Merge pull request #5334 from coopdevs/output-logs-in-djs-log-file
Output logs in Delayed Job's log file
2020-05-12 10:05:26 +01:00
Luis Ramos
5f4882fc32 Merge pull request #5403 from openfoodfoundation/dependabot/bundler/ddtrace-0.35.2
Bump ddtrace from 0.35.1 to 0.35.2
2020-05-12 08:39:26 +01:00
dependabot-preview[bot]
1114e062b5 Bump ddtrace from 0.35.1 to 0.35.2
Bumps [ddtrace](https://github.com/DataDog/dd-trace-rb) from 0.35.1 to 0.35.2.
- [Release notes](https://github.com/DataDog/dd-trace-rb/releases)
- [Changelog](https://github.com/DataDog/dd-trace-rb/blob/master/CHANGELOG.md)
- [Commits](https://github.com/DataDog/dd-trace-rb/compare/v0.35.1...v0.35.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-05-11 22:07:52 +00:00
Luis Ramos
dcd097a22e Merge pull request #5231 from pacodelaluna/add-dfc-provider-engine
Add DFC Provider engine
2020-05-11 20:27:21 +01:00
Matt-Yorkley
ab143ceaed Merge pull request #5352 from pacodelaluna/change-date-displayed-on-sales-tax-report
Change date displayed on sales_tax reports
2020-05-11 09:56:38 +02:00
Matt-Yorkley
0cd4ad0a1a Ensure large amount of search text doesn't break layout with clear all button 2020-05-10 09:44:12 +02:00
Matt-Yorkley
9f882a8674 Ensure search results feedback wraps nicely onto next line 2020-05-10 09:44:12 +02:00
Matt-Yorkley
cb9c56d8aa Ensure correct left-alignment on text in search results feedback 2020-05-10 09:44:12 +02:00
Matt-Yorkley
dee793a392 Change join word between the two filter sets to be "and", to match the actual logic 2020-05-10 09:44:12 +02:00
Matt-Yorkley
7e6683581a Remove full stop from translation
This doesn't fit with the new syntax structure
2020-05-10 09:44:12 +02:00
Matt-Yorkley
b78976fcd7 Ensure consistent styling in both "no results" and "searching for" text 2020-05-10 09:44:12 +02:00
Matt-Yorkley
82b11d6947 Ensure join words are not bold 2020-05-10 09:44:12 +02:00
Matt-Yorkley
a75d3276a4 Include applied filters list in "no results" feedback 2020-05-10 09:44:12 +02:00
Matt-Yorkley
a1435e78c9 Extract applied filters feedback to partial 2020-05-10 09:44:12 +02:00
Matt-Yorkley
7be85d1dab Use bold font with teal colour for both applied taxons and applied properties 2020-05-10 09:44:12 +02:00
Matt-Yorkley
483a654d31 Add join word "or" when both categories and properties are present
Previously for example with "Organic" property and "Fruit" and "Nuts" categories it rendered as: "Fruit or Nuts Organic" instead of: "Fruit or Nuts or Organic"
2020-05-10 09:44:12 +02:00
Matt-Yorkley
f6b910b38a Fix clear search (x) button position on some layouts
Hopefully this will work on iPhones as well...?
2020-05-10 09:44:12 +02:00
Matt-Yorkley
ea06ec7ede Remove smaller (less than 1em) scaling in search bar on mobile 2020-05-10 09:44:12 +02:00
Matt-Yorkley
07ac7dd9c7 Add explicit 'search' input type to search field.
In theory this should improve some of the custom-keyboard functionality added by mobiles, but the implementations will be vary...
2020-05-10 09:44:12 +02:00
Matt-Yorkley
71fb3b1845 Focus search field after it's cleared, ready for immediate typing of new search term on mobile 2020-05-10 09:44:12 +02:00
Matt-Yorkley
e0cb514cad Add hover state to filters button with darker background 2020-05-10 09:44:12 +02:00
Matt-Yorkley
5ceaff24e9 Darken overlay background colour to reduce distraction 2020-05-10 09:44:11 +02:00
Matt-Yorkley
a7771a20c4 Adjust border-radius on filters button 2020-05-10 09:44:11 +02:00
Matt-Yorkley
03afae01b3 Decrease sidebar width on mobile for more tapping space 2020-05-10 09:44:11 +02:00
Matt-Yorkley
96c6da304a Increase margin between filter selectors 2020-05-10 09:44:11 +02:00
Matt-Yorkley
2964ec138d Update display of join words in filters list and rearrange code a bit for clarity
Here we need to build a really dynamic structure on the page like "Results for: <search-term> in <filter1> or <filter2>" and the styling on each of the words needs to be a bit different, specifically the filter terms need to be differently styled to the join words like "in" and "or". We have to generate those bits on the Angular side, but they also have to be wrapped in HTML in a specific way.

$sce.trustAsHtml() marks the injected HTML as "safe" (in relation to security issues like XSS). In this case the injected content doesn't involve any user-defined data, so it should be fine.
2020-05-10 09:44:11 +02:00
Matt-Yorkley
14d928c39d Fix feature specs where UI has changed 2020-05-10 09:44:11 +02:00
Matt-Yorkley
6b66787004 Update "no results" layout on mobile and tablet 2020-05-10 09:44:11 +02:00
Matt-Yorkley
4b695014e4 Update "no results" styling 2020-05-10 09:44:11 +02:00
Matt-Yorkley
c9bfccf465 Update styling on search feedback bar 2020-05-10 09:44:11 +02:00
Matt-Yorkley
026b98022c Add clear search button in shop searchbar 2020-05-10 09:44:11 +02:00
Matt-Yorkley
ff69389bb0 Make search bar "sticky" for tablets and mobile 2020-05-10 09:44:11 +02:00
Matt-Yorkley
f24969edb1 Remove gutter padding on shop content to gain a bit more horizontal real-estate 2020-05-10 09:44:11 +02:00
Matt-Yorkley
cbb67e15ed Extract button styles 2020-05-10 09:44:11 +02:00
Matt-Yorkley
865dcf79cb Extract some properties to variables 2020-05-10 09:44:11 +02:00
Matt-Yorkley
ebe00bdc31 Update filters clear button functionality 2020-05-10 09:44:11 +02:00
Matt-Yorkley
9eaf55f4c0 Add missing translation key 2020-05-10 09:44:11 +02:00
Matt-Yorkley
d1ea2c5f77 Extract shop searchbar styles to separate file 2020-05-10 09:44:11 +02:00
Matt-Yorkley
035bde9eff Define breakpoints in mixin and refactor 2020-05-10 09:44:11 +02:00
Matt-Yorkley
cbd77b4941 Improve element sizing and position on small screens 2020-05-10 09:44:11 +02:00
Matt-Yorkley
f337fd49e1 Extract search feedback bar into partial and move into main column 2020-05-10 09:44:11 +02:00
Matt-Yorkley
e25e4e7482 Fix issue with button submitting form instead of opening popup 2020-05-10 09:44:11 +02:00
Matt-Yorkley
ff07b97033 Add sidebar footer and buttons
Also includes a minor refactor to resolve an issue with animation timings. Angular was not adding the "shown" class to the different elements at the same time in the digest cycle, and it looked a bit shaky.
2020-05-10 09:44:11 +02:00
Matt-Yorkley
94145d0f7e Improve layout and sizing on mobile 2020-05-10 09:44:11 +02:00
Matt-Yorkley
da1d8e90e2 Update search placeholder 2020-05-10 09:44:11 +02:00
Matt-Yorkley
7c00d41fc4 Add some animation effects 2020-05-10 09:44:11 +02:00
Matt-Yorkley
8e9833fd06 Implement overlaid sidebar on mobile and tablet 2020-05-10 09:44:11 +02:00
Matt-Yorkley
f43bf3880c Add filters button on mobile and tablet 2020-05-10 09:44:11 +02:00
Matt-Yorkley
142cef3f3a Add filters count 2020-05-10 09:44:11 +02:00
Matt-Yorkley
0d9f049d24 Add inner icon and restyle search input element 2020-05-10 09:44:11 +02:00
Matt-Yorkley
f46ca0c595 Move search to new searchbar
This required a lot of refactoring, as the search needed to be inside both the form element and the Angular ProductsCtrl element, but to get a full-width row for the searchbar it needed to be outside of the 12 column layout of the other shop page elements...
2020-05-10 09:44:11 +02:00
Matt-Yorkley
532e27b7e1 Move filters into new column on desktop 2020-05-10 09:37:56 +02:00
Matt-Yorkley
3ca491683a Merge pull request #5317 from Matt-Yorkley/caching-timed-shops
[Caching] Timed caching on shops data
2020-05-09 15:33:26 +02:00
Transifex-Openfoodnetwork
644d06fb08 Updating translations for config/locales/en_FR.yml 2020-05-09 18:41:29 +10:00
Transifex-Openfoodnetwork
3044e62d8b Updating translations for config/locales/fr.yml 2020-05-09 18:06:16 +10:00
Pau Pérez Fabregat
b85e439b0e Merge pull request #5395 from coopdevs/skip-broken-spec
Skip unreliable caching test
2020-05-08 17:11:12 +02:00
Pau Perez
fa8c1270ce Skip unreliable caching test
This spec failed two times in a row and it's blocking the release.
2020-05-08 16:37:30 +02:00
Pau Pérez Fabregat
09caf88b6c Merge pull request #5396 from coopdevs/fix-brittle-test
Make test not depend on response's order
2020-05-08 16:37:06 +02:00
Pau Perez
b99bcc3c12 Make test not depend on response's order
I'm assuming this is failing in CI due to the order in which the closed
shops are returned.
2020-05-08 15:56:20 +02:00
Transifex-Openfoodnetwork
296a927900 Updating translations for config/locales/en_FR.yml 2020-05-08 22:49:17 +10:00
Transifex-Openfoodnetwork
32ead7b6b7 Updating translations for config/locales/fr.yml 2020-05-08 22:49:02 +10:00
Luis Ramos
0a6bd1424c Make ship method display on back_end work correcly by making checkout ignore ship methods configured for backoffice only
Adding both unit and feature tests as this is important enough for that
2020-05-08 12:59:17 +01:00
Luis Ramos
34d8b1957e Improve variable names 2020-05-08 12:42:32 +01:00
Luis Ramos
40dd307a35 Remove shipping method display on front_end option, it is not working and it's not straight forward to make it work correctly 2020-05-08 12:00:58 +01:00
Transifex-Openfoodnetwork
4485dcd7fe Updating translations for config/locales/en_GB.yml 2020-05-08 20:57:56 +10:00
Pau Perez
ad70a63370 Update all locales with the latest Transifex translations 2020-05-08 12:01:42 +02:00
Pau Pérez Fabregat
60470aaf9f Merge pull request #5332 from coopdevs/add-timestamps-to-oc-schedule
Add timestamps to OC schedule join table
2020-05-08 10:51:43 +02:00
Pau Pérez Fabregat
2cf407ce35 Merge pull request #5349 from openfoodfoundation/transifex
Transifex
2020-05-08 10:20:07 +02:00
Pau Pérez Fabregat
c38c59b0b9 Merge pull request #5223 from luisramos0/def_user
Change default user from spree@example.com to ofn@example.com ❤️
2020-05-08 09:51:31 +02:00
Luis Ramos
424932d61b Merge pull request #5262 from luisramos0/closed_shop_msg
[Mobile] Improve the design of shop page messages (closed shop, private shop and select OC)
2020-05-08 07:52:58 +01:00
Robin Klaus
aa46aec935 Fix translation keys in en.yml file from previous conflicting PRs 2020-05-08 13:21:47 +10:00
Kok Hung Cheah
19d5bcb150 Upgrade jquery-ui-rails to 4.1.2 instead of 4.1.1 2020-05-08 09:54:10 +10:00
Matt-Yorkley
5518ffa856 Ensure validations are called when updating attributes in test 2020-05-07 19:37:43 +02:00
Luis Ramos
dd5041db65 Remove unnecessary default user email and pwd from docker setup
These are now the default values in the app
2020-05-07 18:18:42 +01:00
Luis Ramos
052dbca1ba Merge pull request #5370 from Matt-Yorkley/dont-render-twice
Don't render twice
2020-05-07 18:15:47 +01:00
Matt-Yorkley
86bfd1bebb Add explanatory comments on usages of Timecop.travel 2020-05-07 17:29:58 +02:00
Pau Perez
ee94101edd Log subs jobs to DJ's log file
There's a bunch of logging bits we need to find out what happened in
`#5294`, the first of which is logging as we are used to for Rails
itself.  Turns out we were already logging but the log lines weren't
displayed.

That's because workers have no access to the Rails logger unless we hack
things a bit in the config/initializer. If we want to keep DJ's logs in
a different file, which I think is good for debugging purposes, we need
to diverge from Rails.logger.

However, there's no access to Delayed::Worker.logger in custom job
classes either so there's no way other than mimicking that logger's format
if we want log lines to be consistent.

Now the current logs will see the light like:

```
2020-05-07T14:09:42+0000: [Worker(host:8dc5e7e6f434 pid:1)] Job SubscriptionPlacementJob (id=54) RUNNING
2020-05-07T14:09:42+0000: Placing Order for Proxy Order 1
2020-05-07T14:09:42+0000: Issue in Subscription Order 2: complete
2020-05-07T14:09:42+0000: Placing Order for Proxy Order 7
2020-05-07T14:09:42+0000: Issue in Subscription Order 3: complete
2020-05-07T14:09:43+0000: [Worker(host:8dc5e7e6f434 pid:1)] Job SubscriptionPlacementJob (id=54) COMPLETED after 0.3378
2020-05-07T14:09:43+0000: [Worker(host:8dc5e7e6f434 pid:1)] 1 jobs processed at 2.8054 j/s, 0 failed
```

We'll see if we need to format these messages differently to make them
more greppeable.
2020-05-07 17:21:39 +02:00
Luis Ramos
468576ee8a Merge pull request #5329 from romale/master
Correct translations
2020-05-07 16:04:24 +01:00
Luis Ramos
c9b60d0f62 Merge pull request #5341 from mathewdbutton/5173-show-outstanding-order-balance-on-orders-page
Show outstanding balance on orders page
2020-05-07 16:03:58 +01:00
Luis Ramos
52b39d04a4 Merge pull request #5359 from mbudm/issue/5108
Add NavigationCheck to order cycles edit form
2020-05-07 14:37:32 +01:00
Matt-Yorkley
01d741509f Fix test of rendered properties AMS
Here the displayed properties that we're testing also rely on shops data (including the list of supplied properties), which is now cached for 15 seconds. We clear that cache entry so we can cleanly test only the caching of the properties AMS array.
2020-05-07 15:20:37 +02:00
Manvil George
63a1a6fefa More optimsations: removing unwanted code 2020-05-07 22:58:09 +10:00
Luis Ramos
66fe26fcc5 Merge pull request #5295 from Matt-Yorkley/shopfront-optimising
Enterprise serializer optimisations
2020-05-07 13:08:14 +01:00
Matt-Yorkley
460ab6cdb4 Use #allow instead of #stub 2020-05-07 13:20:30 +02:00
Matt-Yorkley
7457543c2b Adds spec for timed caching on shops data 2020-05-07 13:20:30 +02:00
Matt-Yorkley
6b6ab864ef Improve comment on Fragment Caching 2020-05-07 13:20:30 +02:00
Matt-Yorkley
e73c8232de Improve unit test in cache_service_spec 2020-05-07 13:20:30 +02:00
Matt-Yorkley
37821beb1b Extract home stats caching to method in service 2020-05-07 13:20:30 +02:00
Matt-Yorkley
2292cbaae4 Extract timed enterprise AMS fragment caching options to service 2020-05-07 13:20:28 +02:00
Luis Ramos
987347d5ab Move translation keys to new correct location 2020-05-07 12:18:40 +01:00
Luis Ramos
3c7970f72f Add select oc message when there are multiple OCs 2020-05-07 12:18:40 +01:00
Luis Ramos
d4980893a1 Refactor darker-background directive, extract method 2020-05-07 12:17:43 +01:00
Luis Ramos
0d6d071db2 Remove dead class .shopfront_hidden_message 2020-05-07 12:17:43 +01:00
Luis Ramos
cba9382230 Replace line-height with margin 2020-05-07 12:17:43 +01:00
Luis Ramos
7fcee0fe6d Fix problem in warning sign 2020-05-07 12:17:43 +01:00
Luis Ramos
f3347a8e16 Make teal links appear only when the darker background is activated
This way links in producers, about, etc, where the background is white will still appear as orange, as per design
2020-05-07 12:17:43 +01:00
Luis Ramos
782988b61c Fix with-darker-background class by moving it inside page-view selector and using opacity instead of just grey so that other elements in the page (shadow from element above) can be seen 2020-05-07 12:17:43 +01:00
Luis Ramos
21a1ba2fb5 Move translation keys according to new location in the customer_required partial 2020-05-07 12:17:43 +01:00
Luis Ramos
ba25986756 Fix some css rubocop issues 2020-05-07 12:17:43 +01:00
Luis Ramos
098ad6f250 Merge partial messages back to home partial where it is only used 2020-05-07 12:17:43 +01:00
Luis Ramos
319657d2c5 Move closed shop partial to /messages 2020-05-07 12:17:43 +01:00
Luis Ramos
eb773a813e Extract open shop message to partial 2020-05-07 12:17:43 +01:00
Luis Ramos
5dedbc4231 Extract customer_required message to separate partial 2020-05-07 12:17:43 +01:00
Luis Ramos
84c00fe215 Remove duplicate conditionals already present in ShopHelper#shop_tabs, when these partials are rendered, these conditions will always be true
In the shops partial, by adding the else, we avoid rendering empty space with an empty
products list in case the shop is closed
2020-05-07 12:17:43 +01:00
Luis Ramos
77d7d2b804 Make the background darker only in specific cases 2020-05-07 12:17:43 +01:00
Luis Ramos
b34fb79d69 Move content div to messages partial so that it's not used in the closed shop message (no margin according to design) 2020-05-07 12:17:43 +01:00
Luis Ramos
1c41061f9e If shop is closed show closed shop message partial in the home tab 2020-05-07 12:17:43 +01:00
Luis Ramos
b86081090f Extract closed shop message to a partial 2020-05-07 12:17:43 +01:00
Luis Ramos
dbdbe01d6a Add new style to closed shop message 2020-05-07 12:17:43 +01:00
Luis Ramos
0996c28c09 Memoize helper methods that are called several times in the views 2020-05-07 12:17:43 +01:00
Luis Ramos
5f70ef6e75 Improve style of closed shop message and remove border from message 2020-05-07 12:17:43 +01:00
Luis Ramos
e0b3e9a040 Remove border of message and paddings, add background color, change link color and split message in two lines 2020-05-07 12:17:43 +01:00
Matt-Yorkley
2876b98155 Use time-based caching on rendered AMS data for shops 2020-05-07 13:11:53 +02:00
Matt-Yorkley
545ca85644 Extract caching of homepage stats to service 2020-05-07 13:11:28 +02:00
Luis Ramos
c64ba75e8d Merge pull request #5348 from luisramos0/single_oc_selector
Replace select box with text when only one OC is available for selection
2020-05-07 12:07:19 +01:00
Luis Ramos
56b9737676 Merge pull request #5343 from luisramos0/windows
Make OC selector options color explicitly gray and not white
2020-05-07 11:44:14 +01:00
Luis Ramos
d967d855fc Merge pull request #5319 from Matt-Yorkley/caching-by-class
[Caching] Caching data by class
2020-05-07 11:43:44 +01:00
Luis Ramos
1e9b4516cb Merge pull request #5318 from Matt-Yorkley/caching-api
[Caching] API Action Caching on shop filters
2020-05-07 11:42:52 +01:00
Transifex-Openfoodnetwork
ffebaee9c7 Updating translations for config/locales/tr.yml 2020-05-07 17:34:22 +10:00
Manvil George
a629e1ecb7 Remove incorrect commenting 2020-05-07 11:46:49 +10:00
Manvil George
d7cf825531 Minimised version of the svg 2020-05-07 11:33:35 +10:00
Manvil George
585a754b18 Missed out on inverting the boolean expression 2020-05-07 11:31:27 +10:00
Kok Hung Cheah
edcdae6b58 Update jquery-ui-rails version to 4.1.1 2020-05-07 10:48:07 +10:00
Manvil George
d3504c177e A better SVG 2020-05-07 10:40:48 +10:00
Manvil George
7123d8347a XML Formatted The SVG 2020-05-07 09:50:27 +10:00
Manvil George
7847c4ed9e Removing unwanted blank lines 2020-05-07 09:37:35 +10:00
Manvil George
5b009f606a More optimizations around coding standards 2020-05-07 09:07:32 +10:00
Luis Ramos
066f978c59 Update ruby version in GETTING_STARTED 2020-05-06 22:19:43 +01:00
François Turbelin
d5b69ec90c Remove before call when no factorization 2020-05-06 22:04:56 +02:00
François Turbelin
13f00480ce Use serialized_data 2020-05-06 22:04:56 +02:00
François Turbelin
f6e06b5658 Use default enterprise_id to get the entreprise 2020-05-06 22:04:56 +02:00
François Turbelin
99798b010f Use ActionController::Base 2020-05-06 22:04:56 +02:00
François Turbelin
43293f00df Make the endpoint unrelated to enterprise id
Better to avoid to have endpoint specific to an enterprise
as we don't know the enterprise id yet on DFC side
2020-05-06 22:04:56 +02:00
François Turbelin
f0f8224934 Put back former lighter inclusions 2020-05-06 22:04:56 +02:00
François Turbelin
013198b33b Update routes 2020-05-06 22:04:56 +02:00
François Turbelin
830bf796d0 Update authors and remove emails 2020-05-06 22:04:56 +02:00
François Turbelin
dd9c994f9d Use spree_api_controller_setup layer 2020-05-06 22:04:56 +02:00
François Turbelin
c1d173d601 Add the access token logic, light version 2020-05-06 22:04:56 +02:00
François Turbelin
a8fb059482 Add basic spec 2020-05-06 22:04:56 +02:00
François Turbelin
496174255f Add REAME.md file 2020-05-06 22:04:56 +02:00
François Turbelin
80bbd5d513 Adjust namespace and scope for routes 2020-05-06 22:04:56 +02:00
François Turbelin
b152e532d2 Cosmetics 2020-05-06 22:04:56 +02:00
François Turbelin
d9d218f661 Add DFC Provider engine 2020-05-06 22:04:56 +02:00
Luis Ramos
d1392d400a Merge pull request #5350 from luisramos0/edit_order_snail
Improve order edit page in data inconsistency scenario (follow up from S2 #4186)
2020-05-06 20:33:40 +01:00
Luis Ramos
20984ac008 Merge pull request #5379 from openfoodfoundation/dependabot/bundler/ddtrace-0.35.1
Bump ddtrace from 0.35.0 to 0.35.1
2020-05-06 20:31:20 +01:00
dependabot-preview[bot]
7f9dfb6142 Bump ddtrace from 0.35.0 to 0.35.1
Bumps [ddtrace](https://github.com/DataDog/dd-trace-rb) from 0.35.0 to 0.35.1.
- [Release notes](https://github.com/DataDog/dd-trace-rb/releases)
- [Changelog](https://github.com/DataDog/dd-trace-rb/blob/master/CHANGELOG.md)
- [Commits](https://github.com/DataDog/dd-trace-rb/compare/v0.35.0...v0.35.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-05-06 19:20:07 +00:00
Transifex-Openfoodnetwork
6c71259b25 Updating translations for config/locales/en_FR.yml 2020-05-07 03:10:34 +10:00
Transifex-Openfoodnetwork
29a54cbfe4 Updating translations for config/locales/fr.yml 2020-05-07 03:10:22 +10:00
Manvil George
bf3bb4fb63 Review Comments incorporation 2020-05-07 00:54:01 +10:00
Transifex-Openfoodnetwork
05820c7ef0 Updating translations for config/locales/tr.yml 2020-05-07 00:14:33 +10:00
Transifex-Openfoodnetwork
492f96c90f Updating translations for config/locales/tr.yml 2020-05-07 00:11:28 +10:00
Pau Pérez Fabregat
ace3767eb2 Merge pull request #5333 from coopdevs/add-worker-docker-container
Create a container to run a DJ worker in dev
2020-05-06 16:11:21 +02:00
Luis Ramos
c7c8bfe212 Merge pull request #5347 from luisramos0/hide_oc_selector_for_private_shop
[Mobile] Hide OC selector if shop requires login/customer
2020-05-06 14:31:52 +01:00
Pau Pérez Fabregat
dadc17398f Merge pull request #5371 from Matt-Yorkley/cart-add-error
Cart add error handling
2020-05-06 15:22:06 +02:00
Pau Pérez Fabregat
194c87e805 Merge pull request #5361 from Matt-Yorkley/cart-with-soft-deletion
Cart with soft-deletion
2020-05-06 15:20:35 +02:00
Manvil George
6c51841039 Reverting unrelated changes 2020-05-06 23:05:34 +10:00
Luis Ramos
cb7a261594 Merge pull request #5374 from luisramos0/3-0-stable-may-5
[Spree 2.1] Merge master into 3-0-stable
2020-05-06 13:57:11 +01:00
Manvil George
d1e03909ec Minor CSS alterations to make the button visible at the bottom 2020-05-06 22:30:33 +10:00
Pau Pérez Fabregat
ead21a97cc Merge pull request #5327 from openfoodfoundation/luisramos0-patch-2
Add link to docker tips wiki page to Docker.md
2020-05-06 14:10:37 +02:00
Pau Pérez Fabregat
a0012e1c5b Merge pull request #5326 from openfoodfoundation/luisramos0-patch-1-1
Add link to Docker.md from GETTING_STARTED.md
2020-05-06 12:31:00 +02:00
Matt-Yorkley
9c24c1cd05 Ensure #caches_action works in test suite 2020-05-06 12:24:33 +02:00
Matt-Yorkley
4aac97c985 Add feature spec for action caching of taxon and properties endpoints 2020-05-06 11:47:51 +02:00
Matt-Yorkley
7e4c00ba3f Ensure caching works in cache tests for API controllers 2020-05-06 11:47:45 +02:00
Pau Pérez Fabregat
65433c6ac6 Merge pull request #5351 from luisramos0/improve_sample_data
Improve ship methods names on sample data
2020-05-06 11:27:34 +02:00
Pau Pérez Fabregat
b3205c5459 Merge pull request #5309 from luisramos0/better-karma
Make dockerfile install node and adapt karma browser config to work inside a docker container
2020-05-06 11:11:00 +02:00
Transifex-Openfoodnetwork
d52db51b29 Updating translations for config/locales/nb.yml 2020-05-06 17:25:07 +10:00
Mathew Button
e088b27a13 Always display the outstanding balance if not zero 2020-05-06 16:45:44 +10:00
Manvil George
f802775ad6 Fixing up old Enterprise Modal references 2020-05-06 15:37:28 +10:00
Manvil George
e9cba32f31 Appeasing the Codeclimate Workers 2020-05-06 13:13:35 +10:00
Manvil George
19b5f6a562 Handling multiple enterprises at the same location
Changes:
* Introduced a cluster marker to denote multiple points of interest at
the same location
* Seperated out a plain enterprise modal into 2 parts
  * A modal called EnterpriseModal for showing a list of enterprises at
  the same location
  * A box called EnterpriseBox(which by the way is also a technically a
  modal) that shows the details of that particular enterprise selected
* If at a location there exists only a single enterprise then only the
box is shown
2020-05-06 12:54:42 +10:00
Robin Klaus
f43380fce5 Added inputmode attribute to show appropriate mobile keyboard for selected field 2020-05-06 12:52:53 +10:00
Robin Klaus
7dce53a77b Added inputmode attribute to show appropriate mobile keyboard for selected field 2020-05-06 12:46:37 +10:00
Steve Roberts
4573127c59 Add NavigationCheck to order cycles edit form
- Simplify if statements with safe navigation operator
- Simplify order cycle nav check spec
- Rename nav check callback so a comment is not needed and remove unnecessary assignation to $scope
2020-05-06 10:43:21 +10:00
Luis Ramos
825f747dff Add more types of sample orders 2020-05-05 23:16:54 +01:00
Luis Ramos
4083da5b16 Add sample order to sample data 2020-05-05 23:16:54 +01:00
Luis Ramos
be4104d6f3 Merge branch 'master' into 3-0-stable-may-5 2020-05-05 19:11:20 +01:00
Matt-Yorkley
61d7adaf74 Enable optional caching tag in test metadata 2020-05-05 18:43:09 +02:00
Matt-Yorkley
bdc2d002fa Update karma tests 2020-05-05 17:22:12 +02:00
Matt-Yorkley
13e4411b89 Add error message on cart populate failure and don't keep re-sending the data to the server.
This was triggering many requests to be continuously re-sent in a very problematic way (server-melting), and with no user feedback.
2020-05-05 17:22:10 +02:00
Luis Ramos
c2a9a698f4 Merge pull request #5312 from openfoodfoundation/dependabot/bundler/unicorn-5.5.5
Bump unicorn from 5.5.4 to 5.5.5
2020-05-05 15:24:59 +01:00
Matt-Yorkley
9a7807b134 Don't continuously re-post data on cart error 2020-05-05 16:04:05 +02:00
Luis Ramos
24414b83dd Merge pull request #5325 from oeoeaio/enhancement-5214
Add order number and date/time to order cycles customer report
2020-05-05 14:34:47 +01:00
Matt-Yorkley
4f4b3fb206 Don't render twice 🙈 2020-05-05 15:21:05 +02:00
Matt-Yorkley
6afda87baf Add explanatory comment on soft-deleted variant stock logic 2020-05-05 13:57:50 +02:00
Matt-Yorkley
0a28abbf2d Add additional feature specs for soft-deleted variants in cart 2020-05-05 13:57:50 +02:00
Matt-Yorkley
26ba76cff9 Fix soft-deletion in CartService and update spec 2020-05-05 13:57:50 +02:00
Matt-Yorkley
a3458aa562 Ensure VariantStockLevels can process soft-deleted variants 2020-05-05 13:57:50 +02:00
Matt-Yorkley
0e429da377 Return zero available stock (total_on_hand) for variants that are soft-deleted 2020-05-05 13:57:50 +02:00
Matt-Yorkley
eb51b87bea Add spec for current soft deletion behaviour in OrderCycle#variants_distributed_by scope 2020-05-05 13:57:50 +02:00
Matt-Yorkley
d3de1ce47e Add spec for current soft deletion behaviour in VariantOverride#indexed 2020-05-05 13:57:50 +02:00
Matt-Yorkley
5639b21c77 Add tests for current soft-deleted variant behavior in CartService 2020-05-05 13:57:50 +02:00
Matt-Yorkley
068c8feea7 Merge pull request #5289 from Matt-Yorkley/cart-populate
Cart populate
2020-05-05 13:56:17 +02:00
François Turbelin
6e5cbebf4a Change date value on order_and_distributor_report 2020-05-05 12:27:17 +02:00
François Turbelin
9cfd7db99d Change date displayed on sales_tax reports 2020-05-05 12:27:17 +02:00
Luis Ramos
bcfa8982ef Merge pull request #5364 from openfoodfoundation/dependabot/bundler/ddtrace-0.35.0
Bump ddtrace from 0.34.2 to 0.35.0
2020-05-05 10:58:13 +01:00
Matt-Yorkley
805f91e838 Remove unnecessary #all call 2020-05-05 09:56:08 +02:00
Matt-Yorkley
a3757992b5 Use #tap to destroy and remove before block 2020-05-05 09:55:14 +02:00
Steve Roberts
3b8acdc577 Split order_cycle_spec into smaller specs grouped by theme 2020-05-05 15:39:45 +10:00
dependabot-preview[bot]
7180af2736 Bump ddtrace from 0.34.2 to 0.35.0
Bumps [ddtrace](https://github.com/DataDog/dd-trace-rb) from 0.34.2 to 0.35.0.
- [Release notes](https://github.com/DataDog/dd-trace-rb/releases)
- [Changelog](https://github.com/DataDog/dd-trace-rb/blob/master/CHANGELOG.md)
- [Commits](https://github.com/DataDog/dd-trace-rb/compare/v0.34.2...v0.35.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-05-04 22:46:59 +00:00
Eduardo
2fca16f02f change shop name to be link to shop on transactions page 2020-05-04 07:06:07 -03:00
Mathew Button
fe6c810505 Add brackets in view instead of API response 2020-05-04 19:09:18 +10:00
Luis Ramos
44872844ed Make ship methods in sample data have the name of the enterprise so it's easier to distinguish them 2020-05-03 16:36:12 +01:00
Luis Ramos
bf0b941e1c Merge pull request #4935 from coopdevs/data-archiving
Allow data archiving using the :truncate_data task
2020-05-03 12:58:31 +01:00
Luis Ramos
e2b26b2e9c Replace break with if
What we would need would be a continue, not break, so that other units will be processed without halting the cycle through the units
2020-05-03 12:00:23 +01:00
Luis Ramos
92d0a5b735 Change default user from spree@example.com to ofn@example.com 2020-05-03 10:12:43 +01:00
Luis Ramos
8e27ace563 Adapt specs where there is only one OC available to the absence of the OC selector 2020-05-02 20:16:41 +01:00
Transifex-Openfoodnetwork
93881a742e Updating translations for config/locales/en_GB.yml 2020-05-03 05:09:16 +10:00
Luis Ramos
b92e257e44 Fix codeclimate issue 2020-05-02 19:12:47 +01:00
Luis Ramos
fa908d4024 Extract change_order_cycle partial from main enterprise shop view 2020-05-02 19:01:36 +01:00
Luis Ramos
7fd14cf29b Adjust line height of select label and select itself 2020-05-02 19:01:36 +01:00
Luis Ramos
ef0e9dc0ca Replace select box with text when only one OC is available for selection 2020-05-02 19:01:33 +01:00
Luis Ramos
89cb447387 Hide OC selector if shop requires login/customer 2020-05-02 17:56:49 +01:00
Luis Ramos
b568d25446 Update all locales with the latest Transifex translations 2020-05-02 17:08:53 +01:00
Luis Ramos
303464a04e Merge pull request #5297 from openfoodfoundation/transifex
Transifex
2020-05-02 15:40:54 +01:00
Luis Ramos
0662c57d9d Merge pull request #5344 from luisramos0/debug_assets
Move PROFILE debug assets flag to another ENV var
2020-05-02 14:21:15 +01:00
Luis Ramos
acb7e9751b Move debug assets flag to another env var so we go back to having both profile and debug assets disabled by default 2020-05-02 10:42:49 +01:00
Luis Ramos
9ae3ad9279 Move rule on option out of the select rule to fix rubocop issue 2020-05-01 17:43:52 +01:00
Luis Ramos
240e2a36d3 Make option color explicitly gray and not white otherwise we will have options render white on white on some browsers, namely chrome on windows 10 2020-05-01 17:39:12 +01:00
Mathew Button
8087e6b31b Show outstanding balance on orders page
Prior to this change, there was no way of knowing how much was owed (or
in need of refunding) at a glance for each order on the orders index page,
this information was only available by clicking through to an order
payment page

This change adds the outstanding balance for each order
2020-05-01 21:38:20 +10:00
Transifex-Openfoodnetwork
39875308c2 Updating translations for config/locales/en_FR.yml 2020-05-01 04:55:35 +10:00
Transifex-Openfoodnetwork
c424e7b65e Updating translations for config/locales/fr.yml 2020-05-01 04:55:21 +10:00
Pau Perez
9d253e1e3e Create a container to run a DJ worker in dev 2020-04-30 17:52:22 +02:00
Matt-Yorkley
1990417b72 Test values are not fetched from database when cache exists 2020-04-30 17:37:48 +02:00
Matt-Yorkley
7a22f7f783 Move and rename caching spec 2020-04-30 17:37:45 +02:00
Luis Ramos
74c7a01151 Merge pull request #5259 from luchiago/add-extra-social-media-to-emails
Add extra social media to order confirmation email
2020-04-30 15:01:09 +01:00
Matt-Yorkley
f724d1b572 Add feature spec for caching properties and taxons AMS 2020-04-30 15:35:39 +02:00
Luis Ramos
8845260979 Merge pull request #5285 from rmklaus12/5246-missing-translation-orders-list
5246 missing translation orders list
2020-04-30 14:00:26 +01:00
Pau Perez
1903134e13 Add timestamps to OC schedule join table
This is critical to debug bugs related to subscriptions.

Essentially, `has_and_belongs_to_many` doesn't give us the option for
any other column that the foreign keys themselves:

> A has_and_belongs_to_many association creates a direct many-to-many
> connection with another model, with no intervening model.

Source: https://guides.rubyonrails.org/v3.2/association_basics.html#the-has_and_belongs_to_many-association

Note however, that there's no way to update an order_cycle_schedule,
that I can think of but `updated_at` doesn't do any harm.
2020-04-30 15:00:13 +02:00
Pau Pérez Fabregat
4174ea69a1 Merge pull request #5247 from chrishil1/Placeholders_variant
Added placeholders in variant edit page
2020-04-30 12:05:59 +02:00
Pau Pérez Fabregat
676add18c3 Merge pull request #5322 from luisramos0/dead_content
Delete some dead views
2020-04-30 12:02:14 +02:00
Matt-Yorkley
a35f8cdb02 Move cache keys used in views into the cache service 2020-04-30 09:45:15 +02:00
Luis Ramos
8a107bee98 Merge pull request #5235 from luisramos0/mail_methods
Remove smtp config from admin config page
2020-04-29 19:10:02 +01:00
Matt-Yorkley
210029aaff Enable optional caching tag in test metadata 2020-04-29 20:04:54 +02:00
Transifex-Openfoodnetwork
5bc5ef9a9d Updating translations for config/locales/pt_BR.yml 2020-04-30 03:52:57 +10:00
Matt-Yorkley
f2cd122ec8 Update variant_stock_spec for unsaved and soft-deleted cases 2020-04-29 18:29:44 +02:00
Matt-Yorkley
4054bdd722 Add Bugsnag call for "variant with no stock item" case 2020-04-29 17:34:48 +02:00
Pau Pérez Fabregat
e04b18c70e Merge pull request #5320 from luisramos0/vo_fix
[Spree 2.1] Fix variant overrides specs and shops spec
2020-04-29 17:30:41 +02:00
romale
3a4ef2697c Correct translations
Without it, some labels not translated to other language.
And, please check code:
en.admin.subscription.subscriptions - does not exists
but
en.admin.subscriptions.subscriptions - is exist
2020-04-29 18:27:09 +03:00
Matt-Yorkley
2bdda7de04 Change order of methods for easier reading 2020-04-29 17:22:46 +02:00
Matt-Yorkley
92a881c584 Simplify relation used in #exchanges_supplying 2020-04-29 17:19:16 +02:00
Pau Perez
647a7bdddf Clarify we won't use truncate_date in prod yet
We initially aimed at implementing data archiving in production reusing
this rake task but priorities have changed. It'll be just a refactor for
now.
2020-04-29 17:00:53 +02:00
Pau Perez
e0228f66af Default to archiving data older than 2 years.
This is safer than the current 3 months.
2020-04-29 16:49:43 +02:00
Pau Perez
38ea95ea85 Prevent nil input to turn into 0 2020-04-29 16:49:43 +02:00
Pau Perez
6ceeda7d9e Instrument TruncateData logging start and end 2020-04-29 16:49:43 +02:00
Pau Perez
703706ee0b Replace one-letter variable with full word 2020-04-29 16:49:43 +02:00
Pau Perez
e2a3dd0c6f Delete only return auths. of the deleted orders
They are associated to order and as such we can't remove them all
blindly.
2020-04-29 16:49:43 +02:00
Pau Perez
a3b8638faf Delete sessions older than two weeks
This affects users that are actively purchasing, so 2 weeks data is more
than enough. Others can afford to log in again.
2020-04-29 16:49:43 +02:00
Pau Perez
4f015320a3 Upper case DELETE statement
This keeps it consistent with the rest of the log.
2020-04-29 16:49:43 +02:00
Pau Perez
0f1d57db73 Delete LogEntries older than a month
They are useful for troubleshooting but a month data seems enough.
2020-04-29 16:49:43 +02:00
Pau Perez
5f84c51c13 Delete StateChanges older than a month
They are useful for troubleshooting but a month data seems enough.
2020-04-29 16:49:43 +02:00
Pau Perez
d215c76bc9 Make it even more explicit the action is dangerous
We're yelling at the person to make a backup before proceeding.
2020-04-29 16:49:43 +02:00
Pau Perez
e1a80edb7e Carefully doc how to archive data from an instance 2020-04-29 16:49:43 +02:00
Pau Perez
a4372e4d31 Fix long lines 2020-04-29 16:49:43 +02:00
Pau Perez
b6d3c3039a Fix "Method has too many lines" violation 2020-04-29 16:49:43 +02:00
Pau Perez
f199cb1bea Warn but allow executing :truncate_data in prod 2020-04-29 16:49:43 +02:00
Pau Perez
be123b2a72 Specify how much data to remove in :truncate_data 2020-04-29 16:49:43 +02:00
Pau Perez
60d29d619f Replace :truncate_data definition with new class
And cover it with a test.
2020-04-29 16:49:43 +02:00
Pau Perez
78fd785f0c Extract TruncateData out of :truncate_data task 2020-04-29 16:49:43 +02:00
Pau Pérez Fabregat
f9f4bdae8f Merge pull request #5238 from Matt-Yorkley/moar-performance
Improve Pain Points
2020-04-29 16:36:15 +02:00
Luis Ramos
0f16c43f21 Add link to docker tips wiki page to Docker.md 2020-04-29 14:16:59 +01:00
Luis Ramos
865024fc1f Add link to the docker setup guide to the getting started guide. 2020-04-29 14:05:45 +01:00
Luis Ramos
407d890d23 Merge pull request #5315 from Matt-Yorkley/ordercyles-controller-tweaks
OrderCylesController tweaks
2020-04-29 13:50:10 +01:00
Luis Ramos
0e5d7c1eb1 Add migration to drop dead spree_mail_methods table and some dead mail_methods preferences 2020-04-29 13:34:50 +01:00
Luis Ramos
a38b18bd0d Remove smtp config from admin config page 2020-04-29 13:34:19 +01:00
Rob H
6405c34428 Add order number and date/time to order cycles customer report 2020-04-29 21:20:14 +10:00
Pau Pérez Fabregat
e7df9bb58d Merge pull request #5178 from coopdevs/dont-populate-empty-cart
Dont populate empty cart
2020-04-29 13:08:26 +02:00
Matt-Yorkley
d3af3d3f27 Avoid extra query on stock_items every time #on_demand is called on a variant.
In the case where the variant has not been saved yet, we can use #new_record? here instead of #stock_items.empty?, to avoid an additional query. This can be called a vast number of times per request, in various N+1s. The other case where we need to return here is when a variant has been deleted, so #stock_items will be empty and #stock_item will be nil. Likewise, we can just check that with #deleted? and avoid #stock_items.empty?
2020-04-28 20:54:04 +02:00
Matt-Yorkley
9682544442 Eager-load and update BasicEnterpriseSerializer 2020-04-28 20:10:40 +02:00
Matt-Yorkley
f4bcf6c6d5 Eager-load line_item associations in order 2020-04-28 20:10:40 +02:00
Luis Ramos
e6fa08edfc Delete some dead views 2020-04-28 19:07:19 +01:00
Luis Ramos
f3e651b1f7 present? calls length which is breaking it with error ActiveModel::MissingAttributeError Exception: missing attribute: address_id
any? works well as it just verifies the size of the collection
2020-04-28 16:31:11 +01:00
Luis Ramos
7e12142f91 Collection must be after load_data so that hubs are already available for VOs calculation 2020-04-28 16:31:11 +01:00
Luis Ramos
794fb5dfc5 Merge pull request #5316 from luisramos0/3-0-stable-Apr28
[Spree 2.1] Merge master into 3-0-stable
2020-04-28 16:30:29 +01:00
Transifex-Openfoodnetwork
18fc4b7c92 Updating translations for config/locales/ca.yml 2020-04-29 01:13:42 +10:00
Transifex-Openfoodnetwork
612cc45ab7 Updating translations for config/locales/en_FR.yml 2020-04-29 01:13:35 +10:00
Transifex-Openfoodnetwork
16e289bf37 Updating translations for config/locales/en_GB.yml 2020-04-29 01:13:29 +10:00
Transifex-Openfoodnetwork
b54c6fcb26 Updating translations for config/locales/nb.yml 2020-04-29 01:13:26 +10:00
Transifex-Openfoodnetwork
8365c66add Updating translations for config/locales/fil_PH.yml 2020-04-29 01:13:22 +10:00
Transifex-Openfoodnetwork
5590671c23 Updating translations for config/locales/fr.yml 2020-04-29 01:13:19 +10:00
Luis Ramos
9e43661127 Merge pull request #5153 from luisramos0/bye_bye_ga
Bye bye Google Analytics
2020-04-28 16:09:16 +01:00
Luis Ramos
8c29797b23 Remove empty space on ffi line that was breaking bundle install
fuubar gets automatically moved to 2-5-0 as it is in master
2020-04-28 14:57:21 +01:00
Matt-Yorkley
ec581dccb8 Use class-based caching for queries in EnterpriseInjectionData 2020-04-28 15:11:59 +02:00
Matt-Yorkley
4d098448f5 Cache rendered AMS arrays in darkswarm layout based on latest timestamps of rendered object classes 2020-04-28 15:11:59 +02:00
Matt-Yorkley
53ebe10483 Fix issue with generic primary taxon in product factory changing which taxons are correctly counted as being in open order cycles. 2020-04-28 15:11:59 +02:00
Matt-Yorkley
eb5f8b85ff Touch primary taxon when a product's primary_taxon is changed 2020-04-28 15:11:59 +02:00
Matt-Yorkley
1b18808d21 Touch ShippingMethod when it's assigned to a new distributor 2020-04-28 15:11:59 +02:00
Matt-Yorkley
6ef345c5d8 Touch taxon when a taxon is applied to a product 2020-04-28 15:11:59 +02:00
Matt-Yorkley
a25a75bbe8 Ensure action caching includes GET params
By default the auto-generated action cache keys looks like this:
`views/0.0.0.0:3000/api/order_cycles/1/properties`

With this change the cache keys now look like this:
`views/0.0.0.0:3000/api/order_cycles/1/properties?distributor=3`
2020-04-28 15:11:14 +02:00
Matt-Yorkley
ea1ec1a1c6 Use ActionCaching in OrderCyclesController (taxons and properties) 2020-04-28 15:11:12 +02:00
Matt-Yorkley
975afb3152 Enable use of Action Caching in the API 🎉
See: https://guides.rubyonrails.org/api_app.html#adding-other-modules
2020-04-28 15:11:00 +02:00
Luis Ramos
839b373b5c Merge branch 'master' into 3-0-stable-Apr28 2020-04-28 13:40:19 +01:00
Kristina Lim
265871932f Merge pull request #5146 from coopdevs/dev-mode-profiling-settings
Add PROFILE var to set production-like settings
2020-04-28 20:31:13 +08:00
Kristina Lim
c34570e96e Merge pull request #5313 from kristinalim/fix/mirror_db_script_bucket
Fix script for syncing public/ in AWS bucket to local
2020-04-28 20:28:05 +08:00
Matt-Yorkley
ac166f3590 Add CacheService 2020-04-28 14:15:16 +02:00
Matt-Yorkley
e4985a9d51 Avoid needlessly fetching the current user records (for authentication and API key checks)
These endpoints are absolutely public, and don't need the current user at any point.
2020-04-28 14:06:02 +02:00
Matt-Yorkley
eb7de18298 Return early (before hitting the DB) in complex product list rendering if we already know the order cycle is closed 2020-04-28 13:51:25 +02:00
Matt-Yorkley
67a7140642 Memoize distributor and order_cycle in Api::OrderCyclesController 2020-04-28 13:48:07 +02:00
Luis Ramos
868929eed3 Merge pull request #4993 from luisramos0/move_ent_fees
Change engine routes to better work with specs in rails 4
2020-04-28 11:48:41 +01:00
Transifex-Openfoodnetwork
8e6d53f6c6 Updating translations for config/locales/nb.yml 2020-04-28 17:59:10 +10:00
Robin Klaus
f072e9d9c2 Add missing translations on order list page 2020-04-28 16:47:39 +10:00
Kristina Lim
7c985f39ab Fix script for syncing public/ in AWS bucket to local 2020-04-28 13:22:48 +08:00
Kristina Lim
efb83c2f95 Merge pull request #5250 from mkllnk/mirror-db-script
Add cache to mirror_db script
2020-04-28 13:18:29 +08:00
Matt-Yorkley
74e81b078f Avoid N+1s in Order#cap_quantity_at_stock! 2020-04-28 01:11:28 +02:00
Matt-Yorkley
3fa2b3161f Avoid N+1s when using OrderCycle#exchanges_supplying 2020-04-28 01:10:07 +02:00
Matt-Yorkley
fe2bf8d531 Eager-load variants and stock items when doing stock checks on multiple variants 2020-04-28 01:05:42 +02:00
Matt-Yorkley
eb858159ce Eager-load :default_price on variants 2020-04-28 01:04:22 +02:00
Matt-Yorkley
43869fc140 Replace fired events with clearer method call
The 'spree.cart.add' event has no listeners in spree_core on in ofn. The 'spree.order.contents_changed' just has a single listener that calls `order.update_distribution_charge`.
2020-04-28 00:56:18 +02:00
Matt-Yorkley
a5c4364f92 Fetch (or create) current_order only once 2020-04-28 00:52:09 +02:00
dependabot-preview[bot]
02775d033d Bump unicorn from 5.5.4 to 5.5.5
Bumps [unicorn](https://yhbt.net/unicorn/) from 5.5.4 to 5.5.5.

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-04-27 20:50:56 +00:00
Luis Ramos
6559b4d3a4 Make dockerfile install node and adapt karma browser config to work inside a docker container 2020-04-27 19:05:11 +01:00
Luis Ramos
d851aa5106 Add model definition to migration to make migration more resilient 2020-04-27 18:40:56 +01:00
Luis Ramos
c5b9727177 Remove ga_cookies_preference from DB 2020-04-27 18:40:56 +01:00
Luis Ramos
248b0016d4 Remove trackers and google analytics 2020-04-27 18:40:33 +01:00
Luis Ramos
d8d6bad11c Remove config and sections related to google analytics in the cookies banner and cookies page 2020-04-27 18:40:00 +01:00
Luis Ramos
ab16931d70 Merge pull request #5257 from luisramos0/stripe_sca_payments_last
StripeSCA - reuse better method to fetch last payment of an order to avoid nasty bugs in the future
2020-04-27 18:34:35 +01:00
Matt-Yorkley
e33de8a20e Update specs and refactor a bit 2020-04-27 19:27:07 +02:00
Matt-Yorkley
468cb3f57e Remove obviously private methods from the public interface in CartService
These methods are not called from anywhere in the app, only in a couple of tests in cart_service_spec.
2020-04-27 19:27:07 +02:00
Matt-Yorkley
1152f307e2 Eager-load associated line_items data in #update_distribution_charge! 2020-04-27 19:27:07 +02:00
Matt-Yorkley
25525d4f75 Use guard clause in each block 2020-04-27 19:27:07 +02:00
Matt-Yorkley
a759d8c7c7 Avoid N+1s for variants and for line_items of variants 2020-04-27 19:27:07 +02:00
Matt-Yorkley
b3242041e5 Return earlier (before scoping process, if possible) 2020-04-27 19:27:07 +02:00
Matt-Yorkley
106bb7a27f Rename some variables and add comments for clarity in cart_service 2020-04-27 19:27:07 +02:00
Matt-Yorkley
2334ab6d00 Delete some dead code in cart_service
This Bugsnag error was added a year ago and hasn't been seen
2020-04-27 19:27:07 +02:00
Matt-Yorkley
11af5dffdc Memoize scoper in cart_service
Avoids fetching all of the hub's variant overrides from the db every time it's initialized.
2020-04-27 19:27:07 +02:00
Matt-Yorkley
3ce7e96777 Add some debounce and an onwheel hack to product add to basket field
Debounce ensures we don't get a million requests if the up/down buttons are clicked rapidly. The onwheel hack adds some protection against scrolling triggering the quantity up/down. See: https://stackoverflow.com/a/51076231
2020-04-27 19:27:07 +02:00
Transifex-Openfoodnetwork
670fff9d36 Updating translations for config/locales/es_CR.yml 2020-04-28 02:38:07 +10:00
Transifex-Openfoodnetwork
171ba09663 Updating translations for config/locales/fr.yml 2020-04-28 01:40:44 +10:00
Transifex-Openfoodnetwork
65c9c287e8 Updating translations for config/locales/en_FR.yml 2020-04-28 01:37:49 +10:00
Transifex-Openfoodnetwork
4332734f27 Updating translations for config/locales/ca.yml 2020-04-28 01:37:44 +10:00
Transifex-Openfoodnetwork
340f669506 Updating translations for config/locales/en_GB.yml 2020-04-28 01:37:36 +10:00
Transifex-Openfoodnetwork
3b7ad0ef4e Updating translations for config/locales/ca.yml 2020-04-27 23:49:48 +10:00
Luis Ramos
6e23f5bdac Merge pull request #5233 from luisramos0/stripe_sca_bo
[StripeSCA] Fix card payments in the Backoffice
2020-04-27 13:00:24 +01:00
Luis Ramos
8b5378e673 Merge pull request #5251 from luisramos0/Issue4654
Change Result of PriceSack Calculation from Integers to Floats, clone #4812
2020-04-27 12:36:18 +01:00
Transifex-Openfoodnetwork
ba32e2d676 Updating translations for config/locales/fil_PH.yml 2020-04-27 18:08:38 +10:00
Pau Pérez Fabregat
74c4722cfe Merge pull request #5286 from rmklaus12/4966-missing-translation-admin-prod-list
4966 missing translation admin prod list
2020-04-27 09:28:57 +02:00
Luis Ramos
b3eda9fecb Merge pull request #5256 from dacook/5190-fix-order-sorting
Fix sorting of orders list
2020-04-26 14:24:00 +01:00
Pau Perez
c224df9b6a Do not trigger an orderChanged with null quantity
When loading the page $watchGroup calls the listener function for every
listed line item but with a set variant and null quantity and
max_quantity. There's no point on computing an order change when there
was none.

This saves an empty request on the second most used endpoint of the app,
specially busy when users are placing orders.
2020-04-24 15:54:46 +02:00
Luis Ramos
b9c86d54b0 Merge pull request #5261 from luisramos0/search-iphone
[Mobile] Make search box font size be 16px so that no zoom happens on iphone
2020-04-24 11:30:26 +01:00
Transifex-Openfoodnetwork
cebba4dd43 Updating translations for config/locales/en_GB.yml 2020-04-24 18:22:49 +10:00
Matt-Yorkley
43ba73ac19 Avoid expensive queries for supplied product properties if enterprise is not a supplier 2020-04-23 21:51:39 +02:00
Matt-Yorkley
728326c2a5 Eager-load :properties on supplied products in enterprise_shopfront_serializer 2020-04-23 21:48:41 +02:00
Transifex-Openfoodnetwork
8bcc9456d8 Updating translations for config/locales/en_FR.yml 2020-04-24 04:30:04 +10:00
Transifex-Openfoodnetwork
5f51b21fe9 Updating translations for config/locales/fr.yml 2020-04-24 04:29:52 +10:00
Luis Ramos
2984829790 Merge pull request #5253 from luisramos0/edit_order
Make edit order page work even if inventory_items dont have a corresponding line_item in the order
2020-04-23 19:27:31 +01:00
Luis Ramos
f366aa2605 Merge pull request #5290 from openfoodfoundation/dependabot/bundler/mini_racer-0.2.10
Bump mini_racer from 0.2.9 to 0.2.10
2020-04-23 18:53:14 +01:00
Matt-Yorkley
bf16a10129 Update all locales with the latest Transifex translations 2020-04-23 19:05:22 +02:00
Matt-Yorkley
43836d2b30 Merge pull request #5292 from openfoodfoundation/transifex
Transifex
2020-04-23 18:53:36 +02:00
Pau Pérez Fabregat
82156e32e0 Merge pull request #4920 from luisramos0/api_var_ctrl
Bring Spree::Variant#active from Spree so that we can improve it
2020-04-23 17:35:49 +02:00
Matt-Yorkley
69cf7dff2c Memoize :active in enterprise serializers that call it multiple times 2020-04-23 13:17:44 +02:00
Pau Pérez Fabregat
a8ca471cd2 Merge pull request #5189 from Matt-Yorkley/mobile-buttons
[Mobile UX] Style updates on buttons
2020-04-23 12:56:49 +02:00
Luis Ramos
aa52cf8bf0 Merge pull request #5254 from chrishil1/missing_translation_save_as_default
Added missing translation to column dropdown
2020-04-23 11:08:33 +01:00
Luis Ramos
ac6501c5d8 Merge pull request #5195 from luisramos0/prod_helper
Delete dead code from several places...
2020-04-23 11:07:44 +01:00
Luis Ramos
568e570b4b Move method to more generic helper to use it in mailers 2020-04-23 16:08:10 +10:00
Luis Ramos
42be6c905f Added spec for OrderPaymentFinder 2020-04-23 16:08:10 +10:00
Luis Ramos
d482cccefe Use OrderPaymentFinder methods instead of payments.last and payments.pending.last 2020-04-23 16:08:10 +10:00
Luis Ramos
52becf6abc Extract payment method logic from OrderPaymentFinder into the orders helper 2020-04-23 16:08:10 +10:00
Transifex-Openfoodnetwork
15319d66e2 Updating translations for config/locales/es_CR.yml 2020-04-23 12:27:58 +10:00
Robin Klaus
d8f4df4bcc Fixed missing translation, added keys to en.yml file 2020-04-23 09:58:47 +10:00
dependabot-preview[bot]
240d4a7802 Bump mini_racer from 0.2.9 to 0.2.10
Bumps [mini_racer](https://github.com/discourse/mini_racer) from 0.2.9 to 0.2.10.
- [Release notes](https://github.com/discourse/mini_racer/releases)
- [Changelog](https://github.com/rubyjs/mini_racer/blob/master/CHANGELOG)
- [Commits](https://github.com/discourse/mini_racer/compare/v0.2.9...v0.2.10)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-04-22 19:41:50 +00:00
Luis Ramos
3dff11e405 Merge pull request #5182 from luisramos0/nokogiri
Bump Nokogiri
2020-04-22 20:40:04 +01:00
Pau Perez
2d9b41729e Use memory cache-store when profiling
Or you want see any change when playing fragment-caching or other caching
strategies.
2020-04-22 17:56:56 +02:00
Pau Perez
de8d8e658c Add PROFILE var to set production-like settings
I took this from a recent newsletter I read. Sometimes replication
performance issues locally is actually slower than production due to dev
mode settings (code reloading, etc.), heavy de-only gems and the asset
pipeline.

The PROFILE env var switches these settings all at the same time,
giving us an environment closer to production, essential for reliable
profiling. Then, rack-mini-profiler is going to be more accurate.

Apparently it's something
[RubyGems](b026df86ae/config/environments/development.rb (L72-L92))
and
[CodeTriage](a3c957647d)
both use.
2020-04-22 17:53:17 +02:00
Pau Pérez Fabregat
a7013b5542 Merge pull request #5241 from Matt-Yorkley/remove-old-migrations
Remove old migrations!
2020-04-22 17:01:01 +02:00
Maikel
24fe7e8878 Merge pull request #5280 from openfoodfoundation/transifex
Transifex
2020-04-22 16:08:57 +10:00
Maikel
eb94c5a5bd Merge pull request #5283 from Matt-Yorkley/customer-tags
Fix disappearing tags issue
2020-04-22 16:03:17 +10:00
Matt-Yorkley
4ef61b642e Fix disappearing tags issue 2020-04-22 01:33:38 +02:00
Luis Ramos
23f4faf192 Merge pull request #4841 from luisramos0/kill_rabl
Hide broken product taxons field, remove last rabl template and rabl itself
2020-04-21 18:49:12 +01:00
Transifex-Openfoodnetwork
becd57f7a4 Updating translations for config/locales/fr.yml 2020-04-21 22:52:47 +10:00
Transifex-Openfoodnetwork
2e4b224d48 Updating translations for config/locales/en_FR.yml 2020-04-21 22:42:53 +10:00
Transifex-Openfoodnetwork
2b210bd096 Updating translations for config/locales/fr.yml 2020-04-21 22:42:34 +10:00
Matt-Yorkley
53183b8598 Eager-load properties in inject_enterprise_and_relatives 2020-04-21 11:13:20 +02:00
Pau Perez
91306d5ce4 Update all locales with the latest Transifex translations 2020-04-21 10:13:00 +02:00
Pau Pérez Fabregat
e20e19f963 Merge pull request #5244 from coopdevs/include-deleted-variants-and-products
Include deleted products in OC mailer
2020-04-20 20:46:21 +02:00
Luis Ramos
2ab07bc6a9 Make search box font size be 16px so that no zoom happens on iphone 2020-04-18 18:50:25 +01:00
Luis Ramos
15e56b21ae Merge pull request #5229 from chrishil1/missing_translation
Added missing translations to enterprise_relationship page
2020-04-18 18:15:54 +01:00
Luis Ramos
629db3ae4d Merge pull request #5230 from chrishil1/missing_translation_2
Add product translations to admin order creation
2020-04-18 18:15:01 +01:00
Luis Ramos
43274ecb4f Remove dead code
Dead since https://github.com/openfoodfoundation/openfoodnetwork/pull/3305
2020-04-18 14:47:33 +01:00
Luis Ramos
437c7367db Remove dead code 2020-04-18 14:37:07 +01:00
Lucas Hiago
acfe0c540a Create instagram css property and apply 2020-04-18 10:06:14 -03:00
Lucas Hiago
ac2ab34e11 Add connect with us footer to customer order confirmation email 2020-04-18 10:06:06 -03:00
Lucas Hiago
41c0204cfa Update instagram and linkedin links 2020-04-18 10:05:59 -03:00
Luis Ramos
910cc99c2f Add spec to cover orders_controller watch sortOptions 2020-04-18 10:23:02 +01:00
David Cook
a0a361673a Fix sorting of orders
(wrong copied function call)
2020-04-18 15:03:39 +10:00
jeffrey s hill md
70005a99a3 Added missing translations 2020-04-17 17:02:37 -05:00
Luis Ramos
8f8dce4bab Do not render inventory items in the shipment that dont have a line item in the order 2020-04-17 20:23:29 +01:00
Luis Ramos
8973a1b76c Merging 6 specs in one takes around 1 minute of execution time 2020-04-17 20:18:13 +01:00
Luis Ramos
c1b28543c6 Extract print ticket spec to a separate file 2020-04-17 20:07:45 +01:00
Luis Ramos
c33352904a Make spec a bit more resilient 2020-04-17 18:48:20 +01:00
Luis Ramos
8bd3062b16 Fix rubocop issues 2020-04-17 18:17:54 +01:00
jeffrey s hill md
ed91c179cd Changed translation paths 2020-04-17 12:04:27 -05:00
Luis Ramos
c7fb85a715 Replace background with members with before with let statements 2020-04-17 17:34:36 +01:00
Luis Ramos
e901615b61 Make spec simpler 2020-04-17 16:56:56 +01:00
Pau Perez
d8e6d98912 Preload line item's option_values
This fixes an N+1 with the query

```sql
SELECT "spree_option_values".* FROM "spree_option_values"
INNER JOIN "spree_option_types"
  ON "spree_option_types"."id" = "spree_option_values"."option_type_id"
INNER JOIN "spree_option_values_line_items"
  ON "spree_option_values"."id" = "spree_option_values_line_items"."option_value_id"
WHERE "spree_option_values_line_items"."line_item_id" = 1679
ORDER BY spree_option_types.position asc
```
2020-04-17 17:34:53 +02:00
Luis Ramos
c455dfb609 Make some specs faster by going directly to the order edit page and move incomplete order spec to a specific context 2020-04-17 16:28:27 +01:00
Pau Perez
63eb0980eb Memoize result of line items query
No need to fetch twice what we just loaded from DB.
2020-04-17 17:27:21 +02:00
Pau Perez
06ead827d8 Split long method 2020-04-17 17:27:21 +02:00
Pau Perez
6dd4a866e5 Address some Rubocop violations 2020-04-17 17:25:35 +02:00
Pau Perez
04c962432a Skip deleted default_scope in OC notification
This fixes the RuntimeError we get when accessing deleted variants due
to the variant being nil.

https://github.com/rails/rails/issues/11036 is still an open Rails bug,
as some people mention in https://github.com/rails/rails/pull/21550.

The issue is that `includes` doesn't respect `unscoped`. I found
a potential solution for the entire app in
https://github.com/rails/rails/issues/11036#issuecomment-302133116 but
our friend @markets has a gem,
https://github.com/markets/unscoped_associations, that solves that too.
2020-04-17 17:25:34 +02:00
Luis Ramos
d96d6b2337 Split orders_spec in two: tests for orders list page and tests for orders edit page 2020-04-17 15:21:03 +01:00
Luis Ramos
9147518422 Remove some unnecessary code 2020-04-17 14:51:06 +01:00
Luis Ramos
d23397f250 Move float test to a separate context 2020-04-17 14:49:09 +01:00
blainebillings
993a684e44 Add Price Sack Spec for Float Amounts 2020-04-17 14:43:28 +01:00
blainebillings
427dc54945 Change Result of PriceSack Calculation from Integers to Floats 2020-04-17 14:43:28 +01:00
Luis Ramos
ffceff3f0a Update GETTING_STARTED.md
Update link to osx catalina setup guide in wiki
2020-04-17 11:41:02 +01:00
Maikel Linke
b5d159e163 Add cache to mirror_db script
Also added some better error handling around image syncing.
2020-04-17 16:09:22 +10:00
Maikel Linke
4658a53aeb Update translations from Transifex 2020-04-17 15:37:54 +10:00
Maikel
3bc834435d Merge pull request #5152 from Matt-Yorkley/missing-indexes
Add missing indexes to spree_orders and spree_products
2020-04-17 15:16:03 +10:00
Maikel
9111ff1a38 Merge pull request #5211 from openfoodfoundation/transifex
Transifex
2020-04-17 14:24:26 +10:00
Maikel
b0eac1ecaa Merge branch 'master' into missing-indexes 2020-04-17 14:17:32 +10:00
Maikel
2e31f234d6 Merge pull request #5196 from Matt-Yorkley/customers-performance
Admin Customers performance
2020-04-17 13:28:39 +10:00
Maikel
e29a81cacc Merge pull request #5186 from oeoeaio/customer-totals-inventory-sku
Take sku overrides into account in customer totals report
2020-04-17 13:27:43 +10:00
Maikel
a672af1a79 Merge pull request #5237 from luisramos0/master_with_change
Clone of #5176
2020-04-17 13:27:14 +10:00
Maikel Linke
75207247e6 Correct database commands 2020-04-17 12:52:05 +10:00
Maikel Linke
8af40f4675 Format and indent migration message
It's much clearer to read this way:

```
==  OldMigrationsRemoved: migrating ===========================================
rake aborted!
StandardError: An error has occurred, this and all later migrations canceled:

      You haven't updated your dev environment in a long time!
      Legacy migration files before 2019 have now been removed.
      Run `rails db:schema:load` before running `rails db:migrate`.

```
2020-04-17 12:47:49 +10:00
Maikel Linke
63ac6c5088 Remove superfluous conditional
A migration's `up` method is only run when the migration needs to be
applied. The only case we could have a higher version number is when a
migration with a higher version got merged before the current one. And
in that case, we still want this migration to fail, because it hasn't
been applied yet.
2020-04-17 12:40:54 +10:00
jeffrey s hill md
d8444dcf3c Added placeholders 2020-04-16 14:59:41 -05:00
Matt-Yorkley
71c7c35679 Remove old migrations! 🎉 2020-04-16 13:44:18 +02:00
Pau Pérez Fabregat
e1c2b7e105 Merge pull request #5159 from luisramos0/timezone_mixup
[Spree 2.1] Fix timezone mix up in a spec
2020-04-16 11:38:54 +02:00
Pau Pérez Fabregat
7b656fa0a4 Merge pull request #5194 from luisramos0/update_spree_rev
[Spree 2.1] Update spree revision to a version that doesnt depend on deface
2020-04-16 11:37:42 +02:00
Maikel
f282ff805d Merge pull request #5172 from kristinalim/feature/5170-increase_locale_chars_in_spree_users
Increase max characters for locale in spree_users
2020-04-16 18:18:45 +10:00
Transifex-Openfoodnetwork
2f7dc9a578 Updating translations for config/locales/es.yml 2020-04-16 17:09:44 +10:00
chrishil1
a9829ba5d9 Update _enterprise_relationship.html.haml 2020-04-15 17:01:22 -05:00
Luis Ramos
8532fa16cd Merge pull request #5202 from luisramos0/improve_checkout_js
Improve Checkout error handling in JS
2020-04-15 22:25:05 +01:00
chrishil1
c3f01be580 Fixed display all required tag 2020-04-15 19:00:35 +01:00
Luis Ramos
fcc746a1b7 Fix long lines in payments_controller_spec 2020-04-15 16:18:17 +01:00
Luis Ramos
8f7b3df9b5 Make payment controller authorize stripe_sca payments before processing them or advancing order workflow (that also calls payment.process) 2020-04-15 16:07:34 +01:00
jeffrey s hill md
e23045b19e Add product translations 2020-04-14 14:15:57 -05:00
jeffrey s hill md
5e1dea61a8 added missing translations to enterprise_relationship page 2020-04-14 11:20:56 -05:00
Luis Ramos
cedf1b26f2 If no flash is sent from the server, show the generic error 2020-04-14 14:31:34 +01:00
Luis Ramos
47a93568dc Make code simpler by extracting methods 2020-04-14 13:55:20 +01:00
Luis Ramos
62471bf2ab Clear Loading spinner when exception is caught 2020-04-14 13:50:38 +01:00
Luis Ramos
cdf5bcb7eb Improve unexpected error handling and add test cases for it 2020-04-14 13:44:58 +01:00
Luis Ramos
7414047b92 Switch from old success/error to modern then/catch structure
Catch() will get a few more errors then errors()

Also, add try/catch inside catch to detect any errors parsing the
response error payload
2020-04-14 13:04:28 +01:00
Pau Pérez Fabregat
4ef5dfe430 Merge pull request #5199 from openfoodfoundation/dependabot/bundler/rubocop-rails-2.5.2
Bump rubocop-rails from 2.5.1 to 2.5.2
2020-04-14 10:17:59 +02:00
Pau Pérez Fabregat
e58a1d080f Merge pull request #5205 from openfoodfoundation/dependabot/bundler/ddtrace-0.34.2
Bump ddtrace from 0.34.1 to 0.34.2
2020-04-14 10:17:06 +02:00
Luis Ramos
357a88fa22 Merge pull request #4786 from luisramos0/stripe_sca_extra_subs_fix
Make StripeSCA (with new authorize/purchase workflow) work with Subscriptions again
2020-04-13 17:21:53 +01:00
Rob H
f71045b3f2 Improve naming of variables in VariantOverridesIndexed for readability 2020-04-13 22:24:25 +10:00
Rob H
dcdd3f2444 Modify interface of VariantOverridesIndexed#indexed
Stop using keyword args and accept variant_ids instead of line_items
2020-04-13 22:11:58 +10:00
Rob H
6820919552 Rename VariantOverrides class to VariantOverridesIndexed 2020-04-13 21:56:37 +10:00
Rob H
4a4173bdc0 Move VariantOverrides class to app/services 2020-04-13 21:54:10 +10:00
Rob H
9a7e782102 Only load up variant overrides for relevant hubs 2020-04-13 12:07:17 +10:00
Transifex-Openfoodnetwork
9fa892346e Updating translations for config/locales/es_CR.yml 2020-04-13 10:30:00 +10:00
Transifex-Openfoodnetwork
7341912390 Updating translations for config/locales/pt_BR.yml 2020-04-12 07:14:21 +10:00
Transifex-Openfoodnetwork
d0c797b797 Updating translations for config/locales/es_CR.yml 2020-04-12 07:12:21 +10:00
Transifex-Openfoodnetwork
cb2e17d7dc Updating translations for config/locales/es_CR.yml 2020-04-12 07:09:21 +10:00
Transifex-Openfoodnetwork
147654df41 Updating translations for config/locales/es_CR.yml 2020-04-12 07:05:59 +10:00
Rob H
14cf168e3b Take sku overrides into account in customer totals report 2020-04-11 16:05:15 +10:00
dependabot-preview[bot]
c3ee7b7c64 Bump ddtrace from 0.34.1 to 0.34.2
Bumps [ddtrace](https://github.com/DataDog/dd-trace-rb) from 0.34.1 to 0.34.2.
- [Release notes](https://github.com/DataDog/dd-trace-rb/releases)
- [Changelog](https://github.com/DataDog/dd-trace-rb/blob/master/CHANGELOG.md)
- [Commits](https://github.com/DataDog/dd-trace-rb/compare/v0.34.1...v0.34.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-04-10 19:19:13 +00:00
Matt-Yorkley
a6414b6dbe Make sure taggable_type is 'Customer' when querying customer tags 2020-04-10 20:14:14 +02:00
Luis Ramos
eafffa2c23 Update all locales with the latest Transifex translations 2020-04-10 13:08:11 +01:00
Luis Ramos
82a4753eec Merge pull request #5191 from openfoodfoundation/transifex
Transifex
2020-04-10 13:05:30 +01:00
Matt-Yorkley
b92e858448 Merge pull request #5197 from Matt-Yorkley/cart-populate-performance
Cart populate performance
2020-04-10 11:41:56 +02:00
Matt-Yorkley
4c41c84cc1 Refactor tag rules loading for customers
Fixes N+1 queries on customer tags
2020-04-10 10:12:32 +02:00
Matt-Yorkley
e53f733966 Eager-load addresses in customer serializer 2020-04-10 08:20:15 +02:00
Matt-Yorkley
2a8809e6e8 Eager-load default card in customer serializer 2020-04-10 08:20:15 +02:00
Matt-Yorkley
31a54e49c5 Allow User#default_card to work with eager-loading 2020-04-10 08:20:13 +02:00
Luis Ramos
b5ba2acb21 Merge pull request #5169 from jeduardo824/enhancement/5102-make-shop-names-links
make shop name a link on /account
2020-04-09 22:01:34 +01:00
dependabot-preview[bot]
0fabde8849 Bump rubocop-rails from 2.5.1 to 2.5.2
Bumps [rubocop-rails](https://github.com/rubocop-hq/rubocop-rails) from 2.5.1 to 2.5.2.
- [Release notes](https://github.com/rubocop-hq/rubocop-rails/releases)
- [Changelog](https://github.com/rubocop-hq/rubocop-rails/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rubocop-hq/rubocop-rails/compare/v2.5.1...v2.5.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-04-09 19:21:30 +00:00
Transifex-Openfoodnetwork
e97a16cb40 Updating translations for config/locales/ca.yml 2020-04-10 04:14:21 +10:00
Luis Ramos
314fed063d Merge property with property_decorator both in our codebase 2020-04-09 19:09:22 +01:00
Luis Ramos
0d5c08c363 Remove dead code, there's no Spree::Money in app/models/spree and the Spree::Money in lib/spree already has a class_eval with this function 2020-04-09 19:06:05 +01:00
Matt-Yorkley
57d87a8042 Eager-load variant stock items
Avoids another N+1
2020-04-09 19:55:08 +02:00
Matt-Yorkley
0ca87580e8 Load variants in cart in one query
Avoids an N+1
2020-04-09 19:55:06 +02:00
Luis Ramos
59f56cb0f6 Remove before delivery method in checkout controller, this differentiator is never used in OFN, only in Spree frontend code 2020-04-09 17:32:28 +01:00
Matt-Yorkley
cf712e9478 Select only enterprise id 2020-04-09 17:41:13 +02:00
Luis Ramos
2ff8356c63 Delete dead code from products helper 2020-04-09 16:33:17 +01:00
Luis Ramos
59e0f3d9f4 Merge pull request #5175 from Matt-Yorkley/memoize-scoper
Memoize ScopeProductToHub in product list
2020-04-09 14:45:57 +01:00
Luis Ramos
fc5aff8c79 Merge pull request #5145 from luisramos0/inv_perf
Performance improvements to Inventory page
2020-04-09 13:56:33 +01:00
Luis Ramos
7d82c6a014 Update spre revision to a version that doesnt depend on deface, this allows us to upgrade nokogiri (done in another PR in the master branch) 2020-04-09 13:51:54 +01:00
Luis Ramos
4aad80c134 Update message for capybara with new upgrade blocker 2020-04-09 13:39:40 +01:00
Luis Ramos
71ffa6b178 Upgrade nokogiri as much as possible (it's not an explicit dependency of OFN and we dont need to control the version now, so I remove it from Gemfile) 2020-04-09 13:39:40 +01:00
Luis Ramos
e3de71668a Depend on a spree version in which spree_core doesnt depend on deface AND remove deface from list of dependencies 2020-04-09 13:39:40 +01:00
Luis Ramos
dd717fe8ac Merge pull request #5184 from Matt-Yorkley/inventory-loading
Inventory loading
2020-04-09 13:26:12 +01:00
Luis Ramos
4b23adca2d Merge pull request #5157 from luisramos0/email_validation
[Spree 2.1] Add order.email regexp validation
2020-04-09 10:14:11 +01:00
Luis Ramos
6341c5fd80 Merge pull request #4964 from luisramos0/po_fix
Fix proxy orders controller in rails 4 by removing the use of responders
2020-04-09 10:12:33 +01:00
Matt-Yorkley
47ac6c1491 Remove unused methods from ProductSimpleSerializer 2020-04-09 09:51:32 +02:00
Matt-Yorkley
6afda141a1 Remove track_inventory_levels conditional
This value is always true in OFN
2020-04-09 09:19:37 +02:00
Matt-Yorkley
5bb2614f9d Refactor PagedFetcher so it makes one request at a time 2020-04-09 09:19:37 +02:00
Matt-Yorkley
b3c968856b Fix some rubocop issues 2020-04-09 09:19:37 +02:00
Matt-Yorkley
b0a7497f2a Remove another N+1 in product serialization 2020-04-09 09:19:37 +02:00
Matt-Yorkley
f959e632ea Modify Spree::Stock::Quantifier to not re-fetch stock items if they are already eager-loaded
This helps to remove a big N+1 here, and will also be very helpful elsewhere in the app
2020-04-09 09:19:37 +02:00
Matt-Yorkley
f9cf826f1c Bring Spree::Stock::Quantifier in to OFN
This is the original unmodified Class from Spree. Modifications added in subsequent commits.
2020-04-09 09:19:36 +02:00
Matt-Yorkley
ececbce596 Only select id in producers query 2020-04-09 09:16:44 +02:00
Matt-Yorkley
1b7ac1a252 Don't re-use fat serializers when thin ones are needed.
This cuts the pageload and query count in half, again.
2020-04-09 09:10:41 +02:00
Transifex-Openfoodnetwork
d31b24786a Updating translations for config/locales/en_NZ.yml 2020-04-09 16:16:24 +10:00
Matt-Yorkley
374bf04118 Merge pull request #5142 from Matt-Yorkley/shops-firefighting
Don't load distributed properties on inactive distributors
2020-04-08 20:45:01 +02:00
Matt-Yorkley
3aff7f62e3 Don't query distributed properties on enterprises that aren't active distributors
Cuts page load on /shops by ~75% (with production data) and removes ~300 expensive and superfluous queries.
2020-04-08 20:08:12 +02:00
Matt-Yorkley
fc5e346a06 Merge pull request #5156 from Matt-Yorkley/closed-shops
Load closed shops in a separate request on /shops page
2020-04-08 20:05:26 +02:00
Matt-Yorkley
538e4e54d2 Set cart buttons to fixed width and expand when screen is too small 2020-04-08 11:19:14 +02:00
Matt-Yorkley
1ddbabd841 Adjust colours of primary buttons to use (bright) orange instead of (warning) red 2020-04-08 10:57:33 +02:00
Matt-Yorkley
0414f4984d Align buttons left and right on cart page 2020-04-08 10:55:55 +02:00
Matt-Yorkley
9c421e146e Remove arrows from cart and checkout buttons 2020-04-08 10:23:18 +02:00
Luis Ramos
29bbf2fa74 Merge pull request #5088 from coopdevs/do-not-recreate-when-booting-docker
Do not reset the dev env when booting docker
2020-04-07 21:56:09 +01:00
Matt-Yorkley
64c66ddedc Eager-load variant data for overridable products
Cuts query count and page load time in half for this endpoint.
2020-04-07 15:16:32 +02:00
Luis Ramos
e0e2c32d9f Merge pull request #5177 from openfoodfoundation/dependabot/bundler/oj-3.10.6
Bump oj from 3.10.5 to 3.10.6
2020-04-07 11:44:09 +01:00
Luis Ramos
ff799b6e82 Avoid using update_attributes that save the order to the DB 2020-04-07 11:13:29 +01:00
Matt-Yorkley
003341ef7a Add loading indicator when showing closed shops 2020-04-07 10:40:49 +02:00
Matt-Yorkley
94f8ea2f93 Fix flicker effect showing 3 buttons when clicking "Show Closed Shops" button 2020-04-07 10:31:56 +02:00
Kristina Lim
e6cd33ee57 Increase max characters for locale in spree_users
There are many locales that have six (6) characters.
2020-04-07 15:08:49 +08:00
Maikel
45c0209971 Merge pull request #5154 from luisramos0/prop_strong
[Spree 2.1] Add strong params implementation to properties controller
2020-04-07 16:27:22 +10:00
Maikel
eb64112b22 Merge pull request #5144 from openfoodfoundation/transifex
Transifex
2020-04-07 16:23:35 +10:00
Maikel
3e14b62b46 Merge pull request #5136 from openfoodfoundation/dependabot/bundler/ddtrace-0.34.1
Bump ddtrace from 0.34.0 to 0.34.1
2020-04-07 16:05:53 +10:00
Maikel
3244650932 Merge pull request #5135 from openfoodfoundation/dependabot/bundler/rubocop-rails-2.5.1
Bump rubocop-rails from 2.5.0 to 2.5.1
2020-04-07 16:05:18 +10:00
Transifex-Openfoodnetwork
b6753a2593 Updating translations for config/locales/fil_PH.yml 2020-04-07 16:03:57 +10:00
Transifex-Openfoodnetwork
1b119805b4 Updating translations for config/locales/fil_PH.yml 2020-04-07 15:15:12 +10:00
Transifex-Openfoodnetwork
edde7689a9 Updating translations for config/locales/de_DE.yml 2020-04-07 13:57:54 +10:00
Transifex-Openfoodnetwork
8060977786 Updating translations for config/locales/en_GB.yml 2020-04-07 13:54:53 +10:00
Transifex-Openfoodnetwork
837a345958 Updating translations for config/locales/en_FR.yml 2020-04-07 13:54:46 +10:00
dependabot-preview[bot]
7c5e511fde Bump oj from 3.10.5 to 3.10.6
Bumps [oj](https://github.com/ohler55/oj) from 3.10.5 to 3.10.6.
- [Release notes](https://github.com/ohler55/oj/releases)
- [Changelog](https://github.com/ohler55/oj/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/ohler55/oj/compare/v3.10.5...v3.10.6)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-04-06 19:24:48 +00:00
Luis Ramos
d18a06a0f7 Merge pull request #4783 from luisramos0/stripe_sca_extra_subs
Move all subscriptions services to the OrderManagement engine
2020-04-06 20:20:02 +01:00
Luis Ramos
d23b4fd307 Merge pull request #5174 from coopdevs/change-pool-size
Allow changing the connection pool size
2020-04-06 19:29:09 +01:00
Matt-Yorkley
2cb4c6bec2 Memoize OpenFoodNetwork::ScopeProductToHub
This means we avoid fetching all of the hub's variants every time we scope a product. Applies to every product loaded when displaying a shops's product list.
2020-04-06 19:41:05 +02:00
Pau Pérez Fabregat
924e816a5b Merge pull request #5151 from luisramos0/fix_order_perms
Fix Permissions::Order spec in rails 4
2020-04-06 18:07:39 +02:00
Pau Pérez Fabregat
109da43905 Merge pull request #2 from luisramos0/do-not-recreate-when-booting-docker
Re-add setup instructions removed from docker-compose into Dockerfile…
2020-04-06 16:55:59 +02:00
Pau Perez
33ca6a2096 Allow changing the connection pool size
This allows us to tune for UK. The hypothesis from @kristinalim is:

> From what I understand, it can result to Rails processes waiting for
each other to complete, while the DB server can take more simultaneous
connections.
2020-04-06 16:03:06 +02:00
Eduardo
e7b780f963 make shop name a link on /account 2020-04-06 08:34:24 -03:00
dependabot-preview[bot]
13cba3d244 Bump ddtrace from 0.34.0 to 0.34.1
Bumps [ddtrace](https://github.com/DataDog/dd-trace-rb) from 0.34.0 to 0.34.1.
- [Release notes](https://github.com/DataDog/dd-trace-rb/releases)
- [Changelog](https://github.com/DataDog/dd-trace-rb/blob/master/CHANGELOG.md)
- [Commits](https://github.com/DataDog/dd-trace-rb/compare/v0.34.0...v0.34.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-04-06 11:27:10 +00:00
Matt-Yorkley
ce45e7cf71 Merge pull request #5162 from Matt-Yorkley/unicorn-worker-killer
Add optional unicorn-worker-killer configs
2020-04-06 13:25:22 +02:00
Matt-Yorkley
ba5a56db14 Make upper and lower bounds configurable 2020-04-06 10:39:51 +02:00
Matt-Yorkley
276dcf4a3b Add optional unicorn-worker-killer configs 2020-04-06 10:39:50 +02:00
Transifex-Openfoodnetwork
dcfb1aec6d Updating translations for config/locales/en_PH.yml 2020-04-06 18:11:07 +10:00
Pau Pérez Fabregat
fde2aac366 Merge pull request #5163 from coopdevs/collect-Ruby-GC
Enable Ruby Runtime Metrics in Datadog
2020-04-05 14:32:54 +02:00
Luis Ramos
63138aef30 Re-add setup instructions removed from docker-compose into Dockerfile and Docker.md 2020-04-05 00:06:31 +01:00
Pau Perez
7612415991 Enable Ruby Runtime Metrics in Datadog
This automatically collects a bunch of Ruby's GC-related metrics that
will come in handy while we tune the Unicorn workers. Some of theres
are:

* runtime.ruby.class_count
* runtime.ruby.gc.malloc_increase_bytes
* runtime.ruby.gc.total_allocated_objects
* runtime.ruby.gc.total_freed_objects
* runtime.ruby.gc.heap_marked_slots
* runtime.ruby.gc.heap_available_slots
* runtime.ruby.gc.heap_free_slots
* runtime.ruby.thread_count

Check https://docs.datadoghq.com/tracing/runtime_metrics/ruby/#data-collected for the complete list.

The cool thing is that

> Runtime metrics can be viewed in correlation with your Ruby services
2020-04-05 00:16:10 +02:00
Luis Ramos
53d901b41b Merge pull request #5064 from luisramos0/fix_sample_data
Fix sample data and custom paper_trail config on order_cycles and schedules on rails 4
2020-04-04 18:29:26 +01:00
Luis Ramos
fa4b8832e9 Fix timezone mix up in specs
Converting times with timezones to string was ignoring the timezone and this making the start date be before the end date in this spec
2020-04-04 16:39:23 +01:00
Luis Ramos
4ceaebf098 Add order.email regexp validation and add some tests for it 2020-04-04 16:13:23 +01:00
Matt-Yorkley
bc859cf9f7 Add api/shops_controller and refactor 2020-04-04 17:02:27 +02:00
Matt-Yorkley
af48cac140 Load closed shops in a separate request on /shops page 2020-04-04 14:06:10 +02:00
Luis Ramos
451cfac788 Merge pull request #4995 from Matt-Yorkley/3-0-eager-load
[Spree 2.1] Staging and Production configs
2020-04-04 12:21:25 +01:00
Luis Ramos
59bb956677 Merge pull request #5010 from Matt-Yorkley/remove_simple_form
Remove simple_form
2020-04-04 11:53:06 +01:00
Luis Ramos
4f08ed1801 Remove commented turbo-sprockets-rails3 from Gemfile, thsi gem is not needed in rails 4 2020-04-04 11:39:20 +01:00
Luis Ramos
1364a5e367 Merge pull request #4916 from luisramos0/adj_eli
[Spree 2.1] Make Spree::OrderUpdater update all adjustments, not just promotions and shipment adjustments
2020-04-04 11:28:13 +01:00
Luis Ramos
07264446e6 Add strong params implementation to properties controller 2020-04-04 11:17:38 +01:00
Luis Ramos
b8f8db0341 Merge pull request #5147 from luisramos0/3-0-stable-apr3
[Spree 2.1] Merge master into 3-0-stable
2020-04-04 11:03:14 +01:00
Matt-Yorkley
8a544f3ab3 Add missing indexes to spree_orders and spree_products 2020-04-04 10:12:15 +02:00
Luis Ramos
04986dd0d5 Merge pull request #4932 from luisramos0/line_items_fix
Adapt line items scope to include deleted variants and deleted products - rails 4 fix
2020-04-03 20:09:35 +01:00
Luis Ramos
55b3f4d54f Move search params test case to a different context so that we dont have to set the producer of the products in the order
This is working in master by chance of the factories but breaks in rails 4 because the orders in this test dont have products supplied by the producer which is a necessary condition in the context where it was
2020-04-03 19:47:33 +01:00
Luis Ramos
384ca310a3 Merge branch 'master' into 3-0-stable-apr3 2020-04-03 18:26:26 +01:00
Luis Ramos
452ab3a842 Add comment to better explain variant_override_set.collection_to_delete 2020-04-03 15:36:19 +01:00
Luis Ramos
a049e7a433 Add product to includes to avoid N+1 queries to fetch products when VO authorization is done right after this 2020-04-03 14:48:06 +01:00
Transifex-Openfoodnetwork
97063bf47e Updating translations for config/locales/en_GB.yml 2020-04-03 23:24:25 +11:00
Luis Ramos
e64d573337 Revert accidental push of a byebug statement with the direct translations push to master 🙈 2020-04-03 12:06:39 +01:00
Luis Ramos
7858a26e5e Update all locales with the latest Transifex translations 2020-04-03 12:03:40 +01:00
Luis Ramos
4922c05bcf Merge pull request #5139 from openfoodfoundation/transifex
Transifex
2020-04-03 11:28:11 +01:00
Transifex-Openfoodnetwork
d06b7b8606 Updating translations for config/locales/de_DE.yml 2020-04-03 19:26:04 +11:00
Transifex-Openfoodnetwork
72b47fbceb Updating translations for config/locales/de_DE.yml 2020-04-03 19:22:55 +11:00
Luis Ramos
da7b0966be Merge pull request #5133 from Matt-Yorkley/cache-in-hand
Cache counts used in homepage for 24 hours
2020-04-03 08:34:58 +01:00
Luis Ramos
445eb9f287 Merge pull request #5121 from Matt-Yorkley/flaky-maps-js
Update vendor/assets/angular-google-maps.min.js
2020-04-02 22:13:51 +01:00
dependabot-preview[bot]
5b4dd57380 Bump rubocop-rails from 2.5.0 to 2.5.1
Bumps [rubocop-rails](https://github.com/rubocop-hq/rubocop-rails) from 2.5.0 to 2.5.1.
- [Release notes](https://github.com/rubocop-hq/rubocop-rails/releases)
- [Changelog](https://github.com/rubocop-hq/rubocop-rails/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rubocop-hq/rubocop-rails/compare/v2.5.0...v2.5.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-04-02 19:15:11 +00:00
Matt-Yorkley
adb61e48c5 Cache counts used in homepage for 24 hours 2020-04-02 19:09:03 +02:00
Matt-Yorkley
838ffdbf00 Add code comment for dependency 2020-04-02 17:33:10 +02:00
Pau Pérez Fabregat
fe8beb5448 Merge pull request #5099 from Matt-Yorkley/ticking-time-bom
Improve BOM
2020-04-02 16:01:48 +02:00
Matt-Yorkley
18ee5254f9 Make Geo service calls more resilient in /shops page
The Geo service is used heavily in the /shops page and especially in the search function. If the google maps js library has failed to load it was throwing a lot of fatal errors, so this change ensures the /shops page can at least: a) load, b) show some shops, and c) search for shops by name (but not location)
2020-04-02 13:56:25 +02:00
Matt-Yorkley
40f8cf660c Update vendor/assets/angular-google-maps.min.js
Fixes an issue where if the js library from maps.googleapis.com failed to load in the <head>, all of our subsequent Angular would completely break.
See: https://github.com/angular-ui/angular-google-maps
Note: `bluebird.js` is a new dependency of `angular-google-maps.js`.
2020-04-02 13:32:55 +02:00
Matt-Yorkley
2c70db7952 Merge pull request #5070 from luisramos0/master_card
Translate credit card brand so that active merchand code handles the payment correctly
2020-04-02 12:18:00 +02:00
Pau Pérez Fabregat
1a38a4e1a7 Merge pull request #5091 from openfoodfoundation/transifex
Transifex
2020-04-02 11:56:29 +02:00
Pau Pérez Fabregat
15d106bb0a Merge pull request #5116 from openfoodfoundation/dependabot/bundler/ddtrace-0.34.0
Bump ddtrace from 0.33.1 to 0.34.0
2020-04-02 11:55:53 +02:00
Pau Pérez Fabregat
c8be2fb89a Merge pull request #5125 from openfoodfoundation/dependabot/bundler/rubocop-0.81.0
Bump rubocop from 0.80.1 to 0.81.0
2020-04-02 11:54:00 +02:00
Transifex-Openfoodnetwork
b1f8f91011 Updating translations for config/locales/fr.yml 2020-04-02 18:03:11 +11:00
Transifex-Openfoodnetwork
e08606a310 Updating translations for config/locales/en_FR.yml 2020-04-02 18:02:57 +11:00
Transifex-Openfoodnetwork
2230d83729 Updating translations for config/locales/pt_BR.yml 2020-04-02 08:41:25 +11:00
dependabot-preview[bot]
d38da02113 Bump rubocop from 0.80.1 to 0.81.0
Bumps [rubocop](https://github.com/rubocop-hq/rubocop) from 0.80.1 to 0.81.0.
- [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/v0.80.1...v0.81.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-04-01 19:20:42 +00:00
Luis Ramos
0e268a171f Switch to console.error so we get a bugsnag alert everytime a user has a problem with their card
Add paymentMethodsAPI specific mapping function, we had some errors in production with mastercards probably caused by ActiveMerchant not handling the card type correctly
2020-04-01 18:58:43 +01:00
Luis Ramos
73c4eedd06 Translate credit card brand so that active merchant code handles the payment correctly
Adds a simple console.log statement in case there is an error adding the
card
2020-04-01 18:58:10 +01:00
Luis Ramos
8a220742f5 Merge pull request #5103 from jeduardo824/bug/5092-remove-blue-setence-in-payment-method-setting
remove blue sentence in payment method setting
2020-04-01 18:56:09 +01:00
Luis Ramos
9fa604db0d Merge pull request #5076 from luisramos0/rails_f_helper
Remove Rails Foundation Helper and improve error display and logging in checkout controller
2020-04-01 18:54:45 +01:00
Transifex-Openfoodnetwork
6083d91d3e Updating translations for config/locales/ca.yml 2020-04-02 01:57:50 +11:00
Transifex-Openfoodnetwork
9bdb396b86 Updating translations for config/locales/ca.yml 2020-04-02 01:54:42 +11:00
Matt-Yorkley
ad42b1b485 Remove pagination limits in BOM
We can re-assess this later, but for now it looks like some of the BOM functionality won't work if results are returned across multiple pages.
2020-04-01 13:43:21 +02:00
Luis Ramos
78170bc709 Merge pull request #4807 from openfoodfoundation/dependabot/bundler/compass-rails-4.0.0
Bump compass-rails from 3.1.0 to 4.0.0
2020-04-01 12:42:42 +01:00
Luis Ramos
957b398a54 Add call to $evalAsync() after Loading and FlashLoader are updated so
that a angular digest is triggered

This is required so that Loading.clear triggers a refresh and makes its placeholder to be cleared
2020-04-01 12:08:55 +01:00
Luis Ramos
c3d25bf163 Make checkout controller send bugsnag alerts on every checkout problem
There are two new situations here: we will see order.errors after update_attributes fails but before order restart; and we will see how often the order is not complete when the workflow finishes (maybe none)
2020-04-01 12:03:39 +01:00
Luis Ramos
ce2a164c66 Stop using f_form_for
Add labels for some fields, this was done automatically by rails foundation helper
2020-04-01 12:03:39 +01:00
Luis Ramos
b898ce1ae1 Make checkout controller add flash error if order contains any type of error
Here we add translations for a particular case where the credit card expiry date is in the past
2020-04-01 12:03:39 +01:00
Luis Ramos
409681b7af Merge pull request #5089 from Matt-Yorkley/checkout-scoping
Cart variant scoping
2020-04-01 11:49:23 +01:00
Luis Ramos
9317549103 Merge pull request #4813 from luisramos0/oc_selector
If there's only one OC available to the customer because there are tag rules hidding other OCs, select that OC by default
2020-04-01 10:44:58 +01:00
Luis Ramos
154e223a12 Make sure test data is available before the test 2020-04-01 10:00:07 +01:00
Luis Ramos
80b9800b36 Replace SQL with equivalent AR code 2020-04-01 10:00:07 +01:00
Luis Ramos
6e095bdb68 Fix bug in line_item_decorator, should be inner join not left outer join 2020-04-01 10:00:07 +01:00
Luis Ramos
a4c7dbc329 Add comment to better explain why this scope is not simply using joins(:product) 2020-04-01 10:00:07 +01:00
Luis Ramos
8909238682 Fix one rubocop issue 2020-04-01 10:00:07 +01:00
Luis Ramos
7c367da904 Adapt LineItem#supplied_by_any scope to include deleted variants and deleted products (both not included in the respective default scopes) and use it in Permissions::Order so that variants of deleted products are seen in reports 2020-04-01 10:00:07 +01:00
Luis Ramos
0c8635403a Delete dead scope in line_items
This is not used anywhere in the code
2020-04-01 10:00:07 +01:00
dependabot-preview[bot]
b22ad244f9 Bump ddtrace from 0.33.1 to 0.34.0
Bumps [ddtrace](https://github.com/DataDog/dd-trace-rb) from 0.33.1 to 0.34.0.
- [Release notes](https://github.com/DataDog/dd-trace-rb/releases)
- [Changelog](https://github.com/DataDog/dd-trace-rb/blob/master/CHANGELOG.md)
- [Commits](https://github.com/DataDog/dd-trace-rb/compare/v0.33.1...v0.34.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-03-31 19:40:01 +00:00
Transifex-Openfoodnetwork
9c17a91215 Updating translations for config/locales/en_GB.yml 2020-04-01 05:07:08 +11:00
Luis Ramos
6a1c541479 Remove specific error color on checkout page so that the error message takes the default foundation error color which is white 2020-03-31 16:32:33 +01:00
Luis Ramos
6c64261868 Merge pull request #5113 from mkllnk/5110-bugsnag-js-logging
Add Bugsnag JS logging
2020-03-31 15:51:12 +01:00
Matt-Yorkley
f437d0f8a0 Report environment correctly in Bugsnag JS 2020-03-31 15:59:17 +02:00
Transifex-Openfoodnetwork
79d6d7cc9e Updating translations for config/locales/de_DE.yml 2020-03-31 22:09:16 +11:00
Matt-Yorkley
e200ece280 Rename partial to bugsnag_js for clarity 2020-03-31 12:57:12 +02:00
Matt-Yorkley
30bf9257ab Move conditional inside partial and use default key as fallback 2020-03-31 12:55:28 +02:00
Matt-Yorkley
03e229da08 Add bugsnag js script to admin layout above all.js 2020-03-31 12:25:42 +02:00
Maikel Linke
28473c9087 Add Bugsnag JS logging 2020-03-31 15:51:04 +11:00
Matt-Yorkley
09c8819e5a Remove unnecessary Bugsnag calls
The Bugsnag notification was just here to see if this was dead code. It's not.
2020-03-30 20:36:45 +02:00
Matt-Yorkley
f7c047b798 Memoize ScopeVariantToHub to avoid fetching the hub's overrides each time 2020-03-30 20:33:27 +02:00
Luis Ramos
635ea9c505 Fix some long lines on variant_decorator 2020-03-30 11:21:47 +01:00
Luis Ramos
fbbe586996 Avoid rails 3 bug where the first where clause is overriden by a second where clause
Co-Authored-By: Maikel <maikel@email.org.au>
2020-03-30 11:21:47 +01:00
Luis Ramos
a5184cce9d Make method a bit more readable and add comment with details 2020-03-30 11:21:47 +01:00
Luis Ramos
69b57544f1 Bring Spree::Variant#active so that we can make it return just variants without includes
This makes the variants returned not readonly in rails 4 and thus fixes a spec in Spree::VariantsController#destroy
2020-03-30 11:21:47 +01:00
Eduardo
b6da0e2092 remove @payment_method explict variable from the view 2020-03-29 20:32:55 -03:00
Matt-Yorkley
95963c5732 Refactor Angular line_items_controller 2020-03-29 19:54:49 +02:00
Matt-Yorkley
aba1b5b67a Add pagination specs and refactor 2020-03-29 19:54:49 +02:00
Matt-Yorkley
fe58121c7f Fix clear filters button 2020-03-29 19:54:49 +02:00
Matt-Yorkley
5c4a2c2790 Update javascript specs 2020-03-29 19:54:49 +02:00
Matt-Yorkley
a07281910b Fix dropdown placeholders 2020-03-29 19:54:49 +02:00
Matt-Yorkley
72f9da3ac4 Fix regex validation and HTML "type" settings not allowing decimals for final_weight_volume
`final_weight_volume` can be a decimal, and often *is* in production data. Not regarding them as valid was breaking the form submission in various cases
2020-03-29 19:54:49 +02:00
Matt-Yorkley
375b4648dc Add pagination to Bulk Order Management 2020-03-29 19:54:47 +02:00
Transifex-Openfoodnetwork
9af0a39305 Updating translations for config/locales/en_FR.yml 2020-03-29 06:43:01 +11:00
Transifex-Openfoodnetwork
6817231f29 Updating translations for config/locales/fr.yml 2020-03-29 06:42:36 +11:00
Matt-Yorkley
7c7f9551d6 Fix bug in order cycle select dropdown
The date filters were being filled with the string: "Invalid date" because momentjs was not able to parse the input
2020-03-28 15:17:31 +01:00
Matt-Yorkley
d568b45d4a Limit spamming the server with lots of requests
This uses "debounce" to add a little waiting time whilst the user is part-way through selecting dates (or manually typing in the date filter) so we don't make too many unnecessary requests.
2020-03-28 11:20:23 +01:00
Matt-Yorkley
b76a6d15a3 Improve date field query triggers
Don't submit the request if the user is part-way through typing something in the date field and the date is (currently) invalid; this results in the date ranges being broken and triggering a query for *all* results (with no date range).
2020-03-28 11:16:25 +01:00
Luis Ramos
940423acfc Merge pull request #5067 from gao329700254/fix/fix_fr_translation_in_order_cycles_outgoing(4937)
Fix translation missing in order cycles outgoing page (closed #4937)
2020-03-27 22:00:19 +00:00
Transifex-Openfoodnetwork
6a57aa3b29 Updating translations for config/locales/en_FR.yml 2020-03-28 04:08:31 +11:00
Transifex-Openfoodnetwork
ca78e9d0e2 Updating translations for config/locales/fr.yml 2020-03-28 04:08:17 +11:00
Luis Ramos
e705e88007 Merge pull request #5087 from luisramos0/custom_data
Fix bug in subscriptions logging by making versions.custom_data a longer field
2020-03-27 16:04:31 +00:00
Pau Pérez Fabregat
1fbb9fa3df Merge pull request #5083 from openfoodfoundation/transifex
Transifex
2020-03-27 16:51:30 +01:00
Matt-Yorkley
71f00f9283 Remove comment warning about this issue 2020-03-27 14:23:48 +01:00
Matt-Yorkley
7d33a237d0 Add scoping to VariantsStockLevels when variant is not in the order 2020-03-27 14:15:15 +01:00
Matt-Yorkley
857cacb74b Add test for additional case where variant is not in the order 2020-03-27 14:03:17 +01:00
Matt-Yorkley
fbfe663ebc Add variant scoping to VariantStockLevels 2020-03-27 13:38:57 +01:00
Matt-Yorkley
83b90f3167 Add spec variant override test to VariantsStockLevels 2020-03-27 13:31:39 +01:00
Luis Ramos
14fd9a121e Make versions.custom_data text so it can take longer lists 2020-03-27 11:34:01 +00:00
Pau Perez
904e89e325 Do not reset the dev env when booting docker
The current web container's command destroys anything you might have in
your local DB from a previous session, assuming you always want start
from a clean environment. This is hardly the case and makes
`docker-compose up` take quite long. What if you just stopped containers
temporally while developing?

This changes the approach to not assume anything. If you need to install
a new gem or reset your DB just run the commands you would without
docker. You can run anything you want with `docker-compose run web bundle exec
<rails/rake command>` anyway.

For someone setting things for the first time, the `Dockerfile` process
still installs all dependencies.
2020-03-27 12:17:09 +01:00
Maikel
d254df7ccc Merge pull request #5073 from Matt-Yorkley/mobile-checkout
[Mobile UX] Order cycle section updates
2020-03-27 15:34:19 +11:00
Pau Pérez Fabregat
a218eab67b Merge pull request #4987 from Matt-Yorkley/3-0-packing
[Spree 2.1] Packing report deleted variants
2020-03-26 17:37:51 +01:00
Pau Pérez Fabregat
8caf10f634 Merge pull request #5079 from openfoodfoundation/dependabot/bundler/unicorn-5.5.4
Bump unicorn from 5.5.3 to 5.5.4
2020-03-26 17:32:17 +01:00
Transifex-Openfoodnetwork
2e98b0b5c1 Updating translations for config/locales/en_GB.yml 2020-03-27 01:40:20 +11:00
Matt-Yorkley
2966dd9536 Update all locales with the latest Transifex translations 2020-03-26 14:25:34 +01:00
Matt-Yorkley
21e1c0ed0b Merge pull request #5025 from openfoodfoundation/transifex
Transifex
2020-03-26 14:22:38 +01:00
Matt-Yorkley
48b99d02b9 Merge pull request #5060 from Matt-Yorkley/weight-calculator
Fix weight calculator
2020-03-26 14:19:21 +01:00
Pau Pérez Fabregat
f17a2eeaea Merge pull request #5062 from luisramos0/prop_bug
Fix broken new property button in properties page (regression from removing spree_backend)
2020-03-26 11:35:47 +01:00
Pau Pérez Fabregat
18419d0276 Merge pull request #5043 from luisramos0/fix_cookies
Fix cookies policy helper spec in rails 4
2020-03-26 11:23:49 +01:00
Pau Pérez Fabregat
1c2815d2b7 Merge pull request #5044 from luisramos0/add_spring
[Spree 2.1] Re-add spring and newrelic_rpm
2020-03-26 11:23:19 +01:00
Pau Pérez Fabregat
bd19d8b0bd Merge pull request #5042 from luisramos0/api_base
Make explicit the namespace of the BaseController for api controllers
2020-03-26 11:21:27 +01:00
Pau Pérez Fabregat
b3a47964e6 Merge pull request #5033 from luisramos0/ent_fees_data_types
[Spree 2.1] Adapt EnterpriseFeeSummary report code to slightly different rails 4 sql data conversion
2020-03-26 11:20:44 +01:00
Pau Pérez Fabregat
9daa40ce9c Merge pull request #5028 from luisramos0/remove_attr_accessible
[Spree 2.1] Remove new attr_accessible entries
2020-03-26 11:20:08 +01:00
Pau Pérez Fabregat
f70e155b1b Merge pull request #4984 from Matt-Yorkley/3-0-cart-route
[Spree 2.1] Fix cart page update
2020-03-26 11:14:07 +01:00
Maikel Linke
4bcd665379 Handle all line items without unit_value in weight calculation 2020-03-26 17:13:29 +11:00
Matt-Yorkley
e63dbcfa89 Fix some SCSS linting warnings 2020-03-25 23:12:23 +01:00
Matt-Yorkley
c3283adcf5 Show full-width ordercycle subheader on tablet and below 2020-03-25 23:12:23 +01:00
Matt-Yorkley
b2ed69831b Adjust style contexts 2020-03-25 23:12:23 +01:00
Matt-Yorkley
7daba62f43 Update colours for different order cycle sidebar cases 2020-03-25 23:12:23 +01:00
Matt-Yorkley
a08020490d Define new colour and use variable where already in use 2020-03-25 23:12:23 +01:00
Matt-Yorkley
eb4d970bc7 Adjust positioning for order cycle sidebar 2020-03-25 23:12:23 +01:00
Matt-Yorkley
7a3549209f Use 4 columns on checkout sidebar 2020-03-25 23:12:23 +01:00
Matt-Yorkley
52ebd1b402 Remove order cycle popovers; these styles are no longer used 2020-03-25 23:12:08 +01:00
Matt-Yorkley
a3a26f704f Extract re-used box-shadow style 2020-03-25 23:07:39 +01:00
Matt-Yorkley
cff8f6dd96 Add box-shadow to distributor header for cart, checkout, and order confirmation pages 2020-03-25 23:07:39 +01:00
Matt-Yorkley
81537d92cf Extract styles for distributor header
These styles are used in shop, cart, checkout, order confirmation. Not just shop.
2020-03-25 23:07:39 +01:00
Matt-Yorkley
91e88bd028 Allow conditional use of order cycle sidebar
We need to re-use the "shopping_shared/header" partial in multiple places, but we don't always want the (nested) order cycle sidebar inside it.
2020-03-25 23:07:39 +01:00
Matt-Yorkley
f5e254a105 Remove quick fix for hiding oc selector 2020-03-25 23:07:39 +01:00
Sigmund Petersen
b41b5d0395 Update Slack invitation link 2020-03-25 20:38:45 +01:00
dependabot-preview[bot]
296d2e5edb Bump unicorn from 5.5.3 to 5.5.4
Bumps [unicorn](https://yhbt.net/unicorn/) from 5.5.3 to 5.5.4.

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-03-25 19:17:31 +00:00
Luis Ramos
ac0a62e962 Merge pull request #5050 from Matt-Yorkley/bullet_tweaks
Performance tweaks 2
2020-03-25 18:32:49 +00:00
Matt-Yorkley
0cc5cbd1d2 Merge pull request #5038 from luisramos0/strong_params_prod
[Spree 2.1] Implement strong params in products, variants, variant_overrides and resource controllers
2020-03-25 18:35:58 +01:00
Luis Ramos
523faa670d Remove FoundationRailsHelper, this is dead code now 2020-03-25 17:31:56 +00:00
Luis Ramos
2c5db8935b Merge pull request #5022 from Matt-Yorkley/performance_tweaks
Performance tweaks
2020-03-25 15:42:07 +00:00
Luis Ramos
e5e9325499 Fix paper_trail custom_data for order_cycle, custom data must be a string, cant be an array 2020-03-25 15:35:51 +00:00
Luis Ramos
2e4f8003b6 Fix group factory in rails 4
params[:address] was breaking the creation of the EnterpriseGroup
2020-03-25 15:32:16 +00:00
Luis Ramos
24c8f38111 Restructure spec to avoid variable names with numbers 2020-03-25 15:48:57 +01:00
Luis Ramos
b801bffcd9 Merge pull request #5030 from Matt-Yorkley/reports-loading
Improve reports performance
2020-03-25 12:54:34 +00:00
Yuhao Gao
60d9edb185 fix translation missing in order cycles outgoing page (closed #4937) 2020-03-25 21:51:13 +09:00
Luis Ramos
434b68b019 Merge pull request #5048 from Matt-Yorkley/3-0-user-spec
Ensure perform_deliveries is correctly set in user email spec
2020-03-25 11:52:43 +00:00
Luis Ramos
f1b64e90e0 Add comment to explain unusual fix 2020-03-25 11:49:14 +00:00
Matt-Yorkley
433ae00818 Ensure :info log level is set in Rails 4 2020-03-25 11:39:03 +00:00
Matt-Yorkley
7bc29769cd Fix logging configs for Rails 4 2020-03-25 11:38:29 +00:00
Matt-Yorkley
483d847b00 Use eager_load = true in production and staging environments 2020-03-25 11:36:33 +00:00
Luis Ramos
9af4bb9757 Use create instead of build so that we test with callbacks 2020-03-25 11:22:40 +00:00
Luis Ramos
95ba1fd02c Merge pull request #5065 from luisramos0/upgrade_deps
[Spree 2.1] Upgrade some dependencies... rails 4.0.13 :-)
2020-03-25 11:04:13 +00:00
Luis Ramos
c02a3e919f Merge pull request #5039 from luisramos0/strong_params_ent
[Spree 2.1] Implement strong params in enterprises, enterprise_groups, enterprise_roles, customers and customer_details controllers
2020-03-25 10:53:01 +00:00
Luis Ramos
b7cb95ae3e Fix problem in PermittedAttributes::Address namespace 2020-03-25 10:52:23 +00:00
Luis Ramos
6b62c8aafd Extract permitted attributes to separate service 2020-03-25 10:52:23 +00:00
Luis Ramos
e5f56c19c0 Switch to using PermittedAttributes::Address instead of spree version of it that will be removed later 2020-03-25 10:52:23 +00:00
Luis Ramos
22a005df47 Add needed permitted attributes to admin/customers_controller 2020-03-25 10:51:55 +00:00
Luis Ramos
9b0d7b9604 Ammend customers_controller to include ship address attributes permit and also permit #update with specific attributes 2020-03-25 10:51:55 +00:00
Luis Ramos
4fd3026bd8 Add strong parameters permits to some controllers 2020-03-25 10:51:55 +00:00
Luis Ramos
a9a92e11e2 Bring some strong parameters code from spree to our Spree controllers
This code comes from spree commit fbc2d150f6
2020-03-25 10:51:55 +00:00
Luis Ramos
fec5e1d84e Add needed param to enterprises controller 2020-03-25 10:51:55 +00:00
Luis Ramos
ad9e5d979a Permit extra needed params in enterprises controller 2020-03-25 10:51:55 +00:00
Luis Ramos
29a457575b Permit specific params in enterprise_groups controller 2020-03-25 10:51:55 +00:00
Luis Ramos
5c179a0932 Ammend strong params on enterprise controller to cover create action 2020-03-25 10:51:55 +00:00
Luis Ramos
34488e5f63 Handle strong params in enterprise_roles controller 2020-03-25 10:51:55 +00:00
Luis Ramos
6ba3a3c373 Handle strong params in admin/enterprises_controller 2020-03-25 10:51:55 +00:00
Matt-Yorkley
d847560d7c Fix rubocop issues 2020-03-25 10:15:03 +01:00
Pau Pérez Fabregat
a72957e3c3 Merge pull request #4827 from luisramos0/strong_params
[Spree 2.1] Implement Strong Parameters in various controllers
2020-03-25 10:07:14 +01:00
Pau Pérez Fabregat
87fae15434 Merge pull request #4909 from luisramos0/line_items_spec
Adapt line_items_spec to work in the rails 4 branch as well
2020-03-25 10:05:20 +01:00
Pau Pérez Fabregat
2c487c2592 Merge pull request #5037 from luisramos0/strong_params_subs
[Spree 2.1] Implement strong params in subscriptions controller
2020-03-25 09:50:47 +01:00
Pau Pérez Fabregat
d4d72c6c6c Merge pull request #5036 from luisramos0/strong_params_users
[Spree 2.1] Implement strong params in user related controllers
2020-03-25 09:48:52 +01:00
Pau Pérez Fabregat
b323364661 Merge pull request #5035 from luisramos0/strong_params_checkout
[Spree 2.1] Implement strong params in checkout controller
2020-03-25 09:46:53 +01:00
Pau Pérez Fabregat
e70daf53ce Merge pull request #4876 from luisramos0/strong_params_oc
[Spree 2.1] Implement strong params in admin Order cycles controller
2020-03-25 09:44:13 +01:00
Pau Pérez Fabregat
c5621b7740 Merge pull request #5034 from luisramos0/strong_params_payment_methods
[Spree 2.1] Implement strong params in admin payment methods controller
2020-03-25 09:39:34 +01:00
Matt-Yorkley
e27f7a4301 Ensure perform_deliveries is correctly set when testing user confirmation emails 2020-03-25 08:42:21 +01:00
Luis Ramos
bddfa95eb5 Fix broken new property button in properties page 2020-03-24 21:50:49 +00:00
Matt-Yorkley
ef0fb18fda Fix calculations for weight when variant.unit_value is zero 2020-03-24 22:05:55 +01:00
Luis Ramos
570fb4bfb4 Upgrade factory_bot_rails 2020-03-24 19:18:13 +00:00
Luis Ramos
89cc7ee5ef Upgrade devise-encryptable to 0.2.0 which is latest 2020-03-24 19:18:13 +00:00
Luis Ramos
5453fed716 Upgrade rails from 4.0.0 to 4.0.13 2020-03-24 19:18:13 +00:00
Luis Ramos
b8ed28b38c Remove deface, it's already included in spree_core, it's not a direct dependency of OFN anymore 2020-03-24 19:18:13 +00:00
Matt-Yorkley
87ee4bbebc Add spec for current problematic behaviour 2020-03-24 20:09:54 +01:00
Transifex-Openfoodnetwork
f5567e556b Updating translations for config/locales/pt_BR.yml 2020-03-25 02:22:31 +11:00
Matt-Yorkley
e014e6c1a4 Ensure perform_deliveries is correctly set when testing user confirmation emails 2020-03-24 13:12:20 +00:00
Matt-Yorkley
54c3c73ed2 Fix duplicate key in hash 2020-03-24 12:46:21 +01:00
Luis Ramos
8dfdc9bc15 Merge pull request #5056 from openfoodfoundation/dependabot/bundler/rubocop-rails-2.5.0
Bump rubocop-rails from 2.4.2 to 2.5.0
2020-03-24 11:22:21 +00:00
Matt-Yorkley
36aa52736a Refactor order filtering logic 2020-03-24 09:36:59 +01:00
Matt-Yorkley
ac38b2735c Eager-load data in OrdersController 2020-03-23 22:38:57 +01:00
Matt-Yorkley
8b93c5ab56 Invert conditionals for better readability 2020-03-23 22:38:57 +01:00
Matt-Yorkley
434f98fb46 Fix insane N+1 in Package
The #ships_with? method was being called ~800 times when loading the admin order edit page (with Aus production data), and triggering a new query each time it was called.
2020-03-23 22:38:57 +01:00
Matt-Yorkley
c82c54873c Pluck :id when querying active distributors for serializer data 2020-03-23 22:38:55 +01:00
dependabot-preview[bot]
de180d32bf Bump rubocop-rails from 2.4.2 to 2.5.0
Bumps [rubocop-rails](https://github.com/rubocop-hq/rubocop-rails) from 2.4.2 to 2.5.0.
- [Release notes](https://github.com/rubocop-hq/rubocop-rails/releases)
- [Changelog](https://github.com/rubocop-hq/rubocop-rails/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rubocop-hq/rubocop-rails/compare/v2.4.2...v2.5.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-03-23 20:37:57 +00:00
Matt-Yorkley
5b481c19cc Eager-load country in Producers controller 2020-03-23 19:33:15 +01:00
Matt-Yorkley
7110f9e6ee Eager-load data used in EnterpriseGroupsController
Cuts page load time by ~75%
2020-03-23 19:33:13 +01:00
Transifex-Openfoodnetwork
63d748b2a4 Updating translations for config/locales/pt_BR.yml 2020-03-24 03:32:23 +11:00
Transifex-Openfoodnetwork
310906c7da Updating translations for config/locales/en_NZ.yml 2020-03-23 15:49:19 +11:00
Transifex-Openfoodnetwork
b81843921b Updating translations for config/locales/en_CA.yml 2020-03-23 08:57:54 +11:00
Luis Ramos
2de550eac1 Make OrderUpdate update all adjustments again as in v2.0.4 otherwise adjustments that are not shipment adjustments will not be calculated correctly 2020-03-22 20:08:11 +00:00
Luis Ramos
85f6be756e Merge pull request #5027 from luisramos0/3-0-stable-mar20
[Spree 2.1] Merge master into 3-0-stable - 20 March 2020
2020-03-22 13:20:54 +00:00
Matt-Yorkley
dd0e135a4d Add test coverage for Permissions::Order with search_params 2020-03-22 11:45:40 +01:00
Luis Ramos
658a024272 Re-add spring and newrelix_rpm 2020-03-22 10:41:59 +00:00
Luis Ramos
0f2c5d379a Add test locales to I18n.available_locales before the test and reset them afterwards 2020-03-22 10:32:16 +00:00
Luis Ramos
a29f263041 Make explicit the namespace of the BaseController for api controllers 2020-03-22 09:55:07 +00:00
Luis Ramos
478f885b26 Fix problem in PermittedAttributes::Variant namespace 2020-03-21 22:36:31 +00:00
Luis Ramos
5e6a210632 Fix problem in PermittedAttributes::User namespace 2020-03-21 22:36:03 +00:00
Luis Ramos
26cd0f4a9d Merge pull request #5023 from mkllnk/5019-invoice-bill-address
Display shipping and billing address on invoices
2020-03-21 20:38:00 +00:00
Luis Ramos
4e43535512 Add missing permitted attribute 2020-03-21 20:30:34 +00:00
Luis Ramos
3ccd58d50b Fix a problem in the permit list to allow a list to be taken 2020-03-21 20:30:34 +00:00
Luis Ramos
5a0319213f Fix schedules controller permitted attributes 2020-03-21 20:30:34 +00:00
Luis Ramos
b7c0caf883 Add needed permitted attributes to orders_controller 2020-03-21 20:30:34 +00:00
Luis Ramos
8c5dfea92f Fix strong params in order_cycles and schedules controllers 2020-03-21 20:30:34 +00:00
Luis Ramos
2a426d29b6 Permit specific params in zones controller 2020-03-21 20:30:34 +00:00
Luis Ramos
47505b6225 Permit specific params in shipping methods controller 2020-03-21 20:30:34 +00:00
Luis Ramos
6fa1ed03dc Permit specific params in adjustments controller 2020-03-21 20:30:34 +00:00
Luis Ramos
d73d851095 Permit specific params in tax_rates controller 2020-03-21 20:30:34 +00:00
Luis Ramos
495c3a3810 Permit specific params in images controller 2020-03-21 20:30:34 +00:00
Luis Ramos
9681437fba Permit specific params in tax_categories controller 2020-03-21 20:30:34 +00:00
Luis Ramos
b99d4ab627 Permit specific params in schedules controller 2020-03-21 20:30:34 +00:00
Luis Ramos
423d5a5a61 Permit specific params in taxonomies controller 2020-03-21 20:30:34 +00:00
Luis Ramos
e5a214da78 Permit specific params in states controller 2020-03-21 20:30:34 +00:00
Luis Ramos
46025915d5 Make taxons_controller strong_params method consistent with all other controllers 2020-03-21 20:30:34 +00:00
Luis Ramos
e23267156d Improve inventory_items_controller strong params by not using permit! 2020-03-21 20:30:34 +00:00
Luis Ramos
6bd72f44de Handle strong params in credit card controllers 2020-03-21 20:30:34 +00:00
Luis Ramos
913ea5b883 Handle strong parameters in bulk_line_items controller 2020-03-21 20:30:34 +00:00
Luis Ramos
d496a4bdc8 Add strong parameters permits to some controllers 2020-03-21 20:30:34 +00:00
Luis Ramos
c15433af3f Bring some strong parameters code from spree to our Spree controllers
This code comes from spree commit fbc2d150f6
2020-03-21 20:30:34 +00:00
Luis Ramos
244499a27d Extract permitted atttributes to specific classes 2020-03-21 19:41:05 +00:00
Luis Ramos
58a2805bc9 Make resource controller raise error if permitted_resource_params is not overriden 2020-03-21 19:41:05 +00:00
Luis Ramos
49a2522305 Permit specific params in variants controller 2020-03-21 19:27:55 +00:00
Luis Ramos
527f6cb624 Add necessary attributes to admin/products_controller and handle empty params case 2020-03-21 19:14:26 +00:00
Luis Ramos
36389b7bed Add missing permitted attributes to bulk_product_update controller 2020-03-21 19:14:26 +00:00
Luis Ramos
b5cdcdf8cb Permit specific params in products controller 2020-03-21 19:14:26 +00:00
Luis Ramos
a261ae118d Add missing permitted attributes to variant overrides controller 2020-03-21 19:14:26 +00:00
Luis Ramos
7320b38b93 Add missing attributes to variant override controller 2020-03-21 19:14:26 +00:00
Luis Ramos
0151b5ee9a Permit extra needed params in variant overrides controller 2020-03-21 19:14:26 +00:00
Luis Ramos
5b37e89738 Handle strong params in variant_overrides_controller
We use a simpler way to permit on array within params here and change products_controller to the same style
2020-03-21 19:14:26 +00:00
Luis Ramos
c110f4832d Handle strong params in spree/admin/products_controller 2020-03-21 19:14:26 +00:00
Luis Ramos
79b0867507 Extract permitted attributes to separate service 2020-03-21 19:08:37 +00:00
Luis Ramos
58c83d056d Add missing permitted attributes to subscriptions controller 2020-03-21 18:57:37 +00:00
Luis Ramos
c3897b2f1c Handle strong params in subscriptions controller 2020-03-21 18:57:37 +00:00
Luis Ramos
d7cfda8385 Handle strong params in subscription_line_items controller 2020-03-21 18:57:37 +00:00
Luis Ramos
0ee562c718 Add test coverage for PermittedAttributes::User 2020-03-21 18:48:04 +00:00
Luis Ramos
aec7f12f5a Extract common user permitted attributes to a separate class 2020-03-21 18:31:14 +00:00
Luis Ramos
6ed93da3f1 Fix case with empty spree_user in user_registrations controller 2020-03-21 18:00:04 +00:00
Luis Ramos
d0bd2818c2 Handle strong params on users_controller 2020-03-21 18:00:04 +00:00
Luis Ramos
431076fc6d Add strong parameters permits to admin users_controller 2020-03-21 17:59:46 +00:00
Luis Ramos
980fdd65a1 Replace hash rockets syntax 2020-03-21 17:00:08 +00:00
Luis Ramos
2c453359c1 Extract permitted params into a specific service 2020-03-21 16:49:26 +00:00
Luis Ramos
1d9a6edefb Permit params in checkout controller before we adapt them to bypass issues with permitting added attributes like source CreditCard 2020-03-21 16:30:20 +00:00
Luis Ramos
5ae2e6865c Add one more needed permitted attribute to checkout controller 2020-03-21 16:30:20 +00:00
Luis Ramos
d7cccd4143 Add guard clause in checkout_controller for empty params[:order] 2020-03-21 16:30:20 +00:00
Luis Ramos
5af27bb14e Make checkout controller handle strong parameters 2020-03-21 16:30:20 +00:00
Luis Ramos
fd2cf7295e Extract permitted_attributes from order_cycle_controller into a specific service 2020-03-21 16:17:20 +00:00
Luis Ramos
20c7a0d3ef Adapt to latest changes in order cycles controller strong params changes 2020-03-21 14:45:51 +00:00
Luis Ramos
57f8fa26ab Fix strong params in order_cycles 2020-03-21 14:45:51 +00:00
Luis Ramos
1a46e7b7ee Improve strong params implementation on order_cycle controller and fix corresponding specs 2020-03-21 14:45:51 +00:00
Luis Ramos
905811ccb3 Handle strong params in admin order_cycles controller 2020-03-21 14:45:51 +00:00
Luis Ramos
df799340df Add missing permitted attributes to payment_methods controller 2020-03-21 14:21:52 +00:00
Luis Ramos
eac0da9812 Fix payment method controllers by removing unnecessary param that only exists in stripe connect payment method preferred_enterprise_id 2020-03-21 14:09:33 +00:00
Luis Ramos
e5ebf45765 Improve strong params implementation on payment methods controller by specifying specific list of permitted attributes 2020-03-21 14:09:33 +00:00
Luis Ramos
38849f5589 Extract method in payments_method_controller to make it readable 2020-03-21 14:09:32 +00:00
Luis Ramos
86d09ff21e Bring strong parameters code from spree to payment_methods_controller
This code comes from spree commit fbc2d150f6
2020-03-21 14:08:03 +00:00
Luis Ramos
337b2ab592 Merge pull request #4979 from Matt-Yorkley/3-0-customer-details
[Spree 2.1] Customer details
2020-03-21 13:26:09 +00:00
Matt-Yorkley
80e5608436 Ensure customer selection dropdown is visible when adding customer details
For some reason the order is in address state here instead of cart state when adding customer details. There's a conditional in the view which loads the customer selection dropdown that was not being triggered, so a customer could not be selected (and their existing address was not being filled out in the form).

Fixes:

  1)
    As an administrator
    I want to manage orders
 filling customer details
     Failure/Error: expect(order.ship_address.lastname).to eq @customer.ship_address.lastname

     NoMethodError:
       undefined method `lastname' for nil:NilClass
     # ./spec/features/admin/orders_spec.rb:179:in `block (2 levels) in <top (required)>'
2020-03-21 14:14:31 +01:00
Luis Ramos
b33969e6a2 Adapt to slightly different rails 4 sql data conversion 2020-03-21 12:50:34 +00:00
Matt-Yorkley
0b878dd0a2 Use named scope for finding line_items in a set of orders 2020-03-21 09:45:35 +01:00
Matt-Yorkley
45c204017f Improve reports performance
Add the scoping from the search filters for reports into the logic of building sets like `editable_line_items` before combining them into the query to reduce the number of `line_item` ids in the IN clause.
2020-03-21 09:45:33 +01:00
Transifex-Openfoodnetwork
fa98a8ea17 Updating translations for config/locales/en_NZ.yml 2020-03-21 15:19:06 +11:00
Luis Ramos
17c2f7b138 Merge pull request #4889 from luisramos0/3-0-prod-set
[Spree 2.1] Fix ProductSet spec (1 broken spec)
2020-03-20 19:33:19 +00:00
Matt-Yorkley
70643a84b2 Update all locales with the latest Transifex translations 2020-03-20 18:44:23 +01:00
Matt-Yorkley
62a00b17a2 Merge pull request #5026 from Matt-Yorkley/checkout_display
Temporarily hide OC selector in checkout page
2020-03-20 18:33:47 +01:00
Luis Ramos
9915717a22 Remove attr_accessible from paper_trail config
In rails 4 this is not needed
2020-03-20 15:09:18 +00:00
Luis Ramos
03cdaf589e Remove newly added attr_accessible from stripe_sca
This is not needed, in rails 4 the params are permitted at controller level
2020-03-20 15:08:29 +00:00
Pau Pérez Fabregat
c4f96a1dcf Merge pull request #4972 from mkllnk/4810-tab-navigation
4810 Shop tab / page navigation with browser buttons
2020-03-20 15:24:50 +01:00
Pau Pérez Fabregat
6f4f3d42cc Merge pull request #5012 from openfoodfoundation/dependabot/bundler/rack-mini-profiler-2.0.1
Bump rack-mini-profiler from 2.0.0 to 2.0.1
2020-03-20 15:22:43 +01:00
Transifex-Openfoodnetwork
7582df2771 Updating translations for config/locales/en_CA.yml 2020-03-21 00:37:37 +11:00
Luis Ramos
1c628fac58 Merge branch 'master' into 3-0-stable-mar20 2020-03-20 11:28:06 +00:00
Matt-Yorkley
e8692fec4c Temporarily hide OC selector in checkout page 2020-03-20 12:08:58 +01:00
Luis Ramos
9994bc75ca Adapt reports controller to handle routes of reports in the order_management engine differently 2020-03-20 11:07:23 +00:00
Luis Ramos
3f5a964dec Move enterprise_fee_summaries_spec to order_management engine, moving
translation keys for the views and adapting some routes
2020-03-20 11:07:23 +00:00
Luis Ramos
b4befea606 Fix namespace in spec 2020-03-20 11:07:23 +00:00
Luis Ramos
58465c4645 Adapt routes placeholder in the new catalog engine to make it similar to the other engines 2020-03-20 11:07:23 +00:00
Luis Ramos
0b05312f19 Move cookies spec to web engine and adapt routes to the fact they are now normal main apps routes 2020-03-20 11:07:23 +00:00
Luis Ramos
e209452f8b Make engine routes just prepend to apps routes instead of creating engine routes
This makes things a bit simpler in terms of routing, we avoid a problem running specs and we can still have the engine routes separated in specific files
2020-03-20 11:07:23 +00:00
Luis Ramos
a8078b22f8 Move enterprise fees summaries controller and views to ordermanagement engine 2020-03-20 11:07:23 +00:00
Luis Ramos
3b2c10526d Merge pull request #4838 from openfoodfoundation/dependabot/bundler/jquery-rails-3.1.5
[Security] Bump jquery-rails from 3.0.4 to 3.1.5
2020-03-20 09:49:22 +00:00
Luis Ramos
0e62dc04bd Improve comments to explain glitch on set_order_cycle and OrderCyclesList 2020-03-20 09:47:59 +00:00
Luis Ramos
e2940eb9ff Add namespace to OrderCyclesList
Shop will probably be the name of the future engine/domain for the shopfront pages
2020-03-20 09:47:59 +00:00
Luis Ramos
1c1f066884 Extract Shop::OrderCyclesList from base_controller 2020-03-20 09:47:59 +00:00
Luis Ramos
d5cf355a11 Call fetch_order_cycles from reset_order_cycles so we dont repeat the calculation
BaseController#set_order_cycle cant be used in reset_order_cycle because it will empty the order if the OC is not defined previously
2020-03-20 09:47:59 +00:00
Luis Ramos
d2eee1dafd Extract and fix reset_order_cycle logic from set_order_cycles: ActiveRecord.count will reload the relation and ignore the changes done by the TagRuleApplicator 2020-03-20 09:46:05 +00:00
Luis Ramos
540b26105f Delete dead code in oc helper 2020-03-20 09:46:05 +00:00
Transifex-Openfoodnetwork
c788f1ae57 Updating translations for config/locales/it.yml 2020-03-20 19:32:35 +11:00
Maikel Linke
b1a274ea27 Update translations 2020-03-20 16:20:21 +11:00
Maikel
00c7b9986b Merge pull request #5020 from openfoodfoundation/transifex
Transifex
2020-03-20 16:15:54 +11:00
Maikel Linke
25b11f1f4b Display delivery details in the header 2020-03-20 15:51:49 +11:00
Maikel Linke
22384cb4da Display shipping and billing address on invoices 2020-03-20 15:14:24 +11:00
Transifex-Openfoodnetwork
9dc18afef0 Updating translations for config/locales/pt_BR.yml 2020-03-20 12:20:04 +11:00
Matt-Yorkley
7baa875a91 Fix big N+1 issues in enterprises#edit for superadmin
The page is usable now as superadmin. Roughly 10x faster...
2020-03-19 23:41:47 +01:00
Matt-Yorkley
3de887e1d8 Remove some N+1s relating to address (found with bullet gem) 2020-03-19 23:41:47 +01:00
Transifex-Openfoodnetwork
d2d3d767ac Updating translations for config/locales/en_GB.yml 2020-03-19 23:53:09 +11:00
Transifex-Openfoodnetwork
a4ff74272b Updating translations for config/locales/nb.yml 2020-03-19 22:47:36 +11:00
Transifex-Openfoodnetwork
1000dc52bf Updating translations for config/locales/en_FR.yml 2020-03-19 19:37:32 +11:00
Transifex-Openfoodnetwork
54b8d22e0d Updating translations for config/locales/fr.yml 2020-03-19 19:37:21 +11:00
Maikel Linke
7e00f78a77 Highlight menu item only when active or hovered
The `:focus` selector meant that every link that was clicked on was
still highlighted after going back or forward in the browser history. We
don't need that selector because tabs you click on are then active and
are highlighted anyway.
2020-03-19 15:49:29 +11:00
Maikel Linke
5a9b5660f1 Simplify logic in PageSelectionCtrl 2020-03-19 15:38:00 +11:00
Maikel Linke
1d42ce885b Stay on shop page when opening login modal
The login modal changes the URL to `#/login` which interfers with our
shop pages. In order to show the right shop page, we need to know which
pages are valid and where we have been before we clicked on Login.
2020-03-19 15:38:00 +11:00
Maikel Linke
17751c448f Rename PageSelectionCtrl for clarity 2020-03-19 15:37:13 +11:00
Maikel Linke
4b8d9d18d7 Simplify PagesetCtrl 2020-03-19 15:37:13 +11:00
Maikel Linke
a21ef19529 Render only shop tabs within shop
The include directive was listening to all $location paths including
`#login` which is unrelated to the shop tabs. Angular tried to load the
template `shop/login.html` which doesn't exist.

We now whitelist the templates that can be included by having an include
tag for each shop tab/page.
2020-03-19 15:37:13 +11:00
Maikel Linke
ea80ae3832 Enable page navigation via URL fragment
The broadcasting of notifications didn't update properly and I couldn't
find a way to listen to $location updates. I replaced the three
intertwined directives with one controller and a bit more HTML code. Now
we have only one scope that listens to $location and all browser actions
like the back button is reflected in the page.

As nice side-effect, the menu links have now the right destination so
that you can copy the link and paste it into another browser window.

40 lines less code.
2020-03-19 15:37:13 +11:00
Maikel Linke
bf26a26743 Reduce complexity by removing unused code branch 2020-03-19 15:36:24 +11:00
Maikel Linke
e3f840f48c Remove dependency to Tabsets 2020-03-19 15:36:23 +11:00
Maikel Linke
42ca7888c0 Simplify by reducing unused options 2020-03-19 15:36:23 +11:00
Maikel Linke
8aa892136e Duplicate shop tab code for rewrite
The old code is still used on the user page.
2020-03-19 15:36:23 +11:00
Maikel Linke
2d21341183 Update all locales with the latest Transifex translations 2020-03-19 14:06:04 +11:00
Maikel
5cabf59015 Merge pull request #5016 from openfoodfoundation/revert-4879-inner-join-visible-orders
Revert "Inner join visible orders"
2020-03-19 12:37:20 +11:00
Maikel
289dff5b91 Merge pull request #4988 from openfoodfoundation/transifex
Transifex
2020-03-19 12:06:37 +11:00
Maikel
c4e4beb912 Revert "Inner join visible orders" 2020-03-19 12:01:00 +11:00
Maikel
27d8951add Merge pull request #5013 from openfoodfoundation/mobile-ux-3
Merge mobile-ux-3 branch into master
2020-03-19 11:51:41 +11:00
Transifex-Openfoodnetwork
f7720f1b1f Updating translations for config/locales/en_FR.yml 2020-03-19 05:18:19 +11:00
Transifex-Openfoodnetwork
c46ae4354d Updating translations for config/locales/en_FR.yml 2020-03-19 05:15:09 +11:00
Transifex-Openfoodnetwork
5f00323cbb Updating translations for config/locales/fr.yml 2020-03-19 05:14:27 +11:00
Transifex-Openfoodnetwork
c52f29706b Updating translations for config/locales/en_CA.yml 2020-03-19 03:47:42 +11:00
Luis Ramos
2590745b2e Merge pull request #4954 from luisramos0/dead_temp
Delete templates that are not used
2020-03-18 13:52:15 +00:00
Matt-Yorkley
6db0421347 Merge pull request #4764 from Matt-Yorkley/mobile-tabs-styling
[mobile ux] Mobile tabs styling
2020-03-18 08:42:44 +01:00
Maikel
b63c47cca2 Merge pull request #4816 from mkllnk/1860-copy-paste
1860 Remove style from pasted text for shopfront messages
2020-03-18 16:23:50 +11:00
Maikel
2b9f57f4e0 Merge pull request #4998 from mkllnk/4277-signup-flow
Direct new enterprise users to their dashboard
2020-03-18 16:17:41 +11:00
Matt-Yorkley
8a1de72542 Center order cycle select elements in tablet view 2020-03-17 20:32:18 +01:00
Matt-Yorkley
2cb3a0cd99 Adjust padding, size, colour (transparency), caret size and position, border-radius, etc 2020-03-17 20:32:18 +01:00
Matt-Yorkley
b0637a24ff Adjust padding, size, colour transparency, caret size 2020-03-17 20:32:18 +01:00
Matt-Yorkley
d969b68c8c Add placeholder to order cycle selector 2020-03-17 20:32:18 +01:00
Matt-Yorkley
a89d4266d5 Update ordercycleselector to show message in red and remove powertip. 2020-03-17 20:32:18 +01:00
Matt-Yorkley
4b8ced5fc0 Add right-margin on bullet points in groups tab 2020-03-17 20:32:18 +01:00
Matt-Yorkley
2678342122 Reduce padding on ordercycle selector 2020-03-17 20:32:18 +01:00
Matt-Yorkley
b33c819863 Reduce rounding on ordercycle edges (box-radius) 2020-03-17 20:32:18 +01:00
Matt-Yorkley
97d7e27786 Update social icon colours 2020-03-17 20:32:18 +01:00
Matt-Yorkley
e73e43838c Add 2px margin under Contact subheadings 2020-03-17 20:32:18 +01:00
Matt-Yorkley
cdc40fbc38 Update Contact tab subheading text colour 2020-03-17 20:32:18 +01:00
Matt-Yorkley
3430cc617a Maximise space for tabs to fit on small screens 2020-03-17 20:32:18 +01:00
Matt-Yorkley
ed6f042446 Adjust tab widths/spacing on mobile and tablet 2020-03-17 20:32:18 +01:00
Matt-Yorkley
80a8c436d6 Update box-shadow underneath tab buttons 2020-03-17 20:32:18 +01:00
Matt-Yorkley
049a87e8a9 Remove defunct text-shadow from tab text 2020-03-17 20:32:18 +01:00
Matt-Yorkley
deb5b8e74c Fix minor display issue where "Ready For" option with lots of characters is too big to fit on screen on mobile.
The layout was breaking in some specific cases where the content didn't fit on very small screens.
2020-03-17 20:32:18 +01:00
Matt-Yorkley
a5dd14d902 Adjust new colour variables to match Zeplin 2020-03-17 20:32:18 +01:00
Matt-Yorkley
9a6859edc0 Fix CodeClimate issue with SCSS variable naming 2020-03-17 20:32:18 +01:00
Matt-Yorkley
c0c53113d3 Change font on shop tab titles 2020-03-17 20:32:18 +01:00
Matt-Yorkley
26688409a1 Use alternate dots in <ul> display 2020-03-17 20:32:18 +01:00
Matt-Yorkley
0893d14025 Add new shop link colours 2020-03-17 20:32:18 +01:00
Matt-Yorkley
efd314e3b1 Restyle contact tab 2020-03-17 20:23:45 +01:00
Matt-Yorkley
bd7549c57f Update layout for producers and groups tabs 2020-03-17 20:23:45 +01:00
Matt-Yorkley
45cf54408d Readjust layout after rebase 2020-03-17 20:23:45 +01:00
Matt-Yorkley
15360740b1 Add ng-cloak to ordercycle box to improve appearance whilst page loads 2020-03-17 20:23:45 +01:00
Matt-Yorkley
5ce5072f26 Adjust position of OC popover tip to not cover up the "ready for" label 2020-03-17 20:23:45 +01:00
Matt-Yorkley
35133f7ee8 Adjust height of ordercycle selector on desktop 2020-03-17 20:23:45 +01:00
Matt-Yorkley
5becbc2a11 Move caret svg to /app/assets/images 2020-03-17 20:23:45 +01:00
Matt-Yorkley
390d80f0eb Update order cycle selector positioning 2020-03-17 20:23:45 +01:00
Matt-Yorkley
6da43850d1 Restyle order cycle dropdown 2020-03-17 20:23:45 +01:00
Matt-Yorkley
a146bdacc8 Realign ordercycle text on tablet downwards 2020-03-17 20:23:45 +01:00
Matt-Yorkley
43cadb00c4 Recolour order cycle selector 2020-03-17 20:23:45 +01:00
Matt-Yorkley
2e616a9e31 Fix conditional display of order cycle selection element 2020-03-17 20:23:45 +01:00
Matt-Yorkley
1927e2883e Move brackets inside conditionals for rendering last closed / next open message 2020-03-17 20:23:45 +01:00
Matt-Yorkley
a4b94cf39f Add dividing line on tabs
Shows a thin grey line when the tab view content is white, but doesn't interfere when the content below is a full-width colour image.
2020-03-17 20:23:45 +01:00
Matt-Yorkley
a35f3c130e Recolour shop tab buttons 2020-03-17 20:23:45 +01:00
Matt-Yorkley
a93243a8b7 Change vertical position of shop name in relation to logo 2020-03-17 20:23:45 +01:00
Matt-Yorkley
de4402457a Improve layout and positioning on mobile and tablet 2020-03-17 20:23:45 +01:00
Matt-Yorkley
bf9f7309f7 Adapt style definitions to altered layout 2020-03-17 20:23:45 +01:00
Matt-Yorkley
4b0e1610ec Update order cycle selection box 2020-03-17 20:23:45 +01:00
dependabot-preview[bot]
0c6fe20e82 Bump rack-mini-profiler from 2.0.0 to 2.0.1
Bumps [rack-mini-profiler](https://github.com/MiniProfiler/rack-mini-profiler) from 2.0.0 to 2.0.1.
- [Release notes](https://github.com/MiniProfiler/rack-mini-profiler/releases)
- [Changelog](https://github.com/MiniProfiler/rack-mini-profiler/blob/master/CHANGELOG.md)
- [Commits](https://github.com/MiniProfiler/rack-mini-profiler/compare/v2.0.0...v2.0.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-03-17 19:19:22 +00:00
Luis Ramos
0f2e23d225 Merge pull request #4968 from lin-d-hop/customer-balances
Revert changes that broke existing usage of this report
2020-03-17 18:06:35 +00:00
Matt-Yorkley
45b5e838b7 Remove simple_form
It looks like we don't use this at all. Discovered during the Spree 2.1 upgrade.
2020-03-17 17:03:48 +01:00
Luis Ramos
da837ff100 Remove rabl dependency 🎉 2020-03-17 15:51:50 +00:00
Luis Ramos
da2598282b Can be object or {}, it's what the injector is doing, not related to rabl any more 2020-03-17 15:51:26 +00:00
Luis Ramos
0308f1465d Remove taxons/search action and respective rabl view
This is dead code
2020-03-17 15:51:26 +00:00
Luis Ramos
a6e4893287 Remove taxons list field from product edit form.
It is not working and it's not used in any other place in the app, there's the product category already (product.primary_taxon_id)
2020-03-17 15:51:25 +00:00
Luis Ramos
eccaaca907 Merge pull request #4930 from luisramos0/3-0-stable-mar6
Merge master into 3-0-stable
2020-03-17 14:49:30 +00:00
Pau Pérez Fabregat
42d5b5d8a3 Merge pull request #4974 from luisramos0/payment_rollback
[Spree 2.1] Bypass broken payment rollback callback
2020-03-17 15:37:28 +01:00
Pau Pérez Fabregat
129de8fd57 Merge pull request #5006 from Matt-Yorkley/loggageddon
Logageddon Hotfix
2020-03-17 14:48:12 +01:00
Matt-Yorkley
e24d858af9 Ensure log level is the default :info for staging and production
The default was being ignored in our new logging configuration, and the actual log output was way too high. This was causing serious disk space issues.
2020-03-17 12:25:25 +01:00
Matt-Yorkley
d2cacf5330 Add comments for unusable log_level setting 2020-03-17 12:22:58 +01:00
Transifex-Openfoodnetwork
af231d2ebe Updating translations for config/locales/fr.yml 2020-03-17 20:32:15 +11:00
Pau Pérez Fabregat
711a3debe7 Merge pull request #4990 from openfoodfoundation/dependabot/bundler/webmock-3.8.3
Bump webmock from 3.8.2 to 3.8.3
2020-03-17 09:59:10 +01:00
Pau Pérez Fabregat
d09b0849e4 Merge pull request #4936 from luisramos0/fix_order_syncer
Fixes spec/services/order_syncer_spec in rails 4
2020-03-17 09:56:17 +01:00
Pau Pérez Fabregat
b2d015416a Merge pull request #4934 from luisramos0/latest_spree_branch
[Spree 2.1] Use latest version of spree which includes PR openfoodfoundation/spree#39
2020-03-17 09:55:49 +01:00
Pau Pérez Fabregat
c639821dc3 Merge pull request #4931 from luisramos0/fix_ent_ser
Fix serializers/api/enterprise_shopfront_serializer_spec in rails 4
2020-03-17 09:53:31 +01:00
Maikel
d9b643d795 Merge pull request #4799 from mkllnk/4771-back-to-shop-button
4771 Back to shop button
2020-03-17 19:51:02 +11:00
Maikel Linke
6b8b3be524 Show "Back To Store" button when no shop has been selected yet 2020-03-17 10:28:03 +11:00
Maikel Linke
1db8283e98 Link "Back To Store" button to products page 2020-03-17 10:28:03 +11:00
Maikel Linke
5fce40ee71 Link "Continue shopping" to products tab 2020-03-17 10:28:03 +11:00
Maikel Linke
c64493ca77 Continue shopping with the products list 2020-03-17 10:28:03 +11:00
Maikel Linke
5b942e6933 Add spec for "continue shopping" from cart
https://github.com/openfoodfoundation/openfoodnetwork/issues/4771
2020-03-17 10:28:03 +11:00
Luis Ramos
26769b4150 Add StripeSCA payment authorize and use it both subs_confirm job as well as on teh checkout stripe redirect 2020-03-16 20:04:59 +00:00
Luis Ramos
84745e4ccb Add stripe payment setup spec and make minor tweaks to the code itself.
Also, add a missing . to card_set? that eanbles it! If the card was
already set, it would anyway set the default card. Now it will use the
defined card if there is one already.
2020-03-16 20:03:12 +00:00
Luis Ramos
aac7a5e559 Adapt PaymentSetup spec to new version and remove some private method testing (payment) as well as some tests testing order.pending_payments logic 2020-03-16 20:03:12 +00:00
Luis Ramos
0a2941ed96 Extract StripePaymentSetup from PaymentSetup 2020-03-16 20:03:12 +00:00
Luis Ramos
ffbb5934d7 Merge pull request #4989 from luisramos0/specs_in_engines
Adapt task that runs engine specs
2020-03-16 19:17:04 +00:00
dependabot-preview[bot]
05ccd1ecbf Bump compass-rails from 3.1.0 to 4.0.0
Bumps [compass-rails](https://github.com/Compass/compass-rails) from 3.1.0 to 4.0.0.
- [Release notes](https://github.com/Compass/compass-rails/releases)
- [Changelog](https://github.com/Compass/compass-rails/blob/master/CHANGELOG.md)
- [Commits](https://github.com/Compass/compass-rails/commits)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-03-16 18:49:51 +00:00
Luis Ramos
bae9df8214 Merge pull request #4787 from luisramos0/catalog_domain
Add new domain/engine Catalog
2020-03-16 18:47:55 +00:00
Luis Ramos
f8a4f00d52 Fix rubocop issues in subs specs 2020-03-16 17:20:01 +00:00
Luis Ramos
29377bbff9 Move 5 subscriptions services from app/services to the engines/order_management/app/services 2020-03-16 17:20:01 +00:00
Luis Ramos
f68d0c2a0f Remove Subscription from the name of the subscription summarizer and summary because it is already in the namespace 2020-03-16 17:20:01 +00:00
Luis Ramos
3901c49af9 Fix rubocop issues 2020-03-16 17:20:01 +00:00
Luis Ramos
ae0ceb61a1 Move ProxyOrderSyncer to OrderManagement engine 2020-03-16 17:20:01 +00:00
Luis Ramos
fb1c825fbc Move both subscription summarizer and subscription summary to order management engine 2020-03-16 17:20:01 +00:00
Luis Ramos
e36b0249b9 Use nested module names to fix rubocpo issue 2020-03-16 17:20:01 +00:00
Luis Ramos
34fa2d7ad6 Move Subscriptions::PaymentSetup to OrderManagement engine where all subscription code will be at some point in the future 2020-03-16 17:19:04 +00:00
Luis Ramos
3aefea9f04 Prepare SubsConfirmJob to receive a bit more payment logic 2020-03-16 17:19:04 +00:00
Luis Ramos
15231a9128 Make SubsConfirmJob more readable 2020-03-16 17:19:04 +00:00
Luis Ramos
25e3f72934 Fix rubocop issues in subs payment_setup 2020-03-16 17:19:04 +00:00
Luis Ramos
523d819575 Move and rename SubscriptionPaymentUpdater to Subscriptios::PaymentSetup to move to services/subscriptions and call it Setup instead to make explicit this is executed before the payment is processed 2020-03-16 17:16:31 +00:00
Luis Ramos
5da47b3f19 Merge pull request #4757 from luisramos0/stripe_sca_extra
StripeSCA - Handle further SCA auth request when checking out
2020-03-16 16:45:28 +00:00
Luis Ramos
b14e4237cc Make the task that runs engines specs run from the main app, not inside the engine
Right now and for some time the engines are not independent of the main_app. We should aim for that but it will naturally take a while to disentangle the code
2020-03-16 16:20:36 +00:00
Pau Pérez Fabregat
3e7685193f Merge pull request #4996 from luisramos0/fix_build
Fix broken master build
2020-03-16 16:37:09 +01:00
Luis Ramos
8558000c22 Merge pull request #5 from coopdevs/fix-suppliers-report-test-case
Fix suppliers report test case
2020-03-16 13:47:03 +00:00
Pau Perez
6486e5f908 Provide a non-zero amount for ship/pay calculator
This way the adjustment's total_amount is not 0 and thus, not filtered
out but the report service.
2020-03-16 13:56:52 +01:00
Maikel Linke
9244a95472 Direct new enterprise users to their dashboard
People were directed to the home page and had to do several more clicks
to continue with their enterprise setup.
2020-03-16 11:18:32 +11:00
Transifex-Openfoodnetwork
bd237ef257 Updating translations for config/locales/fr_CA.yml 2020-03-15 07:22:12 +11:00
Transifex-Openfoodnetwork
bc06e10146 Updating translations for config/locales/en_CA.yml 2020-03-15 07:21:33 +11:00
Pau Perez
05eadac935 Fix some filtering test cases for fee report
The calculators of the adjustments related to the enterprise fees
created in the test setup have a preferred_amount of 0. So, when
computed, the adjustments' amounts end up being `0 = 0 * 1 line_item`.

Then, the ReportService filters these out in
`#exclude_groups_with_zero_total` from the result set. This is why the
assertions can't find them in `totals`.
2020-03-14 11:19:35 +01:00
Pau Perez
5a83b12c66 Make EnterpriseFee report SQL readable 2020-03-14 11:04:49 +01:00
Pau Perez
71576fd7db Refactor PerItem calculator to ease readability 2020-03-14 11:04:16 +01:00
Luis Ramos
63a1d4145a Adapt order factories to work with enterprise fees summaries report specs 2020-03-13 12:36:01 +00:00
Luis Ramos
1049525e50 Merge pull request #4963 from luisramos0/variants_fix
Fix 2 broken buttons in the product variants list page
2020-03-12 23:48:50 +00:00
Luis Ramos
bd32510837 Merge pull request #4860 from mkllnk/3395-remove-unused-assets
3395 remove unused assets
2020-03-12 22:44:41 +00:00
dependabot-preview[bot]
f0b40eea1e Bump webmock from 3.8.2 to 3.8.3
Bumps [webmock](https://github.com/bblimke/webmock) from 3.8.2 to 3.8.3.
- [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.8.2...v3.8.3)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-03-12 19:20:17 +00:00
Transifex-Openfoodnetwork
ed790ab65d Updating translations for config/locales/en_GB.yml 2020-03-13 05:26:37 +11:00
Matt-Yorkley
1cba129432 Ensure line_item.variant succeeds when variant is soft-deleted 2020-03-12 19:13:15 +01:00
Matt-Yorkley
e24d8d7104 Fix deprecation warning for use of #includes without #references 2020-03-12 19:12:36 +01:00
Matt-Yorkley
40b8eb470c Fix deprecation warning for use of #all 2020-03-12 19:12:06 +01:00
Luis Ramos
f2089af0c4 Merge pull request #4907 from luisramos0/3-0-enterprise_relationship
[Spree 2.1] Uncomment Enterprise#relate_to_owners_enterprises
2020-03-12 17:18:47 +00:00
Luis Ramos
949b6ebad1 Merge pull request #4982 from Matt-Yorkley/3-0-orders-form
[Spree 2.1] Fix order index search form
2020-03-12 16:58:08 +00:00
Luis Ramos
32a4355f09 Merge branch 'master' into 3-0-stable-mar6 2020-03-12 16:54:09 +00:00
Luis Ramos
46e23b28fd Merge pull request #4975 from openfoodfoundation/dependabot/bundler/rspec-rails-3.9.1
Bump rspec-rails from 3.9.0 to 3.9.1
2020-03-12 16:47:14 +00:00
Luis Ramos
bc904a7afa Merge pull request #4976 from openfoodfoundation/dependabot/bundler/rack-mini-profiler-2.0.0
Bump rack-mini-profiler from 1.1.6 to 2.0.0
2020-03-12 16:46:43 +00:00
Luis Ramos
a209b3e860 Merge pull request #4980 from Matt-Yorkley/3-0-destroy-route
[Spree 2.1] Line items destroy route
2020-03-12 16:28:05 +00:00
Matt-Yorkley
9a5452cd52 Delete test in line_items_controller_spec.rb
Rails 4 does not recognise requests to destroy routes without ids as valid routes.

Fixes:

 14) LineItemsController destroying a line item on a completed order without a line item id fails and raises an error
      Failure/Error: delete :destroy

      ActionController::UrlGenerationError:
        No route matches {:action=>"destroy", :controller=>"line_items"}
      # ./spec/controllers/line_items_controller_spec.rb:46:in `block (5 levels) in <top (required)>'
2020-03-12 14:15:00 +01:00
Matt-Yorkley
a207c6c45f Fix cart page update
Fixes:

  2) full-page cart viewing the cart updating quantities with insufficient stock available shows the quantities saved, not those submitted
     Failure/Error: @app.call(env)

     AbstractController::ActionNotFound:
       The action 'update' could not be found for CartController
     # ./lib/open_food_network/rack_request_blocker.rb:36:in `call'
     # ------------------
     # --- Caused by: ---
     # Capybara::ExpectationNotMet:
     #   expected to find text "Insufficient stock available, only 2 remaining" in "Internal Server Error The action 'update' could not be found for CartController WEBrick/1.3.1 (Ruby/2.3.7/2018-03-28) at 127.0.0.1:38614"
     #   ./spec/features/consumer/shopping/cart_spec.rb:182:in `block (5 levels) in <top (required)>'
2020-03-12 13:34:55 +01:00
Pau Perez
8ccc8dfaf6 Update all locales with the latest Transifex translations 2020-03-12 13:33:42 +01:00
Luis Ramos
55b32c828c Merge pull request #4978 from Matt-Yorkley/dev-env-reload
Fix reloading issue in dev environment
2020-03-12 12:22:00 +00:00
Pau Pérez Fabregat
25dfd8ad40 Merge pull request #4939 from openfoodfoundation/transifex
Transifex
2020-03-12 13:19:59 +01:00
Pau Pérez Fabregat
62c35ef6e5 Merge pull request #4953 from luisramos0/sch_fix
Fix problem with misssing params in schedules controller
2020-03-12 12:57:27 +01:00
Pau Pérez Fabregat
f6a1a101a8 Merge pull request #4955 from luisramos0/auth_fix
[Spree 2.1] Fix authentication spec by adapting code to devise 3
2020-03-12 12:51:46 +01:00
Pau Pérez Fabregat
2a5311493f Merge pull request #4969 from luisramos0/oc_apli
Fix spec in rails 4 branch by making code in OrderCycleFormApplicator a bit more resilient
2020-03-12 12:51:23 +01:00
Pau Pérez Fabregat
57ac28cfbd Merge pull request #4970 from openfoodfoundation/dependabot/bundler/ddtrace-0.33.1
Bump ddtrace from 0.33.0 to 0.33.1
2020-03-12 12:50:01 +01:00
Pau Pérez Fabregat
1cba857bdb Merge pull request #4933 from luisramos0/ent_helper
[Spree 2.1] Fix tag rule applicator in enterprises_helper
2020-03-12 12:49:18 +01:00
Pau Pérez Fabregat
568cba9d58 Merge pull request #4941 from luisramos0/devise
[Spree 2.1] Delete unnecessary code related to spree_auth_devise
2020-03-12 12:48:59 +01:00
Pau Pérez Fabregat
4b12d0be46 Merge pull request #4940 from luisramos0/ent_ctrl
[Spree 2.1] Fix issues in EnterprisesController
2020-03-12 12:48:28 +01:00
Pau Pérez Fabregat
de06eed945 Merge pull request #4911 from luisramos0/3-0-manifest
[Spree 2.1] Change Shipment#manifest to include deleted variants (again, this time in rails 4)
2020-03-12 12:47:45 +01:00
Pau Pérez Fabregat
fb02043e6e Merge pull request #4926 from luisramos0/prod_api
Fix products api spec in rails 4
2020-03-12 12:46:45 +01:00
Matt-Yorkley
d62d89aa4f Fix order index search form
Fixes:

  2) spree/admin/orders/index.html.haml print invoices button displays button when invoices are enabled
     Failure/Error: = form_tag nil, {name: "orders_form", "ng-submit" => "fetchResults()"} do

     ActionView::Template::Error:
       No route matches {:action=>"index", :controller=>"spree/admin/orders"}
     # ./app/views/spree/admin/orders/_filters.html.haml:2:in `_a1b716152f19bf3f4772a98e56adf411'
     # ./app/views/spree/admin/orders/index.html.haml:20:in `block in _d04c5552f7a480bf5f02e5fad0c10de6'
     # ./app/views/spree/admin/orders/index.html.haml:19:in `_d04c5552f7a480bf5f02e5fad0c10de6'
     # ./spec/views/spree/admin/orders/index.html.haml_spec.rb:26:in `block (3 levels) in <top (required)>'
     # ./spec/views/spree/admin/orders/index.html.haml_spec.rb:8:in `block (2 levels) in <top (required)>'
     # ------------------
     # --- Caused by: ---
     # ActionController::UrlGenerationError:
     #   No route matches {:action=>"index", :controller=>"spree/admin/orders"}
     #   ./app/views/spree/admin/orders/_filters.html.haml:2:in `_a1b716152f19bf3f4772a98e56adf411'

  3) spree/admin/orders/index.html.haml print invoices button does not display button when invoices are disabled
     Failure/Error: = form_tag nil, {name: "orders_form", "ng-submit" => "fetchResults()"} do

     ActionView::Template::Error:
       No route matches {:action=>"index", :controller=>"spree/admin/orders"}
     # ./app/views/spree/admin/orders/_filters.html.haml:2:in `_a1b716152f19bf3f4772a98e56adf411'
     # ./app/views/spree/admin/orders/index.html.haml:20:in `block in _d04c5552f7a480bf5f02e5fad0c10de6'
     # ./app/views/spree/admin/orders/index.html.haml:19:in `_d04c5552f7a480bf5f02e5fad0c10de6'
     # ./spec/views/spree/admin/orders/index.html.haml_spec.rb:34:in `block (3 levels) in <top (required)>'
     # ./spec/views/spree/admin/orders/index.html.haml_spec.rb:8:in `block (2 levels) in <top (required)>'
     # ------------------
     # --- Caused by: ---
     # ActionController::UrlGenerationError:
     #   No route matches {:action=>"index", :controller=>"spree/admin/orders"}
     #   ./app/views/spree/admin/orders/_filters.html.haml:2:in `_a1b716152f19bf3f4772a98e56adf411'
2020-03-12 12:44:50 +01:00
Transifex-Openfoodnetwork
30d7cc89fa Updating translations for config/locales/pt_BR.yml 2020-03-12 09:25:51 +11:00
Transifex-Openfoodnetwork
d14b5eb46b Updating translations for config/locales/pt_BR.yml 2020-03-12 09:22:44 +11:00
dependabot-preview[bot]
8eb60388fd Bump rack-mini-profiler from 1.1.6 to 2.0.0
Bumps [rack-mini-profiler](https://github.com/MiniProfiler/rack-mini-profiler) from 1.1.6 to 2.0.0.
- [Release notes](https://github.com/MiniProfiler/rack-mini-profiler/releases)
- [Changelog](https://github.com/MiniProfiler/rack-mini-profiler/blob/master/CHANGELOG.md)
- [Commits](https://github.com/MiniProfiler/rack-mini-profiler/compare/v1.1.6...v2.0.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-03-11 19:19:24 +00:00
dependabot-preview[bot]
633f1bd7cf Bump rspec-rails from 3.9.0 to 3.9.1
Bumps [rspec-rails](https://github.com/rspec/rspec-rails) from 3.9.0 to 3.9.1.
- [Release notes](https://github.com/rspec/rspec-rails/releases)
- [Changelog](https://github.com/rspec/rspec-rails/blob/master/Changelog.md)
- [Commits](https://github.com/rspec/rspec-rails/compare/v3.9.0...v3.9.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-03-11 19:15:51 +00:00
Luis Ramos
5506cc86d2 Bypass after_rollback callback in payment
This is causing several specs to fail on rollback and, according to some manual testing (and all the auto tests we have), we dont need this fix in OFN
2020-03-11 14:33:54 +00:00
Matt-Yorkley
933b5f1606 Fix reloading issue in dev environment
I constantly get `NameError: uninitialized constant Spree::AuthenticationHelpers` when touching local files and then reloading a page, and have to restart my rails server every time (in development). I read the other day that this is the best way to fix the issue, and it seems to work...
2020-03-11 15:31:25 +01:00
Transifex-Openfoodnetwork
4c7b8209b9 Updating translations for config/locales/nb.yml 2020-03-11 19:49:14 +11:00
Pau Pérez Fabregat
802ac647e3 Merge pull request #4879 from coopdevs/inner-join-visible-orders
Inner join visible orders
2020-03-10 22:54:03 +01:00
dependabot-preview[bot]
c83bded763 Bump ddtrace from 0.33.0 to 0.33.1
Bumps [ddtrace](https://github.com/DataDog/dd-trace-rb) from 0.33.0 to 0.33.1.
- [Release notes](https://github.com/DataDog/dd-trace-rb/releases)
- [Changelog](https://github.com/DataDog/dd-trace-rb/blob/master/CHANGELOG.md)
- [Commits](https://github.com/DataDog/dd-trace-rb/compare/v0.33.0...v0.33.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-03-10 19:19:31 +00:00
Luis Ramos
03246d425d Make this method handle the case where the variants hash passed is nil
This fixes a spec in the rails 4 branch
2020-03-10 18:41:26 +00:00
Luis Ramos
7585e3d1d6 The variants_to_a method was dead but actually we can use it to make the code simpler 2020-03-10 18:40:46 +00:00
Luis Ramos
bc0a1d9bae Remove one more responder and fix rubocop issues 2020-03-10 15:56:08 +00:00
Luis Ramos
a53dc3a8c1 Remove usage of the responder as this is a json only controller 2020-03-10 14:46:16 +00:00
Luis Ramos
bc1430c984 Make new_variant button work again by making a normal call to the server, isntead of an ajax call that was no longer working 2020-03-10 14:21:26 +00:00
Luis Ramos
676d949972 Make variants collection show deleted again by bypassing the default scope that removed deleted variants 2020-03-10 14:21:20 +00:00
Luis Ramos
de2c6a8717 Revert previous commits and use collection_singular_ids=(ids) setter instead 2020-03-10 11:21:36 +00:00
lin-d-hop
e4bd7c4e30 Revert changes that broke existing usage of this report 2020-03-10 10:59:18 +00:00
Pau Pérez Fabregat
50cdda7c63 Merge pull request #4802 from luisramos0/too_many
Last batch to fix error "subquery with too many columns" in rails 4 branch
2020-03-10 09:20:44 +01:00
Pau Pérez Fabregat
d0af046e59 Merge pull request #4908 from luisramos0/package_spec
Make package spec work in rails 4
2020-03-10 09:17:53 +01:00
Pau Pérez Fabregat
5811f3ead1 Merge pull request #4905 from luisramos0/untouch
Remove some live but elderly debug code
2020-03-10 09:17:13 +01:00
Pau Pérez Fabregat
d7d3c9ea53 Merge pull request #4938 from openfoodfoundation/dependabot/bundler/ddtrace-0.33.0
Bump ddtrace from 0.32.0 to 0.33.0
2020-03-10 08:48:31 +01:00
Pau Pérez Fabregat
a02cc1de34 Merge pull request #4857 from luisramos0/schedules_ctrl
Remove dead spec in SchedulesController
2020-03-10 08:38:46 +01:00
Luis Ramos
014e22a7ad Fix problem with misssing params in schedules controller and adapt its spec 2020-03-09 16:04:59 +00:00
Luis Ramos
5ce4fec68b Add html to show the errors reported by devise 3 about password and password confirmation mismatch on user.errors[:password_confirmation] (instead of user.errors[:password]) 2020-03-09 15:48:45 +00:00
Luis Ramos
94783f44f9 Delete templates that are not used 2020-03-09 15:30:37 +00:00
Luis Ramos
8c367a2ed2 Merge branch 'master' into 3-0-stable-mar6 2020-03-09 13:20:19 +00:00
Luis Ramos
e5f05b4db9 Handle case where no user_ids are sent to the controller. Fixes original spec. 2020-03-07 20:10:32 +00:00
Luis Ramos
7daa68a8bc Adapt consumer/shopping/orders_spec to use an order with a nil user to test a guest checkout, which is what happens in the real checkout 2020-03-07 20:00:40 +00:00
Luis Ramos
56c29ab472 Make EnterprisesController inherit from Api::BaseController to fix authentication and fix problem with saving params[:user_ids] 2020-03-07 18:14:36 +00:00
Luis Ramos
ffe814ce6b Adapt specs to not use anonymous user
Api::BaseController#authenticate is already taking care of the unauthenticated use case when spree_current_user is nil
2020-03-07 18:14:07 +00:00
Luis Ramos
e4d307fe5e Remove dead code related to user management 2020-03-07 18:14:07 +00:00
Luis Ramos
2184c7c06b Merge pull request #4856 from Matt-Yorkley/dead-code
Delete some dead code in Product Import (fixes 1 broken spec)
2020-03-07 15:26:39 +00:00
Transifex-Openfoodnetwork
928bf0d9c7 Updating translations for config/locales/fr.yml 2020-03-08 01:24:08 +11:00
Transifex-Openfoodnetwork
0d02b2afcf Updating translations for config/locales/en_FR.yml 2020-03-08 01:21:12 +11:00
Transifex-Openfoodnetwork
1e76f3f744 Updating translations for config/locales/fr.yml 2020-03-08 01:20:57 +11:00
dependabot-preview[bot]
7c3a0a292f Bump ddtrace from 0.32.0 to 0.33.0
Bumps [ddtrace](https://github.com/DataDog/dd-trace-rb) from 0.32.0 to 0.33.0.
- [Release notes](https://github.com/DataDog/dd-trace-rb/releases)
- [Changelog](https://github.com/DataDog/dd-trace-rb/blob/master/CHANGELOG.md)
- [Commits](https://github.com/DataDog/dd-trace-rb/compare/v0.32.0...v0.33.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-03-06 19:31:47 +00:00
Luis Ramos
c5ca0976a5 Merge pull request #4873 from jeduardo824/ampersand-not-showing-correctly
fix ampersand problem using ng-bind-html
2020-03-06 17:40:54 +00:00
Pau Pérez Fabregat
be7b3d5a12 Merge pull request #4809 from jeduardo824/redirect-to-shops-when-shop-does-not-exist
redirect to shops list when an enterprise is not found
2020-03-06 18:39:00 +01:00
Luis Ramos
d3f498f5b1 The shipping rates refresh process changed a little in spree 2.1 and the selection is and was random, it picks the first acceptable
In this case we need to specifically select one shipping method so that the test is valid
2020-03-06 16:39:20 +00:00
Luis Ramos
855d08957c Adjust completed_order_with_totals to have a distributor so that logic around refreshing shipping rates doesnt fail badly 2020-03-06 16:01:29 +00:00
Luis Ramos
063f733dda Use latest version of spree which includes PR openfoodfoundation/spree#39 2020-03-06 15:05:29 +00:00
Luis Ramos
4b21aaafc4 Convert ActiveRecord_Associations_CollectionProxy to array so that the modifications the tagRuleApplicator does on it will remain
Reject on ActiveRecord_Associations_CollectionProxy wont work
2020-03-06 13:51:53 +00:00
Luis Ramos
55941a1206 Round time values to make spec green as in rails 4, for unknown reason, the timestamps are differing in some miliseconds 2020-03-06 10:16:58 +00:00
Luis Ramos
0815068050 Merge branch 'master' into 3-0-stable-mar6 2020-03-06 09:20:03 +00:00
Luis Ramos
6304a085c0 Update all locales with the latest Transifex translations 2020-03-06 08:30:04 +00:00
Luis Ramos
7c708de937 Merge pull request #4928 from openfoodfoundation/transifex
Transifex
2020-03-06 08:28:09 +00:00
Transifex-Openfoodnetwork
5d51e5d393 Updating translations for config/locales/pt_BR.yml 2020-03-06 07:41:46 +11:00
Transifex-Openfoodnetwork
464717dec5 Updating translations for config/locales/pt_BR.yml 2020-03-06 07:38:36 +11:00
Pau Pérez Fabregat
4ea891ee2f Merge pull request #4834 from Matt-Yorkley/3-0-bind-message
[Spree 2.1] PG::ProtocolViolation: ERROR: bind message supplies 0 parameters...
2020-03-05 19:31:06 +01:00
Pau Pérez Fabregat
7a06018c3e Merge pull request #4874 from openfoodfoundation/transifex
Transifex
2020-03-05 19:29:21 +01:00
Pau Pérez Fabregat
b8c76ff633 Merge pull request #4906 from luisramos0/ent_caching
Fix enterprise_caching_spec in rails 4
2020-03-05 19:28:54 +01:00
Pau Pérez Fabregat
1ecc0bfe07 Merge pull request #4927 from luisramos0/variants_delete
Fix spree/admin/variants_controller_spec.rb in rails 4
2020-03-05 19:24:35 +01:00
Pau Pérez Fabregat
600d2d23c8 Merge pull request #4912 from luisramos0/cart_serv_fix
Make cart_service spec green in rails 4 branch
2020-03-05 19:11:58 +01:00
Pau Pérez Fabregat
bf3211fd01 Merge pull request #4918 from luisramos0/bulk_lis
Fix spec/controllers/admin/bulk_line_items_controller_spec in rails 4
2020-03-05 19:07:37 +01:00
Pau Pérez Fabregat
2a010a3233 Merge pull request #4919 from luisramos0/ship_ctrl
[Spree 2.1] Fix shipments admin/enterprises and api/enterprises controller specs
2020-03-05 19:07:10 +01:00
Pau Pérez Fabregat
5fd0d9406d Merge pull request #4923 from openfoodfoundation/dependabot/bundler/oj-3.10.5
Bump oj from 3.10.3 to 3.10.5
2020-03-05 19:06:20 +01:00
Pau Pérez Fabregat
c78a6bea91 Merge pull request #4921 from luisramos0/li_ctrl
Fix line_items_controller_spec in the rails 4 branch
2020-03-05 19:05:46 +01:00
Pau Pérez Fabregat
be9f33312b Merge pull request #4904 from luisramos0/tax_rates_match
Move TaxRate#match to OFN to avoid having to adapt to the spree 2.1 version
2020-03-05 18:55:55 +01:00
Luis Ramos
f23575302b In rails 4 variant.destroy is removing the variants from the exchanges as needed and variant.exchange_variants becomes immediatly empty but variant.exchanges is not automatically updated anymore and needs a refresh to become empty 2020-03-05 17:07:08 +00:00
Pau Perez
0042ab2f28 Rewrite INNER JOIN in ActiveRecord's DSL 2020-03-05 17:45:06 +01:00
Pau Perez
53a63775fe Replace LEFT JOIN with INNER JOIN
I see no reason why a LEFT might be needed and its the root cause of the
awful performance.
2020-03-05 17:45:06 +01:00
Pau Perez
461b1b26f3 Add controller tests to cover totals by supplier 2020-03-05 17:45:06 +01:00
Luis Ramos
f13d7d6845 Fix products api spec in rails 4 2020-03-05 15:20:45 +00:00
Luis Ramos
cfbec2accc Fix controller specs after PR #4675 adapted code to rails 4 finders 2020-03-05 11:55:13 +00:00
dependabot-preview[bot]
e4d09b5404 Bump oj from 3.10.3 to 3.10.5
Bumps [oj](https://github.com/ohler55/oj) from 3.10.3 to 3.10.5.
- [Release notes](https://github.com/ohler55/oj/releases)
- [Changelog](https://github.com/ohler55/oj/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/ohler55/oj/compare/v3.10.3...v3.10.5)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-03-04 19:16:40 +00:00
Luis Ramos
415415273c In rails 4 we need to update the stub after we update the order.user otherwise the stub will return the previous value 2020-03-04 15:50:52 +00:00
Luis Ramos
0f726c207f Fix shipments controller after PR #4675 adapted code to rails 4 finders 2020-03-04 14:47:32 +00:00
Luis Ramos
d969190ca5 Bypass problem with quick_login_as_admin in rails 4 and just user simple factory 2020-03-04 14:29:11 +00:00
Luis Ramos
a180576c0a Make cart_service spec green in rails 4 branch 2020-03-03 17:29:38 +00:00
Luis Ramos
3b37fa8872 Move variant scoping from alias method into manifest method 2020-03-03 16:40:31 +00:00
Luis Ramos
5688de4936 Make Shipment#manifest work with deleted variants again
This makes the default variant scope in inventory_unit being used which includes deleted variants
2020-03-03 16:38:03 +00:00
Luis Ramos
d8a92eec4b Bring Shipment#manifest from spree as is 2020-03-03 16:37:00 +00:00
Luis Ramos
1382bb3c6b For some reason in rails 4/spree 2.1 setting the line item as adjustable on the adjustment is not enough to populate line_item.adjustments. Here we make this assignment explicit fixing the spec in rails 4 2020-03-03 15:04:51 +00:00
Luis Ramos
7fdaa0f0c7 Make package spec work in rails 4 by persisting the test enterprises so that the copnnection between shipping methods and enterprises works 2020-03-03 14:46:12 +00:00
Luis Ramos
e584233c9e Uncomment code that was commented earlier on in the upgrade, we are now ready to handle this 2020-03-03 14:25:17 +00:00
Luis Ramos
ba750547a2 The touch process in 'belongs_to :supplier, class_name: 'Enterprise', touch: true' must have changed in rails 4 and now we need to reload the enterprise to get the new updated_at value 2020-03-03 12:26:18 +00:00
Luis Ramos
af8369ae1b Remove 5 years old debug code
This reverts ab9bc7b1dc, it can be added if the issue happens again
2020-03-03 10:56:57 +00:00
Luis Ramos
cf777b3fa2 Merge pull request #4882 from Matt-Yorkley/3-0-api-with-nil-id
[Spree 2.1] Fix spec setup in api/orders_controller_spec
2020-03-03 10:00:32 +00:00
Luis Ramos
829a73c58d Merge pull request #4886 from openfoodfoundation/dependabot/bundler/oj-3.10.3
Bump oj from 3.10.2 to 3.10.3
2020-03-03 09:57:46 +00:00
Luis Ramos
a2691df64e Merge pull request #4887 from openfoodfoundation/dependabot/bundler/rubocop-0.80.1
Bump rubocop from 0.80.0 to 0.80.1
2020-03-03 09:56:37 +00:00
Pau Pérez Fabregat
9980723060 Merge pull request #4880 from Matt-Yorkley/3-0-duplicate-validations
[Spree 2.1] Fix duplicate validations in payment methods and shipping methods
2020-03-03 10:44:40 +01:00
Pau Pérez Fabregat
f5ec11047a Merge pull request #4896 from Matt-Yorkley/3-0-cc_type
[Spree 2.1] Add missing :cc_type attribute to default :credit_card factory
2020-03-03 10:43:18 +01:00
Pau Pérez Fabregat
f50593ced8 Merge pull request #4883 from Matt-Yorkley/3-0-helper
[Spree 2.1] Fix expectation in helper spec
2020-03-03 10:42:28 +01:00
Pau Pérez Fabregat
b0962f65da Merge pull request #4872 from Matt-Yorkley/3-0-touch
[Spree 2.1] Touch on new records
2020-03-03 10:39:58 +01:00
Pau Pérez Fabregat
a47745c1cc Merge pull request #4866 from Matt-Yorkley/3-0-ofn-qz
[Spree 2.1] ofn-qz
2020-03-03 10:37:10 +01:00
Pau Pérez Fabregat
a60974c760 Merge pull request #4864 from luisramos0/oc_times
[Spree 2.1] Fix OrderCycle.earliest_closing_times spec
2020-03-03 10:36:35 +01:00
Pau Pérez Fabregat
e733761e8a Merge pull request #4847 from Matt-Yorkley/3-0-enterprise-user
[Spree 2.1] Fix #create_enterprise_user
2020-03-03 10:30:25 +01:00
Luis Ramos
6c8b175344 Merge match and its alias method 2020-03-03 09:29:02 +00:00
Pau Pérez Fabregat
390cc61273 Merge pull request #4867 from Matt-Yorkley/3-0-gmappable
[Spree 2.1] acts_as_gmappable
2020-03-03 10:28:12 +01:00
Pau Pérez Fabregat
ad10053271 Merge pull request #4903 from luisramos0/address_finder
[Spree 2.1] Adapt address finder spec to work with spree 2.1 code
2020-03-03 10:27:13 +01:00
Luis Ramos
a508c55700 Bring TaxRate.match to OFN
The version of this method in spree 2.1 will break our build

This way we simply bypass this fix in spree: https://github.com/spree/spree/pull/3669

We can get back to this in the future if we ever experience the mentioned bug
2020-03-03 09:27:04 +00:00
Pau Pérez Fabregat
1e2e50ce54 Merge pull request #4888 from Matt-Yorkley/3-0-shipping-method-id
[Spree 2.1] Remove assignment of invalid attribute in test setup
2020-03-03 10:26:15 +01:00
Pau Pérez Fabregat
c48bd12440 Merge pull request #4843 from Matt-Yorkley/3-0-product-import
[Spree 2.1] Product import specs
2020-03-03 10:21:48 +01:00
Transifex-Openfoodnetwork
2712be3fa4 Updating translations for config/locales/fr.yml 2020-03-03 14:14:38 +11:00
Transifex-Openfoodnetwork
484326561f Updating translations for config/locales/en_GB.yml 2020-03-03 14:11:28 +11:00
Transifex-Openfoodnetwork
7ea96f88e8 Updating translations for config/locales/en_CA.yml 2020-03-03 14:08:26 +11:00
Transifex-Openfoodnetwork
de752b05a7 Updating translations for config/locales/fr_CA.yml 2020-03-03 14:08:17 +11:00
Maikel
0b18344572 Merge pull request #4790 from mkllnk/4779-payment-method-display
4779 payment method display
2020-03-03 10:10:51 +11:00
Luis Ramos
690474c01a Adapt address finder spec to work with spree 2.1 code
Order ship address is required to get have an order with shipping rates
2020-03-02 21:55:21 +00:00
Matt-Yorkley
6cb8bb2fc3 Add missing :cc_type attribute to default :credit_card factory
Fixes 5 specs, including:

  11) Spree::CreditCardsController#update when the specified credit card is found and the card is owned by the user when the update completes successfully renders a serialized copy of the updated card
      Failure/Error: object.cc_type.capitalize

      NoMethodError:
        undefined method `capitalize' for nil:NilClass
      # ./app/serializers/api/credit_card_serializer.rb:6:in `brand'
      # (eval):4:in `_fast_attributes'
      # ./app/controllers/spree/credit_cards_controller.rb:26:in `update'
      # ./spec/controllers/spree/credit_cards_controller_spec.rb:100:in `block (7 levels) in <top (required)>'
      # ./spec/controllers/spree/credit_cards_controller_spec.rb:100:in `block (6 levels) in <top (required)>'
      # ------------------
      # --- Caused by: ---
      # NoMethodError:
      #   undefined method `capitalize' for nil:NilClass
      #   ./app/serializers/api/credit_card_serializer.rb:6:in `brand'
2020-03-02 22:07:20 +01:00
Luis Ramos
777754f8a9 Remove dead code that creates products in product_set 2020-03-02 19:41:51 +00:00
Matt-Yorkley
13b8cfcd9c Remove assignment of invalid attribute in test setup
Fixes:

  11) Order Management viewing a completed order when checking out as an anonymous guest allows the user to see the details
      Failure/Error:
        order.update_attributes!(
          bill_address: bill_address,
          ship_address: ship_address,
          shipping_method_id: shipping_method.id
        )

      ActiveRecord::UnknownAttributeError:
        unknown attribute: shipping_method_id
      # ./spec/features/consumer/shopping/orders_spec.rb:30:in `block (3 levels) in <top (required)>'
      # ------------------
      # --- Caused by: ---
      # NoMethodError:
      #   undefined method `shipping_method_id=' for #<Spree::Order:0x00007f5e82a94d80>
      #   ./spec/features/consumer/shopping/orders_spec.rb:30:in `block (3 levels) in <top (required)>'

  12) Order Management viewing a completed order when logged in as the customer allows the user to see order details
      Failure/Error:
        order.update_attributes!(
          bill_address: bill_address,
          ship_address: ship_address,
          shipping_method_id: shipping_method.id
        )

      ActiveRecord::UnknownAttributeError:
        unknown attribute: shipping_method_id
      # ./spec/features/consumer/shopping/orders_spec.rb:30:in `block (3 levels) in <top (required)>'
      # ------------------
      # --- Caused by: ---
      # NoMethodError:
      #   undefined method `shipping_method_id=' for #<Spree::Order:0x00007f5e83382708>
      #   ./spec/features/consumer/shopping/orders_spec.rb:30:in `block (3 levels) in <top (required)>'

  13) Order Management viewing a completed order when not logged in allows the user to see order details after login
      Failure/Error:
        order.update_attributes!(
          bill_address: bill_address,
          ship_address: ship_address,
          shipping_method_id: shipping_method.id
        )

      ActiveRecord::UnknownAttributeError:
        unknown attribute: shipping_method_id
      # ./spec/features/consumer/shopping/orders_spec.rb:30:in `block (3 levels) in <top (required)>'
      # ------------------
      # --- Caused by: ---
      # NoMethodError:
      #   undefined method `shipping_method_id=' for #<Spree::Order:0x00007f5e8bafe6f0>
      #   ./spec/features/consumer/shopping/orders_spec.rb:30:in `block (3 levels) in <top (required)>'
2020-03-02 20:37:58 +01:00
dependabot-preview[bot]
e4c5893c1e Bump rubocop from 0.80.0 to 0.80.1
Bumps [rubocop](https://github.com/rubocop-hq/rubocop) from 0.80.0 to 0.80.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/v0.80.0...v0.80.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-03-02 19:36:43 +00:00
dependabot-preview[bot]
67aeae4a6d Bump oj from 3.10.2 to 3.10.3
Bumps [oj](https://github.com/ohler55/oj) from 3.10.2 to 3.10.3.
- [Release notes](https://github.com/ohler55/oj/releases)
- [Changelog](https://github.com/ohler55/oj/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/ohler55/oj/compare/v3.10.2...v3.10.3)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-03-02 19:34:09 +00:00
Matt-Yorkley
0d08ad7d2e Fix expectation in helper spec
The output of this link helper has changed slightly. All the attributes are the same as before, but they seem to be in alphabetical order now.

Fixes:

  69) Spree::BaseHelper#link_to_remove_fields returns an `a` tag followed by a hidden `input` tag
      Failure/Error: expect(subject).to eq("<a href=\"#\" class=\"remove_fields  icon_link with-tip icon-trash\" data-action=\"remove\" title=\"Remove\"><span class='text'>Hola</span></a>&lt;input type=&quot;hidden&quot; name=&quot;_method&quot; value=&quot;destroy&quot;&gt;")

        expected: "<a href=\"#\" class=\"remove_fields  icon_link with-tip icon-trash\" data-action=\"remove\" title=\"...</span></a>&lt;input type=&quot;hidden&quot; name=&quot;_method&quot; value=&quot;destroy&quot;&gt;"
             got: "<a class=\"remove_fields  icon_link with-tip icon-trash\" data-action=\"remove\" href=\"#\" title=\"...</span></a>&lt;input type=&quot;hidden&quot; name=&quot;_method&quot; value=&quot;destroy&quot;&gt;"

        (compared using ==)
      # ./spec/helpers/spree/admin/base_helper_spec.rb:12:in `block (3 levels) in <top (required)>'
2020-03-02 19:41:47 +01:00
Matt-Yorkley
0784b8263a Fix spec setup in api/orders_controller_spec
ActionController doesn't accept nil values for :id as a valid route request in Rails 4.

Fixes:

  2) Api::OrdersController#show Resource not found when no order number is given
     Failure/Error: get :show, id: nil

     ActionController::UrlGenerationError:
       No route matches {:action=>"show", :controller=>"api/orders", :id=>nil}
     # ./spec/controllers/api/orders_controller_spec.rb:168:in `block (4 levels) in <module:Api>'
2020-03-02 19:22:43 +01:00
Matt-Yorkley
ed5351d23e Fix duplicate validations in payment methods and shipping methods
Updates the syntax to follow the recommended usage in the code comments of the ActiveModel #validates_with method.

Fixes:

  12) Spree::PaymentMethod raises errors when required fields are missing
      Failure/Error: expect(pm.errors.to_a).to eq(["Name can't be blank", "At least one hub must be selected"])

        expected: ["Name can't be blank", "At least one hub must be selected"]
             got: ["Name can't be blank", "At least one hub must be selected", "At least one hub must be selected"]

        (compared using ==)
      # ./spec/models/spree/payment_method_spec.rb:16:in `block (2 levels) in <module:Spree>'
2020-03-02 19:02:07 +01:00
Luis Ramos
02008769e9 Make spree_payment.cvv_response_message without size limit so that long stripe redirect URLs can be stored there 2020-03-02 17:31:01 +00:00
Luis Ramos
65dd9f51cf Add spec to cover update request where a stripe redirect must happen 2020-03-02 17:30:12 +00:00
Luis Ramos
a224c53200 Add spec to test receiving a redirect from stripe with a valid payment intent id 2020-03-02 17:30:12 +00:00
Luis Ramos
66f07c0d1c Make checkout controller spec test both extracted payment redirects 2020-03-02 17:30:12 +00:00
Luis Ramos
d5287026f8 Add spec for Checkout::PostCheckoutActions 2020-03-02 17:30:12 +00:00
Luis Ramos
6b80eb2c16 Add spec for AuthorizeResponsePatcher 2020-03-02 17:30:12 +00:00
Luis Ramos
b54b981740 Improve readability of PaymentIntentValidator and cover with specs 2020-03-02 17:30:12 +00:00
Luis Ramos
895032fe6a Move stubbed requests to the top as they are the same for every test 2020-03-02 17:30:12 +00:00
Luis Ramos
531c385aae Adapt stripe sca spec to new double step auth+capture payment process 2020-03-02 17:30:12 +00:00
Luis Ramos
d0a3ab68f3 Make processing payments also pending payments 2020-03-02 17:30:12 +00:00
luisramos0
b5038c5745 Adapt subscriptionPaymentUpdater to include pending payments as pending payments! Pending payments of credit cards are payments already authorized, ready to be captured
This is problably what will happen with subscriptions credit cards where payments will be authorized by the customer and the confirmation process on process_payments! will just capture the payment
2020-03-02 17:30:12 +00:00
luisramos0
6877485c90 Extract AuthorizeResponsePatcher from stripeSCA gateway 2020-03-02 17:30:12 +00:00
luisramos0
95c1b7f7a6 Extract PaymentIntentValidator from StripeSCA gateway 2020-03-02 17:30:12 +00:00
luisramos0
3fcf286516 Extract PostCheckoutActions from checkout controller 2020-03-02 17:30:12 +00:00
luisramos0
e2cdb01a28 Improve readability of stripe sca gateway code 2020-03-02 17:30:12 +00:00
luisramos0
08e729673f Move stripe sca gateway error messages to translatable keys 2020-03-02 17:30:12 +00:00
luisramos0
c0bf09131f Make order.pending_payments include payments in pending state so that these payments (pending is the state after authorization for credit cards) are also processed as part of the normal order workflow 2020-03-02 17:30:12 +00:00
luisramos0
19042e0d37 Make checkout controller able to receive a redirect from stripe with a payment_intent as parameter 2020-03-02 17:30:12 +00:00
luisramos0
4b3b4e00ff Add authorize action to the stripe_sca gateway and make it fetch the redirect url if provided
Change the purchase action to only capture the alrteady authorized payment intent
2020-03-02 17:30:12 +00:00
luisramos0
e3ffe8fe6b Add Checkout Stripe redirect logic to get users redirected to stripe authentication pages provided by the stripe API 2020-03-02 17:30:12 +00:00
luisramos0
d91578ab80 Rename checkout payment redirect to checkout paypal redirect 2020-03-02 17:30:12 +00:00
luisramos0
873dcc373f Small refactoring to make next commit easier 2020-03-02 17:30:12 +00:00
luisramos0
1289c3f1a2 Fix rubocop issues in credit_cards_controller 2020-03-02 17:29:30 +00:00
Luis Ramos
c37218fdc5 Merge pull request #4719 from luisramos0/stripe_card_to_pm
Make StripeSCA payment method work with existing credit cards (the ones saved through the Stripe Charges API)
2020-03-02 17:22:07 +00:00
Luis Ramos
dad21a52b2 Merge pull request #4672 from luisramos0/stripe_sca_method
Add new Stripe payment method compatible with the new Stripe Payment Intents API
2020-03-02 17:19:05 +00:00
Pau Pérez Fabregat
97a65d760f Merge pull request #4527 from luisramos0/subs_logs
Improve Subscriptions logging
2020-03-02 15:48:45 +01:00
Transifex-Openfoodnetwork
63e92197f5 Updating translations for config/locales/pt_BR.yml 2020-03-02 09:40:20 +11:00
Transifex-Openfoodnetwork
fd534bf629 Updating translations for config/locales/pt_BR.yml 2020-03-02 09:37:10 +11:00
Eduardo
64d83bfc4d fix ampersand problem using ng-bind-html 2020-03-01 17:54:36 -03:00
Matt-Yorkley
a0999f5d58 Check #persisted? before calling #touch
Rails 4 now throws a fatal error if calling #touch on an object that hasn't been saved yet: c63cfc8722/activerecord/lib/active_record/persistence.rb (L957)

Fixes:

  41) Stock::Package#shipping_methods does not return shipping methods not used by the package's order distributor
      Failure/Error: distributors.each(&:touch)

      ActiveRecord::ActiveRecordError:
        can not touch on a new record object
      # ./app/models/spree/shipping_method_decorator.rb:81:in `touch_distributors'
      # ./spec/models/stock/package_spec.rb:39:in `block (2 levels) in <module:Stock>'
      # ./spec/models/stock/package_spec.rb:17:in `block (2 levels) in <module:Stock>'
      # ./spec/models/stock/package_spec.rb:32:in `block (2 levels) in <module:Stock>'
      # ./spec/models/stock/package_spec.rb:7:in `block (2 levels) in <module:Stock>'
      # ./spec/models/stock/package_spec.rb:44:in `block (3 levels) in <module:Stock>'

  42) Stock::Package#shipping_categories returns shipping categories that are not shipping categories of the order's products
      Failure/Error: distributors.each(&:touch)

      ActiveRecord::ActiveRecordError:
        can not touch on a new record object
      # ./app/models/spree/shipping_method_decorator.rb:81:in `touch_distributors'
      # ./spec/models/stock/package_spec.rb:39:in `block (2 levels) in <module:Stock>'
      # ./spec/models/stock/package_spec.rb:17:in `block (2 levels) in <module:Stock>'
      # ./spec/models/stock/package_spec.rb:32:in `block (2 levels) in <module:Stock>'
      # ./spec/models/stock/package_spec.rb:7:in `block (2 levels) in <module:Stock>'
      # ./spec/models/stock/package_spec.rb:50:in `block (3 levels) in <module:Stock>'
2020-03-01 18:40:15 +01:00
Matt-Yorkley
847a349a6b Fix geocoding in Rails 4 🎉
Responsibility for geocoding has moved from the `gmaps4rails` gem using `acts_as_taggable`, to the `geocoding` gem using `geocoded_by`. We already use this in the Address model.
2020-02-29 13:08:06 +01:00
Matt-Yorkley
7dbe0bd6b9 Use new branch of ofn-qz gem 2020-02-28 15:27:11 +01:00
Matt-Yorkley
5c526bf5cc Move definitions into constants and use #freeze 2020-02-28 13:08:17 +01:00
Matt-Yorkley
a9e6622639 Update product import #assign_attributes calls
For some reason some of the superfluous attributes being assigned here have started throwing fatal errors in Rails 4 instead of being silently ignored...
2020-02-28 13:08:17 +01:00
Luis Ramos
ddebd47e32 Merge pull request #4862 from Matt-Yorkley/3-0-paypal
[Spree 2.1] Re-introduce Paypal gem
2020-02-28 11:25:16 +00:00
Luis Ramos
56c6ef5e79 Merge pull request #4853 from Matt-Yorkley/3-0-base-controller
[Spree 2.1] Fix headers in api/base_controller spec
2020-02-28 11:21:16 +00:00
Matt-Yorkley
eef1574ebe Call #permit on params object in before_filter 2020-02-28 12:18:53 +01:00
Matt-Yorkley
95996dc11e Un-comment :credit_cards in routes 2020-02-28 12:18:53 +01:00
Matt-Yorkley
78e430613f Fix spree routes helper in payment_redirect.rb 2020-02-28 12:18:53 +01:00
Luis Ramos
4f3247c196 Revert "Temporarily remove broken specs"
This reverts commit c0dc999e0d.
2020-02-28 12:18:53 +01:00
Luis Ramos
427d3b7641 Revert "Comment spree_paypal express in all.js temporarily"
This reverts commit 26ba37b117.
2020-02-28 12:18:53 +01:00
Luis Ramos
61439a3750 Re-add paypal controller code 2020-02-28 12:18:53 +01:00
Matt-Yorkley
1f59bc8bef Use new branch of the paypal gem
This uses the `2-1-0-stable` branch of the paypal gem. It's the 2-1-stable branch plus a couple of old OFN modifications (from 2-0-stable), plus a minor modification to the gemspec to allow it to be used with spree_core `2.1.0`
2020-02-28 12:18:53 +01:00
Matt-Yorkley
cc1ab1bdb9 Fix issue with broken SQL fragments in scopes and nested subqueries
It looks like there are some issues with prepared statements here, where the resulting SQL contains something like: `WHERE "enterprise_roles"."user_id" = $1` in a subquery. The "$1" part is being lost somehow and isn't present if it's used in nested subqueries.

Example fixed spec (there are lots like this one):

  59) Spree::Admin::ReportsController Supplier Bulk Coop where I have granted P-OC to the distributor only shows product line items that I am supplying
      Failure/Error: produced_line_items.select("spree_line_items.id"))

      ActiveRecord::StatementInvalid:
        PG::ProtocolViolation: ERROR:  bind message supplies 0 parameters, but prepared statement "" requires 1
        : SELECT id FROM "spree_line_items"  WHERE "spree_line_items"."order_id" IN (SELECT id FROM "spree_orders"  WHERE (("spree_orders"."distributor_id" IN (SELECT enterprises.id FROM "enterprises" INNER JOIN "enterprise_roles" ON "enterprise_roles"."enterprise_id" = "enterprises"."id" WHERE (enterprise_roles.user_id = 947)) OR "spree_orders"."order_cycle_id" IN (SELECT id FROM "order_cycles"  WHERE "order_cycles"."coordinator_id" IN (SELECT "enterprises"."id" FROM "enterprises" INNER JOIN "enterprise_roles" ON "enterprises"."id" = "enterprise_roles"."enterprise_id" WHERE "enterprise_roles"."user_id" = $1)))))
      # ./app/services/permissions/order.rb:28:in `visible_line_items'
      # ./lib/open_food_network/reports/line_items.rb:16:in `list'
      # ./lib/open_food_network/bulk_coop_report.rb:54:in `table_items'
      # ./app/controllers/spree/admin/reports_controller.rb:264:in `order_grouper_table'
      # ./app/controllers/spree/admin/reports_controller.rb:101:in `bulk_coop'
      # ./spec/controllers/spree/admin/reports_controller_spec.rb:168:in `block (5 levels) in <top (required)>'
      # ------------------
      # --- Caused by: ---
      # PG::ProtocolViolation:
      #   ERROR:  bind message supplies 0 parameters, but prepared statement "" requires 1
      #   ./app/services/permissions/order.rb:28:in `visible_line_items'
2020-02-28 12:16:55 +01:00
Luis Ramos
e5232c6b79 Merge pull request #4863 from Matt-Yorkley/3-0-gemfile-lock-fixed
[Spree 2.1] Fix Gemfile.lock
2020-02-28 11:15:24 +00:00
Luis Ramos
95415cddbd Merge pull request #4858 from Matt-Yorkley/3-0-embedded
[Spree 2.1] Fix embedded response headers
2020-02-28 11:12:16 +00:00
Matt-Yorkley
789ecbb8f2 Fix Gemfile.lock 2020-02-28 12:06:44 +01:00
Luis Ramos
0e607003c1 Fix problem in order cycles spec where miliseconds were not matching 2020-02-28 11:06:16 +00:00
Luis Ramos
1d0392e644 Merge pull request #4848 from Matt-Yorkley/3-0-test-locales
[Spree 2.1] Add 'pt' to list of available locales in test suite
2020-02-28 11:04:23 +00:00
Matt-Yorkley
02d46b7c51 Fix test in order_cycles_spec.rb 2020-02-28 11:51:09 +01:00
Matt-Yorkley
8672124f31 Add 'pt' to list of available locales in test suite
Fixes several errors such as:

104) UserRegistrationsController via ajax sets user.locale from cookie on create
       Failure/Error: I18n.locale = spree_current_user.andand.locale || cookies[:locale] || I18n.default_locale

       I18n::InvalidLocale:
         "pt" is not a valid locale
       # ./app/helpers/i18n_helper.rb:14:in `set_locale'
       # ./spec/controllers/user_registrations_controller_spec.rb:56:in `block (3 levels) in <top (required)>'
2020-02-28 11:44:33 +01:00
Pau Pérez Fabregat
9440363a22 Merge pull request #4821 from luisramos0/3_val_issues
[Spree 2.1] Fix creation of enterprises/users in specs
2020-02-28 11:34:27 +01:00
Pau Pérez Fabregat
19dd5d0af3 Merge pull request #4855 from luisramos0/3-0-ship-method-services
[Spree 2.1] Fix ShippingMethod.services query
2020-02-28 11:31:53 +01:00
Pau Pérez Fabregat
3d453eb5ee Merge pull request #4861 from luisramos0/3-0-merge-master
[Spree 2.1] Merge master into 3-0-stable
2020-02-28 11:28:56 +01:00
Pau Pérez Fabregat
83065a798e Merge pull request #4814 from luisramos0/rubop_rules
Add new cops (disabled) to rubocop config
2020-02-28 11:15:34 +01:00
Pau Pérez Fabregat
de9f14c305 Merge pull request #4849 from Matt-Yorkley/3-0-private-method
[Spree 2.1] Make private method #total_units public
2020-02-28 11:00:12 +01:00
Pau Pérez Fabregat
455241859e Merge pull request #4850 from Matt-Yorkley/3-0-shipments
[Spree 2.1] Fix expectations in order_shipment_spec
2020-02-28 10:58:58 +01:00
Luis Ramos
bf47d34434 Merge branch 'master' into 3-0-merge-master 2020-02-28 09:52:01 +00:00
Matt-Yorkley
b661b3ee40 Merge pull request #4823 from luisramos0/require_specs
Add some require statements to specs
2020-02-28 10:46:29 +01:00
Pau Pérez Fabregat
d03d1c0cc2 Merge pull request #4832 from Matt-Yorkley/3-0-more_strong_params
[Spree 2.1] Add strong_params to admin/enterprise_relationships_controller.rb
2020-02-28 10:41:05 +01:00
Pau Pérez Fabregat
6854301025 Merge pull request #4828 from Matt-Yorkley/3-0-strong_params
[Spree 2.1] Strong params
2020-02-28 10:40:52 +01:00
Pau Pérez Fabregat
dc9ebd620a Merge pull request #4833 from Matt-Yorkley/3-0-moar_params
[Spree 2.1] Add strong params to admin/column_preferences_controller.rb
2020-02-28 10:30:54 +01:00
Matt-Yorkley
7124c6bb73 Fix embedded response headers
Rails 4 adds an extra layer of "default" headers that override any that are missing (or deleted). This was breaking embedded shopfront responses.

Fixes:

  74) setting response headers for embedded shopfronts with embedded shopfronts enabled with a valid whitelist allows iframes on certain pages when enabled in configuration
      Failure/Error: expect(response.headers['X-Frame-Options']).to be_nil

        expected: nil
             got: "SAMEORIGIN"
      # ./spec/requests/embedded_shopfronts_headers_spec.rb:54:in `block (4 levels) in <top (required)>'

  75) setting response headers for embedded shopfronts with embedded shopfronts enabled with www prefix matches the URL structure in the header
      Failure/Error: expect(response.headers['X-Frame-Options']).to be_nil

        expected: nil
             got: "SAMEORIGIN"
      # ./spec/requests/embedded_shopfronts_headers_spec.rb:75:in `block (4 levels) in <top (required)>'
2020-02-27 20:53:09 +01:00
Luis Ramos
b528903aa8 Remove spec covering html format in SchedulesController#index, this is not used anywhere 2020-02-27 19:05:36 +00:00
Luis Ramos
bd0245229b Move enterprise logo and promo_image setting in factories to after creation fixes a problem with enterprise_roles in the enterprise validation 2020-02-27 18:32:56 +00:00
Matt-Yorkley
38215c2a88 Delete some dead code
This feature for assigning defaults via the UI was previously removed
2020-02-27 19:28:25 +01:00
Luis Ramos
b1714d73ef Capitalize 'Method' in the flash message to make specs pass 2020-02-27 18:01:24 +00:00
Luis Ramos
ade52dd07d Make ship methods services query work with rails 4, bool_or now results in a boolean and not in t or f as before 2020-02-27 17:40:32 +00:00
Matt-Yorkley
d280bf0d4d Update all locales with the latest Transifex translations 2020-02-27 11:42:02 +01:00
Matt-Yorkley
0fa73e3b02 Fix headers in api/base_controller spec
The headers in the request were not being populated correctly in the test, so the #api_key method was not functioning as intended.

Fixes:

  48) Api::BaseController cannot make a request to the API with an invalid API key
      Failure/Error: expect(json_response).to eq( "error" => "Invalid API key (fake_key) specified." )

        expected: {"error"=>"Invalid API key (fake_key) specified."}
             got: {"products"=>[]}

        (compared using ==)

        Diff:
        @@ -1,2 +1,2 @@
        -"error" => "Invalid API key (fake_key) specified.",
        +"products" => [],

      # ./spec/controllers/api/base_controller_spec.rb:40:in `block (3 levels) in <top (required)>'
2020-02-27 11:23:48 +01:00
Eduardo
4c3916a93d redirect to shops list when an enterprise is not found 2020-02-26 19:25:38 -03:00
Luis Ramos
677f31ffa8 Make payment source_views/gateway work with nil credit card
This will happen if user deletes a saved credit card used previously. In this case, the admin payment details page will render empty details and the payment amount
2020-02-26 11:55:17 +00:00
Luis Ramos
5848a46149 Add missing template to render stripeSCA payment and add spec to verify it's presence 2020-02-26 11:38:42 +00:00
Matt-Yorkley
c758cb5508 Fix expectations in order_shipment_spec
Some depreacted calls to #find_by_* had previously been updated elsewhere, but the spec was still checking if the object received the #find_by_shipping_method_id message.

Fixes:

  85) OrderShipment#select_shipping_method when order has a shipment when shipping_method_id is not valid for the order returns nil
      Failure/Error: expect(shipment.shipping_rates).to receive(:find_by_shipping_method_id).with(invalid_shipping_method_id) { nil }

        (#<ActiveRecord::Associations::CollectionProxy []>).find_by_shipping_method_id(1312)
            expected: 1 time with arguments: (1312)
            received: 0 times
      # ./spec/models/concerns/order_shipment_spec.rb:53:in `block (5 levels) in <top (required)>'
2020-02-26 11:50:51 +01:00
Matt-Yorkley
82052e459d Make private method #total_units public
This method is being called by another class as if it were public.

Fixes 2 instances of this error:

  90) OpenFoodNetwork::OrdersAndFulfillmentsReport::SupplierTotalsReport generates the report
      Failure/Error: delegate :supplier_name, :product_name, :line_items_name, :total_units, to: :context

      NoMethodError:
        private method `total_units' called for #<OpenFoodNetwork::OrdersAndFulfillmentsReport:0x00007f8db5d67168>
      # ./lib/open_food_network/orders_and_fulfillments_report/supplier_totals_report.rb:8:in `total_units'
      # ./lib/open_food_network/orders_and_fulfillments_report/supplier_totals_report.rb:48:in `block in columns'
      # ./lib/open_food_network/order_grouper.rb:41:in `block in build_table'
      # ./lib/open_food_network/order_grouper.rb:41:in `map'
      # ./lib/open_food_network/order_grouper.rb:41:in `build_table'
      # ./lib/open_food_network/order_grouper.rb:47:in `block in build_table'
      # ./lib/open_food_network/order_grouper.rb:43:in `each'
      # ./lib/open_food_network/order_grouper.rb:43:in `build_table'
      # ./lib/open_food_network/order_grouper.rb:47:in `block in build_table'
      # ./lib/open_food_network/order_grouper.rb:43:in `each'
      # ./lib/open_food_network/order_grouper.rb:43:in `build_table'
      # ./lib/open_food_network/order_grouper.rb:47:in `block in build_table'
      # ./lib/open_food_network/order_grouper.rb:43:in `each'
      # ./lib/open_food_network/order_grouper.rb:43:in `build_table'
      # ./lib/open_food_network/order_grouper.rb:56:in `table'
      # ./spec/lib/open_food_network/orders_and_fulfillments_report/supplier_totals_report_spec.rb:19:in `block (2 levels) in <top (required)>'
      # ./spec/lib/open_food_network/orders_and_fulfillments_report/supplier_totals_report_spec.rb:23:in `block (2 levels) in <top (required)>'
2020-02-26 11:35:00 +01:00
Matt-Yorkley
167c8543aa Fix #create_enterprise_user
User was not being associated to enterprises passed in attributes
2020-02-26 10:46:41 +01:00
Luis Ramos
03c91dfac1 Merge pull request #4780 from luisramos0/bulk_prod_errors
Fix javascript logic that parses server errors in the bulk product edit page
2020-02-25 18:49:54 +00:00
Luis Ramos
60e12063cd Merge pull request #4758 from luisramos0/fix_incomplete_stripe
Make the payment methods filter handle misconfigured stripe payment methods
2020-02-25 18:47:09 +00:00
Pau Pérez Fabregat
e5b57af315 Merge pull request #4815 from openfoodfoundation/transifex
Transifex
2020-02-25 13:37:30 +01:00
Pau Pérez Fabregat
a396a7f0af Merge pull request #4818 from luisramos0/delete_dead_code
Delete dead code after PRs 4512 and 4508
2020-02-25 13:32:23 +01:00
Luis Ramos
6b6cdf07fb Remove inactive confirm
The new version of jquery is picking up a confirm in the ship action that was not being triggered in the previous version

The orders_spec was not expecting this confirm to appear so we are removing here to keep the behaviour and the spec green
2020-02-25 11:56:23 +00:00
Transifex-Openfoodnetwork
d084789c56 Updating translations for config/locales/nb.yml 2020-02-25 19:57:08 +11:00
Transifex-Openfoodnetwork
dafac32e70 Updating translations for config/locales/nb.yml 2020-02-25 19:53:59 +11:00
Maikel Linke
8432dab142 Remove unused Javascript manifest
It reduces compilation from 25s to 24s.
2020-02-25 11:43:53 +11:00
Maikel Linke
0b0263a605 Remove unused stylesheet manifest
Compiling assets with application.css: 40s
Compiling assets without application.css: 25s
2020-02-25 11:43:39 +11:00
Transifex-Openfoodnetwork
6ca39f3aa5 Updating translations for config/locales/fr_CA.yml 2020-02-25 09:10:13 +11:00
Transifex-Openfoodnetwork
234a9ef1b4 Updating translations for config/locales/en_CA.yml 2020-02-25 08:41:07 +11:00
Luis Ramos
24a1327805 Merge pull request #4785 from openfoodfoundation/dependabot/bundler/stripe-5.15.0
Bump stripe from 5.11.0 to 5.15.0
2020-02-24 20:12:39 +00:00
Luis Ramos
33d77d57f4 Merge pull request #4776 from luisramos0/remove_assets_group
Remove the assets group from the gemfile (taken from spree upgrade branch)
2020-02-24 20:12:01 +00:00
dependabot-preview[bot]
51dd55c5b9 [Security] Bump jquery-rails from 3.0.4 to 3.1.5
Bumps [jquery-rails](https://github.com/rails/jquery-rails) from 3.0.4 to 3.1.5. **This update includes a security fix.**
- [Release notes](https://github.com/rails/jquery-rails/releases)
- [Changelog](https://github.com/rails/jquery-rails/blob/v3.1.5/CHANGELOG.md)
- [Commits](https://github.com/rails/jquery-rails/compare/v3.0.4...v3.1.5)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-02-24 19:14:38 +00:00
Transifex-Openfoodnetwork
0571b657aa Updating translations for config/locales/en_FR.yml 2020-02-25 04:39:02 +11:00
Transifex-Openfoodnetwork
e4958baddc Updating translations for config/locales/en_FR.yml 2020-02-25 04:35:52 +11:00
Transifex-Openfoodnetwork
c985747297 Updating translations for config/locales/fr.yml 2020-02-25 04:31:33 +11:00
Maikel Linke
17ea2cd510 Clean up JS assets comments 2020-02-24 11:22:47 +11:00
Maikel Linke
325c427219 Remove style from pasted HTML in editor 2020-02-24 11:22:47 +11:00
Maikel Linke
a3e87d893a Remove obsolete angular-sanitize
Our TextAngular module supplies that code.
2020-02-24 11:22:47 +11:00
Maikel Linke
480a629349 Bump textAngular to latest v1.5.16
I'm not sure which version we had previously. This update should come
with lots of minor improvements even though we didn't have anyone
complain.
2020-02-24 11:22:47 +11:00
Luis Ramos
03fac6f285 Avoid subquery with too many columns error by specifying the selected column 2020-02-23 20:05:13 +00:00
Matt-Yorkley
90d1a5e605 Add strong params to admin/column_preferences_controller.rb
Fixes failures such as:

  119) Admin::ColumnPreferencesController bulk_update json where I don't own the preferences submitted prevents me from updating the column preferences
       Failure/Error: raise ActiveModel::ForbiddenAttributesError, params.to_s

       ActiveModel::ForbiddenAttributesError:
         {"action_name"=>"enterprises_index", "column_preferences"=>[{"id"=>1, "user_id"=>2716, "action_name"=>"enterprises_index", "column_name"=>"name", "visible"=>false}, {"id"=>nil, "user_id"=>2716, "action_name"=>"enterprises_index", "column_name"=>"producer", "visible"=>true}, {"id"=>nil, "user_id"=>2716, "action_name"=>"enterprises_index", "column_name"=>"status", "visible"=>true}], "format"=>"json", "controller"=>"admin/column_preferences", "action"=>"bulk_update"}
       # ./app/controllers/application_controller.rb:16:in `print_params'
       # ./spec/controllers/admin/column_preferences_controller_spec.rb:28:in `block (5 levels) in <top (required)>'
       # ------------------
       # --- Caused by: ---
       # ActiveModel::ForbiddenAttributesError:
       #   ActiveModel::ForbiddenAttributesError
       #   ./app/models/model_set.rb:24:in `block in collection_attributes='
2020-02-23 14:52:06 +01:00
Matt-Yorkley
fccc8037f0 Add strong_params to enterprise_relationships_controller.rb
Fixes specs such as:

  31)
  As an Administrator
  I want to manage relationships between enterprises
 as a site administrator creating a relationship
      Failure/Error: raise ActiveModel::ForbiddenAttributesError, params.to_s

      ActiveModel::ForbiddenAttributesError:
        {"enterprise_relationship"=>{"parent_id"=>284, "child_id"=>285, "permissions_list"=>["add_to_order_cycle", "edit_profile", "create_variant_overrides"]}, "action"=>"create", "controller"=>"admin/enterprise_relationships"}
      # ./app/controllers/application_controller.rb:16:in `print_params'
      # ./lib/open_food_network/rack_request_blocker.rb:36:in `call'
      # ------------------
      # --- Caused by: ---
      # ActiveModel::ForbiddenAttributesError:
      #   ActiveModel::ForbiddenAttributesError
      #   ./app/controllers/admin/enterprise_relationships_controller.rb:10:in `create'
2020-02-23 14:26:14 +01:00
Transifex-Openfoodnetwork
f5ffdfc258 Updating translations for config/locales/en_NZ.yml 2020-02-23 22:32:56 +11:00
Matt-Yorkley
f77194875c Add strong parameters to orders_controller.rb 2020-02-22 16:24:30 +01:00
Matt-Yorkley
bd6b409708 Add strong parameters to user_registrations_controller.rb 2020-02-22 16:24:30 +01:00
Matt-Yorkley
eae7dc7f2e Temporarily add extra debugging to help with strong parameters 2020-02-22 16:24:28 +01:00
Matt-Yorkley
f5bc120fb1 Remove without_protection: true argument from #create calls
Needed for using Strong Parameters in Rails 4
2020-02-22 14:35:10 +01:00
Matt-Yorkley
3896644a04 Remove attr_accessible declarations
Needed for using Strong Parameters in Rails 4
2020-02-22 14:03:16 +01:00
Matt-Yorkley
74965eb635 Remove protected_attributes gem
This starts the move towards using Strong Parameters in Rails 4
2020-02-22 13:41:46 +01:00
Luis Ramos
e64d21d81d Move user enterprises definition in tests to after creation fixes a problem with enterprise_roles 2020-02-22 12:06:33 +00:00
Luis Ramos
1dc7b5793c Fix Enterprise validation and factory so that users are added after the validation 2020-02-22 12:06:33 +00:00
Luis Ramos
10c6e5ad9b Rebuild rubocop todo after latest rebase 2020-02-22 11:53:35 +00:00
Luis Ramos
f06a4fb1d0 This configuration is no longer needed as this is the default behaviour in rails 4 2020-02-22 11:53:35 +00:00
Luis Ramos
7640c7b606 Make all timestamps nullable, non-nullable timestamps are not required to maketimestamps work properly 2020-02-22 11:53:35 +00:00
Luis Ramos
26ba37b117 Comment spree_paypal express in all.js temporarily 2020-02-22 11:53:35 +00:00
Luis Ramos
2108a282c8 Add some require statements to specs 2020-02-22 11:49:52 +00:00
Matt-Yorkley
8b54281254 Add missing method removed from order model in Spree 2.1
It looks like #price_adjustments was refactored/removed in Spree 2.1, but we still call the method in order_decorator
2020-02-22 11:06:51 +00:00
Matt-Yorkley
e9e4168102 Fix ActiveModel::MissingAttributeError in order_cycle_permissions.rb
Failure/Error: variant_ids_by_supplier_id(permissions.all_incoming_editable_variants.all)

     ActiveModel::MissingAttributeError:
       missing attribute: product_id
     # ./app/serializers/api/admin/order_cycle_serializer.rb:36:in `editable_variants_for_incoming_exchanges'
     # (eval):9:in `_fast_attributes'
     # ./app/controllers/spree/admin/base_controller_decorator.rb:98:in `render_as_json'
     # ./app/controllers/admin/order_cycles_controller.rb:28:in `block (2 levels) in show'
     # ./app/controllers/admin/order_cycles_controller.rb:25:in `show'
     # ./lib/open_food_network/rack_request_blocker.rb:36:in `call'
     # ------------------
     # --- Caused by: ---
     # ActiveModel::MissingAttributeError:
     #   missing attribute: product_id
     #   ./app/serializers/api/admin/order_cycle_serializer.rb:36:in `editable_variants_for_incoming_exchanges'
2020-02-22 11:06:51 +00:00
Matt-Yorkley
b9db6df952 Replace current_spree_user method
This wasn't working before but now seems to be fixed
2020-02-22 11:06:51 +00:00
Matt-Yorkley
b3e7f9a07e Fix deprecated arguments used in #sanitize
Failure/Error: d = sanitize(object.description, tags: "p, b, strong, em, i, a, u", attributes: "href, target")

     ArgumentError:
       You should pass :tags as an Enumerable
     # ./app/serializers/api/product_serializer.rb:26:in `description_html'
     # (eval):10:in `_fast_attributes'
     # ./app/services/products_renderer.rb:24:in `products_json'
     # ./app/controllers/api/order_cycles_controller.rb:14:in `products'
     # ./lib/open_food_network/rack_request_blocker.rb:36:in `call'
2020-02-22 11:06:51 +00:00
Matt-Yorkley
04b760f221 Fix changed order of arguments for TestCase#process
DEPRECATION WARNING: TestCase#process now expects the HTTP method as second argument: process(action, http_method, params, session, flash). (called from api_process at /home/user/Github/openfoodnetwork/spec/support/controller_hacks.rb:22)
2020-02-22 11:06:51 +00:00
Matt-Yorkley
df1299b290 Fix user not yet loaded in prepend_before_filter 2020-02-22 11:06:51 +00:00
Matt-Yorkley
c0ecdb9e3a Fix deprecated #includes in join without reference
DEPRECATION WARNING: It looks like you are eager loading table(s) (one of: variant_overrides, enterprises, enterprise_roles) that are referenced in a string SQL snippet. For example:

    Post.includes(:comments).where("comments.title = 'foo'")

Currently, Active Record recognizes the table in the string, and knows to JOIN the comments table to the query, rather than loading comments in a separate query. However, doing this without writing a full-blown SQL parser is inherently flawed. Since we don't want to write an SQL parser, we are removing this functionality. From now on, you must explicitly tell Active Record when you are referencing a table from a string:

    Post.includes(:comments).where("comments.title = 'foo'").references(:comments)

If you don't rely on implicit join references you can disable the feature entirely by setting `config.active_record.disable_implicit_join_references = true`. (called from collection at /home/user/Github/openfoodnetwork/app/controllers/admin/variant_overrides_controller.rb:77)
2020-02-22 11:06:51 +00:00
Matt-Yorkley
6c22d655c8 Temporarily remove additional email validation on Spree::Order
A new custom email validator class was added to Spree::Order, and currently it fails every time (breaking lots of specs). This ugly hack disables it for now.
2020-02-22 11:06:51 +00:00
Matt-Yorkley
3615dcd355 Fix namespacing in cookies test
NameError: uninitialized constant ActionDispatch::Cookies::SignedCookieJar::MAX_COOKIE_SIZE
     # ./spec/requests/large_request_spec.rb:8
2020-02-22 11:06:51 +00:00
Matt-Yorkley
49bc3308be Fix broken references to url_helpers 2020-02-22 11:06:51 +00:00
Matt-Yorkley
fd11d4fa5b Fix broken html encoding of injected json in admin views 2020-02-22 11:06:51 +00:00
Matt-Yorkley
e3ae65fad5 Update rubocop_todo 2020-02-22 11:06:51 +00:00
Matt-Yorkley
ae11cb9954 Update rubocop_styleguide for Rails 4 2020-02-22 11:06:51 +00:00
Matt-Yorkley
98fdbb8621 Update deprecated #scoped calls
Model#scoped is now deprecated. Model#where(nil) in Rails 4 returns the same result as Model#scoped in Rails 3
2020-02-22 11:06:51 +00:00
Matt-Yorkley
241e9221b4 Replace deprecated :restrict option in address_decorator.rb
DEPRECATION WARNING: The :restrict option is deprecated. Please use :restrict_with_exception instead, which provides the same functionality. (called from block in <top (required)> at /home/user/Github/openfoodnetwork/app/models/spree/address_decorator.rb:4)
2020-02-22 11:06:51 +00:00
Matt-Yorkley
9fd4863a13 Fix missing roles error in spec workflow #create_enterprise_user 2020-02-22 11:06:51 +00:00
Matt-Yorkley
6541b55872 Fix default_association deprecated syntax in OrderCycle and Schedule 2020-02-22 11:06:51 +00:00
Matt-Yorkley
aff8911309 Update database_cleaner to >1.0 to fix transaction issues in test suite 2020-02-22 11:06:51 +00:00
Matt-Yorkley
39459b4a63 Temporarily fix root_path missing error in many controllers 2020-02-22 11:06:51 +00:00
Matt-Yorkley
7aef5af71c Fix report types spec 2020-02-22 11:06:51 +00:00
Matt-Yorkley
0a9d63dd2f Fix deprecated syntax on associations 2020-02-22 11:06:51 +00:00
Matt-Yorkley
5cc223e8f4 Update routes loading for Rails 4 2020-02-22 11:06:51 +00:00
Matt-Yorkley
a12ec8c5d9 Move filter parameters to initializer for Rails 4 2020-02-22 11:06:51 +00:00
Matt-Yorkley
046d8e0b87 Explicitly configure shoulda-matchers in spec_helper
This is apparently needed in Rails 4
2020-02-22 11:06:51 +00:00
Matt-Yorkley
16d56a8cbd Routes using match must specify a request method in Rails 4 2020-02-22 11:06:51 +00:00
Matt-Yorkley
a8b8269a02 Update deprecated #find_or_initialize_by_* methods 2020-02-22 11:06:51 +00:00
Matt-Yorkley
b80929022b Remove unused newrelic_rpm gem 2020-02-22 11:06:51 +00:00
Matt-Yorkley
53645517af Update deprecated #find_by_* methods 2020-02-22 11:06:51 +00:00
Matt-Yorkley
30558485de Update deprecated #find_or_create_by_* methods 2020-02-22 11:06:51 +00:00
Matt-Yorkley
6dd982532c Update deprecated/changed Rubocop rule names 2020-02-22 11:06:51 +00:00
Matt-Yorkley
418e9d23fe Add missing eager_load setting in test.rb 2020-02-22 11:06:51 +00:00
Matt-Yorkley
b8e608abc2 Remove deprecated #whiny_nils 2020-02-22 11:06:51 +00:00
Matt-Yorkley
6eef2555f1 Fix i18n available locales error
For some reason the locales defined in config/environment/test.rb are `en,es`, but in the used application.yml they were `en,es,en-GB`. This seems to trigger errors in the test environment ("en-GB is not a valid locale") if the two lists don't match..?
2020-02-22 11:06:51 +00:00
Matt-Yorkley
5603b70379 Fix html escaping of characters in AMS rendering causing fatal javascript errors 2020-02-22 11:06:51 +00:00
Matt-Yorkley
b03ef140f7 Enable sass 2020-02-22 11:06:51 +00:00
Matt-Yorkley
8ffdd806bf Enable rails-i18n 4.0 2020-02-22 11:06:25 +00:00
Matt-Yorkley
1fa2d05c0c Fix AuthenticationHelper#spree_current_user
`current_spree_user`: method not found...
2020-02-22 11:05:24 +00:00
Matt-Yorkley
5b8552f541 Fix ActiveRecord::Relation issue
Rails 4 now returns an Activerecord::Relation when using `SomeModel.all`. To get all the objects (as in Rails 3) we need to use `SomeModel.all.to_a`. See: https://stackoverflow.com/a/22417170
2020-02-22 11:05:24 +00:00
Matt-Yorkley
6f62c2cf27 Fix SCSS import file error 2020-02-22 11:05:24 +00:00
luisramos0
2f69d2a7e7 Remove devise email validation regexp, it's not needed in this version 2020-02-22 11:05:24 +00:00
luisramos0
2dc78d2f50 Remove spree_auth_devise and upgrade devise to 3.0.1 2020-02-22 11:05:24 +00:00
luisramos0
d1248c76fa Temporarily disable caching classes in test to fix karma rake task
This fixes the error "can't modify immutable index" in lib/tasks/karma.rake:25:in `application_spec_files'
2020-02-22 11:05:24 +00:00
luisramos0
4ca9a19d8a Temporarily remove broken fontawesome and spree_paypal_express assets 2020-02-22 11:05:24 +00:00
luisramos0
1ef9209183 Remove the assets group in the gemfile (removed in rails 4) 2020-02-22 11:05:24 +00:00
luisramos0
9c369caae2 Temporarily comment part of Enterprise.relate_to_owners_enterprises so that most specs pass for now 2020-02-22 11:05:24 +00:00
luisramos0
b23ce20488 Add migration from spree v2.1 2020-02-22 11:05:24 +00:00
luisramos0
18ca9980c9 Temporarily comment Enterprise.ensure_owner_is_manager otherwise all specs erroring out with 'Enterprise roles invalid' 2020-02-22 11:05:24 +00:00
luisramos0
c0dc999e0d Temporarily remove broken specs 2020-02-22 11:05:24 +00:00
luisramos0
8fe3a8aea4 Setting secret key in config/initializers/secret_token.rb 2020-02-22 11:05:24 +00:00
luisramos0
8e747e54a0 Setting eager loading on each env configuration 2020-02-22 11:05:24 +00:00
luisramos0
8dbe4accaf Upgrade to the spree branch 2-1-0-stable and rails 4.0.0 2020-02-22 11:05:24 +00:00
Luis Ramos
a3a61967a8 Merge pull request #4621 from luisramos0/spree_backend_js
OFN without spree_backend 🎉
2020-02-22 10:24:50 +00:00
luisramos0
404e7c1f37 Make credit card cloner clone the payment method even if the customer is not given
This makes the payments without saving card work again in the frontoffice as well as the payments taken by the seller in the backoffice
2020-02-21 14:11:13 +00:00
Luis Ramos
1bdeda4a21 Delete dead code after PRs 4512 and 4508 2020-02-21 12:25:07 +00:00
Luis Ramos
47916f823f Add spec to credit card cloner. No customer given. 2020-02-21 10:56:32 +00:00
Luis Ramos
ab4add1954 Fix CreditCardCloner basic spec 2020-02-21 10:56:32 +00:00
Luis Ramos
10fff31dca Fix stripe_sca spec 2020-02-21 10:56:32 +00:00
Luis Ramos
7fb85092ce Remove duplicate customers stubs 2020-02-21 10:56:32 +00:00
Luis Ramos
7584e96759 Make customer stub always return the same customer id
I cant make stripe customers stub return different customer_ids based on the stripe_account header
2020-02-21 10:56:32 +00:00
Luis Ramos
f8ab64d71e Move specs around in stripe_sca_spec so we can re-use the cloning stubs when storing a new card and when re-using a new card 2020-02-21 10:56:32 +00:00
Luis Ramos
ccb4c77d1f Adapt credit card cloner to not clone card if it's a card to be used only once
Adapt stripe_sca specs to new cloner logic
2020-02-21 10:56:32 +00:00
luisramos0
5ef1510fc7 Adapt CreditCard cloner to clone not 'cards of the platform account to payment_methods of the connected accounts' but instead 'cards or payment_methods of the platform account to payment_methods of the connected accounts'
This process mimicks the existing process of generating a token on the connected account from a card on the platform account. In the Payment Intents API we need to create a payment method in the connected account, a token is not enough
2020-02-21 10:56:32 +00:00
luisramos0
1afd712ff4 Make StripeSCA store cards (and delete them) on the Stripe platform account and not the Stripe Connected account (the sellers accounts)
This is important so that cards can be re-used across sellers in OFN
2020-02-21 10:56:32 +00:00
luisramos0
699110258b Add spec for credit_card_cloner 2020-02-21 10:56:32 +00:00
luisramos0
3fb1df9bb3 Rename CardCloner to CreditCardCloner because it's dependent on Spree:CreditCard attributes 2020-02-21 10:56:32 +00:00
luisramos0
14c03ead31 Extract CardCloner to separate class 2020-02-21 10:56:32 +00:00
luisramos0
4480c2f0f0 Add logic to stripe_sca gateway to handle cards stored in the platform account with the stripe Charges API: card_* 2020-02-21 10:56:32 +00:00
luisramos0
b3ac5d8f41 Improve code readability a little 2020-02-21 10:52:56 +00:00
luisramos0
6fb74c88cd Fix a typo 2020-02-21 10:52:56 +00:00
luisramos0
38fd028a9f Fix some rubocop issues from previous commit 2020-02-21 10:52:56 +00:00
luisramos0
4e84310d63 Add StripeSCA where StripeConnect is treated as an exception in the setting up of process of a payment method and subscriptions
Here we are copy pasting and adding stripe SCA because we are planning to delete the StripeConnect that will be replaced by the stripe sca implementation
2020-02-21 10:52:56 +00:00
luisramos0
66440f9e4c Add missing translations for new payment method stripe sca 2020-02-21 10:52:56 +00:00
luisramos0
b8457ebece Make profile storer a bit easier to read 2020-02-21 10:52:56 +00:00
Luis Ramos
668fd1c7c0 Add spec for profile storer to cover happy path for both response attribute cases: existin stripe integration and new stripe sca 2020-02-21 10:52:55 +00:00
Luis Ramos
aff934c814 Remove unnecessary test setup code 2020-02-21 10:52:55 +00:00
Luis Ramos
6bb04f6cc6 Adapt stripe_sca_spec to actual stripe SCA API 2020-02-21 10:52:55 +00:00
luisramos0
0e815439b3 Duplicate stripe_connect_spec and adapt to new stripe_sca
stripe_connect_spec will be deleted at some point when all users are migrated to the sca api
2020-02-21 10:52:55 +00:00
luisramos0
c7b01c37af Fix a problem in credit cards controller spec and test case where stripe_account_id must be included in the stripe api call 2020-02-21 10:52:55 +00:00
luisramos0
ac8f3c811f Fix rubocop issues in some stripe integration related files 2020-02-21 10:52:55 +00:00
luisramos0
1b820ea85c Fix rubocop issues in credit_cards_controller 2020-02-21 10:52:55 +00:00
luisramos0
ec7b91bb68 Make ProfileStorer a bit easier to read 2020-02-21 10:52:29 +00:00
luisramos0
c773cde191 Add admin payment template for stripe sca and respective js code to make it work 2020-02-21 10:52:29 +00:00
luisramos0
db1065a69e Make saving a card on checkout work with the payment intents api by making profile storer work with the slightly different api responses from stripe 2020-02-21 10:52:29 +00:00
luisramos0
9fa4bad0b4 Add stripe SCA checkotu payment template and move stripe object definition to it and the other stripe template
We need to set the stripe object with the stripe account id to work with the payment intents api but we cannot set it to work with the stripe charges api

This makes the two payment methods incompatible: a given enterprise cannot use both the old stripe integration and this new one at the same time.
2020-02-21 10:52:29 +00:00
luisramos0
a52c4b542c Make destroy stored cards work for stripe SCA by setting stripe account id before making the call to the stripe api
This account id cannot be sent when dealing with the old StripeConnect gateway
2020-02-21 10:52:29 +00:00
luisramos0
283abf9a88 Remove dead code from Stripe connect gateway
Update Source is dead since a74c502fd9
2020-02-21 10:52:29 +00:00
luisramos0
f691d1aafd Add new payment method StripeSCA that will use the Stripe Payment Intents API instead of the Stripe Charges API that the current StripeConnect gatreway uses 2020-02-21 10:52:29 +00:00
luisramos0
5724c3bb0a Add code from ActiveMerchant v1.98.0 that supports the Stripe Payment Intents API
This commit can be reverted once we upgrade to v1.98.0
2020-02-21 10:52:29 +00:00
Transifex-Openfoodnetwork
49ba83da6d Updating translations for config/locales/en_GB.yml 2020-02-21 05:32:39 +11:00
Transifex-Openfoodnetwork
19d1497c4b Updating translations for config/locales/en_GB.yml 2020-02-21 05:29:31 +11:00
Luis Ramos
06200c9d3c Add new cops (disabled) to rubocop config 2020-02-20 18:04:43 +00:00
Luis Ramos
2412658e51 Update db/schema timestamp according to last change 2020-02-20 11:41:49 +00:00
Luis Ramos
0c4f22f847 Fix images/new.js path and add simple spec to verify the page loads correctly
Testing the file upload would be a bit more complicated
2020-02-20 11:18:22 +00:00
Luis Ramos
1803ea3c38 Add traling breakline to case where errors come in a array 2020-02-20 10:06:10 +00:00
Pau Pérez Fabregat
93fda02e43 Merge pull request #4803 from openfoodfoundation/dependabot/bundler/rubocop-0.80.0
Bump rubocop from 0.79.0 to 0.80.0
2020-02-20 09:34:10 +01:00
Pau Pérez Fabregat
77958f9afe Merge pull request #4796 from openfoodfoundation/dependabot/bundler/i18n-js-3.6.0
Bump i18n-js from 3.5.1 to 3.6.0
2020-02-20 09:32:02 +01:00
Maikel Linke
82e402f31a Update translations from Transifex 2020-02-20 16:20:06 +11:00
Maikel Linke
03fa3e2269 Find last payment deterministically 2020-02-20 15:59:57 +11:00
Maikel Linke
11fbe7d5c9 Show last payment method in order confirmations 2020-02-20 15:59:57 +11:00
Maikel Linke
799c1f08de Optimise finding last payment
Suggested by Rubocop.
2020-02-20 15:59:56 +11:00
Maikel Linke
6b66458bfd Replace andand with new Ruby syntax 2020-02-20 15:59:56 +11:00
Maikel Linke
3e0a5bac6a Move helper to service for re-use 2020-02-20 15:59:56 +11:00
Maikel Linke
2c2023df03 Show last payment method in order confirmation
If we had multiple failed payments and then a successful payment, the
order confirmation was displaying the payment method of the first failed
payment. That was confusing and is now changed to the last payment
method.
2020-02-20 15:59:56 +11:00
Maikel Linke
7306d379a5 Display payment method literally
Don't allow for HTML and potentially bad scripts. But this also prevents
accidental display errors. If someone wrote, "We only take <cash>", it
would mess with the site.
2020-02-20 15:59:56 +11:00
Maikel Linke
e15c61d862 Add spec for order confirmation view 2020-02-20 15:59:56 +11:00
Maikel
35aeb98d45 Merge pull request #4792 from openfoodfoundation/transifex
Transifex
2020-02-20 10:43:45 +11:00
Luis Ramos
d99cba3b6e Merge pull request #4709 from mkllnk/4172-js-pluralize
Pluralize common variant unit names
2020-02-19 22:28:54 +00:00
dependabot-preview[bot]
4c6fd96bcc Bump rubocop from 0.79.0 to 0.80.0
Bumps [rubocop](https://github.com/rubocop-hq/rubocop) from 0.79.0 to 0.80.0.
- [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/v0.79.0...v0.80.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-02-18 19:18:53 +00:00
Luis Ramos
1eba17f048 Make select column explicit to avoid too many columns sql error 2020-02-18 18:32:52 +00:00
dependabot-preview[bot]
ff088c6203 Bump stripe from 5.11.0 to 5.15.0
Bumps [stripe](https://github.com/stripe/stripe-ruby) from 5.11.0 to 5.15.0.
- [Release notes](https://github.com/stripe/stripe-ruby/releases)
- [Changelog](https://github.com/stripe/stripe-ruby/blob/master/CHANGELOG.md)
- [Commits](https://github.com/stripe/stripe-ruby/compare/v5.11.0...v5.15.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-02-18 12:01:10 +00:00
Luis Ramos
a1cb6928db Merge pull request #4793 from openfoodfoundation/dependabot/bundler/webmock-3.8.2
Bump webmock from 3.8.1 to 3.8.2
2020-02-18 11:59:14 +00:00
Luis Ramos
40a5b60dcb Merge pull request #4794 from openfoodfoundation/dependabot/bundler/oauth2-1.4.4
Bump oauth2 from 1.4.3 to 1.4.4
2020-02-18 11:58:58 +00:00
Luis Ramos
2711736004 Use Array#join and make code simpler 2020-02-18 10:49:41 +00:00
Luis Ramos
18c165e893 Merge pull request #4784 from CSCI-462-01-2020/Issue4731
Add Order Cycle Button Tooltips
2020-02-17 19:32:39 +00:00
Luis Ramos
0aaa04295b Improve and unit test errorsParser 2020-02-17 11:21:21 +00:00
Luis Ramos
7639e9a38d Extrac ErrorsParser to separate class and make it handle the rails error structure with keys 2020-02-17 11:21:21 +00:00
Transifex-Openfoodnetwork
d783bd771f Updating translations for config/locales/ar.yml 2020-02-15 09:33:06 +11:00
Transifex-Openfoodnetwork
9dd9d14107 Updating translations for config/locales/ar.yml 2020-02-15 09:29:56 +11:00
Transifex-Openfoodnetwork
e942266dd7 Updating translations for config/locales/pt_BR.yml 2020-02-15 07:05:18 +11:00
dependabot-preview[bot]
c8f78904d6 Bump i18n-js from 3.5.1 to 3.6.0
Bumps [i18n-js](https://github.com/fnando/i18n-js) from 3.5.1 to 3.6.0.
- [Release notes](https://github.com/fnando/i18n-js/releases)
- [Changelog](https://github.com/fnando/i18n-js/blob/master/CHANGELOG.md)
- [Commits](https://github.com/fnando/i18n-js/compare/v3.5.1...v3.6.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-02-14 19:24:49 +00:00
Transifex-Openfoodnetwork
a982fd1e2b Updating translations for config/locales/tr.yml 2020-02-14 22:27:33 +11:00
Transifex-Openfoodnetwork
7e8b2f6be5 Updating translations for config/locales/tr.yml 2020-02-14 22:24:23 +11:00
Transifex-Openfoodnetwork
921c7bbc3a Updating translations for config/locales/tr.yml 2020-02-14 22:21:12 +11:00
Transifex-Openfoodnetwork
eaff6b0c68 Updating translations for config/locales/nb.yml 2020-02-14 19:26:01 +11:00
Transifex-Openfoodnetwork
e1ab424481 Updating translations for config/locales/nb.yml 2020-02-14 19:22:51 +11:00
Luis Ramos
00e57c8a55 Add module definition in the recently moved service and adapt all it's usages to refer to the new namespace 2020-02-13 20:17:09 +00:00
Luis Ramos
2e74e64e22 Move Product Reset Strategy to the catalog domain 2020-02-13 20:17:09 +00:00
Luis Ramos
fc5d623465 Add new domain structure Catalog 2020-02-13 20:17:06 +00:00
Transifex-Openfoodnetwork
e59c9720fc Updating translations for config/locales/en_GB.yml 2020-02-14 06:53:13 +11:00
dependabot-preview[bot]
b25f0007f0 Bump oauth2 from 1.4.3 to 1.4.4
Bumps [oauth2](https://github.com/oauth-xx/oauth2) from 1.4.3 to 1.4.4.
- [Release notes](https://github.com/oauth-xx/oauth2/releases)
- [Changelog](https://github.com/oauth-xx/oauth2/blob/master/CHANGELOG.md)
- [Commits](https://github.com/oauth-xx/oauth2/compare/v1.4.3...v1.4.4)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-02-13 19:19:44 +00:00
dependabot-preview[bot]
65c5cdd52f Bump webmock from 3.8.1 to 3.8.2
Bumps [webmock](https://github.com/bblimke/webmock) from 3.8.1 to 3.8.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.8.1...v3.8.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-02-13 19:16:18 +00:00
Transifex-Openfoodnetwork
a2873ea553 Updating translations for config/locales/fr.yml 2020-02-14 05:05:51 +11:00
Transifex-Openfoodnetwork
3a593ff255 Updating translations for config/locales/fr.yml 2020-02-14 05:02:42 +11:00
Transifex-Openfoodnetwork
92e1193ffb Updating translations for config/locales/en_FR.yml 2020-02-14 05:01:02 +11:00
Transifex-Openfoodnetwork
016968dcb9 Updating translations for config/locales/fr.yml 2020-02-14 04:59:33 +11:00
Luis Ramos
9d8608f210 Merge pull request #4630 from Matt-Yorkley/product_counts
Show counts including all variants in order cycle exchanges
2020-02-13 11:33:58 +00:00
Luis Ramos
323ca906bc Merge pull request #4759 from pacodelaluna/order-admin-products
Order admin products
2020-02-13 11:33:05 +00:00
Luis Ramos
c43b34e0fa Merge pull request #4760 from luisramos0/checkout_ctrl
Merge Spree::CheckoutController with CheckoutController and clean it up
2020-02-13 11:31:15 +00:00
Luis Ramos
bc7f0e0962 Update all locales with the latest Transifex translations 2020-02-13 11:19:07 +00:00
Luis Ramos
cf4f7c562a Merge pull request #4778 from openfoodfoundation/transifex
Transifex
2020-02-13 11:08:01 +00:00
François Turbelin
4c7bd4d6a8 Fix mess with order 2020-02-13 06:38:13 +01:00
François Turbelin
523b266308 Put back created_at desc as default order 2020-02-13 06:38:13 +01:00
François Turbelin
212413c8b3 Avoid mutable q params 2020-02-13 06:38:13 +01:00
François Turbelin
b248dc598e Cosmetics 2020-02-13 06:38:13 +01:00
François Turbelin
e7b74b99ba Refactor SortingOptions JS 2020-02-13 06:38:13 +01:00
François Turbelin
89d2750fc4 Set default value at backend side 2020-02-13 06:38:13 +01:00
François Turbelin
7100111f93 Fix specs and cosmetics 2020-02-13 06:38:13 +01:00
François Turbelin
3dcb66014e Factorize column sorter partial 2020-02-13 06:38:13 +01:00
François Turbelin
06971b7198 Add sortable name column for Admin Products 2020-02-13 06:38:13 +01:00
François Turbelin
56f9adc5b7 Filter Admin products by name asc 2020-02-13 06:38:13 +01:00
Luis Ramos
38374a9835 Merge pull request #4761 from openfoodfoundation/dependabot/bundler/unicorn-5.5.3
Bump unicorn from 5.5.2 to 5.5.3
2020-02-12 20:56:19 +00:00
Luis Ramos
8d6a8ee214 Merge pull request #4763 from mkllnk/rails4-form-rendering
Future proof form rendering in admin orders
2020-02-12 20:56:00 +00:00
blainebillings
fec653186a Add Order Cycle Button Tooltips 2020-02-11 10:10:39 -05:00
Transifex-Openfoodnetwork
ebe7456b66 Updating translations for config/locales/tr.yml 2020-02-11 21:48:53 +11:00
Transifex-Openfoodnetwork
8187669a25 Updating translations for config/locales/tr.yml 2020-02-11 21:45:44 +11:00
Transifex-Openfoodnetwork
a6aa0df53b Updating translations for config/locales/fr_BE.yml 2020-02-10 03:32:33 +11:00
Transifex-Openfoodnetwork
116695b1d9 Updating translations for config/locales/en_NZ.yml 2020-02-08 18:53:00 +11:00
Transifex-Openfoodnetwork
387ac40dc9 Updating translations for config/locales/en_NZ.yml 2020-02-08 18:49:51 +11:00
luisramos0
66320b5055 Remove the assets group from the gemfile, it will disappear in rails 4 2020-02-07 12:29:02 +00:00
luisramos0
858d2cc6c2 Add doc to Spree::CheckoutController to make it more obvious why this controller exists 2020-02-07 11:50:23 +00:00
luisramos0
43280da187 Dup params to avoid nasty effects of a mutated params object in the controller 2020-02-07 10:26:04 +00:00
luisramos0
3b399b899c Extract methods in subscription_placement_job to fix rubocop complexity issues 2020-02-07 10:06:59 +00:00
luisramos0
01d69c89aa Add some log messages to help debug problems in subscription placement and subscription confirmation processes 2020-02-07 10:06:58 +00:00
luisramos0
a2801e40a2 Improve readability of proxy_order_syncer and add some log messages 2020-02-07 10:06:58 +00:00
luisramos0
abd4f0b923 Add custom_data column to paper_trail versions table so we can track a specific list of ids in a model
Activate paper_trail in order_cycles and schedules and track each others ids

An alternative way of doing this would be to use a gem for paper_trail associations but this way we avoid adding a new dependency to the app
2020-02-07 10:06:58 +00:00
Luis Ramos
e1eface5f8 Merge pull request #4542 from luisramos0/logger
Add timestamp to log entries
2020-02-07 10:02:55 +00:00
Luis Ramos
5cd14253d0 Merge pull request #4770 from openfoodfoundation/dependabot/bundler/webmock-3.8.1
Bump webmock from 3.8.0 to 3.8.1
2020-02-07 09:31:19 +00:00
Maikel
be691df7ac Merge pull request #4769 from openfoodfoundation/transifex
Transifex
2020-02-07 18:09:31 +11:00
Maikel Linke
7783b28ca2 Update concurrency spec after refactor
In order to make the spec fail if the controller was not thread safe, it
uses breakpoints. One of those breakpoints was set for a method that has
now been removed.

I changed the method that is used for the breakpoint and changed `allow`
to `expect` so that this spec will fail if we remove that method as
well. Future version of Rspec will check if a mocked method actually
exists but our version just mocks it anyway. This is one way how specs
can become invalid after refactoring.
2020-02-07 17:46:42 +11:00
Maikel
6d51856821 Merge pull request #4734 from openfoodfoundation/dependabot/bundler/oauth2-1.4.3
Bump oauth2 from 1.4.2 to 1.4.3
2020-02-07 16:48:42 +11:00
dependabot-preview[bot]
890704b75c Bump webmock from 3.8.0 to 3.8.1
Bumps [webmock](https://github.com/bblimke/webmock) from 3.8.0 to 3.8.1.
- [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.8.0...v3.8.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-02-06 19:17:54 +00:00
Transifex-Openfoodnetwork
922484b2e7 Updating translations for config/locales/en_GB.yml 2020-02-07 05:02:38 +11:00
Luis Ramos
3e7288648b Merge pull request #4762 from openfoodfoundation/dependabot/bundler/roo-2.8.3
Bump roo from 2.8.2 to 2.8.3
2020-02-06 14:44:21 +00:00
luisramos0
f0f537ff8f Fix path of spree-select2.js pointing to the file in ofn rather the file in spree_backend 2020-02-06 11:21:47 +00:00
Transifex-Openfoodnetwork
b7f920c4b6 Updating translations for config/locales/ca.yml 2020-02-06 21:12:27 +11:00
Pau Pérez Fabregat
be19d50639 Merge pull request #4768 from openfoodfoundation/transifex
Transifex
2020-02-06 11:11:23 +01:00
Transifex-Openfoodnetwork
0ceb8ab6c4 Updating translations for config/locales/ca.yml 2020-02-06 21:09:16 +11:00
Pau Pérez Fabregat
e387c7db83 Merge pull request #4548 from luisramos0/improve_truncate_data
Improve truncate data process
2020-02-06 11:01:36 +01:00
Pau Pérez Fabregat
d5df48f3c0 Merge pull request #4737 from openfoodfoundation/transifex
Transifex
2020-02-06 11:00:46 +01:00
Pau Pérez Fabregat
c9abdac2e0 Merge pull request #4722 from mkllnk/code-climate-rubocop
Bump Code Climate's Rubocop version to their latest
2020-02-06 10:32:46 +01:00
Transifex-Openfoodnetwork
ff08d9f210 Updating translations for config/locales/nb.yml 2020-02-06 09:39:52 +11:00
luisramos0
e5c9468d09 Fix rubocop issues in navigation_helper 2020-02-05 22:16:20 +00:00
luisramos0
8aed173127 Uncomment events in order edit page and remove unused spree autocomplete js code 2020-02-05 20:04:15 +00:00
luisramos0
61ecca7257 Move template loading to directive of customer search override 2020-02-05 20:04:15 +00:00
luisramos0
7eba657b2f Add missing templates from spree_backend 2020-02-05 20:04:15 +00:00
luisramos0
784de340d1 Disable adaptive menu when running tests, this is what spree_backend was doing before 2020-02-05 20:04:15 +00:00
luisramos0
9191628f29 Bring custom form_builder initializer from spree_backend 2020-02-05 20:04:15 +00:00
luisramos0
88410b1efd Add missing general config routes from spree_backend 2020-02-05 20:04:12 +00:00
luisramos0
afea032361 Add return_authorizations route from spree_backend 2020-02-05 16:02:43 +00:00
luisramos0
3decb4056c Remove repeated include spree_paypal_express and add require css select2 2020-02-05 16:02:43 +00:00
luisramos0
8e9b08feca Remove jquery-alerts from head html 2020-02-05 16:02:43 +00:00
luisramos0
694995ea5d Prefix root_path with main_app so that ofn's route is used. The spree root path is no longer defined, we dont need it 2020-02-05 16:02:43 +00:00
luisramos0
22de7252d0 Fix route in login nav and bring reports and properties resource route from spree_backend 2020-02-05 16:02:43 +00:00
luisramos0
2acf8e5125 Remove config_locale from base controller, in OFN we dont have separate locales for frontoffice and backoffice 2020-02-05 16:02:43 +00:00
luisramos0
e1f61e645d Remove dependency to spree_backend and add dependencies still required: jquery-ui-rails and select2-rails 2020-02-05 16:02:43 +00:00
luisramos0
687d827ceb Add required css require for select2 2020-02-05 16:02:43 +00:00
luisramos0
2885e38113 Re-activate/re-add click events that were registered in spree_backend code before 2020-02-05 16:02:43 +00:00
luisramos0
9f3ca58b55 Add empty admin/spree_backend.js
This file is required by spree_paypal_express that we still need after leaving spree_backend
2020-02-05 16:02:43 +00:00
luisramos0
ffe3228848 Remove spree_backend dependencies from all.js and all.css and fix some dependencies path problems 2020-02-05 16:02:43 +00:00
luisramos0
834231eb8f Add js code needed for the zones admin page 2020-02-05 16:02:43 +00:00
luisramos0
68f5aabd3f Add js code needed where calculators are used: ship methods and payment methods config pages 2020-02-05 16:02:43 +00:00
luisramos0
7e7ea92833 Add js code needed in the states admin page 2020-02-05 16:02:43 +00:00
luisramos0
ebf22ceb19 Add js and css code for image settings from spree_backend 2020-02-05 16:02:43 +00:00
Luis Ramos
9313a57d19 Merge pull request #4511 from luisramos0/backend_ctrl_search
Bring spree_backend search controller to OFN
2020-02-05 15:54:30 +00:00
Luis Ramos
c38c7c35bc Add spec for user default address setter 2020-02-05 14:49:17 +00:00
luisramos0
2663f74767 Add specs for new services 2020-02-05 14:49:17 +00:00
luisramos0
b41de52012 Moved checkout services into a specific folder under app/services 2020-02-05 14:49:17 +00:00
luisramos0
214eb43122 Add frozen string literal magic comment 2020-02-05 14:49:17 +00:00
luisramos0
01fc4e0513 Add Spree::CheckoutController only to redirect to CheckoutController
I have not managed to make the spree checkout route, that paypal express uses, go to CheckoutController directly. According to the rails docs "to: '/checkout#edit'" should do it, but it doesnt work here.
2020-02-05 14:49:17 +00:00
luisramos0
6ce50a5fa5 Extract paypal redirect logic to service class 2020-02-05 14:49:17 +00:00
luisramos0
4fbd2cfa52 Extract UserDefaultAddress logic into separate class to take more 30 lines out of CheckoutController 2020-02-05 14:49:17 +00:00
luisramos0
383b28e170 Add order and current_user to checkout_form_data_adapter where they are required
Also re-add order.state condition to update_result: in some tests, the order state is complete but no completion data (completed?) is present
2020-02-05 14:49:17 +00:00
luisramos0
bf55a15f81 Extract checkout params adaptation logic into a service class 2020-02-05 14:49:17 +00:00
luisramos0
eb7e6dc5b8 Remove spree checkout controller spec, it is no longer necessary 2020-02-05 14:49:17 +00:00
luisramos0
139ecfe604 Remove rubocop exceptions resolved so far in checkout controller 2020-02-05 14:49:17 +00:00
luisramos0
43a6798db2 Move methods around in checkout controller into a more logical organisation: first the filters code and then support code for the update action 2020-02-05 14:49:17 +00:00
luisramos0
06d6579486 Refactor construct_saved_card_attributes to fix rubocop issues 2020-02-05 14:49:17 +00:00
luisramos0
76df526002 Remove dead code from construct_saved_card_attributes 2020-02-05 14:49:17 +00:00
luisramos0
06569ea24c Refactor load_order to fix rubocop issues 2020-02-05 14:49:17 +00:00
luisramos0
25431f851b Refactor object_params to fix rubocop issues 2020-02-05 14:49:17 +00:00
luisramos0
bab2420bb3 Break up default address methods to fix rubocop issues 2020-02-05 14:49:17 +00:00
luisramos0
0b2acb3a76 Extracted two methods from checkout_workflow to fix rubocop issues 2020-02-05 14:49:17 +00:00
luisramos0
27db9e604f Extract respond_to_update_succeeded from update_succeeded 2020-02-05 14:49:17 +00:00
luisramos0
c4e58ebb9e Extract update_succeeded from checkout#update 2020-02-05 14:49:17 +00:00
luisramos0
9a0ee254af Extract checkout_workflow from checkout#update 2020-02-05 14:49:17 +00:00
luisramos0
5ce3e1e0d2 Fix some rubocop issues in checkout controller 2020-02-05 14:49:17 +00:00
luisramos0
4b345d928c Remove old code to detect Phantom Fees, no bugsnag events detected at all 2020-02-05 14:49:17 +00:00
luisramos0
52b1e6c71a Move all logic required in Spree::CheckoutController to CheckoutController 2020-02-05 14:49:17 +00:00
Matt-Yorkley
140e0b9cb1 Refactor #exchangeLoadedVariants 2020-02-05 15:11:34 +01:00
Matt-Yorkley
b3f05d1a98 Use "Variants" instead of "Products" in order cycle exchanges UI 2020-02-05 15:11:34 +01:00
Matt-Yorkley
9644b145cc Remove num_of_products 2020-02-05 15:11:34 +01:00
Matt-Yorkley
6f644936b0 Show counts including all variants in order cycle exchanges 2020-02-05 15:10:26 +01:00
Matt-Yorkley
b86759d7a7 Fix form rendering in admin orders
ActionView::Template::Error: Nil location provided. Can't build URI.
  0) Account and Billing Settings updating as an admin user loads the page
     Failure/Error: = form_tag false, {name: "orders_form", "ng-submit" => "fetchResults()"} do
2020-02-05 16:37:23 +11:00
luisramos0
b0f2e01c70 Delete extra inventory_units that are for some unknown reason connected to shipments of orders to delete but not to orders to delete 2020-02-05 16:30:14 +11:00
Maikel
747be81aec Link to new release template 2020-02-05 15:21:26 +11:00
Maikel
fd124daf50 Add task to notify instance managers of upcoming changes 2020-02-05 14:58:57 +11:00
Transifex-Openfoodnetwork
ef33d27e6c Updating translations for config/locales/en_FR.yml 2020-02-05 06:55:27 +11:00
Transifex-Openfoodnetwork
3a01e00d7b Updating translations for config/locales/fr.yml 2020-02-05 06:51:14 +11:00
Luis Ramos
81103f3f71 Merge pull request #4742 from CSCI-462-01-2020/Issue4109
Edit new_resource partial
2020-02-04 19:44:16 +00:00
dependabot-preview[bot]
9d1e3f0318 Bump roo from 2.8.2 to 2.8.3
Bumps [roo](https://github.com/roo-rb/roo) from 2.8.2 to 2.8.3.
- [Release notes](https://github.com/roo-rb/roo/releases)
- [Changelog](https://github.com/roo-rb/roo/blob/master/CHANGELOG.md)
- [Commits](https://github.com/roo-rb/roo/compare/v2.8.2...v2.8.3)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-02-04 19:23:42 +00:00
dependabot-preview[bot]
67adf3c801 Bump unicorn from 5.5.2 to 5.5.3
Bumps [unicorn](https://yhbt.net/unicorn/) from 5.5.2 to 5.5.3.

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-02-04 19:22:39 +00:00
Luis Ramos
a8b48a561f Merge pull request #4733 from lin-d-hop/master
Fixing incorrect payment and balance calculation
2020-02-04 18:11:48 +00:00
Luis Ramos
c7038f6ac9 Merge pull request #4620 from luisramos0/spree_backend_css
Bring basic CSS rules from spree backend
2020-02-04 18:06:15 +00:00
Luis Ramos
ea75714561 Merge pull request #4635 from luisramos0/main_app_routes
Replace use of spree.root_path and root_url with main_app.root_path and main_app.root_url
2020-02-04 16:02:48 +00:00
luisramos0
b7d19dd34c Remove unused route from Spree.routes 2020-02-04 14:55:34 +00:00
luisramos0
44d1b3f00c Remove unused search/users controller action 2020-02-04 14:55:34 +00:00
luisramos0
f8376c0aeb Remove unused route search_customer_addresses 2020-02-04 14:55:34 +00:00
luisramos0
88464d58c2 Fix some rubocop issues and extract ransack hash to reduce repetition 2020-02-04 14:55:34 +00:00
luisramos0
962779bba1 Merge search controller with decorator 2020-02-04 14:54:51 +00:00
luisramos0
1ae73dd6ae Add search_controller from spree_backend so that we can now merge it with the OFN's decorator 2020-02-04 14:54:51 +00:00
luisramos0
f48ab57782 Add explicit css import statements where they are needed 2020-02-04 14:52:44 +00:00
luisramos0
8b6ebfb351 Add imports for new css files from spree_backend 2020-02-04 14:52:44 +00:00
luisramos0
9c0788c3e0 Bring shared css rules from spree_backend 2020-02-04 14:52:17 +00:00
luisramos0
f61258d0b4 Bring components css from spree_backend
pagination and navigation rules were merged
2020-02-04 14:52:17 +00:00
luisramos0
289f62f115 Bring and require date picker css from spree_backend 2020-02-04 14:52:17 +00:00
luisramos0
c3a98d5a4f Bring css dependencies from spree_backend
These dependencies are in spree_core so we dont need to bring them to ofn right now
2020-02-04 14:52:17 +00:00
Luis Ramos
d8374e9caa Merge pull request #4614 from luisramos0/base_admin_js
Bring some basic js functions and dependencies from spree_backend
2020-02-04 14:48:38 +00:00
luisramos0
0648f23e94 Move css dependencies to specific css files and add some required dependencies from spree_backend 2020-02-04 14:47:51 +00:00
luisramos0
e37cb2d63f Remove underscope from select2 css file name 2020-02-04 14:47:51 +00:00
luisramos0
ee64238bdd Add jquery.adaptivemenu require but commeent out the activation for now because it is already called in spree_backend
This can be reverted when spree_backend is removed
2020-02-04 14:47:51 +00:00
luisramos0
d3130e111f Remove on click events
These events can only be added to OFN when spree_backend is removed otherwise the evetns will be registered twice
2020-02-04 14:47:51 +00:00
luisramos0
93f4eee887 Make newly imported js files compatible with the karma build 2020-02-04 14:47:51 +00:00
luisramos0
408ada9097 Remove unnecessary build exception 2020-02-04 14:47:51 +00:00
luisramos0
e14ebd9503 Add required variables from spree_backend 2020-02-04 14:47:51 +00:00
luisramos0
289b99c30e Bring and require equalize from spree_backend 2020-02-04 14:47:26 +00:00
luisramos0
f85c36a17e Bring and require select2 from spree_backend 2020-02-04 14:47:26 +00:00
luisramos0
4715df3258 Bring and require jquery.horizontalNav.js from spree_backend 2020-02-04 14:47:26 +00:00
luisramos0
b20be101cc Bring and require spin from spree_backend and respective progress indicator js and css 2020-02-04 14:47:26 +00:00
luisramos0
d424987587 Bring and require jquery.vAlign.js from spree_backend 2020-02-04 14:47:26 +00:00
luisramos0
a0575430dd Require spree.js from spree_core for some basic functions like Spree.url 2020-02-04 14:46:57 +00:00
luisramos0
c1e6344b18 Merge spree js function and override 2020-02-04 14:46:57 +00:00
luisramos0
ed0198382f Bring spree_backend admin.js.erb, rename it to base.js.erb and remove requires that are not used in ofn 2020-02-04 14:46:57 +00:00
blainebillings
577fb88843 Move Create and Cancel References to Actions Namespace 2020-02-04 09:39:01 -05:00
Pau Pérez Fabregat
2b879221b2 Merge pull request #4756 from kristinalim/fix/4489-flaky_spec_for_editing_oc
4489 Flaky spec when editing outgoing exchanges in OC
2020-02-04 15:38:37 +01:00
blainebillings
22db2e99f0 Merge branch 'Issue4109' of https://github.com/CSCI-462-01-2020/openfoodnetwork into Issue4109 2020-02-04 09:38:19 -05:00
blainebillings
ef4aa488c3 Moves Create and Cancel References to Actions Namespace 2020-02-04 09:34:28 -05:00
Pau Pérez Fabregat
57775f49bc Merge pull request #4739 from openfoodfoundation/dependabot/bundler/rack-mini-profiler-1.1.6
Bump rack-mini-profiler from 1.1.4 to 1.1.6
2020-02-04 15:29:20 +01:00
Pau Pérez Fabregat
e8a12d9897 Merge pull request #4738 from openfoodfoundation/dependabot/bundler/oj-3.10.2
Bump oj from 3.10.1 to 3.10.2
2020-02-04 15:28:40 +01:00
Pau Pérez Fabregat
f3b8d5b868 Merge pull request #4741 from openfoodfoundation/dependabot/bundler/bugsnag-6.13.0
Bump bugsnag from 6.12.2 to 6.13.0
2020-02-04 15:28:00 +01:00
Pau Pérez Fabregat
246235b921 Merge pull request #4667 from Matt-Yorkley/rails-4-prep
Rails 4 prep
2020-02-04 15:20:28 +01:00
Luis Ramos
0ded41afee Merge pull request #4513 from luisramos0/backend_ctrl_orders
Bring spree_backend orders controller to OFN
2020-02-04 11:51:54 +00:00
luisramos0
d32e106bf0 Add partials needed in the orders edit page 2020-02-04 11:51:13 +00:00
luisramos0
bbb3748d3c Simplify orders events logic 2020-02-04 11:51:13 +00:00
luisramos0
08dd992344 Merge orders_helper with decorator 2020-02-04 11:51:13 +00:00
luisramos0
914244a1ee Bring orders helper from spree_backend 2020-02-04 11:51:13 +00:00
luisramos0
e5f089610c Bring admin orders routes from spree_backend 2020-02-04 11:51:13 +00:00
luisramos0
6e26841817 Fix load_order before filter and remove unused open and close adjustments actions 2020-02-04 11:50:44 +00:00
luisramos0
ab60c4a9dd Remove unnecessary index action override because this is no longer a decorator
Remove useless todo comment
2020-02-04 11:50:44 +00:00
luisramos0
7009cd89e0 Fix rubocop issues in customer details controller and update rubocop manual todo accordingly 2020-02-04 11:50:44 +00:00
luisramos0
b93af37ea9 Merge customer details decorator with controller 2020-02-04 11:50:03 +00:00
luisramos0
76b6a85509 Merge spree/admin/orders_controller and its decorator and fix a few rubocop issues 2020-02-04 11:50:03 +00:00
luisramos0
a1d4b4ee98 Add orders_controller from spree_backend so that we can now merge it with the OFN's decorator 2020-02-04 11:50:03 +00:00
luisramos0
51bca7ce2f Add customer_details_controller from spree_backend so that we can now merge it with the OFN's decorator 2020-02-04 11:50:03 +00:00
Luis Ramos
70147f908a Merge pull request #4611 from luisramos0/taxonomies_js
Bring js code to make taxonomies admin work without spree_backend
2020-02-04 11:47:27 +00:00
Luis Ramos
c4bf4f001f Merge pull request #4509 from luisramos0/backend_ctrl_payments
Bring spree_backend payments controller to OFN
2020-02-04 11:46:23 +00:00
Matt-Yorkley
7d71f21753 Add frozen_string_literal comment to new class 2020-02-04 11:11:24 +01:00
Matt-Yorkley
285c78a5e4 Remove use of #pluck and ensure subquery does not include all columns 2020-02-04 11:10:13 +01:00
luisramos0
6e78ae762a Make it work even if preferred_enterprise_id is null 2020-02-04 10:01:18 +00:00
luisramos0
9a2ad16926 Make explicit the dependency to font-awesome css rules 2020-02-04 09:34:59 +00:00
luisramos0
afec21eb3d Move imports to where they are needed 2020-02-04 09:34:59 +00:00
luisramos0
651ee720c6 Remove underscore from new jstree css file 2020-02-04 09:34:40 +00:00
luisramos0
2e6c5e1fad Add dependencies from spree_backend required by jstree 2020-02-04 09:34:40 +00:00
luisramos0
87366ae7fc Remove usage of jConfirm so that we dont have to bring dependency jquery.alerts from spree_backend 2020-02-04 09:33:58 +00:00
luisramos0
27aea0b277 Bring js code from spree_backend to make taxons admin work 2020-02-04 09:33:58 +00:00
luisramos0
d4edc9f20d Bring jstress css from spree_backend 2020-02-04 09:33:58 +00:00
luisramos0
6c7991be75 Bring jquery.jstree from spree_backend 2020-02-04 09:33:34 +00:00
luisramos0
3f81352df5 Bring jquery.cookie from spree_backend 2020-02-04 09:33:34 +00:00
Kristina Lim
9d0e26ae28 Wait for products panel to show in outgoing exchanges feature spec 2020-02-04 16:20:47 +08:00
Luis Ramos
d80554a14a Merge pull request #4744 from luisramos0/oc_pag_bug
Make pagination optional in the ExchangeProductsController
2020-02-03 17:19:06 +00:00
luisramos0
a5fe5fb448 Remove usage of deleted const DEFAULT_PAGE
If params[:page] is not in the request, the results will not be paginated now
2020-02-03 15:04:34 +00:00
luisramos0
4c51d60bfd Make pagination optional in the ExchangeProductsController 2020-02-03 13:11:26 +00:00
blainebillings
9218008530 Edit new_resource Partial 2020-02-02 11:22:54 -05:00
myersca1
f36c5b8938 Edit new_resource partial 2020-02-02 11:19:10 -05:00
dependabot-preview[bot]
67199fd2d6 Bump bugsnag from 6.12.2 to 6.13.0
Bumps [bugsnag](https://github.com/bugsnag/bugsnag-ruby) from 6.12.2 to 6.13.0.
- [Release notes](https://github.com/bugsnag/bugsnag-ruby/releases)
- [Changelog](https://github.com/bugsnag/bugsnag-ruby/blob/master/CHANGELOG.md)
- [Commits](https://github.com/bugsnag/bugsnag-ruby/compare/v6.12.2...v6.13.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-01-31 19:15:09 +00:00
Transifex-Openfoodnetwork
18d17ec674 Updating translations for config/locales/fr_CA.yml 2020-02-01 04:02:53 +11:00
Transifex-Openfoodnetwork
3981ee7ec1 Updating translations for config/locales/en_CA.yml 2020-02-01 03:54:02 +11:00
Luis Ramos
a0475ee8a4 Merge pull request #4613 from luisramos0/autocomplete
Bring remaining variants autocomplete (and related) JS code from spree_backend
2020-01-31 16:08:50 +00:00
Luis Ramos
4cdc604f45 Merge pull request #4718 from luisramos0/variant_count
Make Order Cycle exchange tab summary not count inventory variants that are hidden
2020-01-31 16:03:21 +00:00
Luis Ramos
dbf44c41b2 Merge pull request #4657 from luisramos0/pi-xls
Remove Product import code for xls suppport
2020-01-31 12:12:25 +00:00
Maikel Linke
9535c5647f Make pluralisation code an independent lib
I considered moving the code to a service but I think that this code
can be completely independent of the Open Food Network use case. It
would be easy to move to a gem. The downcasing may need reconsidering
for general use.
2020-01-31 09:48:32 +11:00
Maikel Linke
6f8bb793e1 Add unit names commonly used in French 2020-01-31 09:48:32 +11:00
Maikel Linke
2476050f29 Remove usage count comments 2020-01-31 09:48:32 +11:00
Maikel Linke
1cce106977 Use our unit name pluralization in Ruby
This code will be used for the shop front and reports.
2020-01-31 09:48:32 +11:00
Maikel Linke
98b55287f1 Pluralize common variant unit names
This adds the most popular unit names as singular and plural to our
locale for translation. The added Javascript performs a reverse lookup
to find the right singular/plural form of a unit name in that language.
2020-01-31 09:48:32 +11:00
dependabot-preview[bot]
25c4aed368 Bump rack-mini-profiler from 1.1.4 to 1.1.6
Bumps [rack-mini-profiler](https://github.com/MiniProfiler/rack-mini-profiler) from 1.1.4 to 1.1.6.
- [Release notes](https://github.com/MiniProfiler/rack-mini-profiler/releases)
- [Changelog](https://github.com/MiniProfiler/rack-mini-profiler/blob/master/CHANGELOG.md)
- [Commits](https://github.com/MiniProfiler/rack-mini-profiler/compare/v1.1.4...v1.1.6)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-01-30 19:28:45 +00:00
dependabot-preview[bot]
c5a6ef673c Bump oj from 3.10.1 to 3.10.2
Bumps [oj](https://github.com/ohler55/oj) from 3.10.1 to 3.10.2.
- [Release notes](https://github.com/ohler55/oj/releases)
- [Changelog](https://github.com/ohler55/oj/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/ohler55/oj/compare/v3.10.1...v3.10.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-01-30 19:26:07 +00:00
Transifex-Openfoodnetwork
79ba15fe9a Updating translations for config/locales/en_GB.yml 2020-01-31 03:53:48 +11:00
Kristina Lim
f797745848 Update all locales with the latest Transifex translations 2020-01-30 23:01:02 +08:00
Luis Ramos
25fae17677 Update Copyright to include year 2020 2020-01-30 14:44:31 +00:00
Kristina Lim
8ae6048202 Merge pull request #4720 from openfoodfoundation/transifex
Transifex
2020-01-30 22:40:47 +08:00
Luis Ramos
768631a90a Merge pull request #4616 from luisramos0/orders_js
Bring some JS and CSS code from spree_backend related to orders admin
2020-01-30 11:37:07 +00:00
luisramos0
d472ceafcc Add required dependencies from spree_backend 2020-01-30 11:36:09 +00:00
luisramos0
9a52a127a4 Add js code needed in the product images page 2020-01-30 11:36:09 +00:00
luisramos0
c20a41111c Bring some css needed in payments list and product edit page and add image for the credit cards in the payments page as well 2020-01-30 11:36:09 +00:00
luisramos0
fd26500ca4 Add orders css for the orders edit page 2020-01-30 11:36:09 +00:00
luisramos0
4f0e441407 Bring and require responsive-tables js and css from spree_backend 2020-01-30 11:36:09 +00:00
Luis Ramos
37a5d1d036 Merge pull request #4628 from luisramos0/be_fontawesome
Bring fontawesome font and associated css from spree_backend
2020-01-30 11:21:35 +00:00
Luis Ramos
c4f7588601 Merge pull request #4608 from luisramos0/power_tip
Bring powertip from spree_backend, including js and css
2020-01-30 11:20:37 +00:00
Luis Ramos
6509c6f7b5 Merge pull request #4588 from luisramos0/base_helper
Bring base helper from spree_backend
2020-01-30 11:18:35 +00:00
Kristina Lim
5aadd444aa Merge pull request #4721 from openfoodfoundation/dependabot/bundler/rubocop-rails-2.4.2
Bump rubocop-rails from 2.4.1 to 2.4.2
2020-01-30 19:04:24 +08:00
Kristina Lim
278284583f Merge pull request #4735 from mkllnk/4729-init-taxon-dropdown
Activate Foundation's dropdowns after tab switch
2020-01-30 19:00:30 +08:00
luisramos0
e192207f4e Fix bug in before filters migration, needs to load payment for the show action 2020-01-30 10:27:26 +00:00
Maikel Linke
b63042236d Activate Foundation's dropdowns after tab switch
If the dropdown doesn't exist during page load, Foundation misses it. We
need to initialise it again.
2020-01-30 17:02:23 +11:00
dependabot-preview[bot]
48a75c956f Bump oauth2 from 1.4.2 to 1.4.3
Bumps [oauth2](https://github.com/oauth-xx/oauth2) from 1.4.2 to 1.4.3.
- [Release notes](https://github.com/oauth-xx/oauth2/releases)
- [Changelog](https://github.com/oauth-xx/oauth2/blob/master/CHANGELOG.md)
- [Commits](https://github.com/oauth-xx/oauth2/compare/v1.4.2...v1.4.3)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-01-29 19:24:24 +00:00
lin-d-hop
baf1ecb436 Fixing incorrect payment and balance calculation
Corrections and added specs
2020-01-29 16:06:06 +00:00
Transifex-Openfoodnetwork
32f7a74df7 Updating translations for config/locales/en_NZ.yml 2020-01-29 15:43:31 +11:00
luisramos0
3e68dc5bb2 Extract some methods from base_helper to zones_helper to make it explicit they are only used in the zones admin pages 2020-01-28 18:05:30 +00:00
luisramos0
919242d9ec Fix rubocop issues in spree/admin/base_helper 2020-01-28 18:05:15 +00:00
luisramos0
844731061c Add needed generic partials 2020-01-28 18:04:36 +00:00
luisramos0
109f2866ae Merge base_helper with decorator 2020-01-28 18:04:36 +00:00
luisramos0
76eafa8415 Bring base_helper from spree_backend 2020-01-28 18:04:36 +00:00
luisramos0
947914724a Add frozen string literal magic comment 2020-01-28 18:02:58 +00:00
luisramos0
b5004f1cbf Add specs for ExchangeProductsRenderer#exchange_variants 2020-01-28 18:02:58 +00:00
luisramos0
4596399bc2 Extract logic from controller to renderer service
Re-using the filter_visible method for both products and variants
2020-01-28 18:02:58 +00:00
luisramos0
685abccb61 Make variant count consider oc config and not count variants that are hidden in the inventory of the coordinator of the OC 2020-01-28 18:02:58 +00:00
Luis Ramos
5e61ba8136 Merge pull request #4587 from luisramos0/navigation_helper
Bring navigation helper from spree_backend
2020-01-28 17:58:18 +00:00
luisramos0
f3447e3a96 Move dependency statement to powertip.css 2020-01-28 14:07:46 +00:00
luisramos0
3d0a31e838 Bring dependencies from spree_backend required by powertip 2020-01-28 14:07:46 +00:00
luisramos0
26bb8cc337 Bring powertip from spree_backend, including js and css 2020-01-28 14:07:45 +00:00
luisramos0
9254928656 Remove underscore from product_autocomplete css file 2020-01-28 13:53:04 +00:00
luisramos0
228997c35b Add handlebars dependency from spree_backend 2020-01-28 13:53:04 +00:00
luisramos0
667f44336d Remove unused split logic from variant autocomplete, the split functionality is not used in ofn because we only have one stock location 2020-01-28 13:53:04 +00:00
luisramos0
0a136ff2fb Comment out click event registration as this will duplicate events until the spree_backend code is there
These can be activated when spree_backend is removed
2020-01-28 13:53:04 +00:00
luisramos0
3f3577e73c Remove encoding tag from admin/spree/orders js files 2020-01-28 13:53:04 +00:00
luisramos0
cf1664bed3 Bring some variant autocomplete styling from spree_backend 2020-01-28 13:53:04 +00:00
luisramos0
b8aee4e857 Bring address_states as is from spre_backend 2020-01-28 13:53:04 +00:00
luisramos0
cfe3435851 Bring shipments.js as is from spree_backend 2020-01-28 13:53:04 +00:00
luisramos0
53e342ba1a Bring variant_autocomplete from spree_backend as is 2020-01-28 13:53:04 +00:00
luisramos0
6bdb14248c Require lodash.underscore to support _. calls in js
spree_backend relies on Underscore.js 1.4.4, from Jan 2013, in some auto complete functions, here we will be depending on Lo-Dash 2.4.1, from Dec 2013
2020-01-28 13:53:03 +00:00
luisramos0
8e27291b15 require handlebars extensions from spree_core to allow translations inside handlebar templates 2020-01-28 13:52:19 +00:00
Luis Ramos
a6ade31604 Merge pull request #4607 from luisramos0/legacy_browsers_support
Remove unused js dependencies (jquery-migrate-1.0.0 and timeago) and bring some legacy browsers support dependencies from spree_backend
2020-01-28 12:49:38 +00:00
Luis Ramos
b348552cdf Merge pull request #4651 from mkllnk/remove-unused-presenter
Remove unused presenter
2020-01-28 09:52:01 +00:00
Maikel Linke
ec67736dff Bump Code Climate's Rubocop version to their latest
Our used version is still higher than that.
2020-01-28 17:12:28 +11:00
Maikel
bd8af40afb Merge pull request #4691 from Matt-Yorkley/codeclimate-scss
Disable two codeclimate SCSS rules
2020-01-28 11:00:46 +11:00
dependabot-preview[bot]
54d2228a03 Bump rubocop-rails from 2.4.1 to 2.4.2
Bumps [rubocop-rails](https://github.com/rubocop-hq/rubocop-rails) from 2.4.1 to 2.4.2.
- [Release notes](https://github.com/rubocop-hq/rubocop-rails/releases)
- [Changelog](https://github.com/rubocop-hq/rubocop-rails/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rubocop-hq/rubocop-rails/compare/v2.4.1...v2.4.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-01-27 19:33:28 +00:00
Transifex-Openfoodnetwork
3b0bec3c0f Updating translations for config/locales/en_FR.yml 2020-01-27 23:37:03 +11:00
Transifex-Openfoodnetwork
2a3e8db560 Updating translations for config/locales/fr.yml 2020-01-27 23:36:31 +11:00
Transifex-Openfoodnetwork
d6d3e5fb5a Updating translations for config/locales/ar.yml 2020-01-27 09:51:47 +11:00
Luis Ramos
d7bb063a30 Merge pull request #4716 from CSCI-462-01-2020/Issue4412
Change in English locale to add "end" term
2020-01-25 10:22:29 +00:00
Luis Ramos
c7d8e96beb Merge pull request #4699 from mkllnk/4696-rescue-checkout
Rescue unknown checkout errors
2020-01-24 18:11:38 +00:00
luisramos0
a6d4774a93 Bring font-awesome from spree_backend 2020-01-24 17:52:11 +00:00
luisramos0
7cd710622e Bring fontawesome css from spree_backend 2020-01-24 17:52:11 +00:00
Pau Pérez Fabregat
529265697c Merge pull request #4715 from openfoodfoundation/transifex
Transifex
2020-01-24 13:31:08 +01:00
Pau Pérez Fabregat
690f18c58c Merge pull request #4653 from Matt-Yorkley/db2fog_region
Db2fog region
2020-01-24 13:30:11 +01:00
Luis Ramos
1b9c020bee Merge pull request #4650 from tomekr/docker-rspec-fix
Docker rspec fix
2020-01-24 12:24:50 +00:00
Luis Ramos
af3ac703a5 Merge pull request #4717 from openfoodfoundation/dependabot/bundler/ddtrace-0.32.0
Bump ddtrace from 0.31.1 to 0.32.0
2020-01-24 12:23:51 +00:00
dependabot-preview[bot]
1d8fce09b6 Bump ddtrace from 0.31.1 to 0.32.0
Bumps [ddtrace](https://github.com/DataDog/dd-trace-rb) from 0.31.1 to 0.32.0.
- [Release notes](https://github.com/DataDog/dd-trace-rb/releases)
- [Changelog](https://github.com/DataDog/dd-trace-rb/blob/master/CHANGELOG.md)
- [Commits](https://github.com/DataDog/dd-trace-rb/compare/v0.31.1...v0.32.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-01-23 19:17:08 +00:00
luisramos0
904c85c5be Move css import to ie hacks file where it's needed 2020-01-23 19:01:52 +00:00
Transifex-Openfoodnetwork
c129af88d4 Updating translations for config/locales/en_FR.yml 2020-01-24 05:53:03 +11:00
Transifex-Openfoodnetwork
ca1e6744ad Updating translations for config/locales/fr.yml 2020-01-24 05:52:29 +11:00
Unknown
a101c5c507 Change in English locale to add "end"
The "end" term is used in the _date_range_form, but there is no entry in the English locale. Added so that it can start being translated with Transifex.
2020-01-23 12:56:07 -05:00
Transifex-Openfoodnetwork
d9672a0032 Updating translations for config/locales/en_GB.yml 2020-01-24 02:55:07 +11:00
Matt-Yorkley
7e7eb67e0a Merge pull request #4714 from luisramos0/fix_permissions_load_problem
Add require to fix loading issue. Some other Permissions module was being loaded
2020-01-23 15:56:27 +01:00
luisramos0
a5f222b067 Bring css_browser_selector_dev from spree_backend and respective hacks 2020-01-23 14:45:35 +00:00
luisramos0
0ec39106b1 Bring modernizr from spree_backend 2020-01-23 14:45:35 +00:00
luisramos0
c59afd4951 Remove jquery-migrate-1.0.0, we already have jquery-migrate 1.2.1 (jquery-migrate-min) through gemfile jquery-migrate-rails 2020-01-23 14:45:35 +00:00
luisramos0
2c59b522de Reorganize admin/all.js in meaningful groups 2020-01-23 14:45:35 +00:00
luisramos0
337fbf1be9 Remove unused JS dependency timeago, we use momentjs now 2020-01-23 14:45:35 +00:00
luisramos0
1548eaeb7e Add frozen_string_literal magic comment 2020-01-23 14:42:19 +00:00
luisramos0
ee3c9563d8 Add all submenus entries to the main tabs list so that the main menu keeps selected when user selects the submenus 2020-01-23 14:31:25 +00:00
luisramos0
4b0ddcda01 Add require to fix loading issue. Some other Permissions module was being loaded 2020-01-23 11:42:10 +00:00
Luis Ramos
f5adf6a9d7 Merge pull request #4697 from mkllnk/4457-line-item-spec
Stabilise spec by not creating noise data
2020-01-23 11:35:34 +00:00
Matt-Yorkley
86231672a6 Merge pull request #4703 from openfoodfoundation/daniellemoorhead-patch-1
Updated shopfront message placeholder for home tab
2020-01-23 12:32:08 +01:00
Luis Ramos
e47bd019a1 Merge pull request #4656 from mkllnk/config
Use strings for all environment variables
2020-01-23 11:07:17 +00:00
Matt-Yorkley
0011caccc6 Update all locales with the latest Transifex translations 2020-01-23 11:45:58 +01:00
Matt-Yorkley
ad5a599ddf Merge pull request #4710 from openfoodfoundation/transifex
Transifex
2020-01-23 11:37:10 +01:00
Luis Ramos
43d7609b81 Merge pull request #4707 from Matt-Yorkley/mobile-checkout-tabs
Remove tabs from cart and checkout
2020-01-23 10:19:50 +00:00
Transifex-Openfoodnetwork
56d17bca6a Updating translations for config/locales/nb.yml 2020-01-23 19:43:37 +11:00
Transifex-Openfoodnetwork
7f4e53f411 Updating translations for config/locales/fr.yml 2020-01-23 19:41:23 +11:00
Transifex-Openfoodnetwork
bd16b80d5f Updating translations for config/locales/en_FR.yml 2020-01-23 19:38:34 +11:00
Transifex-Openfoodnetwork
c8a1f9b93c Updating translations for config/locales/fr.yml 2020-01-23 19:38:12 +11:00
Maikel
9a8cd60d5a Merge pull request #4694 from Matt-Yorkley/rails-4-prep-routes
Rails 4 prep: spree routes
2020-01-23 17:42:37 +11:00
Maikel
4d11dced39 Merge pull request #4687 from openfoodfoundation/dependabot/bundler/ddtrace-0.31.1
Bump ddtrace from 0.31.0 to 0.31.1
2020-01-23 16:35:38 +11:00
Maikel Linke
bd67d63b63 Restore payment error feedback 2020-01-23 16:20:07 +11:00
Maikel Linke
6763012ee9 Rescue unknown checkout errors 2020-01-23 16:20:07 +11:00
Maikel
de2f09db75 Merge pull request #4698 from openfoodfoundation/transifex
Transifex
2020-01-23 15:59:36 +11:00
Luis Ramos
494cb00774 Merge pull request #4585 from luisramos0/backend_partial_calc_fields
Bring spree_backend calculator fields partial to OFN
2020-01-22 20:27:10 +00:00
Luis Ramos
d782bea458 Merge pull request #4633 from luisramos0/fix_prod_link_bug
Fix bug in frontoffice order details where the product image was a broken link
2020-01-22 20:25:24 +00:00
luisramos0
766303b332 Add required payment_helper from spree_backend 2020-01-22 20:22:28 +00:00
luisramos0
74226fbdf8 Fix one rubocop issue and update rubocop todo manual for the new controller 2020-01-22 20:22:28 +00:00
luisramos0
dc5374e284 Merge filter_payment_methods and load_data 2020-01-22 20:21:21 +00:00
luisramos0
f6ecf57737 Make before filters easier to understand using the fact that there are only index, create, new and fire actions in this controller 2020-01-22 20:21:21 +00:00
luisramos0
940953b043 Add missing translations for payments 2020-01-22 20:21:21 +00:00
luisramos0
fbc5887fa6 Bring payments routes from spree_backend 2020-01-22 20:21:21 +00:00
luisramos0
61ce849546 Merge spree/admin/payments_controller with its decorator and fix a few rubocop issues 2020-01-22 20:21:21 +00:00
luisramos0
afddaed9fc Add empty but needed payments templates for check payment method 2020-01-22 20:21:21 +00:00
luisramos0
12158d73fa Add payments_controller from spree_backend so that we can now merge it with the OFN's decorator 2020-01-22 20:21:21 +00:00
Matt-Yorkley
5f3abbf00e Refactor BaseController 2020-01-22 12:17:23 +01:00
Matt-Yorkley
a02c58e231 Add join_table to enterprise groups relation
has_and_belongs_to_many relationships now require a join_table
2020-01-22 12:17:23 +01:00
Matt-Yorkley
59ebfb9bd4 Fix subquery errors triggered by #warn_invalid_order_cycles 2020-01-22 12:17:23 +01:00
Matt-Yorkley
57ca1d54bb Fix issue with each_serializer not being called in some cases in Rails 4. 2020-01-22 12:17:23 +01:00
Matt-Yorkley
444747c8b2 Split shopping_shared/details partial into header and tabs partials and only include tabs in shop page (not cart and checkout). 2020-01-22 11:30:43 +01:00
Danni M
95f51e2db9 Updated shopfront message placeholder
Change required now that there is a home tab instead of a green shopfront message.

>An optional message to welcome customers and explain how to shop with you. If text is entered here it will be displayed in a home tab when customers first arrive at your shopfront.
2020-01-22 14:24:20 +11:00
Transifex-Openfoodnetwork
0463e05296 Updating translations for config/locales/pt_BR.yml 2020-01-22 10:35:12 +11:00
Transifex-Openfoodnetwork
f176e2ba91 Updating translations for config/locales/pt_BR.yml 2020-01-22 10:32:03 +11:00
luisramos0
cccff6b500 Remove unused methods from navigation helper 2020-01-21 22:51:23 +00:00
luisramos0
b4e6c5307e Convert orders submenu partial to haml 2020-01-21 22:51:23 +00:00
luisramos0
fb4f96eb4a Remove unused submenu entries from _tabs partial and convert hash syntax 2020-01-21 22:51:23 +00:00
luisramos0
27572cbe68 Remove alias_method klass_for_with_sym_fallback 2020-01-21 22:49:55 +00:00
luisramos0
8a912d6f02 Remove redundant method tab_with_cancan_check
This was introduced to work with previous versions of spree
2020-01-21 22:49:55 +00:00
luisramos0
cd7f97b01d Fix rubocop issues in nav helper 2020-01-21 22:49:55 +00:00
luisramos0
1b18595d94 Merge navigator_helper with decorator 2020-01-21 22:49:55 +00:00
Maikel Linke
30888a9e59 Stabilise spec by not creating noise data
We were using a more complex order factory that created more data than
we needed. The order contained a second line item and therefor the
manifest had two items as well. Sometimes we would pick the wrong one.
2020-01-22 09:49:37 +11:00
luisramos0
8987121058 Add navigation helper from spree_backend 2020-01-21 22:48:44 +00:00
Luis Ramos
6bb4f2477c Merge pull request #4586 from luisramos0/states_erb
Make states/new.js template depend on the states/new.haml template in OFN (not the states/new.erb in spree)
2020-01-21 22:47:28 +00:00
Matt-Yorkley
cca824f207 Ensure routes declared with match specify a method 2020-01-20 17:32:00 +01:00
Matt-Yorkley
147f7d4850 Separate non-report routes from reports route list for clarity 2020-01-20 17:30:46 +01:00
Matt-Yorkley
8024dcec64 Merge double Spree routes declarations into one
The app has a lot of problems with this in Rails 4
2020-01-20 17:27:26 +01:00
Matt-Yorkley
dfee9b6c6b Relax two codeclimate SCSS rules 2020-01-20 15:08:20 +01:00
Luis Ramos
1c3fd26eef Merge pull request #4655 from Matt-Yorkley/mobile-shoptabs
Mobile: shop tabs
2020-01-20 08:51:59 +00:00
Matt-Yorkley
f8145f8429 Update shop tab button styling in mobile 2020-01-19 15:59:37 +01:00
Matt-Yorkley
a1256f9aeb Remove old green box styling from shopfront messages 2020-01-19 15:57:01 +01:00
dependabot-preview[bot]
094c175a64 Bump ddtrace from 0.31.0 to 0.31.1
Bumps [ddtrace](https://github.com/DataDog/dd-trace-rb) from 0.31.0 to 0.31.1.
- [Release notes](https://github.com/DataDog/dd-trace-rb/releases)
- [Changelog](https://github.com/DataDog/dd-trace-rb/blob/v0.31.1/CHANGELOG.md)
- [Commits](https://github.com/DataDog/dd-trace-rb/compare/v0.31.0...v0.31.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-01-17 19:14:25 +00:00
Luis Ramos
dd9f2a063f Merge pull request #4682 from openfoodfoundation/dependabot/bundler/mini_racer-0.2.9
Bump mini_racer from 0.2.4 to 0.2.9
2020-01-17 13:36:02 +00:00
Luis Ramos
4973bcb9b6 Merge pull request #4677 from openfoodfoundation/dependabot/bundler/oj-3.10.1
Bump oj from 3.10.0 to 3.10.1
2020-01-17 13:14:15 +00:00
Maikel
9ee701bec1 Merge pull request #4683 from openfoodfoundation/dependabot/bundler/webmock-3.8.0
Bump webmock from 3.7.6 to 3.8.0
2020-01-17 09:14:50 +11:00
Maikel
e2469ded9a Merge pull request #4680 from openfoodfoundation/transifex
Transifex
2020-01-17 09:03:10 +11:00
dependabot-preview[bot]
eaa914a360 Bump webmock from 3.7.6 to 3.8.0
Bumps [webmock](https://github.com/bblimke/webmock) from 3.7.6 to 3.8.0.
- [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.7.6...v3.8.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-01-16 19:19:26 +00:00
dependabot-preview[bot]
ea2fa9913d Bump mini_racer from 0.2.4 to 0.2.9
Bumps [mini_racer](https://github.com/discourse/mini_racer) from 0.2.4 to 0.2.9.
- [Release notes](https://github.com/discourse/mini_racer/releases)
- [Changelog](https://github.com/rubyjs/mini_racer/blob/master/CHANGELOG)
- [Commits](https://github.com/discourse/mini_racer/compare/v0.2.4...v0.2.9)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-01-16 19:15:52 +00:00
Matt-Yorkley
b69b5ea81a Merge pull request #4678 from mkllnk/4490-tag-rules-spec
4490 tag rules spec
2020-01-16 14:28:37 +01:00
Luis Ramos
18b3a8122d Merge pull request #4508 from luisramos0/backend_ctrl_prods_vars
Bring spree_backend products and variants controllers to OFN
2020-01-16 13:01:31 +00:00
luisramos0
1e203ae419 Remove destroy with js format in variants controller, we dont use this endpoint in OFN and it avoids having to bring additional code from spree_backend 2020-01-16 11:59:36 +00:00
luisramos0
70a24b25e2 Update rubocop manual todo and Remove some unnecessary comments 2020-01-16 11:59:36 +00:00
luisramos0
f7490ae28b Remove unused stock and destroy actions and bring product routes from spree_backend 2020-01-16 11:58:59 +00:00
luisramos0
836abbec92 Fix rubocop issues in variant controller 2020-01-16 11:58:59 +00:00
luisramos0
d153237b69 Merge variants decorator with controller 2020-01-16 11:58:59 +00:00
luisramos0
56b6bf82bb Fix some rubocop issues 2020-01-16 11:58:59 +00:00
luisramos0
0d44f298fe Merge spree/admin/products_controller with its decorator 2020-01-16 11:58:59 +00:00
luisramos0
ff3611f52a Add variants_controller from spree_backend so that we can now merge it with the OFN's decorator 2020-01-16 11:58:59 +00:00
luisramos0
7fa9b4699c Add products_controller from spree_backend so that we can now merge it with the OFN's decorator 2020-01-16 11:58:59 +00:00
luisramos0
138248e1c9 Product import only works with csv right now. Here we remove dead code
This can be reverted if we start suppporting xls and ods in the future
2020-01-16 09:59:27 +00:00
Transifex-Openfoodnetwork
3dadb7f91c Updating translations for config/locales/en_GB.yml 2020-01-16 20:12:18 +11:00
Transifex-Openfoodnetwork
dd5c867298 Updating translations for config/locales/en_GB.yml 2020-01-16 20:09:10 +11:00
Transifex-Openfoodnetwork
918a0f053d Updating translations for config/locales/ar.yml 2020-01-16 18:25:27 +11:00
Transifex-Openfoodnetwork
2171125e85 Updating translations for config/locales/ar.yml 2020-01-16 18:22:18 +11:00
Transifex-Openfoodnetwork
5d0cb3549a Updating translations for config/locales/ar.yml 2020-01-16 18:19:07 +11:00
Maikel Linke
12fde5b9fc Update all locales with the latest Transifex translations 2020-01-16 15:28:57 +11:00
Maikel Linke
6b18d4a60c Avoid false positives in specs
When switching from one tab to another, a `have_no_selector` check could
match because the new tab hasn't loaded yet. Now we use that check after
we verified other content on the new tab.
2020-01-16 15:10:25 +11:00
Maikel Linke
4d53f47d88 Leave tag rules spec in clean state 2020-01-16 15:10:25 +11:00
Maikel Linke
3a9aaf6764 Wait for the first enterprise tab to be loaded 2020-01-16 15:10:25 +11:00
Maikel Linke
42aa15767e DRY navigating to Tag Rules section 2020-01-16 15:10:25 +11:00
Maikel
0da6275d41 Merge pull request #4675 from Matt-Yorkley/rails-4-prep-3
Rails 4 prep continued
2020-01-16 15:08:11 +11:00
Maikel
52d2d1d23c Merge pull request #4668 from Matt-Yorkley/rails-4-prep-2
Rails 4 prep: admin dashboard route
2020-01-16 14:16:32 +11:00
Maikel
4dfc020eaa Merge pull request #4666 from openfoodfoundation/transifex
Transifex
2020-01-16 12:10:12 +11:00
Maikel
8ef52f97e5 Merge pull request #4665 from openfoodfoundation/dependabot/bundler/selenium-webdriver-3.142.7
Bump selenium-webdriver from 3.142.6 to 3.142.7
2020-01-16 12:09:29 +11:00
Maikel
68a7f547b1 Merge pull request #4664 from openfoodfoundation/dependabot/bundler/test-unit-3.3.5
Bump test-unit from 3.3.4 to 3.3.5
2020-01-16 12:08:51 +11:00
Maikel
7a0f2d47a3 Merge pull request #4660 from openfoodfoundation/dependabot/bundler/activerecord-import-1.0.4
Bump activerecord-import from 1.0.3 to 1.0.4
2020-01-16 12:06:15 +11:00
Luis Ramos
4affd01b7b Merge pull request #4627 from luisramos0/mini_racer
Update libv8 and keep it only in Gemfile.lock as a dependency of mini_racer
2020-01-15 22:25:25 +00:00
Luis Ramos
0432c73f19 Merge pull request #4510 from luisramos0/backend_ctrl_resource
Bring spree_backend resource controller to OFN
2020-01-15 22:22:24 +00:00
dependabot-preview[bot]
6163661610 Bump oj from 3.10.0 to 3.10.1
Bumps [oj](https://github.com/ohler55/oj) from 3.10.0 to 3.10.1.
- [Release notes](https://github.com/ohler55/oj/releases)
- [Changelog](https://github.com/ohler55/oj/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/ohler55/oj/compare/v3.10.0...v3.10.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-01-15 19:15:31 +00:00
Matt-Yorkley
103902c006 Replace deprecated arguments in #find_by
Failure/Error: enterprise = Enterprise.find_by(name: enterprise_name, select: 'id, is_primary_producer')

       ActiveRecord::StatementInvalid:
         PG::UndefinedColumn: ERROR:  column enterprises.select does not exist
         LINE 1: ...HERE "enterprises"."name" = 'User Enterprise' AND "enterpris...
         : SELECT  "enterprises".* FROM "enterprises"  WHERE "enterprises"."name" = 'User Enterprise' AND "enterprises"."select" = 'id, is_primary_producer' LIMIT 1
       # ./app/models/product_import/spreadsheet_data.rb:48:in `block in create_enterprises_index'
       # ./app/models/product_import/spreadsheet_data.rb:43:in `each'
2020-01-15 16:39:33 +01:00
Matt-Yorkley
d2933e35f1 Explicitly require Spree::Admin::BaseHelper
NameError: undefined method `preference_field_tag' for module `Spree::Admin::BaseHelper'
/home/runner/openfoodnetwork/vendor/bundle/ruby/2.3.0/gems/activesupport-4.0.13/lib/active_support/core_ext/module/aliasing.rb:32:in `alias_method'
/home/runner/openfoodnetwork/vendor/bundle/ruby/2.3.0/gems/activesupport-4.0.13/lib/active_support/core_ext/module/aliasing.rb:32:in `alias_method_chain'
/home/runner/openfoodnetwork/app/helpers/spree/admin/base_helper_decorator.rb:11:in `<module:BaseHelper>'
/home/runner/openfoodnetwork/app/helpers/spree/admin/base_helper_decorator.rb:3:in `<module:Admin>'
2020-01-15 13:07:50 +01:00
Matt-Yorkley
0b5e341ae7 Explicitly require Spree::Admin::NavigationHelper
NameError: undefined method `klass_for' for module `Spree::Admin::NavigationHelper'
/home/runner/openfoodnetwork/vendor/bundle/ruby/2.3.0/gems/activesupport-4.0.13/lib/active_support/core_ext/module/aliasing.rb:32:in `alias_method'
/home/runner/openfoodnetwork/vendor/bundle/ruby/2.3.0/gems/activesupport-4.0.13/lib/active_support/core_ext/module/aliasing.rb:32:in `alias_method_chain'
/home/runner/openfoodnetwork/app/helpers/spree/admin/navigation_helper_decorator.rb:18:in `<module:NavigationHelper>'
2020-01-15 13:07:46 +01:00
Matt-Yorkley
7d36c3b5aa Make some private methods public in orders_and_fulfillments_report.rb
Fixes errors for "call to private method ..."
2020-01-15 13:05:36 +01:00
Matt-Yorkley
d511763733 Replace deprecated #in? method 2020-01-15 12:57:38 +01:00
Matt-Yorkley
a059c11d0f Update post/delete calls in credit_cards_controller_spec.rb
ActionController::UrlGenerationError:
       No route matches {:action=>"new_from_token", :cc_type=>"visa", :controller=>"spree/credit_cards", :exp_month=>12, :exp_year=>2020, :format=>:json, :last4=>4242, :token=>"tok_234bd2c22"}
     # ./spec/controllers/spree/credit_cards_controller_spec.rb:36:in `block (5 levels) in <top (required)>'
     # ./spec/controllers/spree/credit_cards_controller_spec.rb:36:in `block (4 levels) in <top (required)>'
2020-01-15 12:57:38 +01:00
Matt-Yorkley
cecc19ae1d Add recommended paper_trail config
DEPRECATION WARNING: PaperTrail.track_associations has not been set. As of PaperTrail 5, it defaults to false. Tracking associations is an experimental feature so we recommend setting PaperTrail.config.track_associations = false in your config/initializers/paper_trail.rb . (called from block (3 levels) in <top (required)> at /home/user/Github/openfoodnetwork/spec/controllers/admin/column_preferences_controller_spec.rb:10)
2020-01-15 12:57:38 +01:00
Matt-Yorkley
d4311a848e Fix default_scope deprecated syntax 2020-01-15 12:57:38 +01:00
Transifex-Openfoodnetwork
d64573f7fd Updating translations for config/locales/nb.yml 2020-01-15 22:29:37 +11:00
Transifex-Openfoodnetwork
a9fe6ec1b5 Updating translations for config/locales/nb.yml 2020-01-15 22:26:30 +11:00
Transifex-Openfoodnetwork
f14bbc5ed9 Updating translations for config/locales/nb.yml 2020-01-15 22:23:20 +11:00
Matt-Yorkley
5ba8efec2c Fix enterprise group spec
EnterpriseGroup.by_position now returns an ActiveRecord::Relation in Rails 4, so in this test case it doesn't respond as an array
2020-01-15 11:19:14 +01:00
Luis Ramos
3bf38b7c08 Merge pull request #4549 from luisramos0/arelize_order_permissions
Use arel in order permissions visible orders and editable orders so that we dont have queries with gigantic IN clauses
2020-01-14 14:24:34 +00:00
Transifex-Openfoodnetwork
a591e0736f Updating translations for config/locales/en_CA.yml 2020-01-14 23:41:38 +11:00
Luis Ramos
3080eb9dfd Merge pull request #4578 from kshlyk/remove_soft_delete_from_product_and_variant_api
Removing duplicate API method soft_delete for both products and variants
2020-01-14 11:32:10 +00:00
Transifex-Openfoodnetwork
ed98a16eec Updating translations for config/locales/fr.yml 2020-01-14 20:18:13 +11:00
Transifex-Openfoodnetwork
7a924bd9ca Updating translations for config/locales/fr.yml 2020-01-14 20:15:05 +11:00
Transifex-Openfoodnetwork
7639e19184 Updating translations for config/locales/en_FR.yml 2020-01-14 20:13:12 +11:00
Transifex-Openfoodnetwork
71aff7e1d2 Updating translations for config/locales/fr.yml 2020-01-14 20:11:56 +11:00
dependabot-preview[bot]
2506667bca Bump selenium-webdriver from 3.142.6 to 3.142.7
Bumps [selenium-webdriver](https://github.com/SeleniumHQ/selenium) from 3.142.6 to 3.142.7.
- [Release notes](https://github.com/SeleniumHQ/selenium/releases)
- [Changelog](https://github.com/SeleniumHQ/selenium/blob/master/rb/CHANGES)
- [Commits](https://github.com/SeleniumHQ/selenium/commits)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-01-13 19:37:48 +00:00
Luis Ramos
f87a553230 Merge pull request #4648 from openfoodfoundation/dependabot/bundler/rubocop-0.79.0
Bump rubocop from 0.68.1 to 0.79.0
2020-01-13 19:35:50 +00:00
Luis Ramos
3171b60d6f Merge pull request #4580 from Matt-Yorkley/order_capture
Use asynchronous requests for order capture and ship actions
2020-01-13 17:14:40 +00:00
Matt-Yorkley
94afc70ea7 Refactor conditionals in contact tab view 2020-01-13 17:14:22 +01:00
Matt-Yorkley
d14d6fe865 Refactor open order cycle checks 2020-01-13 17:11:27 +01:00
Matt-Yorkley
0546acd6f9 Refactor #shop_tabs use and remove #first_visible_tab 2020-01-13 17:05:28 +01:00
Matt-Yorkley
aedaec8365 Improve layout of orders closed message 2020-01-13 17:05:28 +01:00
Matt-Yorkley
d508e7772c Fix angular templates bug
Angular controller data was being partially preserved when switching back and forth between tab templates, causing the ProductsCtrl to hold duplicate datasets when it is re-initialized after going from the shop tab to another tab, then back again.
2020-01-13 17:05:28 +01:00
Matt-Yorkley
43eef0c8c6 Adjust layout for fullwidth enterprise image 2020-01-13 17:05:28 +01:00
Matt-Yorkley
e658893e70 Fix ancient display bug where the order cycle selection popover shows over the top of the floating navigtion bar 2020-01-13 17:05:28 +01:00
Matt-Yorkley
e7d88f0df9 Move "orders closed" message to "shop" tab and adjust "home" tab message display logic 2020-01-13 17:05:28 +01:00
Matt-Yorkley
56223bb960 Improve about tab mobile and tablet display 2020-01-13 17:05:28 +01:00
Matt-Yorkley
17cf099f99 Always keep one shop tab open (don't toggle closed) 2020-01-13 17:05:28 +01:00
Matt-Yorkley
49aacf879f Change row nesting to fix product list layout display issues 2020-01-13 17:05:28 +01:00
Matt-Yorkley
c8c4f3e746 Improve mobile display 2020-01-13 17:05:28 +01:00
Matt-Yorkley
219f6ad78e Select first visible tab on page load if none are specified in the URL 2020-01-13 17:05:27 +01:00
Matt-Yorkley
48f329a716 Rework layout and CSS 2020-01-13 17:05:26 +01:00
Luis Ramos
516398fbd6 Merge pull request #4638 from luisramos0/fix_cart_s2
Replace adjustment.open with adjustment.fire_events(open) to avoid method name conflict
2020-01-13 14:16:56 +00:00
Luis Ramos
4a1b74c136 Merge pull request #4634 from luisramos0/remove_dead_code
Remove some dead code
2020-01-13 11:09:04 +00:00
luisramos0
5fccd5fe58 Add rubocop exception for application controller class length and fix one line length issue 2020-01-12 19:42:07 +00:00
Matt-Yorkley
b9edea7c0e Rename 'admin/overview#index' route from :admin to :admin_dashboard
Fixes issues with route declarations in Rails 4
2020-01-12 13:11:33 +01:00
Transifex-Openfoodnetwork
b9053f9fd2 Updating translations for config/locales/en_NZ.yml 2020-01-12 18:37:55 +11:00
dependabot-preview[bot]
f297cff8c7 Bump test-unit from 3.3.4 to 3.3.5
Bumps [test-unit](https://github.com/test-unit/test-unit) from 3.3.4 to 3.3.5.
- [Release notes](https://github.com/test-unit/test-unit/releases)
- [Commits](https://github.com/test-unit/test-unit/compare/3.3.4...3.3.5)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-01-10 19:17:47 +00:00
Luis Ramos
7563d38b4b Merge pull request #4658 from openfoodfoundation/dependabot/bundler/ddtrace-0.31.0
Bump ddtrace from 0.30.0 to 0.31.0
2020-01-10 10:52:04 +00:00
Luis Ramos
83523a676f Merge pull request #4659 from openfoodfoundation/dependabot/bundler/webdrivers-4.2.0
Bump webdrivers from 4.1.3 to 4.2.0
2020-01-10 10:51:10 +00:00
Maikel Linke
abcfb5ce8d Update Rubocop config for new version
- A couple of cops moved into a different namespace.
- The target ruby version doesn't have to be specified, it's read from
  .ruby-version which has been updated to Ruby 2.3.
- Some files were missing in the todo lists.
2020-01-10 08:59:44 +11:00
Maikel Linke
8ee6d1c320 Add rubocop-rails gem
The rails cops used to be in the rubocop gem itself but moved into their
own gem recently. Our style guide refers to these cops though.
2020-01-10 08:59:44 +11:00
dependabot-preview[bot]
1bc19ad6a4 Bump rubocop from 0.68.1 to 0.79.0
Bumps [rubocop](https://github.com/rubocop-hq/rubocop) from 0.68.1 to 0.79.0.
- [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/v0.68.1...v0.79.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-01-10 08:59:44 +11:00
Maikel
191b8064ed Merge pull request #4629 from openfoodfoundation/dependabot/bundler/unicorn-5.5.2
Bump unicorn from 5.5.1 to 5.5.2
2020-01-10 08:29:17 +11:00
dependabot-preview[bot]
e28274db14 Bump activerecord-import from 1.0.3 to 1.0.4
Bumps [activerecord-import](https://github.com/zdennis/activerecord-import) from 1.0.3 to 1.0.4.
- [Release notes](https://github.com/zdennis/activerecord-import/releases)
- [Changelog](https://github.com/zdennis/activerecord-import/blob/master/CHANGELOG.md)
- [Commits](https://github.com/zdennis/activerecord-import/compare/v1.0.3...v1.0.4)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-01-09 19:16:47 +00:00
Luis Ramos
02dec1d6cd Merge pull request #4649 from tomekr/4623-remove-additional-footeer-links
Remove duplicate footer links
2020-01-09 18:04:30 +00:00
Luis Ramos
df04c837a5 Merge pull request #4631 from Matt-Yorkley/oc_buttons
Increase space for buttons in savebar layout
2020-01-09 17:56:01 +00:00
Luis Ramos
7a6c085b63 Merge pull request #4625 from openfoodfoundation/dependabot/bundler/roo-2.8.2
Bump roo from 2.7.1 to 2.8.2
2020-01-09 17:55:24 +00:00
dependabot-preview[bot]
a4317b70f4 Bump webdrivers from 4.1.3 to 4.2.0
Bumps [webdrivers](https://github.com/titusfortner/webdrivers) from 4.1.3 to 4.2.0.
- [Release notes](https://github.com/titusfortner/webdrivers/releases)
- [Changelog](https://github.com/titusfortner/webdrivers/blob/master/CHANGELOG.md)
- [Commits](https://github.com/titusfortner/webdrivers/compare/v4.1.3...v4.2.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-01-08 19:16:43 +00:00
dependabot-preview[bot]
cb90fb052d Bump ddtrace from 0.30.0 to 0.31.0
Bumps [ddtrace](https://github.com/DataDog/dd-trace-rb) from 0.30.0 to 0.31.0.
- [Release notes](https://github.com/DataDog/dd-trace-rb/releases)
- [Changelog](https://github.com/DataDog/dd-trace-rb/blob/master/CHANGELOG.md)
- [Commits](https://github.com/DataDog/dd-trace-rb/compare/v0.30.0...v0.31.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-01-08 19:15:48 +00:00
Matt-Yorkley
14bcba081d Adapt shopfront_helper to show/hide panels and display new tabs 2020-01-08 14:50:27 +01:00
Matt-Yorkley
fa0b365b28 Move "shop messages" and product list from main view into new "Home" and "Shop" tabs 2020-01-08 13:26:21 +01:00
Matt-Yorkley
673c587c3b Move tab templates to their own directory for clarity 2020-01-08 13:26:21 +01:00
Luis Ramos
18e5f9ba64 Merge pull request #4647 from jeduardo824/remove-groups-tab
remove group link from shop menu when there are no groups
2020-01-08 11:44:51 +00:00
Luis Ramos
e9a5b889de Merge pull request #4606 from cyrillefr/lone-hub-checked-by-default-4428
Select by default single Hub/Shop option on creation of payment/shipping method
2020-01-08 11:44:16 +00:00
Luis Ramos
cc57b0c200 Merge pull request #4609 from openfoodfoundation/dependabot/bundler/excon-0.71.1
[Security] Bump excon from 0.62.0 to 0.71.1
2020-01-08 09:49:13 +00:00
Maikel
a8040e986d Merge pull request #4626 from openfoodfoundation/dependabot/bundler/i18n-js-3.5.1
Bump i18n-js from 3.5.0 to 3.5.1
2020-01-08 17:58:53 +11:00
Maikel
2269f824c0 Merge pull request #4637 from openfoodfoundation/transifex
Transifex
2020-01-08 17:56:37 +11:00
Maikel Linke
bec73adc89 Restore file logging for custom format logger
The new custom logger was directed to stdout instead of a file.
2020-01-08 15:06:19 +11:00
luisramos0
23ec66e338 Add timestamp to Rails logger in staging and prod so that info in logs can be accurately compared with data in the DB 2020-01-08 15:05:55 +11:00
Maikel Linke
b14193b6b7 Use strings for all environment variables
Figaro complained:

  WARNING: Use strings for Figaro configuration. 25 was converted to "25".
  WARNING: Use strings for Figaro configuration. 4 was converted to "4".

Those numbers have been converted to strings in our example config.
2020-01-08 12:14:23 +11:00
Eduardo
c45a3c2303 remove group tabs from shop view when there are no groups 2020-01-07 11:24:46 -03:00
Matt-Yorkley
e06449aee3 Allow specifying an alternate region for db2fog backups 2020-01-07 12:29:42 +01:00
Matt-Yorkley
f4f05922ae Update outdated link to gem documentation 2020-01-07 12:26:24 +01:00
Maikel Linke
3204d0b37c Remove unused presenter
The usage of this presenter got removed seven years ago:
c5d031a6d7
2020-01-07 17:30:42 +11:00
Tomek Rabczak
8df0e2c66e Move db:test:prepare task after db:reset is run 2020-01-06 16:37:52 -06:00
Tomek Rabczak
0ec0d3fd81 Install Chrome and Chromedriver 2020-01-06 16:37:23 -06:00
Tomek Rabczak
8a0ffe1890 Add imagemagick and unzip packages 2020-01-06 16:37:02 -06:00
Tomek Rabczak
1327d80446 fixup: Revert non en.yml locale changes as they are generated via transifex 2020-01-06 16:33:36 -06:00
Tomek Rabczak
43a3ac0a7b Remove no longer used locales 2020-01-06 13:56:35 -06:00
Tomek Rabczak
b948312de7 Remove additional footer links 2020-01-06 13:47:54 -06:00
Transifex-Openfoodnetwork
7063de4734 Updating translations for config/locales/fr_CA.yml 2020-01-04 06:22:08 +11:00
Transifex-Openfoodnetwork
56c1a9cca2 Updating translations for config/locales/fr_CA.yml 2020-01-04 06:19:02 +11:00
Transifex-Openfoodnetwork
9555bfcc93 Updating translations for config/locales/fr.yml 2020-01-04 06:17:34 +11:00
Transifex-Openfoodnetwork
e455a47135 Updating translations for config/locales/fr.yml 2020-01-04 06:14:27 +11:00
Transifex-Openfoodnetwork
e15e71a3a7 Updating translations for config/locales/en_CA.yml 2020-01-04 06:07:34 +11:00
Matt-Yorkley
91d959b7d6 Remove "previous" button from order cycle savebar 2020-01-03 16:25:26 +01:00
luisramos0
108f57a705 Replace adjustment.open with adjustment.fire_events(open) to avoid method name conflict 2020-01-02 16:58:11 +00:00
Transifex-Openfoodnetwork
af42159e09 Updating translations for config/locales/en_GB.yml 2020-01-03 01:37:14 +11:00
Transifex-Openfoodnetwork
8e55c39ca0 Updating translations for config/locales/en_GB.yml 2020-01-03 01:34:04 +11:00
luisramos0
6cfb060184 Update all locales with the latest Transifex translations 2020-01-02 10:37:13 +00:00
Luis Ramos
0cfb7269c8 Merge pull request #4596 from openfoodfoundation/transifex
Transifex
2020-01-02 10:34:20 +00:00
luisramos0
cbec495620 Fix some rubocop issues in order_and_distributor_report 2019-12-29 19:01:44 +00:00
luisramos0
55eea21bb0 Adapt order_and_distributor_report to the new editable_orders query 2019-12-29 19:01:44 +00:00
luisramos0
f63c7cf54f Extract visible_orders_where_values to a private method 2019-12-29 19:01:44 +00:00
luisramos0
13633e8bea Use arel in order permissions visible orders and editable orders so that we dont have queries with gigantic IN clauses
The | operators here were converting the relations to long lists of IDs, in our current particular issue, an IN clause with 100k order_ids
2019-12-29 19:01:44 +00:00
luisramos0
4658b7a533 Fix rubocop issues in app/controllers/application_controller 2019-12-28 19:10:02 +00:00
luisramos0
d0f33e7c8a Avoid code in devise that is not needed and simply return the root path
This fixes a broken spec with error "No route matches {:controller=>"home"}"
2019-12-28 18:47:14 +00:00
luisramos0
55bb328d48 Prefix all calls to root_url with main_app 2019-12-28 18:46:50 +00:00
luisramos0
a8a6fce385 Prefix root_path with main_app so that ofn's route is used. The spree root path will no longer be defined when spree_backend is dropped 2019-12-28 18:45:57 +00:00
luisramos0
60677a2414 Make login nav use main_app router 2019-12-28 18:41:16 +00:00
luisramos0
093edb66d3 Remove unused view
This was introduced in 2013 and removed in 2014, see log below:

git log -Saddress_form_simple
commit 510333288c
Author: Maikel Linke <mkllnk@web.de>
Date:   Sun Mar 2 13:05:15 2014 +1100

    first steps of new design

commit 2e1de9a6d3
Author: Rohan Mitchell <rohan@rohanmitchell.com>
Date:   Fri Aug 23 13:12:36 2013 +1000

    Fix admin create order - remove override on spree address form, update to spree patched to fix respond_override (spree issue #2210), fix nil state error
2019-12-28 18:25:28 +00:00
luisramos0
fb25ddd219 Remove reference to user banners, this code is not used in OFN. 2019-12-28 18:13:04 +00:00
luisramos0
1295d33fa7 Fix bug in frontoffice order details where the product image was a link to nowhere 2019-12-28 17:54:28 +00:00
luisramos0
d54850f097 Move ActionCallBacks out of the spree namespace 2019-12-27 17:04:40 +00:00
luisramos0
f8451a2511 Bring needed action_callbacks from spree_backend 2019-12-27 17:04:31 +00:00
luisramos0
1a88549954 Update rubocop todo lists 2019-12-27 17:04:23 +00:00
luisramos0
f79182253a Fix some rubocop issues 2019-12-27 17:03:39 +00:00
luisramos0
8cfd7c610b Use nested module instead of class Spree::Admin:: 2019-12-27 17:03:39 +00:00
luisramos0
486b5e9edc Merge resource_decorator into resource controller 2019-12-27 17:03:39 +00:00
luisramos0
8fe3abfd45 Add resource_controller from spree_backend so that we can now merge it with the OFN's decorator 2019-12-27 17:03:39 +00:00
Luis Ramos
0e7dafea46 Merge pull request #4560 from kshlyk/fix_billing_addres_in_pdf_invoice
Billing address in pdf invoice fixed
2019-12-27 16:45:06 +00:00
Matt-Yorkley
4c9cc7460a Increase space for buttons in savebar layout 2019-12-27 17:08:37 +01:00
dependabot-preview[bot]
c9e3f58aed Bump unicorn from 5.5.1 to 5.5.2
Bumps [unicorn](https://bogomips.org/unicorn/) from 5.5.1 to 5.5.2.

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-12-26 19:16:30 +00:00
Luis Ramos
4136306abf Updating mini_racer and libv8 at the same time 2019-12-26 11:01:09 +00:00
Luis Ramos
9f1eaf0b66 Merge pull request #4512 from luisramos0/backend_ctrl_base
Bring spree_backend base controller to OFN
2019-12-24 12:01:07 +00:00
dependabot-preview[bot]
4771612adb Bump i18n-js from 3.5.0 to 3.5.1
Bumps [i18n-js](https://github.com/fnando/i18n-js) from 3.5.0 to 3.5.1.
- [Release notes](https://github.com/fnando/i18n-js/releases)
- [Changelog](https://github.com/fnando/i18n-js/blob/master/CHANGELOG.md)
- [Commits](https://github.com/fnando/i18n-js/compare/v3.5.0...v3.5.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-12-23 19:21:17 +00:00
dependabot-preview[bot]
7ce3dfe365 Bump roo from 2.7.1 to 2.8.2
Bumps [roo](https://github.com/roo-rb/roo) from 2.7.1 to 2.8.2.
- [Release notes](https://github.com/roo-rb/roo/releases)
- [Changelog](https://github.com/roo-rb/roo/blob/master/CHANGELOG.md)
- [Commits](https://github.com/roo-rb/roo/compare/v2.7.1...v2.8.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-12-23 19:17:19 +00:00
Luis Ramos
6f13707b9d Merge pull request #4556 from openfoodfoundation/dependabot/bundler/stripe-5.11.0
Bump stripe from 4.24.0 to 5.11.0
2019-12-23 16:19:05 +00:00
Luis Ramos
64cb104434 Merge pull request #4577 from openfoodfoundation/dependabot/bundler/oj-3.10.0
Bump oj from 3.7.12 to 3.10.0
2019-12-23 16:14:33 +00:00
Luis Ramos
1606f9900f Merge pull request #4507 from luisramos0/backend_ctrl_reports
Bring spree_backend reports controller to OFN
2019-12-23 16:14:07 +00:00
Luis Ramos
9f0e8b0b2e Merge pull request #4558 from openfoodfoundation/dependabot/bundler/mini_racer-0.2.4
Bump mini_racer from 0.1.15 to 0.2.4
2019-12-23 16:13:10 +00:00
Luis Ramos
d796e96470 Merge pull request #4575 from Matt-Yorkley/admin_orders
Fix route on "continue" button on admin adjustments page
2019-12-23 16:12:28 +00:00
Luis Ramos
ba7f78ef60 Merge pull request #4515 from luisramos0/backend_ctrl_adjustments
Bring spree_backend adjustments controller to OFN
2019-12-23 16:05:04 +00:00
Maikel
988e146240 Merge pull request #4564 from openfoodfoundation/dependabot/bundler/rack-mini-profiler-1.1.4
Bump rack-mini-profiler from 1.0.0 to 1.1.4
2019-12-20 17:42:04 +11:00
cyrillefr
e6d9ec7bd7 Small fixes for default single Hub/Shop options issue
- removed mode variable
 - reverted html template accordingly
 - added a more specific helper
 - fixed some short variable names
2019-12-19 21:08:34 +01:00
Transifex-Openfoodnetwork
3acc53a389 Updating translations for config/locales/ar.yml 2019-12-20 04:33:09 +11:00
Transifex-Openfoodnetwork
9c9fc999de Updating translations for config/locales/ar.yml 2019-12-20 04:30:00 +11:00
Transifex-Openfoodnetwork
d824c84ce6 Updating translations for config/locales/fr.yml 2019-12-19 19:14:24 +11:00
Transifex-Openfoodnetwork
1a301f3dbb Updating translations for config/locales/fr.yml 2019-12-19 19:11:16 +11:00
Transifex-Openfoodnetwork
fad4f3b22a Updating translations for config/locales/en_FR.yml 2019-12-19 19:08:18 +11:00
Transifex-Openfoodnetwork
6080c99850 Updating translations for config/locales/fr.yml 2019-12-19 19:08:07 +11:00
Transifex-Openfoodnetwork
2944acff8a Updating translations for config/locales/nb.yml 2019-12-19 09:52:35 +11:00
dependabot-preview[bot]
2068a59b72 [Security] Bump excon from 0.62.0 to 0.71.1
Bumps [excon](https://github.com/excon/excon) from 0.62.0 to 0.71.1. **This update includes a security fix.**
- [Release notes](https://github.com/excon/excon/releases)
- [Changelog](https://github.com/excon/excon/blob/master/changelog.txt)
- [Commits](https://github.com/excon/excon/compare/v0.62.0...v0.71.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-12-18 19:33:23 +00:00
Luis Ramos
3063439ed1 Merge pull request #4541 from Matt-Yorkley/new_fee_errors
Handle validation messages when saving new fees
2019-12-18 13:35:45 +00:00
Matt-Yorkley
6bed05c721 Add missing feature test for order "Ship" button 2019-12-18 14:15:48 +01:00
Matt-Yorkley
a3ee6674ea Use asynchronous requests for order capture and ship actions 2019-12-18 14:15:46 +01:00
cyrillefr
e59077e63e Select by default single Hub/Shop option on creation of payment/shipping method
- added a helper
- added mode(new/edit) in payment/shipping views
- updated checkbox creation
- added tests
2019-12-18 10:45:00 +01:00
Transifex-Openfoodnetwork
f9f8d85841 Updating translations for config/locales/fr.yml 2019-12-18 04:37:36 +11:00
Transifex-Openfoodnetwork
0042690e18 Updating translations for config/locales/en_FR.yml 2019-12-18 04:35:31 +11:00
Transifex-Openfoodnetwork
5f1111b52b Updating translations for config/locales/fr.yml 2019-12-18 04:34:28 +11:00
Luis Ramos
25ded0d23c Merge pull request #4471 from luisramos0/paginate_exc_prods
Paginate Exchange Products API endpoint
2019-12-17 15:25:15 +00:00
Luis Ramos
a5458150ca Merge pull request #4455 from luisramos0/oc_prods
In the OC edit page, load products only when each products tab is opened by user
2019-12-17 13:40:19 +00:00
Pau Pérez Fabregat
96eebbabf3 Merge pull request #4590 from luisramos0/capybara
Upgrade capybara and webdrivers
2019-12-17 10:55:59 +01:00
luisramos0
c58e6fa964 Upgrade capybara 2019-12-16 15:25:45 +00:00
luisramos0
fbe8f5195c Upgrade webdrivers to latest 2019-12-16 15:25:36 +00:00
luisramos0
9648693329 Fix a problem in states/new template where erb instead of haml was referenced 2019-12-15 21:42:52 +00:00
luisramos0
9df9061ec1 Bring missing translation from spree and use root namespace for translations instead of the spre namespace 2019-12-15 21:39:26 +00:00
luisramos0
67526df420 Convert calculator fields partial to haml 2019-12-15 21:32:31 +00:00
luisramos0
766f8ab407 Add partial needed in payment and shipping methods 2019-12-15 21:24:50 +00:00
luisramos0
f587bbb7d5 Remove unnecessary helper 2019-12-15 21:03:53 +00:00
luisramos0
2793693a7c Improve if clause readability 2019-12-15 21:03:53 +00:00
luisramos0
07e2317369 Replace deprecated URI.unescape with CGI.unescape 2019-12-15 21:03:53 +00:00
luisramos0
042162eda8 Delete unused method 2019-12-15 21:03:53 +00:00
luisramos0
795f13d73a Remove spree alerts feature that would check spree website for security alerts
This is not something we need running such an old version of spree
2019-12-15 21:03:53 +00:00
luisramos0
f1814f1b67 Fix most rubocop issues in spree/admin/base_controller 2019-12-15 21:03:53 +00:00
luisramos0
4ab7b78cb8 Merge base_controller with its decorator 2019-12-15 21:03:53 +00:00
luisramos0
11631c3a33 Add base_controller from spree_backend so that we can now merge it with the OFN's decorator 2019-12-15 21:03:53 +00:00
Konstantin Shlyk
0212381362 fix for api/variants_controller_spec 2019-12-14 21:43:38 +03:00
Konstantin Shlyk
e6ca6bacac soft_delete api method deleted for products and variants 2019-12-14 01:05:35 +03:00
dependabot-preview[bot]
59df45b8cf Bump oj from 3.7.12 to 3.10.0
Bumps [oj](https://github.com/ohler55/oj) from 3.7.12 to 3.10.0.
- [Release notes](https://github.com/ohler55/oj/releases)
- [Changelog](https://github.com/ohler55/oj/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/ohler55/oj/compare/v3.7.12...v3.10.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-12-13 19:17:46 +00:00
Luis Ramos
5892e85869 Merge pull request #4559 from openfoodfoundation/dependabot/bundler/selenium-webdriver-3.142.6
Bump selenium-webdriver from 3.141.0 to 3.142.6
2019-12-13 18:05:03 +00:00
luisramos0
c59326743b Remove sales total report 2019-12-13 16:44:46 +00:00
luisramos0
cb3397fd1a Convert reports index and sales_total views from erb to haml 2019-12-13 16:44:46 +00:00
luisramos0
2bd4de3e29 Add sales total report view 2019-12-13 16:44:46 +00:00
luisramos0
b2c5be775e Fix some rubocop issues 2019-12-13 16:44:46 +00:00
luisramos0
d22212ccfa Merge spree/admin/reports_controller with its decorator 2019-12-13 16:44:44 +00:00
luisramos0
dd600cd163 Add reports_controller from spree_backend so that we can now merge it with the OFN's decorator 2019-12-13 15:20:03 +00:00
Matt-Yorkley
f189ca8004 Fix route on "continue" button on admin adjustments page 2019-12-13 13:51:41 +01:00
Luis Ramos
db7146014c Rename exchange products file names to increase clarity 2019-12-13 12:24:19 +00:00
Luis Ramos
c6af55d9ae Restructure exchange products panels so that OC simple form does not include header and footer (product count and pagination) of the non-simple OC form 2019-12-13 12:24:16 +00:00
Maikel
0f588dbe0b Merge pull request #4561 from openfoodfoundation/transifex
Transifex
2019-12-13 17:02:32 +11:00
dependabot-preview[bot]
9c14d8ff36 Bump rack-mini-profiler from 1.0.0 to 1.1.4
Bumps [rack-mini-profiler](https://github.com/MiniProfiler/rack-mini-profiler) from 1.0.0 to 1.1.4.
- [Release notes](https://github.com/MiniProfiler/rack-mini-profiler/releases)
- [Changelog](https://github.com/MiniProfiler/rack-mini-profiler/blob/master/CHANGELOG.md)
- [Commits](https://github.com/MiniProfiler/rack-mini-profiler/compare/v1.0.0...v1.1.4)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-12-12 19:14:17 +00:00
luisramos0
a104bf8efd Add feature spec to validate load all and select all exchange products 2019-12-12 18:49:11 +00:00
luisramos0
a039ef13f4 Add spec for exchange products controller pagination 2019-12-12 18:49:11 +00:00
luisramos0
7ad8951375 DRY exchange products templates by extracting header and footer content to partial templates 2019-12-12 18:49:11 +00:00
luisramos0
99e59595b4 Add spinner when loading all products in an exchange 2019-12-12 18:48:36 +00:00
luisramos0
3264355f12 Add some basic test coverage to exchange_products_controller and exchange_products_renderer 2019-12-12 18:48:36 +00:00
luisramos0
7e3b6e2b5d Fix select all checkbox state in both incoming and outgoing exchanges by using the total count of variants to see if all variants are selected or not, even if not all variants are loaded 2019-12-12 18:48:36 +00:00
luisramos0
a9598c5d97 Only show load more and load all if not all products are loaded already 2019-12-12 18:48:36 +00:00
luisramos0
3e5b7ebbf1 Show exchange products list only after first page of products is loaded 2019-12-12 18:48:36 +00:00
luisramos0
1a9c3007b0 Make select all work again in incoming exchanges by loading alll products before triggering the select all process 2019-12-12 18:48:35 +00:00
luisramos0
2f7fd1482a Add link to load all products at the top of the list of products and include summary of number of products loaded already 2019-12-12 18:48:35 +00:00
luisramos0
0416521772 Add load all prouducts button to list of exchange products 2019-12-12 18:48:35 +00:00
luisramos0
cfe3f72d0e Add load more button to list of exchange products 2019-12-12 18:48:35 +00:00
luisramos0
00478cc57c Add count variants endpoint and use it instead of loading exchange products 2019-12-12 18:48:35 +00:00
luisramos0
d5e42ee1e5 Paginate exchange products results
This commit breaks the OC page when there are more than 100 products in an exchange
2019-12-12 18:48:35 +00:00
luisramos0
9451f1b66d Remove funky panel open listener code and initialize the panel data with a ng-init in the panel template 2019-12-12 18:44:45 +00:00
luisramos0
ff584f9be9 Adapt exchange products routes to make api/exchanges/products (without exchange_id) also go to exchange_products#index 2019-12-12 18:44:45 +00:00
luisramos0
a589ba38da Rename exchanges_products_controller to better exchange_products_controller 2019-12-12 18:44:45 +00:00
luisramos0
a4a2f98b6e Rename Product service to more appropriate ExchangeProduct 2019-12-12 18:44:45 +00:00
luisramos0
f5ddbfbac3 Make Product service more simple, there's no need to keep the data structure, that is already kept in the controller 2019-12-12 18:44:45 +00:00
luisramos0
a66a4c3edb Remove unnecessary passing of scopes around in controllers 2019-12-12 18:44:45 +00:00
luisramos0
8179252924 Replace the use of this with 2019-12-12 18:44:45 +00:00
luisramos0
0bec492208 Fix some rubocop issues 2019-12-12 18:44:45 +00:00
luisramos0
5cf50f0adf Convert the manipulation of arrays into active record relations: let the DB do the matching job 2019-12-12 18:44:45 +00:00
luisramos0
197fb36524 Extract ExchangeProductsRenderer from ExchangesProductsController 2019-12-12 18:44:45 +00:00
luisramos0
62e6f09d94 Make exchange products more simple 2019-12-12 18:44:45 +00:00
luisramos0
79b2460664 Make simple create and edit OC load exchange products on init
Simple create makes a new type of call to exchange products with no exchange_id and no prder_cycle_id, it simply lists supplied products for a given enterprise
2019-12-12 18:44:44 +00:00
luisramos0
66f3656bb5 Register products panel listeners after OrderCycle is loaded instead of using recurrent timeouts
Also, use this same approach for the case where a new distributor or new supplier is added to the list of exchanges
2019-12-12 18:44:44 +00:00
luisramos0
6b087adab8 Add route to process requests to exchanges/products without exchange id
This is needed when products for an exchange that is not yet saved are requested
2019-12-12 18:44:44 +00:00
luisramos0
3653b88da6 Make exchanges_products_controller more independent of the exchange field 2019-12-12 18:44:44 +00:00
luisramos0
3223bf930d Make total number of products in exchange work again.
Currently we are just loading the products from the server and count them.
This can be improved easily in two ways:
- we can switch this to a specific product count call to the server so that we dont load all products all the time
- or we paginate the products result and fetch the total_number from the payload of the first page.
2019-12-12 18:44:44 +00:00
luisramos0
2b3bc6d1ff Remove supplied products from enterprise serializer and from UI side
This list of products s now loaded in a specific call to ExchangeProducts and for each specific exchange
2019-12-12 18:44:44 +00:00
luisramos0
24d7672abb Use new exchange products endpoint for outgoing exchanges and make the exchange products panel work for outgoing exchanges 2019-12-12 18:44:44 +00:00
luisramos0
89628c27f3 Move exchange products endpoint to api namespace and make it work for outgoing exchanges 2019-12-12 18:44:44 +00:00
luisramos0
9adbdc377d Add new admin/exchange/products endpoint that replaces Enterprise/for_order_cycle#supplied_products 2019-12-12 18:44:44 +00:00
luisramos0
883cd81058 Load enterprise supplied products when the exchange products panel is opened for the first time 2019-12-12 18:44:44 +00:00
Transifex-Openfoodnetwork
0d7d029255 Updating translations for config/locales/en_GB.yml 2019-12-13 02:07:44 +11:00
Kristina Lim
ce31a059bf Merge pull request #4553 from openfoodfoundation/transifex
Transifex
2019-12-12 22:46:22 +08:00
Luis Ramos
17bac20c65 Merge pull request #4550 from luisramos0/fix_of_report
Remove eager loding of shipping_methods and shipping_rates from customer_totals so that report runs faster
2019-12-12 14:15:19 +00:00
Pau Pérez Fabregat
066243057f Merge pull request #4545 from coopdevs/fix-db-backups
Make whenever properly read the S3 bucket
2019-12-12 11:39:54 +01:00
Transifex-Openfoodnetwork
ea40547fd7 Updating translations for config/locales/fr_CA.yml 2019-12-12 10:22:26 +11:00
Transifex-Openfoodnetwork
0ebc6d4b1e Updating translations for config/locales/en_CA.yml 2019-12-12 09:28:07 +11:00
Transifex-Openfoodnetwork
62c2e4709a Updating translations for config/locales/en_CA.yml 2019-12-12 09:25:01 +11:00
Konstantin Shlyk
c5229dd763 billing address in pdf invoice fixed 2019-12-11 23:10:51 +03:00
dependabot-preview[bot]
99d4190814 Bump selenium-webdriver from 3.141.0 to 3.142.6
Bumps [selenium-webdriver](https://github.com/SeleniumHQ/selenium) from 3.141.0 to 3.142.6.
- [Release notes](https://github.com/SeleniumHQ/selenium/releases)
- [Changelog](https://github.com/SeleniumHQ/selenium/blob/master/rb/CHANGES)
- [Commits](https://github.com/SeleniumHQ/selenium/commits)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-12-11 19:35:45 +00:00
dependabot-preview[bot]
f086c02e13 Bump mini_racer from 0.1.15 to 0.2.4
Bumps [mini_racer](https://github.com/discourse/mini_racer) from 0.1.15 to 0.2.4.
- [Release notes](https://github.com/discourse/mini_racer/releases)
- [Changelog](https://github.com/rubyjs/mini_racer/blob/master/CHANGELOG)
- [Commits](https://github.com/discourse/mini_racer/compare/v0.1.15...v0.2.4)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-12-11 19:35:03 +00:00
dependabot-preview[bot]
b726f961fc Bump stripe from 4.24.0 to 5.11.0
Bumps [stripe](https://github.com/stripe/stripe-ruby) from 4.24.0 to 5.11.0.
- [Release notes](https://github.com/stripe/stripe-ruby/releases)
- [Changelog](https://github.com/stripe/stripe-ruby/blob/master/CHANGELOG.md)
- [Commits](https://github.com/stripe/stripe-ruby/compare/v4.24.0...v5.11.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-12-11 19:33:30 +00:00
Transifex-Openfoodnetwork
4c17cf0087 Updating translations for config/locales/fr.yml 2019-12-12 04:29:14 +11:00
Transifex-Openfoodnetwork
9fe143cf94 Updating translations for config/locales/en_FR.yml 2019-12-12 04:26:13 +11:00
Transifex-Openfoodnetwork
e2d783c385 Updating translations for config/locales/fr.yml 2019-12-12 04:26:05 +11:00
Transifex-Openfoodnetwork
81cb162884 Updating translations for config/locales/nb.yml 2019-12-12 03:34:25 +11:00
Transifex-Openfoodnetwork
c7b6dd2677 Updating translations for config/locales/nb.yml 2019-12-12 03:31:14 +11:00
Transifex-Openfoodnetwork
d1fd73fd2b Updating translations for config/locales/ar.yml 2019-12-12 03:16:38 +11:00
Transifex-Openfoodnetwork
b0221d264e Updating translations for config/locales/ar.yml 2019-12-12 03:13:31 +11:00
Transifex-Openfoodnetwork
0f64badc74 Updating translations for config/locales/ar.yml 2019-12-12 03:10:21 +11:00
Luis Ramos
7ccfdc8d21 Merge pull request #4546 from kshlyk/fix_cart_link_on_mobile
Cart link in header on mobile leads to cart page instead of checkout …
2019-12-11 13:45:56 +00:00
Luis Ramos
4799293996 Merge pull request #4518 from Matt-Yorkley/ruby-2.3.7
Bump Ruby to 2.3.7
2019-12-11 13:29:01 +00:00
Luis Ramos
58a93c27ae Merge pull request #4539 from luisramos0/subs_s3
Make weight calculator work for SubscriptionLineItems
2019-12-11 11:20:53 +00:00
luisramos0
0202b59634 Remove eager loding of shipping_methods and shipping_rates from customer_totals so that report runs faster
Something makes the query run much slower with these includes
2019-12-10 21:18:17 +00:00
Luis Ramos
9f351607d1 Merge pull request #4538 from mkllnk/4537-paginated-product-order
Make product order deterministic
2019-12-10 18:00:45 +00:00
Maikel
c45e3c9cca Merge pull request #4543 from openfoodfoundation/transifex
Transifex
2019-12-10 20:10:23 +11:00
Luis Ramos
71bf3f5f71 Merge pull request #4514 from luisramos0/backend_ctrl_overview
Bring spree_backend overview controller to OFN
2019-12-09 23:36:32 +00:00
Konstantin Shlyk
ef142de5f2 Cart link in header on mobile leads to cart page instead of checkout page 2019-12-09 22:58:00 +03:00
luisramos0
f64e8bf50e Make user aware of server side errors when saving subscription products and unit test products_panel_controller 2019-12-09 17:49:38 +00:00
Pau Perez
e8d68e3b89 Make whenever properly read the S3 bucket
For unknown reasons the magic
[Figaro](https://github.com/laserlemon/figaro) does to turn keys in
`config/application.yml` into ENV vars that can be read through Ruby's
`ENV[]` is not working in `config/schedule.rb`.

As a result, the `db2fog` tasks are not translated into cron entries
which led to not having automatic backups.
2019-12-09 17:16:11 +01:00
luisramos0
1b29d474d0 Add specs to cover case where updating subscriptions products quantity fails 2019-12-09 15:11:32 +00:00
Luis Ramos
baae58ecb6 Merge pull request #4288 from luisramos0/oc_serializer_spec
Add spec for api/admin/order_cycle_serializer
2019-12-09 11:16:04 +00:00
Pau Pérez Fabregat
6411871ecb Merge pull request #4540 from openfoodfoundation/dependabot/bundler/ddtrace-0.30.0
Bump ddtrace from 0.29.1 to 0.30.0
2019-12-09 09:48:27 +01:00
Transifex-Openfoodnetwork
22833ae79b Updating translations for config/locales/it.yml 2019-12-09 19:28:13 +11:00
Transifex-Openfoodnetwork
ac20b0e7fb Updating translations for config/locales/it.yml 2019-12-09 19:25:06 +11:00
luisramos0
e9e6aa77d8 Make weight calculator work for SubscriptionLineItems by making it test if line_item responds to final_weight_volume field (final_weight_volume_present?)
We also add logic to weight_per_variant so that we use variant.unit_value if final_weight_volume is not available but variant_unit is weight
Adapt some test case to test unit_value (in grams) instead of weight (in kgs)
2019-12-08 17:36:21 +00:00
Matt-Yorkley
29e30c388e Make error message translatable 2019-12-07 15:48:46 +01:00
Matt-Yorkley
54a40fe79c Handle validation messages when saving new fees 2019-12-07 14:51:17 +01:00
dependabot-preview[bot]
7840118dea Bump ddtrace from 0.29.1 to 0.30.0
Bumps [ddtrace](https://github.com/DataDog/dd-trace-rb) from 0.29.1 to 0.30.0.
- [Release notes](https://github.com/DataDog/dd-trace-rb/releases)
- [Changelog](https://github.com/DataDog/dd-trace-rb/blob/master/CHANGELOG.md)
- [Commits](https://github.com/DataDog/dd-trace-rb/compare/v0.29.1...v0.30.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-12-06 19:18:08 +00:00
luisramos0
5e27bd6d6d Add for now very basic spec to api/admin/order_cycle_serializer 2019-12-06 16:41:54 +00:00
Maikel Linke
d4512904ea Make product order deterministic
When products are sorted by name and two products have the same name,
their order is undefined. With pagination, two pages can have a
different order of products with the same name which then means that two
pages can return the same product.

Sorting by product id makes sure that the result is always in the same
order, for every page.
2019-12-05 15:37:10 +11:00
Maikel
52dc288470 Merge pull request #4530 from openfoodfoundation/transifex
Transifex
2019-12-05 11:01:30 +11:00
Luis Ramos
302de04e73 Merge pull request #4526 from kristinalim/fix/3149-fix_tool_tips_in_orders_list
3149 Fix tooltips in orders list
2019-12-04 10:38:28 +00:00
Transifex-Openfoodnetwork
41767936d6 Updating translations for config/locales/ca.yml 2019-12-03 22:50:13 +11:00
Transifex-Openfoodnetwork
0ccf30202e Updating translations for config/locales/ca.yml 2019-12-03 22:47:06 +11:00
Transifex-Openfoodnetwork
00f36e4686 Updating translations for config/locales/ca.yml 2019-12-03 22:43:57 +11:00
Maikel
4d77f30bc0 Merge pull request #4506 from openfoodfoundation/dependabot/bundler/ddtrace-0.29.1
Bump ddtrace from 0.29.0 to 0.29.1
2019-12-03 20:39:58 +11:00
Maikel
f38b1b95f0 Merge pull request #4525 from kristinalim/fix/4489-flaky_spec_for_editing_oc
4489 Improve waiting in feature spec for edit Order Cycle page
2019-12-03 20:36:37 +11:00
Luis Ramos
97ef93b840 Merge pull request #4516 from openfoodfoundation/transifex
Transifex
2019-12-02 17:50:26 +00:00
Luis Ramos
6db15a0a20 Merge pull request #4524 from Matt-Yorkley/packing_reports
Packing reports performance
2019-12-02 17:32:52 +00:00
Luis Ramos
c8395a487a Merge pull request #4523 from luisramos0/permissions_improve
Replace pluck with select in permissions to avoid extra queries and extract Permissions::Orders from Permissions
2019-12-02 16:31:04 +00:00
Kristina Lim
852adfd436 Improve waiting in feature spec for order cycle page 2019-12-02 20:06:43 +08:00
luisramos0
1e948735fb Fix major performance problem by inverting the logic, instead of looking for line_items that are hidden, it looks for line items that are not editable using a merge statement that performs much better
Also, remove unnecessary if clause, merge will return an empty relation if no items are found, no need to test for empty.

The test report runs in a little over one minute instead of 8minutes
2019-11-30 22:38:03 +00:00
luisramos0
0ef4247914 Convert Report::LineItems to class and memoize orders so it's only executed once (this improves the report in 3secs for the case I am testing) 2019-11-29 21:51:54 +00:00
Kristina Lim
2673a6efee Fix Angular tracking of row in orders list
The tooltip content for the order in index n in page x was being used
for the order in index n in page y.

This was because ng-repeat was tracking the items/rows by index.
As far as ng-repeat is aware, rows with the same index in any page
were the same items/rows, so it didn't bother relinking the ofn-with-tip
directive.
2019-11-30 03:53:20 +08:00
Kristina Lim
6ffe7f1a99 Set width and enable wrapping for tooltips 2019-11-30 03:53:16 +08:00
Matt-Yorkley
6d1fb63a21 Eager-load option_values on line_item objects instead of variants in packing reports. 2019-11-29 20:16:48 +01:00
Matt-Yorkley
9bcd303f4f Remove shipping_category N+1 from packing reports 2019-11-29 20:16:48 +01:00
Matt-Yorkley
38c327dae0 Improve N+1 issues around #suppliers_of_products_distributed_by
There's still some real mess here with repeating queries, but resolving it is out of scope for this quick PR
2019-11-29 20:16:03 +01:00
Matt-Yorkley
51177b833e Remove customer_code N+1 from packing reports 2019-11-29 17:09:12 +01:00
luisramos0
cc3368704a Fix rubocop issues in reports_controller_decorator and in report line_items 2019-11-29 13:54:30 +00:00
Pau Pérez Fabregat
2d53fbbe8c Merge pull request #4520 from kristinalim/fix/4238-flaky_spec_in_api_taxons_index
4238 Do not assume order in spec for taxons list
2019-11-29 13:23:51 +01:00
luisramos0
3959f16d65 Switch some more references from Permissions to Permissions::Order 2019-11-29 12:22:50 +00:00
Pau Pérez Fabregat
fb28826d92 Merge pull request #4522 from kristinalim/fix/4239-flaky_spec_in_bulk_product_clone
4239 Do one thing at a time in feature spec for product cloning
2019-11-29 13:22:42 +01:00
luisramos0
beaa8ffa27 Use more specific selector to avoid ambigous column error 2019-11-29 11:45:22 +00:00
luisramos0
da6d035a1d Rename some reports permissions to order_permissions 2019-11-29 11:23:17 +00:00
luisramos0
5cb77c443b Fix rubocop issues 2019-11-29 10:53:40 +00:00
luisramos0
8d16f496f4 Move Permissions::Order specs to its specific spec file 2019-11-29 10:49:59 +00:00
luisramos0
82b274e522 Make selector more specific to avoid sql error 'ambiguos column' 2019-11-29 10:49:58 +00:00
luisramos0
484cdd1e07 Make managed_and_related_enterprises public so they can be used by other permissions classes 2019-11-29 10:49:27 +00:00
luisramos0
bb2e6324bd Rename order permissions to just order 2019-11-29 10:49:27 +00:00
luisramos0
89056e13ed Extract order permissions to a separate class 2019-11-29 10:48:58 +00:00
luisramos0
df0458743b Replace pluck with select in permissions to avoid extra queries 2019-11-28 23:37:49 +00:00
luisramos0
ba1ad0a6dd Rename decorator to controller so that the rubocop exception for the index action keeps being seen by code climate 2019-11-28 16:47:02 +00:00
luisramos0
4e7b397c5a Bring orders adjustments route from spree_backend 2019-11-28 16:26:22 +00:00
luisramos0
842e191c5f Remove toggle_state action that is not used in OFN 2019-11-28 16:20:35 +00:00
Kristina Lim
1476859c83 Do one thing at a time in feature spec for product cloning 2019-11-28 22:05:17 +08:00
Kristina Lim
c6fb7dafec Do not assume order in test for taxons list 2019-11-28 20:33:42 +08:00
Transifex-Openfoodnetwork
80069731ed Updating translations for config/locales/en_NZ.yml 2019-11-28 20:52:48 +11:00
Matt-Yorkley
feaa928674 Bump Ruby to 2.3.7 🎉 2019-11-28 10:42:13 +01:00
Maikel Linke
dfa3d40665 Create release task template recognised by Github 2019-11-28 15:58:14 +11:00
Maikel
00c2b95a0e Add issue template for release tasks 2019-11-28 15:53:34 +11:00
Transifex-Openfoodnetwork
f1831fc6bb Updating translations for config/locales/en_AU.yml 2019-11-28 13:47:28 +11:00
Transifex-Openfoodnetwork
4c91a5571a Updating translations for config/locales/en_AU.yml 2019-11-28 13:47:08 +11:00
Transifex-Openfoodnetwork
ccb7a305bc Updating translations for config/locales/de_DE.yml 2019-11-28 13:45:01 +11:00
Transifex-Openfoodnetwork
0c87afefce Updating translations for config/locales/de_DE.yml 2019-11-28 13:41:53 +11:00
luisramos0
c8d359a0da Merge spree/admin/overview_controller with its decorator 2019-11-27 22:08:46 +00:00
luisramos0
210757641c Add overview_controller from spree_backend so that we can now merge it with the OFN's decorator 2019-11-27 22:08:06 +00:00
luisramos0
68bf599a1a Merge spree/admin/adjustments_controller with decorator 2019-11-27 21:59:15 +00:00
luisramos0
a10966b66b Add adjustments_controller from spree_backend so that we can now merge it with the OFN's decorator 2019-11-27 21:59:15 +00:00
dependabot-preview[bot]
08003f2003 Bump ddtrace from 0.29.0 to 0.29.1
Bumps [ddtrace](https://github.com/DataDog/dd-trace-rb) from 0.29.0 to 0.29.1.
- [Release notes](https://github.com/DataDog/dd-trace-rb/releases)
- [Changelog](https://github.com/DataDog/dd-trace-rb/blob/master/CHANGELOG.md)
- [Commits](https://github.com/DataDog/dd-trace-rb/compare/v0.29.0...v0.29.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-11-27 19:17:20 +00:00
1963 changed files with 87592 additions and 29727 deletions

View File

@@ -2,7 +2,7 @@ version: "2"
plugins:
rubocop:
enabled: true
channel: "rubocop-0-57"
channel: "rubocop-0-76"
config:
file: ".rubocop_styleguide.yml"
scss-lint:
@@ -12,6 +12,14 @@ plugins:
enabled: false
VendorPrefix:
enabled: false
LeadingZero:
enabled: false
PropertySortOrder:
enabled: false
StringQuotes:
enabled: false
DeclarationOrder:
enabled: false
duplication:
enabled: true
exclude_patterns:

View File

@@ -1,10 +0,0 @@
Draft: x
Target commit: x
Build: x
- [ ] Draft
- [ ] Test
- [ ] Publish
- [ ] Deploy

22
.github/ISSUE_TEMPLATE/release.md vendored Normal file
View File

@@ -0,0 +1,22 @@
---
name: Release task
about: Track the process of a new release
title: 'Release v'
labels: ''
assignees: ''
---
Steps:
- [ ] Include translations
- [ ] [Draft new release]
- [ ] Notify #instance-managers of user-facing changes.
- [ ] Test: https://semaphoreci.com/openfoodfoundation/openfoodnetwork-2/branches/master <!-- replace the URL -->
- [ ] Publish and notify #global-community
- [ ] Deploy and notify #instance-managers
- [ ] Nudge next release manager
The full process is described at https://github.com/openfoodfoundation/openfoodnetwork/wiki/Releasing.
[Draft new release]: https://github.com/openfoodfoundation/openfoodnetwork/releases/new?tag=v&title=v+Code+Name&body=Congrats%0A%0ADescription%0A%0A%23%23+User+facing+changes+:eyes:%0A%0A%0A%0A%23%23+Technical+changes+:wrench:%0A%0A

View File

@@ -23,10 +23,6 @@ The categories are based on https://keepachangelog.com/en/1.0.0/. -->
Changelog Category: Added | Changed | Deprecated | Removed | Fixed | Security
#### How is this related to the Spree upgrade?
<!-- Any known conflicts with the Spree Upgrade?
Explain them or remove this section. -->
#### Discourse thread

2
.gitignore vendored
View File

@@ -1,5 +1,6 @@
.bundle
.rbenv-version
.python-version
.byebug_history
.swp
*.swo
@@ -31,6 +32,7 @@ public/system
public/stylesheets
public/images
public/spree
public/assets
config/abr.yml
config/initializers/feature_toggle.rb
NERD_tree*

View File

@@ -4,6 +4,7 @@
#
# The configuration is split into three files. Look into those files for more details.
#
require: rubocop-rails
inherit_from:
# The automatically generated todo list to ignore all current violations.

View File

@@ -18,35 +18,24 @@
#
# This process probably doesn't need repeating. Otherwise there is plenty
# of room for improvements and automation.
Metrics/LineLength:
Layout/LineLength:
Max: 100
Exclude:
- Gemfile
- app/controllers/admin/bulk_line_items_controller.rb
- app/controllers/admin/contents_controller.rb
- app/controllers/admin/customers_controller.rb
- app/controllers/admin/enterprise_fees_controller.rb
- app/controllers/admin/enterprise_groups_controller.rb
- app/controllers/admin/enterprise_relationships_controller.rb
- app/controllers/admin/enterprise_roles_controller.rb
- app/controllers/admin/enterprises_controller.rb
- app/controllers/admin/inventory_items_controller.rb
- app/controllers/admin/manager_invitations_controller.rb
- app/controllers/admin/product_import_controller.rb
- app/controllers/admin/proxy_orders_controller.rb
- app/controllers/admin/schedules_controller.rb
- app/controllers/admin/subscriptions_controller.rb
- app/controllers/admin/variant_overrides_controller.rb
- app/controllers/api/enterprise_attachment_controller.rb
- app/controllers/api/product_images_controller.rb
- app/controllers/application_controller.rb
- app/controllers/checkout_controller.rb
- app/controllers/spree/admin/adjustments_controller_decorator.rb
- app/controllers/spree/admin/base_controller_decorator.rb
- app/controllers/spree/admin/orders_controller_decorator.rb
- app/controllers/spree/admin/payments_controller_decorator.rb
- app/controllers/spree/admin/reports_controller_decorator.rb
- app/controllers/spree/credit_cards_controller.rb
- app/controllers/spree/paypal_controller_decorator.rb
- app/controllers/stripe/callbacks_controller.rb
- app/helpers/angular_form_builder.rb
@@ -56,9 +45,6 @@ Metrics/LineLength:
- app/helpers/injection_helper.rb
- app/helpers/markdown_helper.rb
- app/helpers/order_cycles_helper.rb
- app/helpers/shop_helper.rb
- app/helpers/spree/admin/base_helper_decorator.rb
- app/helpers/spree/admin/navigation_helper_decorator.rb
- app/helpers/spree/orders_helper.rb
- app/jobs/subscription_confirm_job.rb
- app/mailers/subscription_mailer.rb
@@ -68,14 +54,10 @@ Metrics/LineLength:
- app/models/concerns/variant_stock.rb
- app/models/content_configuration.rb
- app/models/customer.rb
- app/models/enterprise_fee.rb
- app/models/enterprise_group.rb
- app/models/enterprise_role.rb
- app/models/inventory_item.rb
- app/models/product_import/entry_processor.rb
- app/models/product_import/entry_validator.rb
- app/models/product_import/product_importer.rb
- app/models/product_import/spreadsheet_data.rb
- app/models/product_import/spreadsheet_entry.rb
- app/models/product_import/unit_converter.rb
- app/models/proxy_order.rb
@@ -92,21 +74,23 @@ Metrics/LineLength:
- app/models/spree/payment_method_decorator.rb
- app/models/spree/product_decorator.rb
- app/models/spree/shipping_method_decorator.rb
- app/models/spree/tax_rate_decorator.rb
- app/models/spree/taxon_decorator.rb
- app/models/spree/tax_rate_decorator.rb
- app/models/spree/user.rb
- app/models/spree/variant_decorator.rb
- app/models/subscription.rb
- app/models/variant_override.rb
- app/models/variant_override_set.rb
- app/serializers/api/admin/subscription_line_item_serializer.rb
- app/services/cart_service.rb
- app/services/default_stock_location.rb
- app/services/embedded_page_service.rb
- app/services/order_cycle_form.rb
- app/services/order_factory.rb
- app/services/subscriptions_count.rb
- app/services/variants_stock_levels.rb
- engines/order_management/app/services/order_management/subscriptions/validator.rb
- engines/web/app/helpers/web/cookies_policy_helper.rb
- engines/web/config/routes.rb
- engines/web/spec/features/consumer/cookies_spec.rb
- Gemfile
- lib/discourse/single_sign_on.rb
- lib/open_food_network/available_payment_method_filter.rb
- lib/open_food_network/bulk_coop_report.rb
@@ -116,19 +100,16 @@ Metrics/LineLength:
- lib/open_food_network/enterprise_issue_validator.rb
- lib/open_food_network/group_buy_report.rb
- lib/open_food_network/lettuce_share_report.rb
- lib/open_food_network/order_and_distributor_report.rb
- lib/open_food_network/order_cycle_form_applicator.rb
- lib/open_food_network/order_cycle_management_report.rb
- lib/open_food_network/payments_report.rb
- lib/open_food_network/reports/bulk_coop_allocation_report.rb
- lib/open_food_network/reports/line_items.rb
- lib/open_food_network/sales_tax_report.rb
- lib/open_food_network/scope_variants_for_search.rb
- lib/open_food_network/variant_and_line_item_naming.rb
- lib/open_food_network/xero_invoices_report.rb
- lib/spree/core/controller_helpers/respond_with_decorator.rb
- lib/spree/localized_number.rb
- lib/spree/product_filters.rb
- lib/stripe/profile_storer.rb
- lib/tasks/data.rake
- lib/tasks/enterprises.rake
- spec/controllers/admin/bulk_line_items_controller_spec.rb
@@ -146,13 +127,13 @@ Metrics/LineLength:
- spec/controllers/admin/subscriptions_controller_spec.rb
- spec/controllers/admin/variant_overrides_controller_spec.rb
- spec/controllers/api/base_controller_spec.rb
- spec/controllers/api/exchange_products_controller_spec.rb
- spec/controllers/api/logos_controller_spec.rb
- spec/controllers/api/order_cycles_controller_spec.rb
- spec/controllers/api/orders_controller_spec.rb
- spec/controllers/api/product_images_controller_spec.rb
- spec/controllers/api/products_controller_spec.rb
- spec/controllers/api/promo_images_controller_spec.rb
- spec/controllers/api/shipments_controller_spec.rb
- spec/controllers/api/variants_controller_spec.rb
- spec/controllers/cart_controller_spec.rb
- spec/controllers/checkout_controller_spec.rb
@@ -162,20 +143,21 @@ Metrics/LineLength:
- spec/controllers/shops_controller_spec.rb
- spec/controllers/spree/admin/adjustments_controller_spec.rb
- spec/controllers/spree/admin/base_controller_spec.rb
- spec/controllers/spree/admin/orders/customer_details_controller_spec.rb
- spec/controllers/spree/admin/orders_controller_spec.rb
- spec/controllers/spree/admin/orders/customer_details_controller_spec.rb
- spec/controllers/spree/admin/payment_methods_controller_spec.rb
- spec/controllers/spree/admin/payments_controller_spec.rb
- spec/controllers/spree/admin/products_controller_spec.rb
- spec/controllers/spree/admin/reports_controller_spec.rb
- spec/controllers/spree/admin/variants_controller_spec.rb
- spec/controllers/spree/credit_cards_controller_spec.rb
- spec/controllers/spree/orders_controller_spec.rb
- spec/controllers/spree/user_sessions_controller_spec.rb
- spec/controllers/spree/users_controller_spec.rb
- spec/controllers/spree/user_sessions_controller_spec.rb
- spec/controllers/stripe/callbacks_controller_spec.rb
- spec/controllers/stripe/webhooks_controller_spec.rb
- spec/controllers/user_confirmations_controller_spec.rb
- spec/factories/order_factory.rb
- spec/factories.rb
- spec/features/admin/adjustments_spec.rb
- spec/features/admin/bulk_order_management_spec.rb
- spec/features/admin/bulk_product_update_spec.rb
@@ -183,14 +165,19 @@ Metrics/LineLength:
- spec/features/admin/enterprise_fees_spec.rb
- spec/features/admin/enterprise_relationships_spec.rb
- spec/features/admin/enterprise_roles_spec.rb
- spec/features/admin/enterprise_user_spec.rb
- spec/features/admin/enterprises/images_spec.rb
- spec/features/admin/enterprises/index_spec.rb
- spec/features/admin/enterprises_spec.rb
- spec/features/admin/enterprise_user_spec.rb
- spec/features/admin/image_settings_spec.rb
- spec/features/admin/multilingual_spec.rb
- spec/features/admin/order_cycles_spec.rb
- spec/features/admin/orders_spec.rb
- spec/features/admin/order_cycles/complex_creating_specific_time_spec.rb
- spec/features/admin/order_cycles/complex_editing_multiple_product_pages_spec.rb
- spec/features/admin/order_cycles/complex_editing_spec.rb
- spec/features/admin/order_cycles/complex_updating_specific_time_spec.rb
- spec/features/admin/order_cycles/list_spec.rb
- spec/features/admin/order_cycles/simple_spec.rb
- spec/features/admin/order_spec.rb
- spec/features/admin/overview_spec.rb
- spec/features/admin/payment_method_spec.rb
- spec/features/admin/product_import_spec.rb
@@ -206,9 +193,11 @@ Metrics/LineLength:
- spec/features/consumer/account/settings_spec.rb
- spec/features/consumer/account_spec.rb
- spec/features/consumer/authentication_spec.rb
- spec/features/consumer/cookies_spec.rb
- spec/features/consumer/caching/darkwarm_caching_spec.rb
- spec/features/consumer/caching/shops_caching_spec.rb
- spec/features/consumer/groups_spec.rb
- spec/features/consumer/multilingual_spec.rb
- spec/features/consumer/producers_spec.rb
- spec/features/consumer/registration_spec.rb
- spec/features/consumer/shopping/cart_spec.rb
- spec/features/consumer/shopping/checkout_auth_spec.rb
@@ -238,7 +227,6 @@ Metrics/LineLength:
- spec/lib/open_food_network/group_buy_report_spec.rb
- spec/lib/open_food_network/lettuce_share_report_spec.rb
- spec/lib/open_food_network/option_value_namer_spec.rb
- spec/lib/open_food_network/order_and_distributor_report_spec.rb
- spec/lib/open_food_network/order_cycle_form_applicator_spec.rb
- spec/lib/open_food_network/order_cycle_permissions_spec.rb
- spec/lib/open_food_network/order_grouper_spec.rb
@@ -246,11 +234,9 @@ Metrics/LineLength:
- spec/lib/open_food_network/packing_report_spec.rb
- spec/lib/open_food_network/permissions_spec.rb
- spec/lib/open_food_network/products_and_inventory_report_spec.rb
- spec/lib/open_food_network/proxy_order_syncer_spec.rb
- spec/lib/open_food_network/scope_variant_to_hub_spec.rb
- spec/lib/open_food_network/subscription_payment_updater_spec.rb
- spec/lib/open_food_network/subscription_summarizer_spec.rb
- spec/lib/open_food_network/tag_rule_applicator_spec.rb
- spec/lib/open_food_network/user_balance_calculator_spec.rb
- spec/lib/open_food_network/users_and_enterprises_report_spec.rb
- spec/lib/open_food_network/xero_invoices_report_spec.rb
- spec/lib/stripe/account_connector_spec.rb
@@ -271,8 +257,8 @@ Metrics/LineLength:
- spec/models/exchange_spec.rb
- spec/models/model_set_spec.rb
- spec/models/order_cycle_spec.rb
- spec/models/producer_property_spec.rb
- spec/models/product_importer_spec.rb
- spec/models/product_import/reset_absent_spec.rb
- spec/models/proxy_order_spec.rb
- spec/models/spree/ability_spec.rb
- spec/models/spree/adjustment_spec.rb
@@ -286,10 +272,9 @@ Metrics/LineLength:
- spec/models/spree/payment_spec.rb
- spec/models/spree/product_set_spec.rb
- spec/models/spree/product_spec.rb
- spec/models/spree/property_spec.rb
- spec/models/spree/shipping_method_spec.rb
- spec/models/spree/tax_rate_spec.rb
- spec/models/spree/taxon_spec.rb
- spec/models/spree/tax_rate_spec.rb
- spec/models/spree/user_spec.rb
- spec/models/spree/variant_spec.rb
- spec/models/stripe_account_spec.rb
@@ -302,39 +287,49 @@ Metrics/LineLength:
- spec/performance/orders_controller_spec.rb
- spec/performance/shop_controller_spec.rb
- spec/requests/checkout/failed_checkout_spec.rb
- spec/requests/checkout/stripe_sca_spec.rb
- spec/requests/embedded_shopfronts_headers_spec.rb
- spec/serializers/api/admin/customer_serializer_spec.rb
- spec/serializers/api/admin/exchange_serializer_spec.rb
- spec/serializers/api/admin/for_order_cycle/enterprise_serializer_spec.rb
- spec/serializers/api/admin/for_order_cycle/supplied_product_serializer_spec.rb
- spec/serializers/api/admin/order_cycle_serializer_spec.rb
- spec/serializers/api/admin/subscription_customer_serializer_spec.rb
- spec/serializers/api/admin/variant_override_serializer_spec.rb
- spec/serializers/api/current_order_serializer_spec.rb
- spec/serializers/api/enterprise_shopfront_serializer_spec.rb
- spec/serializers/api/order_serializer_spec.rb
- spec/services/cart_service_spec.rb
- spec/services/checkout/form_data_adapter_spec.rb
- spec/services/embedded_page_service_spec.rb
- spec/services/exchange_products_renderer_spec.rb
- spec/services/order_cycle_distributed_products_spec.rb
- spec/services/order_cycle_distributed_variants_spec.rb
- spec/services/order_cycle_form_spec.rb
- spec/services/order_factory_spec.rb
- spec/services/order_syncer_spec.rb
- spec/services/product_tag_rules_filterer_spec.rb
- spec/services/order_tax_adjustments_fetcher_spec.rb
- spec/services/permissions/order_spec.rb
- spec/services/permitted_attributes/order_cycle_spec.rb
- spec/services/products_renderer_spec.rb
- spec/services/subscription_estimator_spec.rb
- spec/services/subscription_form_spec.rb
- spec/services/subscription_validator_spec.rb
- spec/services/subscription_variants_service_spec.rb
- spec/services/product_tag_rules_filterer_spec.rb
- spec/spec_helper.rb
- spec/support/cancan_helper.rb
- spec/support/delayed_job_helper.rb
- spec/support/matchers/delegate_matchers.rb
- spec/support/matchers/select2_matchers.rb
- spec/support/matchers/table_matchers.rb
- spec/support/request/authentication_workflow.rb
- spec/support/request/shop_workflow.rb
- spec/support/request/web_helper.rb
- spec/support/seeds.rb
- engines/order_management/app/services/order_management/reports/bulk_coop/bulk_coop_report.rb
- spec/controllers/base_controller2_spec.rb
- spec/features/consumer/caching/darkswarm_caching_spec.rb
- spec/models/calculator/flexi_rate_spec.rb
- spec/models/calculator/price_sack_spec.rb
- spec/models/spree/stock_item_spec.rb
- spec/requests/api/orders_spec.rb
- spec/swagger_helper.rb
- spec/views/spree/admin/payment_methods/index.html.haml_spec.rb
Metrics/AbcSize:
Max: 15
@@ -345,7 +340,6 @@ Metrics/AbcSize:
- app/controllers/admin/enterprises_controller.rb
- app/controllers/admin/order_cycles_controller.rb
- app/controllers/admin/product_import_controller.rb
- app/controllers/admin/schedules_controller.rb
- app/controllers/admin/stripe_accounts_controller.rb
- app/controllers/admin/subscription_line_items_controller.rb
- app/controllers/admin/subscriptions_controller.rb
@@ -355,31 +349,27 @@ Metrics/AbcSize:
- app/controllers/api/shipments_controller.rb
- app/controllers/api/taxons_controller.rb
- app/controllers/api/variants_controller.rb
- app/controllers/base_controller.rb
- app/controllers/cart_controller.rb
- app/controllers/checkout_controller.rb
- app/controllers/discourse_sso_controller.rb
- app/controllers/enterprises_controller.rb
- app/controllers/spree/admin/adjustments_controller_decorator.rb
- app/controllers/spree/admin/image_settings_controller.rb
- app/controllers/spree/admin/orders/customer_details_controller_decorator.rb
- app/controllers/spree/admin/orders_controller_decorator.rb
- app/controllers/spree/admin/overview_controller_decorator.rb
- app/controllers/spree/admin/orders_controller.rb
- app/controllers/spree/admin/orders/customer_details_controller.rb
- app/controllers/spree/admin/overview_controller.rb
- app/controllers/spree/admin/payment_methods_controller.rb
- app/controllers/spree/admin/payments_controller_decorator.rb
- app/controllers/spree/admin/products_controller_decorator.rb
- app/controllers/spree/admin/reports_controller_decorator.rb
- app/controllers/spree/admin/search_controller_decorator.rb
- app/controllers/spree/admin/payments_controller.rb
- app/controllers/spree/admin/products_controller.rb
- app/controllers/spree/admin/reports_controller.rb
- app/controllers/spree/admin/resource_controller.rb
- app/controllers/spree/admin/search_controller.rb
- app/controllers/spree/admin/taxons_controller.rb
- app/controllers/spree/admin/users_controller.rb
- app/controllers/spree/admin/variants_controller_decorator.rb
- app/controllers/spree/checkout_controller.rb
- app/controllers/spree/credit_cards_controller.rb
- app/controllers/spree/orders_controller.rb
- app/controllers/spree/user_passwords_controller.rb
- app/controllers/spree/user_registrations_controller.rb
- app/controllers/spree/user_sessions_controller.rb
- app/controllers/spree/users_controller.rb
- app/controllers/spree/user_sessions_controller.rb
- app/controllers/stripe/callbacks_controller.rb
- app/controllers/user_confirmations_controller.rb
- app/controllers/user_passwords_controller.rb
@@ -387,18 +377,19 @@ Metrics/AbcSize:
- app/helpers/checkout_helper.rb
- app/helpers/i18n_helper.rb
- app/helpers/order_cycles_helper.rb
- app/helpers/spree/admin/navigation_helper_decorator.rb
- app/helpers/spree/admin/base_helper.rb
- app/helpers/spree/admin/navigation_helper.rb
- app/helpers/spree/admin/zones_helper.rb
- app/helpers/spree/orders_helper.rb
- app/jobs/subscription_placement_job.rb
- app/mailers/producer_mailer.rb
- app/models/calculator/flat_percent_per_item.rb
- app/models/column_preference.rb
- app/models/enterprise.rb
- app/models/enterprise_group.rb
- app/models/enterprise.rb
- app/models/enterprise_relationship.rb
- app/models/model_set.rb
- app/models/product_import/entry_processor.rb
- app/models/product_import/entry_validator.rb
- app/models/product_import/product_importer.rb
- app/models/proxy_order.rb
- app/models/spree/ability_decorator.rb
- app/models/spree/calculator/default_tax_decorator.rb
@@ -407,15 +398,23 @@ Metrics/AbcSize:
- app/models/spree/order_decorator.rb
- app/models/spree/payment_decorator.rb
- app/models/spree/product_decorator.rb
- app/models/spree/shipment.rb
- app/models/spree/taxon_decorator.rb
- app/models/spree/tax_rate_decorator.rb
- app/serializers/api/admin/enterprise_serializer.rb
- app/serializers/api/admin/order_cycle_serializer.rb
- app/serializers/api/product_serializer.rb
- app/serializers/api/variant_serializer.rb
- app/services/cart_service.rb
- app/services/create_order_cycle.rb
- app/services/order_cycle_form.rb
- app/services/order_syncer.rb
- app/services/subscription_validator.rb
- engines/order_management/app/services/order_management/order/updater.rb
- engines/order_management/app/services/order_management/stock/estimator.rb
- engines/order_management/app/services/order_management/stock/package.rb
- engines/order_management/app/services/order_management/stock/packer.rb
- engines/order_management/app/services/order_management/subscriptions/validator.rb
- lib/active_merchant/billing/gateways/stripe_decorator.rb
- lib/active_merchant/billing/gateways/stripe_payment_intents.rb
- lib/discourse/single_sign_on.rb
- lib/open_food_network/bulk_coop_report.rb
- lib/open_food_network/customers_report.rb
@@ -431,27 +430,35 @@ Metrics/AbcSize:
- lib/open_food_network/payments_report.rb
- lib/open_food_network/permissions.rb
- lib/open_food_network/products_and_inventory_report.rb
- lib/open_food_network/rack_request_blocker.rb
- lib/open_food_network/reports/line_items.rb
- lib/open_food_network/sales_tax_report.rb
- lib/open_food_network/users_and_enterprises_report.rb
- lib/open_food_network/variant_and_line_item_naming.rb
- lib/open_food_network/xero_invoices_report.rb
- lib/spree/api/controller_setup.rb
- lib/spree/core/controller_helpers/respond_with_decorator.rb
- lib/spree/core/controller_helpers/order.rb
- lib/spree/core/controller_helpers/respond_with.rb
- lib/spree/core/controller_helpers/ssl.rb
- lib/spree/localized_number.rb
- lib/stripe/account_connector.rb
- lib/tasks/enterprises.rake
- lib/tasks/sample_data/order_factory.rb
- lib/tasks/sample_data/product_factory.rb
- spec/features/admin/product_import_spec.rb
- spec/features/admin/reports_spec.rb
- spec/features/admin/subscriptions_spec.rb
- spec/features/consumer/shopping/checkout_paypal_spec.rb
- spec/features/consumer/shopping/shopping_spec.rb
- spec/features/consumer/shopping/variant_overrides_spec.rb
- spec/models/enterprise_spec.rb
- spec/models/product_importer_spec.rb
- spec/services/restart_checkout_spec.rb
- spec/services/order_checkout_restart_spec.rb
- spec/support/performance_helper.rb
- app/controllers/application_controller.rb
- app/models/spree/order/checkout.rb
- app/models/spree/payment/processing.rb
- app/models/spree/payment.rb
- engines/order_management/app/services/order_management/reports/bulk_coop/bulk_coop_report.rb
Metrics/BlockLength:
Max: 25
@@ -469,17 +476,20 @@ Metrics/BlockLength:
"scenario"
]
Exclude:
- app/models/spree/shipment.rb
- lib/spree/core/controller_helpers/common.rb
- lib/spree/core/controller_helpers/ssl.rb
- lib/tasks/data.rake
- spec/controllers/spree/admin/invoices_controller_spec.rb
- spec/factories.rb
- spec/factories/enterprise_factory.rb
- spec/factories/order_cycle_factory.rb
- spec/factories/order_factory.rb
- spec/factories/product_factory.rb
- spec/factories.rb
- spec/factories/shipping_method_factory.rb
- spec/factories/subscription_factory.rb
- spec/factories/user_factory.rb
- spec/factories/variant_factory.rb
- spec/features/admin/orders_spec.rb
- spec/features/consumer/shopping/embedded_shopfronts_spec.rb
- spec/lib/open_food_network/group_buy_report_spec.rb
- spec/models/tag_rule/discount_order_spec.rb
@@ -487,66 +497,77 @@ Metrics/BlockLength:
- spec/support/delayed_job_helper.rb
- spec/support/matchers/select2_matchers.rb
- spec/support/matchers/table_matchers.rb
- app/models/spree/order/checkout.rb
- app/models/spree/payment/processing.rb
- spec/requests/api/orders_spec.rb
- spec/swagger_helper.rb
Metrics/CyclomaticComplexity:
Max: 6
Exclude:
- app/controllers/admin/enterprise_fees_controller.rb
- app/controllers/admin/enterprises_controller.rb
- app/controllers/checkout_controller.rb
- app/controllers/spree/admin/payments_controller_decorator.rb
- app/controllers/spree/admin/taxons_controller.rb
- app/controllers/spree/orders_controller.rb
- app/helpers/checkout_helper.rb
- app/helpers/i18n_helper.rb
- app/helpers/order_cycles_helper.rb
- app/helpers/spree/admin/navigation_helper_decorator.rb
- app/helpers/spree/admin/base_helper.rb
- app/helpers/spree/admin/navigation_helper.rb
- app/models/enterprise.rb
- app/models/enterprise_relationship.rb
- app/models/product_import/entry_processor.rb
- app/models/product_import/entry_validator.rb
- app/models/spree/ability_decorator.rb
- app/models/spree/payment_decorator.rb
- app/models/spree/payment_method_decorator.rb
- app/models/spree/product_decorator.rb
- app/models/variant_override_set.rb
- app/services/cart_service.rb
- engines/order_management/app/services/order_management/stock/estimator.rb
- lib/active_merchant/billing/gateways/stripe_payment_intents.rb
- lib/discourse/single_sign_on.rb
- lib/open_food_network/bulk_coop_report.rb
- lib/open_food_network/enterprise_issue_validator.rb
- lib/spree/core/controller_helpers/order_decorator.rb
- lib/spree/core/controller_helpers/respond_with_decorator.rb
- lib/spree/core/controller_helpers/order.rb
- lib/spree/core/controller_helpers/respond_with.rb
- lib/spree/core/controller_helpers/ssl.rb
- lib/spree/localized_number.rb
- spec/models/product_importer_spec.rb
- app/models/spree/order/checkout.rb
- app/models/spree/payment.rb
- engines/order_management/app/services/order_management/reports/bulk_coop/bulk_coop_report.rb
Metrics/PerceivedComplexity:
Max: 7
Exclude:
- app/controllers/admin/enterprises_controller.rb
- app/controllers/api/variants_controller.rb
- app/controllers/checkout_controller.rb
- app/controllers/spree/admin/payments_controller_decorator.rb
- app/controllers/spree/admin/taxons_controller.rb
- app/controllers/spree/orders_controller.rb
- app/helpers/checkout_helper.rb
- app/helpers/i18n_helper.rb
- app/helpers/order_cycles_helper.rb
- app/helpers/spree/admin/navigation_helper.rb
- app/models/enterprise_relationship.rb
- app/models/product_import/entry_processor.rb
- app/models/product_import/entry_validator.rb
- app/models/spree/ability_decorator.rb
- app/models/spree/order_decorator.rb
- app/models/spree/product_decorator.rb
- engines/order_management/app/services/order_management/stock/estimator.rb
- lib/active_merchant/billing/gateways/stripe_payment_intents.rb
- lib/discourse/single_sign_on.rb
- lib/open_food_network/bulk_coop_report.rb
- lib/open_food_network/enterprise_issue_validator.rb
- lib/spree/core/controller_helpers/order_decorator.rb
- lib/spree/core/controller_helpers/respond_with_decorator.rb
- lib/spree/core/controller_helpers/order.rb
- lib/spree/core/controller_helpers/respond_with.rb
- lib/spree/core/controller_helpers/ssl.rb
- lib/spree/localized_number.rb
- spec/models/product_importer_spec.rb
- app/models/spree/order/checkout.rb
- engines/order_management/app/services/order_management/reports/bulk_coop/bulk_coop_report.rb
Metrics/MethodLength:
Max: 10
Exclude:
- app/controllers/admin/contents_controller.rb
- app/controllers/admin/customers_controller.rb
- app/controllers/admin/enterprise_fees_controller.rb
- app/controllers/admin/enterprises_controller.rb
@@ -558,17 +579,16 @@ Metrics/MethodLength:
- app/controllers/api/shipments_controller.rb
- app/controllers/api/taxons_controller.rb
- app/controllers/api/variants_controller.rb
- app/controllers/base_controller.rb
- app/controllers/cart_controller.rb
- app/controllers/checkout_controller.rb
- app/controllers/shop_controller.rb
- app/controllers/spree/admin/image_settings_controller.rb
- app/controllers/spree/admin/orders/customer_details_controller_decorator.rb
- app/controllers/spree/admin/orders_controller.rb
- app/controllers/spree/admin/orders/customer_details_controller.rb
- app/controllers/spree/admin/payment_methods_controller.rb
- app/controllers/spree/admin/payments_controller_decorator.rb
- app/controllers/spree/admin/products_controller_decorator.rb
- app/controllers/spree/admin/reports_controller_decorator.rb
- app/controllers/spree/admin/search_controller_decorator.rb
- app/controllers/spree/admin/payments_controller.rb
- app/controllers/spree/admin/products_controller.rb
- app/controllers/spree/admin/reports_controller.rb
- app/controllers/spree/admin/resource_controller.rb
- app/controllers/spree/admin/tax_categories_controller.rb
- app/controllers/spree/admin/taxons_controller.rb
- app/controllers/spree/admin/users_controller.rb
@@ -582,7 +602,8 @@ Metrics/MethodLength:
- app/controllers/user_registrations_controller.rb
- app/helpers/checkout_helper.rb
- app/helpers/order_cycles_helper.rb
- app/jobs/subscription_placement_job.rb
- app/helpers/spree/admin/base_helper.rb
- app/helpers/spree/admin/navigation_helper.rb
- app/mailers/producer_mailer.rb
- app/models/column_preference.rb
- app/models/enterprise.rb
@@ -599,10 +620,16 @@ Metrics/MethodLength:
- app/models/spree/payment_decorator.rb
- app/models/spree/payment_method_decorator.rb
- app/models/spree/product_decorator.rb
- app/models/spree/shipment.rb
- app/serializers/api/admin/order_cycle_serializer.rb
- app/serializers/api/cached_enterprise_serializer.rb
- app/services/order_cycle_form.rb
- app/services/permitted_attributes/checkout.rb
- engines/order_management/app/services/order_management/order/updater.rb
- engines/order_management/app/services/order_management/reports/enterprise_fee_summary/scope.rb
- engines/order_management/app/services/order_management/stock/estimator.rb
- engines/order_management/app/services/order_management/stock/package.rb
- lib/active_merchant/billing/gateways/stripe_payment_intents.rb
- lib/discourse/single_sign_on.rb
- lib/open_food_network/bulk_coop_report.rb
- lib/open_food_network/column_preference_defaults.rb
@@ -629,24 +656,41 @@ Metrics/MethodLength:
- lib/open_food_network/users_and_enterprises_report.rb
- lib/open_food_network/xero_invoices_report.rb
- lib/spree/api/controller_setup.rb
- lib/spree/core/controller_helpers/respond_with_decorator.rb
- lib/spree/core/controller_helpers/auth.rb
- lib/spree/core/controller_helpers/order.rb
- lib/spree/core/controller_helpers/respond_with.rb
- lib/spree/core/controller_helpers/ssl.rb
- lib/spree/localized_number.rb
- lib/stripe/profile_storer.rb
- lib/tasks/data/truncate_data.rb
- lib/tasks/sample_data/group_factory.rb
- lib/tasks/sample_data/order_factory.rb
- lib/tasks/sample_data/product_factory.rb
- spec/features/consumer/shopping/checkout_paypal_spec.rb
- spec/features/consumer/shopping/variant_overrides_spec.rb
- spec/models/product_importer_spec.rb
- spec/support/request/authentication_workflow.rb
- spec/support/request/authentication_helper.rb
- app/models/spree/order/checkout.rb
- app/models/spree/payment/processing.rb
- engines/order_management/app/services/order_management/reports/bulk_coop/bulk_coop_allocation_report.rb
- engines/order_management/app/services/order_management/reports/bulk_coop/bulk_coop_report.rb
- engines/order_management/app/services/order_management/reports/bulk_coop/bulk_coop_supplier_report.rb
Metrics/ClassLength:
Max: 100
Exclude:
- app/controllers/admin/enterprises_controller.rb
- app/controllers/admin/order_cycles_controller.rb
- app/controllers/admin/schedules_controller.rb
- app/controllers/admin/subscriptions_controller.rb
- app/controllers/api/products_controller.rb
- app/controllers/application_controller.rb
- app/controllers/checkout_controller.rb
- app/controllers/spree/admin/orders_controller.rb
- app/controllers/spree/admin/payment_methods_controller.rb
- app/controllers/spree/admin/products_controller.rb
- app/controllers/spree/admin/reports_controller.rb
- app/controllers/spree/admin/resource_controller.rb
- app/controllers/spree/admin/users_controller.rb
- app/controllers/spree/orders_controller.rb
- app/models/enterprise.rb
@@ -655,11 +699,14 @@ Metrics/ClassLength:
- app/models/product_import/entry_validator.rb
- app/models/product_import/product_importer.rb
- app/models/spree/ability_decorator.rb
- app/models/spree/shipment.rb
- app/models/spree/user.rb
- app/serializers/api/cached_enterprise_serializer.rb
- app/serializers/api/enterprise_shopfront_serializer.rb
- app/services/cart_service.rb
- engines/order_management/app/services/order_management/order/updater.rb
- engines/order_management/app/services/order_management/reports/enterprise_fee_summary/scope.rb
- lib/active_merchant/billing/gateways/stripe_payment_intents.rb
- lib/open_food_network/bulk_coop_report.rb
- lib/open_food_network/enterprise_fee_calculator.rb
- lib/open_food_network/order_cycle_form_applicator.rb
@@ -670,12 +717,24 @@ Metrics/ClassLength:
- lib/open_food_network/permissions.rb
- lib/open_food_network/users_and_enterprises_report.rb
- lib/open_food_network/xero_invoices_report.rb
- app/models/spree/payment.rb
- engines/order_management/app/services/order_management/reports/bulk_coop/bulk_coop_report.rb
Metrics/ModuleLength:
Max: 100
Exclude:
- app/helpers/admin/injection_helper.rb
- app/helpers/injection_helper.rb
- app/helpers/spree/admin/base_helper.rb
- app/helpers/spree/admin/navigation_helper.rb
- engines/order_management/spec/services/order_management/order/updater_spec.rb
- engines/order_management/spec/services/order_management/stock/package_spec.rb
- engines/order_management/spec/services/order_management/subscriptions/estimator_spec.rb
- engines/order_management/spec/services/order_management/subscriptions/form_spec.rb
- engines/order_management/spec/services/order_management/subscriptions/proxy_order_syncer_spec.rb
- engines/order_management/spec/services/order_management/subscriptions/summarizer_spec.rb
- engines/order_management/spec/services/order_management/subscriptions/validator_spec.rb
- engines/order_management/spec/services/order_management/subscriptions/variants_list_spec.rb
- lib/open_food_network/column_preference_defaults.rb
- spec/controllers/admin/enterprises_controller_spec.rb
- spec/controllers/admin/order_cycles_controller_spec.rb
@@ -691,10 +750,9 @@ Metrics/ModuleLength:
- spec/lib/open_food_network/order_grouper_spec.rb
- spec/lib/open_food_network/permissions_spec.rb
- spec/lib/open_food_network/products_and_inventory_report_spec.rb
- spec/lib/open_food_network/proxy_order_syncer_spec.rb
- spec/lib/open_food_network/scope_variant_to_hub_spec.rb
- spec/lib/open_food_network/subscription_payment_updater_spec.rb
- spec/lib/open_food_network/tag_rule_applicator_spec.rb
- spec/lib/open_food_network/user_balance_calculator_spec.rb
- spec/lib/open_food_network/users_and_enterprises_report_spec.rb
- spec/models/spree/ability_spec.rb
- spec/models/spree/adjustment_spec.rb
@@ -702,7 +760,10 @@ Metrics/ModuleLength:
- spec/models/spree/payment_spec.rb
- spec/models/spree/product_spec.rb
- spec/models/spree/variant_spec.rb
- spec/services/permissions/order_spec.rb
- spec/support/request/web_helper.rb
- app/models/spree/order/checkout.rb
- app/models/spree/payment/processing.rb
Metrics/ParameterLists:
Max: 5
@@ -711,3 +772,8 @@ Metrics/ParameterLists:
- app/models/product_import/entry_processor.rb
- lib/open_food_network/xero_invoices_report.rb
- spec/features/admin/reports_spec.rb
Lint/UselessAssignment:
Exclude:
- 'spec/**/*'
- 'lib/spree/core/controller_helpers/common.rb'

View File

@@ -5,8 +5,7 @@
# rubocop locally, the default configuration file `.rubocop.yml` loads
# our "todo lists" to ignore all current violations.
AllCops:
TargetRubyVersion: 2.2
TargetRailsVersion: 3.2
TargetRailsVersion: 4.0
Exclude:
- 'bin/**/*'
- 'db/**/*'
@@ -21,9 +20,6 @@ AllCops:
#
# Cop settings that have been agreed upon by the OFN community
Rails:
Enabled: true
Style/Documentation:
Enabled: false
@@ -41,9 +37,15 @@ Layout/MultilineMethodCallIndentation:
Enabled: true
EnforcedStyle: indented
Metrics/LineLength:
Layout/LineLength:
Max: 100
Lint/RaiseException:
Enabled: true
Lint/StructNewOverride:
Enabled: true
## TEMPORARY/CONTESTED SETTINGS
#
# These are still to be decided upon, but recommended for inclusion by
@@ -62,24 +64,6 @@ Lint/UselessAssignment:
Exclude:
- spec/**/*
# AFAIK, there is no good alternative to dynamic matchers until we upgrade
# to Rails 4 and can use #find_by. If there is a better approach, let's do it.
Rails/DynamicFindBy:
Enabled: false
# Same as above, #find_by is not available until Rails 4
Rails/FindBy:
Enabled: false
# Same as above, #update! is not available until Rails 4
Rails/ActiveRecordAliases:
Enabled: false
# This should be the programmer's discretion, perhaps we should review all of
# the uses of it an make specific exceptions though.
Rails/SkipsModelValidations:
Enabled: false
## Relaxed.Ruby.Style SETTINGS
#
# These styles are a starting point for the conversation around conventions
@@ -118,6 +102,15 @@ Style/FormatString:
Enabled: false
StyleGuide: http://relaxed.ruby.style/#styleformatstring
Style/HashEachMethods:
Enabled: false
Style/HashTransformKeys:
Enabled: false
Style/HashTransformValues:
Enabled: false
Style/IfUnlessModifier:
Enabled: false
StyleGuide: http://relaxed.ruby.style/#styleifunlessmodifier

File diff suppressed because it is too large Load Diff

View File

@@ -1 +1 @@
2.2.10
2.3.7

View File

@@ -1,9 +1,9 @@
# Contributing
We love pull requests from everyone. Any contribution is valuable, but there are two issue streams that we especially love people to work on:
We love pull requests from everyone. Any contribution is valuable!
1) Our delivery backlog, is managed via a ZenHub board (ZenHub extensions are available for most major browsers). We use a Kanban-style approach, whereby devs pick issues from the top of the backlog which has been organised according to current priorities. If you have some time and are interested in working on some issues from the backlog, please make yourself known on the [#dev][slack-dev] channel on Slack and we can direct you to the most appropriate issue to pick up.
If you have some time and are interested in working on some issues please make yourself known on the [#dev][slack-dev] channel on Slack.
2) Our list of bugs and other self-contained issues that we consider to be a good starting point for new contributors, or devs who arent able to commit to seeing a whole feature through. These issues are marked with the `# good first issue` label.
We have curated all issues we consider to be a good starting point for new members of the community within the [Welcome New Developers project board][welcome-dev]. Have a look and pick the one you would prefer working on!
## Set up
@@ -19,10 +19,6 @@ If you want to run the whole test suite, we recommend using a free CI service to
bundle exec rspec spec
## Which issue to pick first?
We have curated all issues interesting for new members of the community within the [Welcome New Developers project board][welcome-dev]. Have a look and pick the one you would prefer working on!
## Internationalisation (i18n)
The locale `en` is maintained in the source code, but other locales are managed at [Transifex][ofn-transifex]. Read more about [internationalisation][i18n] in the developer wiki.

View File

@@ -17,7 +17,13 @@ Better to have at least 2GB free on your computer in order to download images an
Open a terminal with a shell.
Clone the repository:
Clone the repository. If you're planning on contributing code to the project (which we [LOVE](CONTRIBUTING.md)), it is a good idea to begin by forking this repo using the Fork button in the top-right corner of this screen. You should then be able to use git clone to copy your fork onto your local machine.
```sh
$ git clone https://github.com/YOUR_GITHUB_USERNAME_HERE/openfoodnetwork
```
Otherwise, if you just want to get things running, clone from the OFN main repo:
```sh
$ git clone git@github.com:openfoodfoundation/openfoodnetwork.git
@@ -35,13 +41,22 @@ Download the Docker images and build the containers:
$ docker-compose build
```
Run the app with all the required containers:
Setup the database and seed it with sample data:
```sh
$ docker-compose run web bundle exec rake db:reset
$ docker-compose run web bundle exec rake db:test:prepare
$ docker-compose run web bundle exec rake ofn:sample_data
```
Finally, run the app with all the required containers:
```sh
$ docker-compose up
```
This command will setup the database and seed it with sample data. The default admin user is 'ofn@example.com' with 'ofn123' password.
The default admin user is 'ofn@example.com' with 'ofn123' password.
Check the app in the browser at `http://localhost:3000`.
You will then get the trace of the containers in the terminal. You can stop the containers using Ctrl-C in the terminal.
You can find some useful tips and commands [here](https://github.com/openfoodfoundation/openfoodnetwork/wiki/Docker:-useful-tips-and-commands).

View File

@@ -1,7 +1,7 @@
FROM ubuntu:18.04
# Install all the requirements
RUN apt-get update && apt-get install -y curl git build-essential software-properties-common wget zlib1g-dev libssl1.0-dev libreadline-dev libyaml-dev libffi-dev libxml2-dev libxslt1-dev wait-for-it
RUN apt-get update && apt-get install -y curl git build-essential software-properties-common wget zlib1g-dev libssl1.0-dev libreadline-dev libyaml-dev libffi-dev libxml2-dev libxslt1-dev wait-for-it imagemagick unzip
# Setup ENV variables
ENV PATH /usr/local/src/rbenv/shims:/usr/local/src/rbenv/bin:$PATH
@@ -12,19 +12,36 @@ ENV BUNDLE_PATH /bundles
WORKDIR /usr/src/app
COPY .ruby-version .
# Rbenv & Ruby part
RUN git clone https://github.com/rbenv/rbenv.git ${RBENV_ROOT} && \
git clone https://github.com/rbenv/ruby-build.git ${RBENV_ROOT}/plugins/ruby-build && \
# Install Rbenv & Ruby
RUN git clone --depth 1 --branch v1.1.2 https://github.com/rbenv/rbenv.git ${RBENV_ROOT} && \
git clone --depth 1 --branch v20200520 https://github.com/rbenv/ruby-build.git ${RBENV_ROOT}/plugins/ruby-build && \
${RBENV_ROOT}/plugins/ruby-build/install.sh && \
echo 'eval "$(rbenv init -)"' >> /etc/profile.d/rbenv.sh && \
rbenv install $(cat .ruby-version) && \
rbenv global $(cat .ruby-version) && \
gem install bundler --version=1.17.2
# Postgres
# Install Postgres
RUN sh -c "echo 'deb https://apt.postgresql.org/pub/repos/apt/ bionic-pgdg main' > /etc/apt/sources.list.d/pgdg.list" && \
wget --quiet -O - https://apt.postgresql.org/pub/repos/apt/ACCC4CF8.asc | apt-key add - && \
apt-get update && \
apt-get install -yqq --no-install-recommends postgresql-client-9.5 libpq-dev
# Install node
RUN apt-get install -y nodejs
# Install Chrome
RUN wget --quiet -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add - && \
sh -c "echo 'deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main' >> /etc/apt/sources.list.d/google-chrome.list" && \
apt-get update && \
apt-get install -fy google-chrome-stable
# Install Chromedriver
RUN wget https://chromedriver.storage.googleapis.com/2.41/chromedriver_linux64.zip && \
unzip chromedriver_linux64.zip -d /usr/bin && \
chmod u+x /usr/bin/chromedriver
# Copy code and install app dependencies
COPY . /usr/src/app/
# Run bundler install in parallel with the amount of available CPUs
RUN bundle install --jobs="$(nproc)"

View File

@@ -1,20 +1,18 @@
### Getting Started
This is a general guide to setting up an Open Food Network development environment on your local machine.
This is a general guide to setting up an Open Food Network **development environment on your local machine**. If you want to setup OFN on a server, please have a look at the [ofn-install deployment guide](https://github.com/openfoodfoundation/ofn-install/wiki).
The following guides are located in the wiki and provide more OS-specific step-by-step instructions:
### Requirements
- [Ubuntu Setup Guide][ubuntu]
- [macOS Sierra Setup Guide][sierra]
- [OSX El Capitan Setup Guide][el-capitan]
### Dependencies
* Rails 3.2.x
* Ruby 2.1.9
The fastest way to make it work locally is to use Docker, you only need to setup git, see the [Docker setup guide](DOCKER.md).
Otherwise, for a local setup you will need:
* Ruby 2.3.7 and bundler
* PostgreSQL database
* PhantomJS (for testing)
* See Gemfile for a list of gems required
* Chrome (for testing)
The following guides will provide OS-specific step-by-step instructions to get these requirements installed:
- [Ubuntu Setup Guide][ubuntu]
- [OSX Setup Guide][osx]
If you are likely to need to manage multiple version of ruby on your local machine, we recommend version managers such as [rbenv](https://github.com/rbenv/rbenv) or [RVM](https://rvm.io/).
@@ -50,18 +48,16 @@ This will create the "ofn" user as superuser and allowing it to create databases
Once done, run `script/setup`. If the script succeeds you're ready to start developing. If not, take a look at the output as it should be informative enough to help you troubleshoot.
If you run into any other issues getting your local environment up and running please consult [the wiki][wiki].
If still you get stuck do not hesitate to open an issue reporting the full output of the script.
Now, your dreams of spinning up a development server can be realised:
bundle exec rails server
To login as Spree default user, use:
Go to [http://localhost:3000](http://localhost:3000) to play around!
email: spree@example.com
password: spree123
To login as the default user, use:
email: ofn@example.com
password: ofn123
### Testing
@@ -77,7 +73,7 @@ The tests of all custom engines can be run with:
bundle exec rake ofn:specs:engines:rspec
Note: If your OS is not explicitly supported in the setup guides then not all tests may pass. However, you may still be able to develop. Get in touch with the [#dev][slack-dev] channel on Slack to troubleshoot issues and determine if they will preclude you from contributing to OFN.
Note: If your OS is not explicitly supported in the setup guides then not all tests may pass. However, you may still be able to develop.
Note: The time zone on your machine should match the one defined in `config/application.yml`.
@@ -118,8 +114,7 @@ $ createdb open_food_network_test --owner=ofn
If these commands succeed, you should be able to [continue the setup process](#get-it-running).
[developer-wiki]: https://github.com/openfoodfoundation/openfoodnetwork/wiki
[sierra]: https://github.com/openfoodfoundation/openfoodnetwork/wiki/Development-Environment-Setup%3A-macOS-%28Sierra%2C-HighSierra-and-Mojave%29
[el-capitan]: https://github.com/openfoodfoundation/openfoodnetwork/wiki/Development-Environment-Setup:-OS-X-(El-Capitan)
[osx]: https://github.com/openfoodfoundation/openfoodnetwork/wiki/Development-Environment-Setup:-OS-X
[ubuntu]: https://github.com/openfoodfoundation/openfoodnetwork/wiki/Development-Environment-Setup:-Ubuntu
[wiki]: https://github.com/openfoodfoundation/openfoodnetwork/wiki
[zeus]: https://github.com/burke/zeus

129
Gemfile
View File

@@ -1,17 +1,17 @@
source 'https://rubygems.org'
ruby "2.2.10"
ruby "2.3.7"
git_source(:github) { |repo_name| "https://github.com/#{repo_name}.git" }
gem 'i18n', '~> 0.6.11'
gem 'i18n-js', '~> 3.5.0'
gem 'rails', '~> 3.2.22'
gem 'rails-i18n', '~> 3.0.0'
gem 'i18n-js', '~> 3.7.1'
gem 'rails', '~> 4.0.13'
gem 'rails-i18n', '~> 4.0'
gem 'rails_safe_tasks', '~> 1.0'
gem "activerecord-import"
# Patched version. See http://rubysec.com/advisories/CVE-2015-5312/.
gem 'nokogiri', '>= 1.6.7.1'
gem "catalog", path: "./engines/catalog"
gem 'dfc_provider', path: './engines/dfc_provider'
gem "order_management", path: "./engines/order_management"
gem 'web', path: './engines/web'
@@ -19,73 +19,82 @@ gem 'activerecord-postgresql-adapter'
gem 'pg', '~> 0.21.0'
# OFN-maintained and patched version of Spree v2.0.4. See
# https://github.com/openfoodfoundation/openfoodnetwork/wiki/Spree-2.0-upgrade
# https://github.com/openfoodfoundation/openfoodnetwork/wiki/Tech-Doc:-OFN's-Spree-fork%F0%9F%8D%B4
# for details.
gem 'spree_backend', github: 'openfoodfoundation/spree', branch: '2-0-4-stable'
gem 'spree_core', github: 'openfoodfoundation/spree', branch: '2-0-4-stable'
gem 'spree_core', github: 'openfoodfoundation/spree', branch: '2-1-0-stable'
### Dependencies brought from spree core
gem 'acts_as_list', '= 0.2.0'
gem 'awesome_nested_set', '~> 3.0.0.rc.1'
gem 'cancan', '~> 1.6.10'
gem 'ffaker', '~> 1.16'
gem 'highline', '= 1.6.18' # Necessary for the install generator
gem 'httparty', '~> 0.18' # Used to check alerts in spree_core, this is not used in OFN.
gem 'json', '>= 1.7.7'
gem 'money', '5.1.1'
gem 'paranoia', '~> 2.0'
gem 'ransack', '~> 1.8.10'
gem 'state_machine', '1.2.0'
gem 'stringex', '~> 1.5.1'
gem 'spree_i18n', github: 'spree/spree_i18n', branch: '1-3-stable'
# Our branch contains two changes
# Our branch contains the following changes:
# - Pass customer email and phone number to PayPal (merged to upstream master)
# - Change type of password from string to password to hide it in the form
gem 'spree_paypal_express', github: "openfoodfoundation/better_spree_paypal_express", branch: "2-0-stable"
# - Skip CA cert file and use the ones provided by the OS
gem 'spree_paypal_express', github: 'openfoodfoundation/better_spree_paypal_express', branch: '2-1-0-stable'
gem 'stripe'
# We need at least this version to have Digicert's root certificate
# which is needed for Pin Payments (and possibly others).
gem 'activemerchant', '~> 1.78'
gem 'activemerchant', '~> 1.78.0'
gem 'devise', '~> 2.2.5'
gem 'devise-encryptable', '0.2.0'
gem 'devise', '~> 3.5.10' # v4.0.0 needs rails 4.1
gem 'devise-encryptable'
gem 'devise-token_authenticatable', '~> 0.4.10' # v0.5.0 needs devise v4
gem 'jwt', '~> 2.2'
gem 'oauth2', '~> 1.4.2' # Used for Stripe Connect
gem 'oauth2', '~> 1.4.4' # Used for Stripe Connect
gem 'daemons'
gem 'delayed_job_active_record'
gem 'delayed_job_web'
# Fix bug in simple_form preventing collection_check_boxes usage within form_for block
# When merged, revert to upstream gem
gem 'simple_form', github: 'RohanM/simple_form'
# Spree's default pagination gem (locked to the current version used by Spree)
# We use it's methods in OFN code as well, so this is a direct dependency
gem 'kaminari', '~> 0.14.1'
gem 'andand'
gem 'angularjs-rails', '1.5.5'
gem 'aws-sdk'
gem 'aws-sdk', '1.11.1' # temporarily locked down due to https://github.com/aws/aws-sdk-ruby/issues/273
gem 'bugsnag'
gem 'db2fog'
gem 'haml'
gem 'rabl'
gem 'redcarpet'
gem 'sass', "~> 3.3"
gem 'sass-rails', '~> 3.2.3', groups: [:default, :assets]
gem 'truncate_html'
gem 'sass'
gem 'sass-rails'
gem 'truncate_html', '0.9.2'
gem 'unicorn'
# AMS is pinned to 0.8.4 because 0.9.x is a complete re-write, as is 0.10.x
# Once Rails is updated to 5.x we should bump directly to 0.10.x
gem 'actionpack-action_caching'
# AMS 0.9.x and 0.10.x are very different from 0.8.4 and the upgrade is not straight forward
# AMS is deprecated, we will introduce an alternative at some point
gem "active_model_serializers", "0.8.4"
gem 'acts-as-taggable-on', '~> 3.4'
gem 'activerecord-session_store'
gem 'acts-as-taggable-on', '~> 4.0'
gem 'angularjs-file-upload-rails', '~> 2.4.1'
gem 'blockenspiel'
gem 'custom_error_message', github: 'jeremydurham/custom-err-msg'
gem 'dalli'
gem 'deface', '1.0.2'
gem 'diffy'
gem 'figaro'
gem 'geocoder'
gem 'gmaps4rails'
gem 'oj'
gem 'paper_trail', '~> 5.2.3'
gem 'paper_trail', '~> 7.1.3'
gem 'paperclip', '~> 3.4.1'
gem 'rack-rewrite'
gem 'rack-ssl', require: 'rack/ssl'
gem 'roadie-rails', '~> 1.3.0'
gem 'spinjs-rails'
gem 'combine_pdf'
gem 'wicked_pdf'
@@ -93,62 +102,56 @@ gem 'wkhtmltopdf-binary'
gem 'foreigner'
gem 'immigrant'
gem 'roo', '~> 2.7.0'
gem 'roo-xls', '~> 1.1.0'
gem 'roo', '~> 2.8.3'
gem 'whenever', require: false
gem 'test-unit', '~> 3.3'
# Gems used only for assets and not required
# in production environments by default.
group :assets do
gem 'coffee-rails', '~> 3.2.1'
gem 'compass-rails'
gem 'coffee-rails', '~> 4.2.2'
gem 'compass-rails'
gem 'mini_racer', '0.1.15'
# Previously we found that libv8 6.7.288.46.1 breakis the compilation of mini_racer.
# Now we see that we need to set the version explicitly. Nothing else depends on libv8.
gem 'libv8', '6.3.292.48.1'
gem 'mini_racer', '0.2.15'
gem 'uglifier', '>= 1.0.3'
gem 'uglifier', '>= 1.0.3'
gem 'angular-rails-templates', '~> 0.3.0'
gem 'foundation-icons-sass-rails'
gem 'momentjs-rails'
gem 'turbo-sprockets-rails3'
end
gem 'angular-rails-templates', '~> 0.3.0'
gem 'foundation-icons-sass-rails'
gem 'momentjs-rails'
gem "foundation-rails"
gem 'foundation_rails_helper', github: 'willrjmarshall/foundation_rails_helper', branch: "rails3"
gem 'foundation-rails', '= 5.5.2.1'
gem 'jquery-migrate-rails'
gem 'jquery-rails', '3.0.4'
gem 'jquery-rails', '3.1.5'
gem 'jquery-ui-rails', '~> 4.2'
gem 'select2-rails', '~> 3.4.7'
gem 'ofn-qz', github: 'openfoodfoundation/ofn-qz', ref: '60da2ae4c44cbb4c8d602f59fb5fff8d0f21db3c'
gem 'ofn-qz', github: 'openfoodfoundation/ofn-qz', branch: 'ofn-rails-4'
group :production, :staging do
gem 'ddtrace'
gem 'unicorn-worker-killer'
end
group :test, :development do
# Pretty printed test output
gem 'atomic'
gem 'awesome_print'
gem 'capybara', '>= 2.15.4'
gem 'database_cleaner', '0.7.1', require: false
gem "factory_bot_rails", require: false
gem 'capybara', '>= 2.18.0' # 3.0 requires rack 1.6 that only works with Rails 4.2
gem 'database_cleaner', require: false
gem "factory_bot_rails", '4.10.0', require: false
gem 'fuubar', '~> 2.5.0'
gem 'json_spec', '~> 1.1.4'
gem 'knapsack'
gem 'letter_opener', '>= 1.4.1'
gem 'rspec-rails', ">= 3.5.2"
gem 'rspec-retry'
gem 'rswag'
gem 'selenium-webdriver'
gem 'shoulda-matchers'
gem 'timecop'
gem 'unicorn-rails'
gem 'webdrivers', '3.8.1'
gem 'webdrivers'
end
group :test do
@@ -159,12 +162,14 @@ group :test do
end
group :development do
gem 'byebug', '~> 9.0.0' # 9.1 requires ruby 2.2
gem 'byebug', '~> 11.0.0' # 11.1 requires ruby 2.4
gem 'debugger-linecache'
gem "newrelic_rpm", "~> 3.0"
gem 'pry-byebug', '>= 3.4.3'
gem 'rubocop', '>= 0.49.1'
gem 'spring', '1.7.2'
gem "pry", "~> 0.12.0" # pry 0.13 is not compatible with pry-byebug 3.7
gem 'pry-byebug', '~> 3.7.0' # 3.8 requires ruby 2.4
gem 'rubocop'
gem 'rubocop-rails'
gem 'spring'
gem 'spring-commands-rspec'
# 1.0.9 fixed openssl issues on macOS https://github.com/eventmachine/eventmachine/issues/602
@@ -172,5 +177,5 @@ group :development do
# greater than 1.0.9, so we just required the latest available version here.
gem 'eventmachine', '>= 1.2.3'
gem 'rack-mini-profiler', '< 2.0.0'
gem 'rack-mini-profiler', '< 3.0.0'
end

View File

@@ -1,11 +1,3 @@
GIT
remote: https://github.com/RohanM/simple_form.git
revision: 45f08a213b40f3d4bda5f5398db841137587160a
specs:
simple_form (2.0.2)
actionpack (~> 3.0)
activemodel (~> 3.0)
GIT
remote: https://github.com/jeremydurham/custom-err-msg.git
revision: 3a8ec9dddc7a5b0aab7c69a6060596de300c68f4
@@ -14,55 +6,41 @@ GIT
GIT
remote: https://github.com/openfoodfoundation/better_spree_paypal_express.git
revision: 27ad7165ea4c6e8c5f120b42b676cb9c2c272100
branch: 2-0-stable
revision: 1736e3268239a841576d2719a1f276cf9b74c5c5
branch: 2-1-0-stable
specs:
spree_paypal_express (2.0.3)
paypal-sdk-merchant (= 1.106.1)
spree_core (~> 2.0.3)
spree_core (~> 2.1.0)
GIT
remote: https://github.com/openfoodfoundation/ofn-qz.git
revision: 60da2ae4c44cbb4c8d602f59fb5fff8d0f21db3c
ref: 60da2ae4c44cbb4c8d602f59fb5fff8d0f21db3c
revision: 467f6ea1c44529c7c91cac4c8211bbd863588c0b
branch: ofn-rails-4
specs:
ofn-qz (0.1.0)
railties (~> 3.1)
GIT
remote: https://github.com/openfoodfoundation/spree.git
revision: 8a8585a43cd04d1a50dc65227f337a91b18d66d5
branch: 2-0-4-stable
revision: cbb24a6ed701166ffaf2ab60a402154100d74766
branch: 2-1-0-stable
specs:
spree_api (2.0.4)
rabl (= 0.8.4)
spree_core (= 2.0.4)
versioncake (= 1.0.0)
spree_backend (2.0.4)
deface (>= 0.9.0)
jquery-rails (~> 3.0.0)
jquery-ui-rails (~> 4.0.0)
rails (~> 3.2.8)
select2-rails (~> 3.4.7)
spree_api (= 2.0.4)
spree_core (= 2.0.4)
spree_core (2.0.4)
activemerchant (~> 1.34)
spree_core (2.1.0)
activemerchant (= 1.78.0)
acts_as_list (= 0.2.0)
awesome_nested_set (= 2.1.5)
aws-sdk (~> 1.11.1)
awesome_nested_set (~> 3.0.0.rc.1)
aws-sdk (= 1.11.1)
cancan (~> 1.6.10)
deface (>= 0.9.1)
ffaker (~> 1.16)
highline (= 1.6.18)
httparty (~> 0.11)
json (>= 1.7.7)
kaminari (~> 0.14.1)
money (= 5.1.1)
paperclip (~> 3.0)
paranoia (~> 1.3)
rails (~> 3.2.14)
ransack (= 0.7.2)
paperclip (~> 3.4.1)
paranoia (~> 2.0)
rails (~> 4.0)
ransack (~> 1.0)
state_machine (= 1.2.0)
stringex (~> 1.5.1)
truncate_html (= 0.9.2)
@@ -77,15 +55,17 @@ GIT
rails-i18n
spree_core (>= 1.1)
GIT
remote: https://github.com/willrjmarshall/foundation_rails_helper.git
revision: 4d5d53fdc4b1fb71e66524d298c5c635de82cfbb
branch: rails3
PATH
remote: engines/catalog
specs:
foundation_rails_helper (0.4)
actionpack (>= 3.0)
activemodel (>= 3.0)
railties (>= 3.0)
catalog (0.0.1)
PATH
remote: engines/dfc_provider
specs:
dfc_provider (0.0.1)
jwt (~> 2.2)
rspec (~> 3.9)
PATH
remote: engines/order_management
@@ -101,19 +81,17 @@ GEM
remote: https://rubygems.org/
specs:
CFPropertyList (2.3.6)
actionmailer (3.2.22.5)
actionpack (= 3.2.22.5)
mail (~> 2.5.4)
actionpack (3.2.22.5)
activemodel (= 3.2.22.5)
activesupport (= 3.2.22.5)
builder (~> 3.0.0)
actionmailer (4.0.13)
actionpack (= 4.0.13)
mail (~> 2.5, >= 2.5.4)
actionpack (4.0.13)
activesupport (= 4.0.13)
builder (~> 3.1.0)
erubis (~> 2.7.0)
journey (~> 1.0.4)
rack (~> 1.4.5)
rack-cache (~> 1.2)
rack-test (~> 0.6.1)
sprockets (~> 2.2.1)
rack (~> 1.5.2)
rack-test (~> 0.6.2)
actionpack-action_caching (1.2.1)
actionpack (>= 4.0.0)
active_model_serializers (0.8.4)
activemodel (>= 3.0)
activemerchant (1.78.0)
@@ -121,26 +99,33 @@ GEM
builder (>= 2.1.2, < 4.0.0)
i18n (>= 0.6.9)
nokogiri (~> 1.4)
activemodel (3.2.22.5)
activesupport (= 3.2.22.5)
builder (~> 3.0.0)
activerecord (3.2.22.5)
activemodel (= 3.2.22.5)
activesupport (= 3.2.22.5)
arel (~> 3.0.2)
tzinfo (~> 0.3.29)
activerecord-import (1.0.3)
activemodel (4.0.13)
activesupport (= 4.0.13)
builder (~> 3.1.0)
activerecord (4.0.13)
activemodel (= 4.0.13)
activerecord-deprecated_finders (~> 1.0.2)
activesupport (= 4.0.13)
arel (~> 4.0.0)
activerecord-deprecated_finders (1.0.4)
activerecord-import (1.0.6)
activerecord (>= 3.2)
activerecord-postgresql-adapter (0.0.1)
pg
activeresource (3.2.22.5)
activemodel (= 3.2.22.5)
activesupport (= 3.2.22.5)
activesupport (3.2.22.5)
i18n (~> 0.6, >= 0.6.4)
multi_json (~> 1.0)
acts-as-taggable-on (3.5.0)
activerecord (>= 3.2, < 5)
activerecord-session_store (1.1.3)
actionpack (>= 4.0)
activerecord (>= 4.0)
multi_json (~> 1.11, >= 1.11.2)
rack (>= 1.5.2, < 3)
railties (>= 4.0)
activesupport (4.0.13)
i18n (~> 0.6, >= 0.6.9)
minitest (~> 4.2)
multi_json (~> 1.3)
thread_safe (~> 0.1)
tzinfo (~> 0.3.37)
acts-as-taggable-on (4.0.0)
activerecord (>= 4.0)
acts_as_list (0.2.0)
activerecord (>= 3.0)
addressable (2.7.0)
@@ -152,24 +137,21 @@ GEM
tilt
angularjs-file-upload-rails (2.4.1)
angularjs-rails (1.5.5)
arel (3.0.3)
arel (4.0.2)
ast (2.4.0)
atomic (1.1.101)
awesome_nested_set (2.1.5)
activerecord (>= 3.0.0)
awesome_nested_set (3.0.3)
activerecord (>= 4.0.0, < 5)
awesome_print (1.8.0)
aws-sdk (1.11.1)
json (~> 1.4)
nokogiri (>= 1.4.4)
uuidtools (~> 2.1)
bcrypt (3.1.13)
bcrypt-ruby (3.1.5)
bcrypt (>= 3.1.3)
blockenspiel (0.5.0)
bugsnag (6.12.2)
bugsnag (6.17.0)
concurrent-ruby (~> 1.0)
builder (3.0.4)
byebug (9.0.6)
builder (3.1.4)
byebug (11.0.1)
cancan (1.6.10)
capybara (2.18.0)
addressable
@@ -178,22 +160,20 @@ GEM
rack (>= 1.0.0)
rack-test (>= 0.5.4)
xpath (>= 2.0, < 4.0)
childprocess (0.9.0)
ffi (~> 1.0, >= 1.0.11)
childprocess (3.0.0)
chronic (0.10.2)
chunky_png (1.3.10)
chunky_png (1.3.11)
climate_control (0.2.0)
cocaine (0.5.8)
climate_control (>= 0.0.3, < 1.0)
coderay (1.1.2)
coffee-rails (3.2.2)
coffee-rails (4.2.2)
coffee-script (>= 2.2.0)
railties (~> 3.2.0)
railties (>= 4.0.0)
coffee-script (2.4.1)
coffee-script-source
execjs
coffee-script-source (1.10.0)
colorize (0.8.1)
coffee-script-source (1.12.2)
combine_pdf (1.0.16)
ruby-rc4 (>= 0.1.5)
compass (1.0.3)
@@ -208,31 +188,25 @@ GEM
sass (>= 3.3.0, < 3.5)
compass-import-once (1.0.5)
sass (>= 3.2, < 3.5)
compass-rails (3.1.0)
compass-rails (4.0.0)
compass (~> 1.0.0)
sass-rails (< 5.1)
sprockets (< 4.0)
concurrent-ruby (1.1.5)
connection_pool (2.2.2)
concurrent-ruby (1.1.7)
crack (0.4.3)
safe_yaml (~> 1.0.0)
css_parser (1.7.0)
css_parser (1.7.1)
addressable
daemons (1.3.1)
dalli (2.7.10)
database_cleaner (0.7.1)
database_cleaner (1.8.5)
db2fog (0.9.0)
activerecord (>= 3.2.0, < 5.0)
fog (~> 1.0)
rails (>= 3.2.0, < 5.0)
ddtrace (0.29.0)
ddtrace (0.39.0)
msgpack
debugger-linecache (1.2.0)
deface (1.0.2)
colorize (>= 0.5.8)
nokogiri (~> 1.6.0)
polyglot
rails (>= 3.1)
delayed_job (4.1.8)
activesupport (>= 3.0, < 6.1)
delayed_job_active_record (4.1.4)
@@ -243,30 +217,33 @@ GEM
delayed_job (> 2.0.3)
rack-protection (>= 1.5.5)
sinatra (>= 1.4.4)
devise (2.2.8)
bcrypt-ruby (~> 3.0)
devise (3.5.10)
bcrypt (~> 3.0)
orm_adapter (~> 0.1)
railties (~> 3.1)
warden (~> 1.2.1)
railties (>= 3.2.6, < 5)
responders
thread_safe (~> 0.1)
warden (~> 1.2.3)
devise-encryptable (0.2.0)
devise (>= 2.1.0)
devise-token_authenticatable (0.4.10)
devise (>= 3.5.2, < 4.0.0)
diff-lcs (1.3)
diffy (3.3.0)
docile (1.3.2)
dry-inflector (0.1.2)
erubis (2.7.0)
eventmachine (1.2.7)
excon (0.62.0)
excon (0.71.1)
execjs (2.7.0)
factory_bot (4.10.0)
activesupport (>= 3.0.0)
factory_bot_rails (4.10.0)
factory_bot (~> 4.10.0)
railties (>= 3.0.0)
faraday (0.15.4)
faraday (1.0.0)
multipart-post (>= 1.2, < 3)
ffaker (1.22.1)
ffi (1.10.0)
ffaker (1.32.1)
ffi (1.12.2)
figaro (1.1.1)
thor (~> 0.14)
fission (0.5.0)
@@ -305,7 +282,7 @@ GEM
fog-xml (~> 0.1.1)
ipaddress (~> 0.5)
json (>= 1.8, < 2.0)
fog-aliyun (0.3.2)
fog-aliyun (0.3.5)
fog-core
fog-json
ipaddress (~> 0.8)
@@ -363,8 +340,8 @@ GEM
multi_json (~> 1.10)
fog-local (0.6.0)
fog-core (>= 1.27, < 3.0)
fog-openstack (0.1.25)
fog-core (~> 1.40)
fog-openstack (0.3.10)
fog-core (>= 1.45, <= 2.1.0)
fog-json (>= 1.0)
ipaddress (>= 0.8)
fog-powerdns (0.2.0)
@@ -408,12 +385,13 @@ GEM
fog-voxel (0.1.0)
fog-core
fog-xml
fog-vsphere (2.3.0)
fog-vsphere (3.2.1)
fog-core
rbvmomi (~> 1.9)
fog-xenserver (0.3.0)
rbvmomi (>= 1.9, < 3)
fog-xenserver (1.0.0)
fog-core
fog-xml
xmlrpc
fog-xml (0.1.3)
fog-core
nokogiri (>= 1.5.11, < 2.0.0)
@@ -429,77 +407,83 @@ GEM
fuubar (2.5.0)
rspec-core (~> 3.0)
ruby-progressbar (~> 1.4)
geocoder (1.1.8)
gmaps4rails (1.5.6)
haml (4.0.7)
geocoder (1.6.3)
get_process_mem (0.2.5)
ffi (~> 1.0)
gmaps4rails (2.1.2)
haml (5.1.2)
temple (>= 0.8.0)
tilt
hashdiff (1.0.0)
hashdiff (1.0.1)
highline (1.6.18)
hike (1.2.3)
httparty (0.16.2)
httparty (0.18.1)
mime-types (~> 3.0)
multi_xml (>= 0.5.2)
i18n (0.6.11)
i18n-js (3.5.0)
i18n-js (3.7.1)
i18n (>= 0.6.6)
immigrant (0.3.6)
activerecord (>= 3.0)
ipaddress (0.8.3)
jaro_winkler (1.5.4)
journey (1.0.4)
jquery-migrate-rails (1.2.1)
jquery-rails (3.0.4)
jquery-rails (3.1.5)
railties (>= 3.0, < 5.0)
thor (>= 0.14, < 2.0)
jquery-ui-rails (4.0.5)
railties (>= 3.1.0)
jquery-ui-rails (4.2.1)
railties (>= 3.2.16)
json (1.8.6)
json-schema (2.8.1)
addressable (>= 2.4)
json_spec (1.1.5)
multi_json (~> 1.0)
rspec (>= 2.0, < 4.0)
jwt (2.2.1)
jwt (2.2.2)
kaminari (0.14.1)
actionpack (>= 3.0.0)
activesupport (>= 3.0.0)
kgio (2.11.2)
kgio (2.11.3)
knapsack (1.18.0)
rake
launchy (2.4.3)
addressable (~> 2.3)
letter_opener (1.7.0)
launchy (~> 2.2)
libv8 (6.3.292.48.1)
mail (2.5.5)
mime-types (~> 1.16)
treetop (~> 1.4.8)
libv8 (7.3.492.27.1)
mail (2.7.1)
mini_mime (>= 0.1.1)
method_source (0.9.2)
mime-types (1.25.1)
mini_mime (1.0.1)
mini_portile2 (2.1.0)
mini_racer (0.1.15)
libv8 (~> 6.3)
mime-types (3.3.1)
mime-types-data (~> 3.2015)
mime-types-data (3.2020.0512)
mini_mime (1.0.2)
mini_portile2 (2.4.0)
mini_racer (0.2.15)
libv8 (> 7.3)
minitest (4.7.5)
momentjs-rails (2.20.1)
railties (>= 3.1)
money (5.1.1)
i18n (~> 0.6.0)
msgpack (1.3.1)
multi_json (1.14.1)
msgpack (1.3.3)
multi_json (1.15.0)
multi_xml (0.6.0)
multipart-post (2.1.1)
net-http-persistent (3.1.0)
connection_pool (~> 2.2)
newrelic_rpm (3.18.1.330)
nokogiri (1.6.8.1)
mini_portile2 (~> 2.1.0)
oauth2 (1.4.2)
nokogiri (1.10.9)
mini_portile2 (~> 2.4.0)
oauth2 (1.4.4)
faraday (>= 0.8, < 2.0)
jwt (>= 1.0, < 3.0)
multi_json (~> 1.3)
multi_xml (~> 0.5)
rack (>= 1.2, < 3)
oj (3.7.12)
oj (3.10.8)
optimist (3.0.0)
orm_adapter (0.5.0)
paper_trail (5.2.3)
activerecord (>= 3.0, < 6.0)
paper_trail (7.1.3)
activerecord (>= 4.0, < 5.2)
request_store (~> 1.1)
paperclip (3.4.2)
activemodel (>= 3.0.0)
@@ -507,10 +491,10 @@ GEM
activesupport (>= 3.0.0)
cocaine (~> 0.5.0)
mime-types
parallel (1.18.0)
paranoia (1.3.4)
activerecord (~> 3.1)
parser (2.6.5.0)
parallel (1.19.1)
paranoia (2.4.2)
activerecord (>= 4.0, < 6.1)
parser (2.7.1.0)
ast (~> 2.4.0)
paypal-sdk-core (0.2.10)
multi_json (~> 1.0)
@@ -518,96 +502,85 @@ GEM
paypal-sdk-merchant (1.106.1)
paypal-sdk-core (~> 0.2.3)
pg (0.21.0)
polyamorous (0.5.0)
activerecord (~> 3.0)
polyglot (0.3.5)
power_assert (1.1.5)
power_assert (1.2.0)
pry (0.12.2)
coderay (~> 1.1.0)
method_source (~> 0.9.0)
pry-byebug (3.4.3)
byebug (>= 9.0, < 9.1)
pry-byebug (3.7.0)
byebug (~> 11.0)
pry (~> 0.10)
public_suffix (3.1.1)
rabl (0.8.4)
activesupport (>= 2.3.14)
rack (1.4.7)
rack-cache (1.9.0)
rack (>= 0.4)
rack-mini-profiler (1.0.0)
public_suffix (4.0.5)
rack (1.5.5)
rack-mini-profiler (2.0.2)
rack (>= 1.2.0)
rack-protection (1.5.5)
rack
rack-rewrite (1.5.1)
rack-ssl (1.3.4)
rack-ssl (1.4.1)
rack
rack-test (0.6.3)
rack (>= 1.0)
rails (3.2.22.5)
actionmailer (= 3.2.22.5)
actionpack (= 3.2.22.5)
activerecord (= 3.2.22.5)
activeresource (= 3.2.22.5)
activesupport (= 3.2.22.5)
bundler (~> 1.0)
railties (= 3.2.22.5)
rails-i18n (3.0.1)
i18n (~> 0.5)
rails (>= 3.0.0, < 4.0.0)
rails (4.0.13)
actionmailer (= 4.0.13)
actionpack (= 4.0.13)
activerecord (= 4.0.13)
activesupport (= 4.0.13)
bundler (>= 1.3.0, < 2.0)
railties (= 4.0.13)
sprockets-rails (~> 2.0)
rails-i18n (4.0.5)
i18n (~> 0.6)
railties (~> 4.0)
rails_safe_tasks (1.0.0)
railties (3.2.22.5)
actionpack (= 3.2.22.5)
activesupport (= 3.2.22.5)
rack-ssl (~> 1.3.2)
railties (4.0.13)
actionpack (= 4.0.13)
activesupport (= 4.0.13)
rake (>= 0.8.7)
rdoc (~> 3.4)
thor (>= 0.14.6, < 2.0)
thor (>= 0.18.1, < 2.0)
rainbow (3.0.0)
raindrops (0.19.0)
rake (13.0.0)
ransack (0.7.2)
actionpack (~> 3.0)
activerecord (~> 3.0)
polyamorous (~> 0.5.0)
raindrops (0.19.1)
rake (13.0.1)
ransack (1.8.10)
actionpack (>= 3.0, < 5.2)
activerecord (>= 3.0, < 5.2)
activesupport (>= 3.0, < 5.2)
i18n
rb-fsevent (0.10.3)
rb-inotify (0.9.10)
ffi (>= 0.5.0, < 2)
rbvmomi (1.13.0)
rb-inotify (0.10.1)
ffi (~> 1.0)
rbvmomi (2.2.0)
builder (~> 3.0)
json (>= 1.8)
nokogiri (~> 1.5)
trollop (~> 2.1)
rdoc (3.12.2)
json (~> 1.4)
optimist (~> 3.0)
redcarpet (3.5.0)
request_store (1.4.1)
request_store (1.5.0)
rack (>= 1.4)
responders (1.1.2)
railties (>= 3.2, < 4.2)
rexml (3.2.4)
roadie (3.4.0)
css_parser (~> 1.4)
nokogiri (~> 1.5)
roadie-rails (1.3.0)
railties (>= 3.0, < 5.3)
roadie (~> 3.1)
roo (2.7.1)
roo (2.8.3)
nokogiri (~> 1)
rubyzip (~> 1.1, < 2.0.0)
roo-xls (1.1.0)
nokogiri
roo (>= 2.0.0beta1, < 3)
spreadsheet (> 0.9.0)
rubyzip (>= 1.3.0, < 3.0.0)
rspec (3.9.0)
rspec-core (~> 3.9.0)
rspec-expectations (~> 3.9.0)
rspec-mocks (~> 3.9.0)
rspec-core (3.9.0)
rspec-support (~> 3.9.0)
rspec-core (3.9.1)
rspec-support (~> 3.9.1)
rspec-expectations (3.9.0)
diff-lcs (>= 1.2.0, < 2.0)
rspec-support (~> 3.9.0)
rspec-mocks (3.9.0)
rspec-mocks (3.9.1)
diff-lcs (>= 1.2.0, < 2.0)
rspec-support (~> 3.9.0)
rspec-rails (3.9.0)
rspec-rails (3.9.1)
actionpack (>= 3.0)
activesupport (>= 3.0)
railties (>= 3.0)
@@ -617,101 +590,114 @@ GEM
rspec-support (~> 3.9.0)
rspec-retry (0.6.2)
rspec-core (> 3.3)
rspec-support (3.9.0)
rubocop (0.68.1)
rspec-support (3.9.2)
rswag (2.3.1)
rswag-api (= 2.3.1)
rswag-specs (= 2.3.1)
rswag-ui (= 2.3.1)
rswag-api (2.3.1)
railties (>= 3.1, < 7.0)
rswag-specs (2.3.1)
activesupport (>= 3.1, < 7.0)
json-schema (~> 2.2)
railties (>= 3.1, < 7.0)
rswag-ui (2.3.1)
actionpack (>= 3.1, < 7.0)
railties (>= 3.1, < 7.0)
rubocop (0.81.0)
jaro_winkler (~> 1.5.1)
parallel (~> 1.10)
parser (>= 2.5, != 2.5.1.1)
parser (>= 2.7.0.1)
rainbow (>= 2.2.2, < 4.0)
rexml
ruby-progressbar (~> 1.7)
unicode-display_width (>= 1.4.0, < 1.6)
ruby-ole (1.2.12.1)
unicode-display_width (>= 1.4.0, < 2.0)
rubocop-rails (2.5.2)
activesupport
rack (>= 1.1)
rubocop (>= 0.72.0)
ruby-progressbar (1.10.1)
ruby-rc4 (0.1.5)
rubyzip (1.3.0)
safe_yaml (1.0.5)
sass (3.3.14)
sass-rails (3.2.6)
railties (~> 3.2.0)
sass (>= 3.1.10)
tilt (~> 1.3)
sass (3.4.25)
sass-rails (5.0.7)
railties (>= 4.0.0, < 6)
sass (~> 3.1)
sprockets (>= 2.8, < 4.0)
sprockets-rails (>= 2.0, < 4.0)
tilt (>= 1.1, < 3)
select2-rails (3.4.9)
sass-rails
thor (~> 0.14)
selenium-webdriver (3.141.0)
childprocess (~> 0.5)
rubyzip (~> 1.2, >= 1.2.2)
shoulda-matchers (2.8.0)
activesupport (>= 3.0.0)
selenium-webdriver (3.142.7)
childprocess (>= 0.5, < 4.0)
rubyzip (>= 1.2.2)
shoulda-matchers (3.1.3)
activesupport (>= 4.0.0)
simplecov (0.17.1)
docile (~> 1.1)
json (>= 1.8, < 3)
simplecov-html (~> 0.10.0)
simplecov-html (0.10.2)
sinatra (1.4.6)
rack (~> 1.4)
sinatra (1.4.8)
rack (~> 1.5)
rack-protection (~> 1.4)
tilt (>= 1.3, < 3)
spinjs-rails (1.4)
rails (>= 3.1)
spreadsheet (1.1.7)
ruby-ole (>= 1.0)
spring (1.7.2)
spring-commands-rspec (1.0.4)
spring (>= 0.9.1)
sprockets (2.2.3)
sprockets (2.12.5)
hike (~> 1.2)
multi_json (~> 1.0)
rack (~> 1.0)
tilt (~> 1.1, != 1.3.0)
sprockets-rails (2.3.3)
actionpack (>= 3.0)
activesupport (>= 3.0)
sprockets (>= 2.8, < 4.0)
state_machine (1.2.0)
stringex (1.5.1)
stripe (4.24.0)
faraday (~> 0.13)
net-http-persistent (~> 3.0)
test-unit (3.3.4)
stripe (5.22.0)
temple (0.8.2)
test-unit (3.3.6)
power_assert
thor (0.20.3)
thread_safe (0.3.6)
tilt (1.4.1)
timecop (0.9.1)
treetop (1.4.15)
polyglot
polyglot (>= 0.3.1)
trollop (2.9.9)
truncate_html (0.9.2)
turbo-sprockets-rails3 (0.3.14)
railties (> 3.2.8, < 4.0.0)
sprockets (>= 2.2.0)
tzinfo (0.3.55)
tzinfo (0.3.57)
uglifier (4.2.0)
execjs (>= 0.3.0, < 3)
unicode-display_width (1.5.0)
unicorn (5.5.1)
unicode-display_width (1.7.0)
unicorn (5.6.0)
kgio (~> 2.6)
raindrops (~> 0.7)
unicorn-rails (2.2.1)
rack
unicorn
unicorn-worker-killer (0.4.4)
get_process_mem (~> 0)
unicorn (>= 4, < 6)
uuidtools (2.1.5)
versioncake (1.0.0)
actionpack (>= 3.0)
activesupport (>= 3.0)
railties (>= 3.0)
warden (1.2.7)
rack (>= 1.0)
webdrivers (3.8.1)
webdrivers (4.2.0)
nokogiri (~> 1.6)
rubyzip (~> 1.0)
selenium-webdriver (~> 3.0)
webmock (3.7.6)
rubyzip (>= 1.3.0)
selenium-webdriver (>= 3.0, < 4.0)
webmock (3.8.3)
addressable (>= 2.3.6)
crack (>= 0.3.2)
hashdiff (>= 0.4.0, < 2.0.0)
whenever (0.11.0)
whenever (1.0.0)
chronic (>= 0.6.3)
wicked_pdf (1.1.0)
wicked_pdf (2.1.0)
activesupport
wkhtmltopdf-binary (0.12.5)
xml-simple (1.1.5)
xmlrpc (0.3.0)
xpath (2.1.0)
nokogiri (~> 1.3)
@@ -719,116 +705,127 @@ PLATFORMS
ruby
DEPENDENCIES
actionpack-action_caching
active_model_serializers (= 0.8.4)
activemerchant (~> 1.78)
activemerchant (~> 1.78.0)
activerecord-import
activerecord-postgresql-adapter
acts-as-taggable-on (~> 3.4)
activerecord-session_store
acts-as-taggable-on (~> 4.0)
acts_as_list (= 0.2.0)
andand
angular-rails-templates (~> 0.3.0)
angularjs-file-upload-rails (~> 2.4.1)
angularjs-rails (= 1.5.5)
atomic
awesome_nested_set (~> 3.0.0.rc.1)
awesome_print
aws-sdk
blockenspiel
aws-sdk (= 1.11.1)
bugsnag
byebug (~> 9.0.0)
capybara (>= 2.15.4)
coffee-rails (~> 3.2.1)
byebug (~> 11.0.0)
cancan (~> 1.6.10)
capybara (>= 2.18.0)
catalog!
coffee-rails (~> 4.2.2)
combine_pdf
compass-rails
custom_error_message!
daemons
dalli
database_cleaner (= 0.7.1)
database_cleaner
db2fog
ddtrace
debugger-linecache
deface (= 1.0.2)
delayed_job_active_record
delayed_job_web
devise (~> 2.2.5)
devise-encryptable (= 0.2.0)
diffy
devise (~> 3.5.10)
devise-encryptable
devise-token_authenticatable (~> 0.4.10)
dfc_provider!
eventmachine (>= 1.2.3)
factory_bot_rails
factory_bot_rails (= 4.10.0)
ffaker (~> 1.16)
figaro
foreigner
foundation-icons-sass-rails
foundation-rails
foundation_rails_helper!
foundation-rails (= 5.5.2.1)
fuubar (~> 2.5.0)
geocoder
gmaps4rails
haml
highline (= 1.6.18)
httparty (~> 0.18)
i18n (~> 0.6.11)
i18n-js (~> 3.5.0)
i18n-js (~> 3.7.1)
immigrant
jquery-migrate-rails
jquery-rails (= 3.0.4)
jquery-rails (= 3.1.5)
jquery-ui-rails (~> 4.2)
json (>= 1.7.7)
json_spec (~> 1.1.4)
jwt (~> 2.2)
kaminari (~> 0.14.1)
knapsack
letter_opener (>= 1.4.1)
libv8 (= 6.3.292.48.1)
mini_racer (= 0.1.15)
mini_racer (= 0.2.15)
momentjs-rails
money (= 5.1.1)
newrelic_rpm (~> 3.0)
nokogiri (>= 1.6.7.1)
oauth2 (~> 1.4.2)
oauth2 (~> 1.4.4)
ofn-qz!
oj
order_management!
paper_trail (~> 5.2.3)
paper_trail (~> 7.1.3)
paperclip (~> 3.4.1)
paranoia (~> 2.0)
pg (~> 0.21.0)
pry-byebug (>= 3.4.3)
rabl
rack-mini-profiler (< 2.0.0)
pry (~> 0.12.0)
pry-byebug (~> 3.7.0)
rack-mini-profiler (< 3.0.0)
rack-rewrite
rack-ssl
rails (~> 3.2.22)
rails-i18n (~> 3.0.0)
rails (~> 4.0.13)
rails-i18n (~> 4.0)
rails_safe_tasks (~> 1.0)
ransack (~> 1.8.10)
redcarpet
roadie-rails (~> 1.3.0)
roo (~> 2.7.0)
roo-xls (~> 1.1.0)
roo (~> 2.8.3)
rspec-rails (>= 3.5.2)
rspec-retry
rubocop (>= 0.49.1)
sass (~> 3.3)
sass-rails (~> 3.2.3)
rswag
rubocop
rubocop-rails
sass
sass-rails
select2-rails (~> 3.4.7)
selenium-webdriver
shoulda-matchers
simple_form!
simplecov
spinjs-rails
spree_backend!
spree_core!
spree_i18n!
spree_paypal_express!
spring (= 1.7.2)
spring
spring-commands-rspec
state_machine (= 1.2.0)
stringex (~> 1.5.1)
stripe
test-unit (~> 3.3)
timecop
truncate_html
turbo-sprockets-rails3
truncate_html (= 0.9.2)
uglifier (>= 1.0.3)
unicorn
unicorn-rails
unicorn-worker-killer
web!
webdrivers (= 3.8.1)
webdrivers
webmock
whenever
wicked_pdf
wkhtmltopdf-binary
RUBY VERSION
ruby 2.2.10p489
ruby 2.3.7p456
BUNDLED WITH
1.17.2
1.17.3

View File

@@ -32,10 +32,10 @@ We use [BrowserStack](https://www.browserstack.com/) as a manual testing tool. B
## Licence
Copyright (c) 2012 - 2019 Open Food Foundation, released under the AGPL licence.
Copyright (c) 2012 - 2020 Open Food Foundation, released under the AGPL licence.
[survey]: https://docs.google.com/a/eaterprises.com.au/forms/d/1zxR5vSiU9CigJ9cEaC8-eJLgYid8CR8er7PPH9Mc-30/edit#
[slack-invite]: https://join.slack.com/t/openfoodnetwork/shared_invite/enQtNzY3NDEwNzM2MDM0LWFmNGRhNDUwYzNmNWNkYmFkMzgxNDg1OTg1ODNjNWY4Y2FhNDIwNmE4ZWI0OThiMGNmZjFkODczNGZiYTJmNWI
[slack-invite]: https://join.slack.com/t/openfoodnetwork/shared_invite/zt-9sjkjdlu-r02kUMP1zbrTgUhZhYPF~A
[contributor-guide]: https://ofn-user-guide.gitbook.io/ofn-contributor-guide/who-are-we
[ofn-install]: https://github.com/openfoodfoundation/ofn-install
[super-admin-guide]: https://ofn-user-guide.gitbook.io/ofn-super-admin-guide

Binary file not shown.

View File

Before

Width:  |  Height:  |  Size: 82 KiB

After

Width:  |  Height:  |  Size: 82 KiB

Binary file not shown.

View File

@@ -0,0 +1,399 @@
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
<svg xmlns="http://www.w3.org/2000/svg">
<metadata></metadata>
<defs>
<font id="fontawesomeregular" horiz-adv-x="1536" >
<font-face units-per-em="1792" ascent="1536" descent="-256" />
<missing-glyph horiz-adv-x="448" />
<glyph unicode=" " horiz-adv-x="448" />
<glyph unicode="&#x09;" horiz-adv-x="448" />
<glyph unicode="&#xa0;" horiz-adv-x="448" />
<glyph unicode="&#xa8;" horiz-adv-x="1792" />
<glyph unicode="&#xa9;" horiz-adv-x="1792" />
<glyph unicode="&#xae;" horiz-adv-x="1792" />
<glyph unicode="&#xb4;" horiz-adv-x="1792" />
<glyph unicode="&#xc6;" horiz-adv-x="1792" />
<glyph unicode="&#x2000;" horiz-adv-x="768" />
<glyph unicode="&#x2001;" />
<glyph unicode="&#x2002;" horiz-adv-x="768" />
<glyph unicode="&#x2003;" />
<glyph unicode="&#x2004;" horiz-adv-x="512" />
<glyph unicode="&#x2005;" horiz-adv-x="384" />
<glyph unicode="&#x2006;" horiz-adv-x="256" />
<glyph unicode="&#x2007;" horiz-adv-x="256" />
<glyph unicode="&#x2008;" horiz-adv-x="192" />
<glyph unicode="&#x2009;" horiz-adv-x="307" />
<glyph unicode="&#x200a;" horiz-adv-x="85" />
<glyph unicode="&#x202f;" horiz-adv-x="307" />
<glyph unicode="&#x205f;" horiz-adv-x="384" />
<glyph unicode="&#x2122;" horiz-adv-x="1792" />
<glyph unicode="&#x221e;" horiz-adv-x="1792" />
<glyph unicode="&#x2260;" horiz-adv-x="1792" />
<glyph unicode="&#xe000;" horiz-adv-x="500" d="M0 0z" />
<glyph unicode="&#xf000;" horiz-adv-x="1792" d="M1699 1350q0 -35 -43 -78l-632 -632v-768h320q26 0 45 -19t19 -45t-19 -45t-45 -19h-896q-26 0 -45 19t-19 45t19 45t45 19h320v768l-632 632q-43 43 -43 78q0 23 18 36.5t38 17.5t43 4h1408q23 0 43 -4t38 -17.5t18 -36.5z" />
<glyph unicode="&#xf001;" d="M1536 1312v-1120q0 -50 -34 -89t-86 -60.5t-103.5 -32t-96.5 -10.5t-96.5 10.5t-103.5 32t-86 60.5t-34 89t34 89t86 60.5t103.5 32t96.5 10.5q105 0 192 -39v537l-768 -237v-709q0 -50 -34 -89t-86 -60.5t-103.5 -32t-96.5 -10.5t-96.5 10.5t-103.5 32t-86 60.5t-34 89 t34 89t86 60.5t103.5 32t96.5 10.5q105 0 192 -39v967q0 31 19 56.5t49 35.5l832 256q12 4 28 4q40 0 68 -28t28 -68z" />
<glyph unicode="&#xf002;" horiz-adv-x="1664" d="M1152 704q0 185 -131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5t316.5 131.5t131.5 316.5zM1664 -128q0 -52 -38 -90t-90 -38q-54 0 -90 38l-343 342q-179 -124 -399 -124q-143 0 -273.5 55.5t-225 150t-150 225t-55.5 273.5 t55.5 273.5t150 225t225 150t273.5 55.5t273.5 -55.5t225 -150t150 -225t55.5 -273.5q0 -220 -124 -399l343 -343q37 -37 37 -90z" />
<glyph unicode="&#xf003;" horiz-adv-x="1792" d="M1664 32v768q-32 -36 -69 -66q-268 -206 -426 -338q-51 -43 -83 -67t-86.5 -48.5t-102.5 -24.5h-1h-1q-48 0 -102.5 24.5t-86.5 48.5t-83 67q-158 132 -426 338q-37 30 -69 66v-768q0 -13 9.5 -22.5t22.5 -9.5h1472q13 0 22.5 9.5t9.5 22.5zM1664 1083v11v13.5t-0.5 13 t-3 12.5t-5.5 9t-9 7.5t-14 2.5h-1472q-13 0 -22.5 -9.5t-9.5 -22.5q0 -168 147 -284q193 -152 401 -317q6 -5 35 -29.5t46 -37.5t44.5 -31.5t50.5 -27.5t43 -9h1h1q20 0 43 9t50.5 27.5t44.5 31.5t46 37.5t35 29.5q208 165 401 317q54 43 100.5 115.5t46.5 131.5z M1792 1120v-1088q0 -66 -47 -113t-113 -47h-1472q-66 0 -113 47t-47 113v1088q0 66 47 113t113 47h1472q66 0 113 -47t47 -113z" />
<glyph unicode="&#xf004;" horiz-adv-x="1792" d="M896 -128q-26 0 -44 18l-624 602q-10 8 -27.5 26t-55.5 65.5t-68 97.5t-53.5 121t-23.5 138q0 220 127 344t351 124q62 0 126.5 -21.5t120 -58t95.5 -68.5t76 -68q36 36 76 68t95.5 68.5t120 58t126.5 21.5q224 0 351 -124t127 -344q0 -221 -229 -450l-623 -600 q-18 -18 -44 -18z" />
<glyph unicode="&#xf005;" horiz-adv-x="1664" d="M1664 889q0 -22 -26 -48l-363 -354l86 -500q1 -7 1 -20q0 -21 -10.5 -35.5t-30.5 -14.5q-19 0 -40 12l-449 236l-449 -236q-22 -12 -40 -12q-21 0 -31.5 14.5t-10.5 35.5q0 6 2 20l86 500l-364 354q-25 27 -25 48q0 37 56 46l502 73l225 455q19 41 49 41t49 -41l225 -455 l502 -73q56 -9 56 -46z" />
<glyph unicode="&#xf006;" horiz-adv-x="1664" d="M1137 532l306 297l-422 62l-189 382l-189 -382l-422 -62l306 -297l-73 -421l378 199l377 -199zM1664 889q0 -22 -26 -48l-363 -354l86 -500q1 -7 1 -20q0 -50 -41 -50q-19 0 -40 12l-449 236l-449 -236q-22 -12 -40 -12q-21 0 -31.5 14.5t-10.5 35.5q0 6 2 20l86 500 l-364 354q-25 27 -25 48q0 37 56 46l502 73l225 455q19 41 49 41t49 -41l225 -455l502 -73q56 -9 56 -46z" />
<glyph unicode="&#xf007;" horiz-adv-x="1408" d="M1408 131q0 -120 -73 -189.5t-194 -69.5h-874q-121 0 -194 69.5t-73 189.5q0 53 3.5 103.5t14 109t26.5 108.5t43 97.5t62 81t85.5 53.5t111.5 20q9 0 42 -21.5t74.5 -48t108 -48t133.5 -21.5t133.5 21.5t108 48t74.5 48t42 21.5q61 0 111.5 -20t85.5 -53.5t62 -81 t43 -97.5t26.5 -108.5t14 -109t3.5 -103.5zM1088 1024q0 -159 -112.5 -271.5t-271.5 -112.5t-271.5 112.5t-112.5 271.5t112.5 271.5t271.5 112.5t271.5 -112.5t112.5 -271.5z" />
<glyph unicode="&#xf008;" horiz-adv-x="1920" d="M384 -64v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM384 320v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM384 704v128q0 26 -19 45t-45 19h-128 q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM1408 -64v512q0 26 -19 45t-45 19h-768q-26 0 -45 -19t-19 -45v-512q0 -26 19 -45t45 -19h768q26 0 45 19t19 45zM384 1088v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45 t45 -19h128q26 0 45 19t19 45zM1792 -64v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM1408 704v512q0 26 -19 45t-45 19h-768q-26 0 -45 -19t-19 -45v-512q0 -26 19 -45t45 -19h768q26 0 45 19t19 45zM1792 320v128 q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM1792 704v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM1792 1088v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19 t-19 -45v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM1920 1248v-1344q0 -66 -47 -113t-113 -47h-1600q-66 0 -113 47t-47 113v1344q0 66 47 113t113 47h1600q66 0 113 -47t47 -113z" />
<glyph unicode="&#xf009;" horiz-adv-x="1664" d="M768 512v-384q0 -52 -38 -90t-90 -38h-512q-52 0 -90 38t-38 90v384q0 52 38 90t90 38h512q52 0 90 -38t38 -90zM768 1280v-384q0 -52 -38 -90t-90 -38h-512q-52 0 -90 38t-38 90v384q0 52 38 90t90 38h512q52 0 90 -38t38 -90zM1664 512v-384q0 -52 -38 -90t-90 -38 h-512q-52 0 -90 38t-38 90v384q0 52 38 90t90 38h512q52 0 90 -38t38 -90zM1664 1280v-384q0 -52 -38 -90t-90 -38h-512q-52 0 -90 38t-38 90v384q0 52 38 90t90 38h512q52 0 90 -38t38 -90z" />
<glyph unicode="&#xf00a;" horiz-adv-x="1792" d="M512 288v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM512 800v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM1152 288v-192q0 -40 -28 -68t-68 -28h-320 q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM512 1312v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM1152 800v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28 h320q40 0 68 -28t28 -68zM1792 288v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM1152 1312v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM1792 800v-192 q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM1792 1312v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68z" />
<glyph unicode="&#xf00b;" horiz-adv-x="1792" d="M512 288v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM512 800v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM1792 288v-192q0 -40 -28 -68t-68 -28h-960 q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h960q40 0 68 -28t28 -68zM512 1312v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM1792 800v-192q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68v192q0 40 28 68t68 28 h960q40 0 68 -28t28 -68zM1792 1312v-192q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h960q40 0 68 -28t28 -68z" />
<glyph unicode="&#xf00c;" horiz-adv-x="1792" d="M1671 970q0 -40 -28 -68l-724 -724l-136 -136q-28 -28 -68 -28t-68 28l-136 136l-362 362q-28 28 -28 68t28 68l136 136q28 28 68 28t68 -28l294 -295l656 657q28 28 68 28t68 -28l136 -136q28 -28 28 -68z" />
<glyph unicode="&#xf00d;" horiz-adv-x="1408" d="M1298 214q0 -40 -28 -68l-136 -136q-28 -28 -68 -28t-68 28l-294 294l-294 -294q-28 -28 -68 -28t-68 28l-136 136q-28 28 -28 68t28 68l294 294l-294 294q-28 28 -28 68t28 68l136 136q28 28 68 28t68 -28l294 -294l294 294q28 28 68 28t68 -28l136 -136q28 -28 28 -68 t-28 -68l-294 -294l294 -294q28 -28 28 -68z" />
<glyph unicode="&#xf00e;" horiz-adv-x="1664" d="M1024 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-224v-224q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v224h-224q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h224v224q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5v-224h224 q13 0 22.5 -9.5t9.5 -22.5zM1152 704q0 185 -131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5t316.5 131.5t131.5 316.5zM1664 -128q0 -53 -37.5 -90.5t-90.5 -37.5q-54 0 -90 38l-343 342q-179 -124 -399 -124q-143 0 -273.5 55.5 t-225 150t-150 225t-55.5 273.5t55.5 273.5t150 225t225 150t273.5 55.5t273.5 -55.5t225 -150t150 -225t55.5 -273.5q0 -220 -124 -399l343 -343q37 -37 37 -90z" />
<glyph unicode="&#xf010;" horiz-adv-x="1664" d="M1024 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-576q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h576q13 0 22.5 -9.5t9.5 -22.5zM1152 704q0 185 -131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5t316.5 131.5t131.5 316.5z M1664 -128q0 -53 -37.5 -90.5t-90.5 -37.5q-54 0 -90 38l-343 342q-179 -124 -399 -124q-143 0 -273.5 55.5t-225 150t-150 225t-55.5 273.5t55.5 273.5t150 225t225 150t273.5 55.5t273.5 -55.5t225 -150t150 -225t55.5 -273.5q0 -220 -124 -399l343 -343q37 -37 37 -90z " />
<glyph unicode="&#xf011;" d="M1536 640q0 -156 -61 -298t-164 -245t-245 -164t-298 -61t-298 61t-245 164t-164 245t-61 298q0 182 80.5 343t226.5 270q43 32 95.5 25t83.5 -50q32 -42 24.5 -94.5t-49.5 -84.5q-98 -74 -151.5 -181t-53.5 -228q0 -104 40.5 -198.5t109.5 -163.5t163.5 -109.5 t198.5 -40.5t198.5 40.5t163.5 109.5t109.5 163.5t40.5 198.5q0 121 -53.5 228t-151.5 181q-42 32 -49.5 84.5t24.5 94.5q31 43 84 50t95 -25q146 -109 226.5 -270t80.5 -343zM896 1408v-640q0 -52 -38 -90t-90 -38t-90 38t-38 90v640q0 52 38 90t90 38t90 -38t38 -90z" />
<glyph unicode="&#xf012;" horiz-adv-x="1792" d="M256 96v-192q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM640 224v-320q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v320q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM1024 480v-576q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23 v576q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM1408 864v-960q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v960q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM1792 1376v-1472q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v1472q0 14 9 23t23 9h192q14 0 23 -9t9 -23z" />
<glyph unicode="&#xf013;" d="M1024 640q0 106 -75 181t-181 75t-181 -75t-75 -181t75 -181t181 -75t181 75t75 181zM1536 749v-222q0 -12 -8 -23t-20 -13l-185 -28q-19 -54 -39 -91q35 -50 107 -138q10 -12 10 -25t-9 -23q-27 -37 -99 -108t-94 -71q-12 0 -26 9l-138 108q-44 -23 -91 -38 q-16 -136 -29 -186q-7 -28 -36 -28h-222q-14 0 -24.5 8.5t-11.5 21.5l-28 184q-49 16 -90 37l-141 -107q-10 -9 -25 -9q-14 0 -25 11q-126 114 -165 168q-7 10 -7 23q0 12 8 23q15 21 51 66.5t54 70.5q-27 50 -41 99l-183 27q-13 2 -21 12.5t-8 23.5v222q0 12 8 23t19 13 l186 28q14 46 39 92q-40 57 -107 138q-10 12 -10 24q0 10 9 23q26 36 98.5 107.5t94.5 71.5q13 0 26 -10l138 -107q44 23 91 38q16 136 29 186q7 28 36 28h222q14 0 24.5 -8.5t11.5 -21.5l28 -184q49 -16 90 -37l142 107q9 9 24 9q13 0 25 -10q129 -119 165 -170q7 -8 7 -22 q0 -12 -8 -23q-15 -21 -51 -66.5t-54 -70.5q26 -50 41 -98l183 -28q13 -2 21 -12.5t8 -23.5z" />
<glyph unicode="&#xf014;" horiz-adv-x="1408" d="M512 800v-576q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v576q0 14 9 23t23 9h64q14 0 23 -9t9 -23zM768 800v-576q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v576q0 14 9 23t23 9h64q14 0 23 -9t9 -23zM1024 800v-576q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v576 q0 14 9 23t23 9h64q14 0 23 -9t9 -23zM1152 76v948h-896v-948q0 -22 7 -40.5t14.5 -27t10.5 -8.5h832q3 0 10.5 8.5t14.5 27t7 40.5zM480 1152h448l-48 117q-7 9 -17 11h-317q-10 -2 -17 -11zM1408 1120v-64q0 -14 -9 -23t-23 -9h-96v-948q0 -83 -47 -143.5t-113 -60.5h-832 q-66 0 -113 58.5t-47 141.5v952h-96q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h309l70 167q15 37 54 63t79 26h320q40 0 79 -26t54 -63l70 -167h309q14 0 23 -9t9 -23z" />
<glyph unicode="&#xf015;" horiz-adv-x="1664" d="M1408 544v-480q0 -26 -19 -45t-45 -19h-384v384h-256v-384h-384q-26 0 -45 19t-19 45v480q0 1 0.5 3t0.5 3l575 474l575 -474q1 -2 1 -6zM1631 613l-62 -74q-8 -9 -21 -11h-3q-13 0 -21 7l-692 577l-692 -577q-12 -8 -24 -7q-13 2 -21 11l-62 74q-8 10 -7 23.5t11 21.5 l719 599q32 26 76 26t76 -26l244 -204v195q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-408l219 -182q10 -8 11 -21.5t-7 -23.5z" />
<glyph unicode="&#xf016;" horiz-adv-x="1280" d="M128 0h1024v768h-416q-40 0 -68 28t-28 68v416h-512v-1280zM768 896h376q-10 29 -22 41l-313 313q-12 12 -41 22v-376zM1280 864v-896q0 -40 -28 -68t-68 -28h-1088q-40 0 -68 28t-28 68v1344q0 40 28 68t68 28h640q40 0 88 -20t76 -48l312 -312q28 -28 48 -76t20 -88z " />
<glyph unicode="&#xf017;" d="M896 992v-448q0 -14 -9 -23t-23 -9h-320q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h224v352q0 14 9 23t23 9h64q14 0 23 -9t9 -23zM1312 640q0 148 -73 273t-198 198t-273 73t-273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273zM1536 640 q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
<glyph unicode="&#xf018;" horiz-adv-x="1920" d="M1111 540v4l-24 320q-1 13 -11 22.5t-23 9.5h-186q-13 0 -23 -9.5t-11 -22.5l-24 -320v-4q-1 -12 8 -20t21 -8h244q12 0 21 8t8 20zM1870 73q0 -73 -46 -73h-704q13 0 22 9.5t8 22.5l-20 256q-1 13 -11 22.5t-23 9.5h-272q-13 0 -23 -9.5t-11 -22.5l-20 -256 q-1 -13 8 -22.5t22 -9.5h-704q-46 0 -46 73q0 54 26 116l417 1044q8 19 26 33t38 14h339q-13 0 -23 -9.5t-11 -22.5l-15 -192q-1 -14 8 -23t22 -9h166q13 0 22 9t8 23l-15 192q-1 13 -11 22.5t-23 9.5h339q20 0 38 -14t26 -33l417 -1044q26 -62 26 -116z" />
<glyph unicode="&#xf019;" horiz-adv-x="1664" d="M1280 192q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1536 192q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1664 416v-320q0 -40 -28 -68t-68 -28h-1472q-40 0 -68 28t-28 68v320q0 40 28 68t68 28h465l135 -136 q58 -56 136 -56t136 56l136 136h464q40 0 68 -28t28 -68zM1339 985q17 -41 -14 -70l-448 -448q-18 -19 -45 -19t-45 19l-448 448q-31 29 -14 70q17 39 59 39h256v448q0 26 19 45t45 19h256q26 0 45 -19t19 -45v-448h256q42 0 59 -39z" />
<glyph unicode="&#xf01a;" d="M1120 608q0 -12 -10 -24l-319 -319q-11 -9 -23 -9t-23 9l-320 320q-15 16 -7 35q8 20 30 20h192v352q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-352h192q14 0 23 -9t9 -23zM768 1184q-148 0 -273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273 t-73 273t-198 198t-273 73zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
<glyph unicode="&#xf01b;" d="M1118 660q-8 -20 -30 -20h-192v-352q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v352h-192q-14 0 -23 9t-9 23q0 12 10 24l319 319q11 9 23 9t23 -9l320 -320q15 -16 7 -35zM768 1184q-148 0 -273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198 t73 273t-73 273t-198 198t-273 73zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
<glyph unicode="&#xf01c;" d="M1023 576h316q-1 3 -2.5 8t-2.5 8l-212 496h-708l-212 -496q-1 -2 -2.5 -8t-2.5 -8h316l95 -192h320zM1536 546v-482q0 -26 -19 -45t-45 -19h-1408q-26 0 -45 19t-19 45v482q0 62 25 123l238 552q10 25 36.5 42t52.5 17h832q26 0 52.5 -17t36.5 -42l238 -552 q25 -61 25 -123z" />
<glyph unicode="&#xf01d;" d="M1184 640q0 -37 -32 -55l-544 -320q-15 -9 -32 -9q-16 0 -32 8q-32 19 -32 56v640q0 37 32 56q33 18 64 -1l544 -320q32 -18 32 -55zM1312 640q0 148 -73 273t-198 198t-273 73t-273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273zM1536 640 q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
<glyph unicode="&#xf01e;" d="M1536 1280v-448q0 -26 -19 -45t-45 -19h-448q-42 0 -59 40q-17 39 14 69l138 138q-148 137 -349 137q-104 0 -198.5 -40.5t-163.5 -109.5t-109.5 -163.5t-40.5 -198.5t40.5 -198.5t109.5 -163.5t163.5 -109.5t198.5 -40.5q119 0 225 52t179 147q7 10 23 12q14 0 25 -9 l137 -138q9 -8 9.5 -20.5t-7.5 -22.5q-109 -132 -264 -204.5t-327 -72.5q-156 0 -298 61t-245 164t-164 245t-61 298t61 298t164 245t245 164t298 61q147 0 284.5 -55.5t244.5 -156.5l130 129q29 31 70 14q39 -17 39 -59z" />
<glyph unicode="&#xf021;" d="M1511 480q0 -5 -1 -7q-64 -268 -268 -434.5t-478 -166.5q-146 0 -282.5 55t-243.5 157l-129 -129q-19 -19 -45 -19t-45 19t-19 45v448q0 26 19 45t45 19h448q26 0 45 -19t19 -45t-19 -45l-137 -137q71 -66 161 -102t187 -36q134 0 250 65t186 179q11 17 53 117 q8 23 30 23h192q13 0 22.5 -9.5t9.5 -22.5zM1536 1280v-448q0 -26 -19 -45t-45 -19h-448q-26 0 -45 19t-19 45t19 45l138 138q-148 137 -349 137q-134 0 -250 -65t-186 -179q-11 -17 -53 -117q-8 -23 -30 -23h-199q-13 0 -22.5 9.5t-9.5 22.5v7q65 268 270 434.5t480 166.5 q146 0 284 -55.5t245 -156.5l130 129q19 19 45 19t45 -19t19 -45z" />
<glyph unicode="&#xf022;" horiz-adv-x="1792" d="M384 352v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM384 608v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M384 864v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM1536 352v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-960q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h960q13 0 22.5 -9.5t9.5 -22.5z M1536 608v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-960q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h960q13 0 22.5 -9.5t9.5 -22.5zM1536 864v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-960q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h960q13 0 22.5 -9.5 t9.5 -22.5zM1664 160v832q0 13 -9.5 22.5t-22.5 9.5h-1472q-13 0 -22.5 -9.5t-9.5 -22.5v-832q0 -13 9.5 -22.5t22.5 -9.5h1472q13 0 22.5 9.5t9.5 22.5zM1792 1248v-1088q0 -66 -47 -113t-113 -47h-1472q-66 0 -113 47t-47 113v1088q0 66 47 113t113 47h1472q66 0 113 -47 t47 -113z" />
<glyph unicode="&#xf023;" horiz-adv-x="1152" d="M320 768h512v192q0 106 -75 181t-181 75t-181 -75t-75 -181v-192zM1152 672v-576q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68v576q0 40 28 68t68 28h32v192q0 184 132 316t316 132t316 -132t132 -316v-192h32q40 0 68 -28t28 -68z" />
<glyph unicode="&#xf024;" horiz-adv-x="1792" d="M320 1280q0 -72 -64 -110v-1266q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v1266q-64 38 -64 110q0 53 37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1792 1216v-763q0 -25 -12.5 -38.5t-39.5 -27.5q-215 -116 -369 -116q-61 0 -123.5 22t-108.5 48 t-115.5 48t-142.5 22q-192 0 -464 -146q-17 -9 -33 -9q-26 0 -45 19t-19 45v742q0 32 31 55q21 14 79 43q236 120 421 120q107 0 200 -29t219 -88q38 -19 88 -19q54 0 117.5 21t110 47t88 47t54.5 21q26 0 45 -19t19 -45z" />
<glyph unicode="&#xf025;" horiz-adv-x="1664" d="M1664 650q0 -166 -60 -314l-20 -49l-185 -33q-22 -83 -90.5 -136.5t-156.5 -53.5v-32q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v576q0 14 9 23t23 9h64q14 0 23 -9t9 -23v-32q71 0 130 -35.5t93 -95.5l68 12q29 95 29 193q0 148 -88 279t-236.5 209t-315.5 78 t-315.5 -78t-236.5 -209t-88 -279q0 -98 29 -193l68 -12q34 60 93 95.5t130 35.5v32q0 14 9 23t23 9h64q14 0 23 -9t9 -23v-576q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v32q-88 0 -156.5 53.5t-90.5 136.5l-185 33l-20 49q-60 148 -60 314q0 151 67 291t179 242.5 t266 163.5t320 61t320 -61t266 -163.5t179 -242.5t67 -291z" />
<glyph unicode="&#xf026;" horiz-adv-x="768" d="M768 1184v-1088q0 -26 -19 -45t-45 -19t-45 19l-333 333h-262q-26 0 -45 19t-19 45v384q0 26 19 45t45 19h262l333 333q19 19 45 19t45 -19t19 -45z" />
<glyph unicode="&#xf027;" horiz-adv-x="1152" d="M768 1184v-1088q0 -26 -19 -45t-45 -19t-45 19l-333 333h-262q-26 0 -45 19t-19 45v384q0 26 19 45t45 19h262l333 333q19 19 45 19t45 -19t19 -45zM1152 640q0 -76 -42.5 -141.5t-112.5 -93.5q-10 -5 -25 -5q-26 0 -45 18.5t-19 45.5q0 21 12 35.5t29 25t34 23t29 35.5 t12 57t-12 57t-29 35.5t-34 23t-29 25t-12 35.5q0 27 19 45.5t45 18.5q15 0 25 -5q70 -27 112.5 -93t42.5 -142z" />
<glyph unicode="&#xf028;" horiz-adv-x="1664" d="M768 1184v-1088q0 -26 -19 -45t-45 -19t-45 19l-333 333h-262q-26 0 -45 19t-19 45v384q0 26 19 45t45 19h262l333 333q19 19 45 19t45 -19t19 -45zM1152 640q0 -76 -42.5 -141.5t-112.5 -93.5q-10 -5 -25 -5q-26 0 -45 18.5t-19 45.5q0 21 12 35.5t29 25t34 23t29 35.5 t12 57t-12 57t-29 35.5t-34 23t-29 25t-12 35.5q0 27 19 45.5t45 18.5q15 0 25 -5q70 -27 112.5 -93t42.5 -142zM1408 640q0 -153 -85 -282.5t-225 -188.5q-13 -5 -25 -5q-27 0 -46 19t-19 45q0 39 39 59q56 29 76 44q74 54 115.5 135.5t41.5 173.5t-41.5 173.5 t-115.5 135.5q-20 15 -76 44q-39 20 -39 59q0 26 19 45t45 19q13 0 26 -5q140 -59 225 -188.5t85 -282.5zM1664 640q0 -230 -127 -422.5t-338 -283.5q-13 -5 -26 -5q-26 0 -45 19t-19 45q0 36 39 59q7 4 22.5 10.5t22.5 10.5q46 25 82 51q123 91 192 227t69 289t-69 289 t-192 227q-36 26 -82 51q-7 4 -22.5 10.5t-22.5 10.5q-39 23 -39 59q0 26 19 45t45 19q13 0 26 -5q211 -91 338 -283.5t127 -422.5z" />
<glyph unicode="&#xf029;" horiz-adv-x="1408" d="M384 384v-128h-128v128h128zM384 1152v-128h-128v128h128zM1152 1152v-128h-128v128h128zM128 129h384v383h-384v-383zM128 896h384v384h-384v-384zM896 896h384v384h-384v-384zM640 640v-640h-640v640h640zM1152 128v-128h-128v128h128zM1408 128v-128h-128v128h128z M1408 640v-384h-384v128h-128v-384h-128v640h384v-128h128v128h128zM640 1408v-640h-640v640h640zM1408 1408v-640h-640v640h640z" />
<glyph unicode="&#xf02a;" horiz-adv-x="1792" d="M63 0h-63v1408h63v-1408zM126 1h-32v1407h32v-1407zM220 1h-31v1407h31v-1407zM377 1h-31v1407h31v-1407zM534 1h-62v1407h62v-1407zM660 1h-31v1407h31v-1407zM723 1h-31v1407h31v-1407zM786 1h-31v1407h31v-1407zM943 1h-63v1407h63v-1407zM1100 1h-63v1407h63v-1407z M1226 1h-63v1407h63v-1407zM1352 1h-63v1407h63v-1407zM1446 1h-63v1407h63v-1407zM1635 1h-94v1407h94v-1407zM1698 1h-32v1407h32v-1407zM1792 0h-63v1408h63v-1408z" />
<glyph unicode="&#xf02b;" d="M448 1088q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1515 512q0 -53 -37 -90l-491 -492q-39 -37 -91 -37q-53 0 -90 37l-715 716q-38 37 -64.5 101t-26.5 117v416q0 52 38 90t90 38h416q53 0 117 -26.5t102 -64.5 l715 -714q37 -39 37 -91z" />
<glyph unicode="&#xf02c;" horiz-adv-x="1920" d="M448 1088q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1515 512q0 -53 -37 -90l-491 -492q-39 -37 -91 -37q-53 0 -90 37l-715 716q-38 37 -64.5 101t-26.5 117v416q0 52 38 90t90 38h416q53 0 117 -26.5t102 -64.5 l715 -714q37 -39 37 -91zM1899 512q0 -53 -37 -90l-491 -492q-39 -37 -91 -37q-36 0 -59 14t-53 45l470 470q37 37 37 90q0 52 -37 91l-715 714q-38 38 -102 64.5t-117 26.5h224q53 0 117 -26.5t102 -64.5l715 -714q37 -39 37 -91z" />
<glyph unicode="&#xf02d;" horiz-adv-x="1664" d="M1639 1058q40 -57 18 -129l-275 -906q-19 -64 -76.5 -107.5t-122.5 -43.5h-923q-77 0 -148.5 53.5t-99.5 131.5q-24 67 -2 127q0 4 3 27t4 37q1 8 -3 21.5t-3 19.5q2 11 8 21t16.5 23.5t16.5 23.5q23 38 45 91.5t30 91.5q3 10 0.5 30t-0.5 28q3 11 17 28t17 23 q21 36 42 92t25 90q1 9 -2.5 32t0.5 28q4 13 22 30.5t22 22.5q19 26 42.5 84.5t27.5 96.5q1 8 -3 25.5t-2 26.5q2 8 9 18t18 23t17 21q8 12 16.5 30.5t15 35t16 36t19.5 32t26.5 23.5t36 11.5t47.5 -5.5l-1 -3q38 9 51 9h761q74 0 114 -56t18 -130l-274 -906 q-36 -119 -71.5 -153.5t-128.5 -34.5h-869q-27 0 -38 -15q-11 -16 -1 -43q24 -70 144 -70h923q29 0 56 15.5t35 41.5l300 987q7 22 5 57q38 -15 59 -43zM575 1056q-4 -13 2 -22.5t20 -9.5h608q13 0 25.5 9.5t16.5 22.5l21 64q4 13 -2 22.5t-20 9.5h-608q-13 0 -25.5 -9.5 t-16.5 -22.5zM492 800q-4 -13 2 -22.5t20 -9.5h608q13 0 25.5 9.5t16.5 22.5l21 64q4 13 -2 22.5t-20 9.5h-608q-13 0 -25.5 -9.5t-16.5 -22.5z" />
<glyph unicode="&#xf02e;" horiz-adv-x="1280" d="M1164 1408q23 0 44 -9q33 -13 52.5 -41t19.5 -62v-1289q0 -34 -19.5 -62t-52.5 -41q-19 -8 -44 -8q-48 0 -83 32l-441 424l-441 -424q-36 -33 -83 -33q-23 0 -44 9q-33 13 -52.5 41t-19.5 62v1289q0 34 19.5 62t52.5 41q21 9 44 9h1048z" />
<glyph unicode="&#xf02f;" horiz-adv-x="1664" d="M384 0h896v256h-896v-256zM384 640h896v384h-160q-40 0 -68 28t-28 68v160h-640v-640zM1536 576q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1664 576v-416q0 -13 -9.5 -22.5t-22.5 -9.5h-224v-160q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68 v160h-224q-13 0 -22.5 9.5t-9.5 22.5v416q0 79 56.5 135.5t135.5 56.5h64v544q0 40 28 68t68 28h672q40 0 88 -20t76 -48l152 -152q28 -28 48 -76t20 -88v-256h64q79 0 135.5 -56.5t56.5 -135.5z" />
<glyph unicode="&#xf030;" horiz-adv-x="1920" d="M960 864q119 0 203.5 -84.5t84.5 -203.5t-84.5 -203.5t-203.5 -84.5t-203.5 84.5t-84.5 203.5t84.5 203.5t203.5 84.5zM1664 1280q106 0 181 -75t75 -181v-896q0 -106 -75 -181t-181 -75h-1408q-106 0 -181 75t-75 181v896q0 106 75 181t181 75h224l51 136 q19 49 69.5 84.5t103.5 35.5h512q53 0 103.5 -35.5t69.5 -84.5l51 -136h224zM960 128q185 0 316.5 131.5t131.5 316.5t-131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5z" />
<glyph unicode="&#xf031;" horiz-adv-x="1664" d="M725 977l-170 -450q73 -1 153.5 -2t119 -1.5t52.5 -0.5l29 2q-32 95 -92 241q-53 132 -92 211zM21 -128h-21l2 79q22 7 80 18q89 16 110 31q20 16 48 68l237 616l280 724h75h53l11 -21l205 -480q103 -242 124 -297q39 -102 96 -235q26 -58 65 -164q24 -67 65 -149 q22 -49 35 -57q22 -19 69 -23q47 -6 103 -27q6 -39 6 -57q0 -14 -1 -26q-80 0 -192 8q-93 8 -189 8q-79 0 -135 -2l-200 -11l-58 -2q0 45 4 78l131 28q56 13 68 23q12 12 12 27t-6 32l-47 114l-92 228l-450 2q-29 -65 -104 -274q-23 -64 -23 -84q0 -31 17 -43 q26 -21 103 -32q3 0 13.5 -2t30 -5t40.5 -6q1 -28 1 -58q0 -17 -2 -27q-66 0 -349 20l-48 -8q-81 -14 -167 -14z" />
<glyph unicode="&#xf032;" horiz-adv-x="1408" d="M555 15q76 -32 140 -32q131 0 216 41t122 113q38 70 38 181q0 114 -41 180q-58 94 -141 126q-80 32 -247 32q-74 0 -101 -10v-144l-1 -173l3 -270q0 -15 12 -44zM541 761q43 -7 109 -7q175 0 264 65t89 224q0 112 -85 187q-84 75 -255 75q-52 0 -130 -13q0 -44 2 -77 q7 -122 6 -279l-1 -98q0 -43 1 -77zM0 -128l2 94q45 9 68 12q77 12 123 31q17 27 21 51q9 66 9 194l-2 497q-5 256 -9 404q-1 87 -11 109q-1 4 -12 12q-18 12 -69 15q-30 2 -114 13l-4 83l260 6l380 13l45 1q5 0 14 0.5t14 0.5q1 0 21.5 -0.5t40.5 -0.5h74q88 0 191 -27 q43 -13 96 -39q57 -29 102 -76q44 -47 65 -104t21 -122q0 -70 -32 -128t-95 -105q-26 -20 -150 -77q177 -41 267 -146q92 -106 92 -236q0 -76 -29 -161q-21 -62 -71 -117q-66 -72 -140 -108q-73 -36 -203 -60q-82 -15 -198 -11l-197 4q-84 2 -298 -11q-33 -3 -272 -11z" />
<glyph unicode="&#xf033;" horiz-adv-x="1024" d="M0 -126l17 85q4 1 77 20q76 19 116 39q29 37 41 101l27 139l56 268l12 64q8 44 17 84.5t16 67t12.5 46.5t9 30.5t3.5 11.5l29 157l16 63l22 135l8 50v38q-41 22 -144 28q-28 2 -38 4l19 103l317 -14q39 -2 73 -2q66 0 214 9q33 2 68 4.5t36 2.5q-2 -19 -6 -38 q-7 -29 -13 -51q-55 -19 -109 -31q-64 -16 -101 -31q-12 -31 -24 -88q-9 -44 -13 -82q-44 -199 -66 -306l-61 -311l-38 -158l-43 -235l-12 -45q-2 -7 1 -27q64 -15 119 -21q36 -5 66 -10q-1 -29 -7 -58q-7 -31 -9 -41q-18 0 -23 -1q-24 -2 -42 -2q-9 0 -28 3q-19 4 -145 17 l-198 2q-41 1 -174 -11q-74 -7 -98 -9z" />
<glyph unicode="&#xf034;" horiz-adv-x="1792" d="M81 1407l54 -27q20 -5 211 -5h130l19 3l115 1l215 -1h293l34 -2q14 -1 28 7t21 16l7 8l42 1q15 0 28 -1v-104.5t1 -131.5l1 -100l-1 -58q0 -32 -4 -51q-39 -15 -68 -18q-25 43 -54 128q-8 24 -15.5 62.5t-11.5 65.5t-6 29q-13 15 -27 19q-7 2 -42.5 2t-103.5 -1t-111 -1 q-34 0 -67 -5q-10 -97 -8 -136l1 -152v-332l3 -359l-1 -147q-1 -46 11 -85q49 -25 89 -32q2 0 18 -5t44 -13t43 -12q30 -8 50 -18q5 -45 5 -50q0 -10 -3 -29q-14 -1 -34 -1q-110 0 -187 10q-72 8 -238 8q-88 0 -233 -14q-48 -4 -70 -4q-2 22 -2 26l-1 26v9q21 33 79 49 q139 38 159 50q9 21 12 56q8 192 6 433l-5 428q-1 62 -0.5 118.5t0.5 102.5t-2 57t-6 15q-6 5 -14 6q-38 6 -148 6q-43 0 -100 -13.5t-73 -24.5q-13 -9 -22 -33t-22 -75t-24 -84q-6 -19 -19.5 -32t-20.5 -13q-44 27 -56 44v297v86zM1744 128q33 0 42 -18.5t-11 -44.5 l-126 -162q-20 -26 -49 -26t-49 26l-126 162q-20 26 -11 44.5t42 18.5h80v1024h-80q-33 0 -42 18.5t11 44.5l126 162q20 26 49 26t49 -26l126 -162q20 -26 11 -44.5t-42 -18.5h-80v-1024h80z" />
<glyph unicode="&#xf035;" d="M81 1407l54 -27q20 -5 211 -5h130l19 3l115 1l446 -1h318l34 -2q14 -1 28 7t21 16l7 8l42 1q15 0 28 -1v-104.5t1 -131.5l1 -100l-1 -58q0 -32 -4 -51q-39 -15 -68 -18q-25 43 -54 128q-8 24 -15.5 62.5t-11.5 65.5t-6 29q-13 15 -27 19q-7 2 -58.5 2t-138.5 -1t-128 -1 q-94 0 -127 -5q-10 -97 -8 -136l1 -152v52l3 -359l-1 -147q-1 -46 11 -85q49 -25 89 -32q2 0 18 -5t44 -13t43 -12q30 -8 50 -18q5 -45 5 -50q0 -10 -3 -29q-14 -1 -34 -1q-110 0 -187 10q-72 8 -238 8q-82 0 -233 -13q-45 -5 -70 -5q-2 22 -2 26l-1 26v9q21 33 79 49 q139 38 159 50q9 21 12 56q6 137 6 433l-5 44q0 265 -2 278q-2 11 -6 15q-6 5 -14 6q-38 6 -148 6q-50 0 -168.5 -14t-132.5 -24q-13 -9 -22 -33t-22 -75t-24 -84q-6 -19 -19.5 -32t-20.5 -13q-44 27 -56 44v297v86zM1505 113q26 -20 26 -49t-26 -49l-162 -126 q-26 -20 -44.5 -11t-18.5 42v80h-1024v-80q0 -33 -18.5 -42t-44.5 11l-162 126q-26 20 -26 49t26 49l162 126q26 20 44.5 11t18.5 -42v-80h1024v80q0 33 18.5 42t44.5 -11z" />
<glyph unicode="&#xf036;" horiz-adv-x="1792" d="M1792 192v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1408 576v-128q0 -26 -19 -45t-45 -19h-1280q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1280q26 0 45 -19t19 -45zM1664 960v-128q0 -26 -19 -45 t-45 -19h-1536q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1536q26 0 45 -19t19 -45zM1280 1344v-128q0 -26 -19 -45t-45 -19h-1152q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1152q26 0 45 -19t19 -45z" />
<glyph unicode="&#xf037;" horiz-adv-x="1792" d="M1792 192v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1408 576v-128q0 -26 -19 -45t-45 -19h-896q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h896q26 0 45 -19t19 -45zM1664 960v-128q0 -26 -19 -45t-45 -19 h-1408q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1408q26 0 45 -19t19 -45zM1280 1344v-128q0 -26 -19 -45t-45 -19h-640q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h640q26 0 45 -19t19 -45z" />
<glyph unicode="&#xf038;" horiz-adv-x="1792" d="M1792 192v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1792 576v-128q0 -26 -19 -45t-45 -19h-1280q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1280q26 0 45 -19t19 -45zM1792 960v-128q0 -26 -19 -45 t-45 -19h-1536q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1536q26 0 45 -19t19 -45zM1792 1344v-128q0 -26 -19 -45t-45 -19h-1152q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1152q26 0 45 -19t19 -45z" />
<glyph unicode="&#xf039;" horiz-adv-x="1792" d="M1792 192v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1792 576v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1792 960v-128q0 -26 -19 -45 t-45 -19h-1664q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1792 1344v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45z" />
<glyph unicode="&#xf03a;" horiz-adv-x="1792" d="M256 224v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-192q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h192q13 0 22.5 -9.5t9.5 -22.5zM256 608v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-192q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h192q13 0 22.5 -9.5 t9.5 -22.5zM256 992v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-192q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h192q13 0 22.5 -9.5t9.5 -22.5zM1792 224v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1344q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1344 q13 0 22.5 -9.5t9.5 -22.5zM256 1376v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-192q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h192q13 0 22.5 -9.5t9.5 -22.5zM1792 608v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1344q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5 t22.5 9.5h1344q13 0 22.5 -9.5t9.5 -22.5zM1792 992v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1344q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1344q13 0 22.5 -9.5t9.5 -22.5zM1792 1376v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1344q-13 0 -22.5 9.5t-9.5 22.5v192 q0 13 9.5 22.5t22.5 9.5h1344q13 0 22.5 -9.5t9.5 -22.5z" />
<glyph unicode="&#xf03b;" horiz-adv-x="1792" d="M384 992v-576q0 -13 -9.5 -22.5t-22.5 -9.5q-14 0 -23 9l-288 288q-9 9 -9 23t9 23l288 288q9 9 23 9q13 0 22.5 -9.5t9.5 -22.5zM1792 224v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1728q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1728q13 0 22.5 -9.5 t9.5 -22.5zM1792 608v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1088q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1088q13 0 22.5 -9.5t9.5 -22.5zM1792 992v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1088q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1088 q13 0 22.5 -9.5t9.5 -22.5zM1792 1376v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1728q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1728q13 0 22.5 -9.5t9.5 -22.5z" />
<glyph unicode="&#xf03c;" horiz-adv-x="1792" d="M352 704q0 -14 -9 -23l-288 -288q-9 -9 -23 -9q-13 0 -22.5 9.5t-9.5 22.5v576q0 13 9.5 22.5t22.5 9.5q14 0 23 -9l288 -288q9 -9 9 -23zM1792 224v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1728q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1728q13 0 22.5 -9.5 t9.5 -22.5zM1792 608v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1088q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1088q13 0 22.5 -9.5t9.5 -22.5zM1792 992v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1088q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1088 q13 0 22.5 -9.5t9.5 -22.5zM1792 1376v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1728q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1728q13 0 22.5 -9.5t9.5 -22.5z" />
<glyph unicode="&#xf03d;" horiz-adv-x="1792" d="M1792 1184v-1088q0 -42 -39 -59q-13 -5 -25 -5q-27 0 -45 19l-403 403v-166q0 -119 -84.5 -203.5t-203.5 -84.5h-704q-119 0 -203.5 84.5t-84.5 203.5v704q0 119 84.5 203.5t203.5 84.5h704q119 0 203.5 -84.5t84.5 -203.5v-165l403 402q18 19 45 19q12 0 25 -5 q39 -17 39 -59z" />
<glyph unicode="&#xf03e;" horiz-adv-x="1920" d="M640 960q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM1664 576v-448h-1408v192l320 320l160 -160l512 512zM1760 1280h-1600q-13 0 -22.5 -9.5t-9.5 -22.5v-1216q0 -13 9.5 -22.5t22.5 -9.5h1600q13 0 22.5 9.5t9.5 22.5v1216 q0 13 -9.5 22.5t-22.5 9.5zM1920 1248v-1216q0 -66 -47 -113t-113 -47h-1600q-66 0 -113 47t-47 113v1216q0 66 47 113t113 47h1600q66 0 113 -47t47 -113z" />
<glyph unicode="&#xf040;" d="M363 0l91 91l-235 235l-91 -91v-107h128v-128h107zM886 928q0 22 -22 22q-10 0 -17 -7l-542 -542q-7 -7 -7 -17q0 -22 22 -22q10 0 17 7l542 542q7 7 7 17zM832 1120l416 -416l-832 -832h-416v416zM1515 1024q0 -53 -37 -90l-166 -166l-416 416l166 165q36 38 90 38 q53 0 91 -38l235 -234q37 -39 37 -91z" />
<glyph unicode="&#xf041;" horiz-adv-x="1024" d="M768 896q0 106 -75 181t-181 75t-181 -75t-75 -181t75 -181t181 -75t181 75t75 181zM1024 896q0 -109 -33 -179l-364 -774q-16 -33 -47.5 -52t-67.5 -19t-67.5 19t-46.5 52l-365 774q-33 70 -33 179q0 212 150 362t362 150t362 -150t150 -362z" />
<glyph unicode="&#xf042;" d="M768 96v1088q-148 0 -273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
<glyph unicode="&#xf043;" horiz-adv-x="1024" d="M512 384q0 36 -20 69q-1 1 -15.5 22.5t-25.5 38t-25 44t-21 50.5q-4 16 -21 16t-21 -16q-7 -23 -21 -50.5t-25 -44t-25.5 -38t-15.5 -22.5q-20 -33 -20 -69q0 -53 37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1024 512q0 -212 -150 -362t-362 -150t-362 150t-150 362 q0 145 81 275q6 9 62.5 90.5t101 151t99.5 178t83 201.5q9 30 34 47t51 17t51.5 -17t33.5 -47q28 -93 83 -201.5t99.5 -178t101 -151t62.5 -90.5q81 -127 81 -275z" />
<glyph unicode="&#xf044;" horiz-adv-x="1792" d="M888 352l116 116l-152 152l-116 -116v-56h96v-96h56zM1328 1072q-16 16 -33 -1l-350 -350q-17 -17 -1 -33t33 1l350 350q17 17 1 33zM1408 478v-190q0 -119 -84.5 -203.5t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5v832q0 119 84.5 203.5t203.5 84.5h832 q63 0 117 -25q15 -7 18 -23q3 -17 -9 -29l-49 -49q-14 -14 -32 -8q-23 6 -45 6h-832q-66 0 -113 -47t-47 -113v-832q0 -66 47 -113t113 -47h832q66 0 113 47t47 113v126q0 13 9 22l64 64q15 15 35 7t20 -29zM1312 1216l288 -288l-672 -672h-288v288zM1756 1084l-92 -92 l-288 288l92 92q28 28 68 28t68 -28l152 -152q28 -28 28 -68t-28 -68z" />
<glyph unicode="&#xf045;" horiz-adv-x="1664" d="M1408 547v-259q0 -119 -84.5 -203.5t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5v832q0 119 84.5 203.5t203.5 84.5h255v0q13 0 22.5 -9.5t9.5 -22.5q0 -27 -26 -32q-77 -26 -133 -60q-10 -4 -16 -4h-112q-66 0 -113 -47t-47 -113v-832q0 -66 47 -113t113 -47h832 q66 0 113 47t47 113v214q0 19 18 29q28 13 54 37q16 16 35 8q21 -9 21 -29zM1645 1043l-384 -384q-18 -19 -45 -19q-12 0 -25 5q-39 17 -39 59v192h-160q-323 0 -438 -131q-119 -137 -74 -473q3 -23 -20 -34q-8 -2 -12 -2q-16 0 -26 13q-10 14 -21 31t-39.5 68.5t-49.5 99.5 t-38.5 114t-17.5 122q0 49 3.5 91t14 90t28 88t47 81.5t68.5 74t94.5 61.5t124.5 48.5t159.5 30.5t196.5 11h160v192q0 42 39 59q13 5 25 5q26 0 45 -19l384 -384q19 -19 19 -45t-19 -45z" />
<glyph unicode="&#xf046;" horiz-adv-x="1664" d="M1408 606v-318q0 -119 -84.5 -203.5t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5v832q0 119 84.5 203.5t203.5 84.5h832q63 0 117 -25q15 -7 18 -23q3 -17 -9 -29l-49 -49q-10 -10 -23 -10q-3 0 -9 2q-23 6 -45 6h-832q-66 0 -113 -47t-47 -113v-832 q0 -66 47 -113t113 -47h832q66 0 113 47t47 113v254q0 13 9 22l64 64q10 10 23 10q6 0 12 -3q20 -8 20 -29zM1639 1095l-814 -814q-24 -24 -57 -24t-57 24l-430 430q-24 24 -24 57t24 57l110 110q24 24 57 24t57 -24l263 -263l647 647q24 24 57 24t57 -24l110 -110 q24 -24 24 -57t-24 -57z" />
<glyph unicode="&#xf047;" horiz-adv-x="1792" d="M1792 640q0 -26 -19 -45l-256 -256q-19 -19 -45 -19t-45 19t-19 45v128h-384v-384h128q26 0 45 -19t19 -45t-19 -45l-256 -256q-19 -19 -45 -19t-45 19l-256 256q-19 19 -19 45t19 45t45 19h128v384h-384v-128q0 -26 -19 -45t-45 -19t-45 19l-256 256q-19 19 -19 45 t19 45l256 256q19 19 45 19t45 -19t19 -45v-128h384v384h-128q-26 0 -45 19t-19 45t19 45l256 256q19 19 45 19t45 -19l256 -256q19 -19 19 -45t-19 -45t-45 -19h-128v-384h384v128q0 26 19 45t45 19t45 -19l256 -256q19 -19 19 -45z" />
<glyph unicode="&#xf048;" horiz-adv-x="1024" d="M979 1395q19 19 32 13t13 -32v-1472q0 -26 -13 -32t-32 13l-710 710q-9 9 -13 19v-678q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v1408q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-678q4 11 13 19z" />
<glyph unicode="&#xf049;" horiz-adv-x="1792" d="M1747 1395q19 19 32 13t13 -32v-1472q0 -26 -13 -32t-32 13l-710 710q-9 9 -13 19v-710q0 -26 -13 -32t-32 13l-710 710q-9 9 -13 19v-678q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v1408q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-678q4 11 13 19l710 710 q19 19 32 13t13 -32v-710q4 11 13 19z" />
<glyph unicode="&#xf04a;" horiz-adv-x="1664" d="M1619 1395q19 19 32 13t13 -32v-1472q0 -26 -13 -32t-32 13l-710 710q-8 9 -13 19v-710q0 -26 -13 -32t-32 13l-710 710q-19 19 -19 45t19 45l710 710q19 19 32 13t13 -32v-710q5 11 13 19z" />
<glyph unicode="&#xf04b;" horiz-adv-x="1408" d="M1384 609l-1328 -738q-23 -13 -39.5 -3t-16.5 36v1472q0 26 16.5 36t39.5 -3l1328 -738q23 -13 23 -31t-23 -31z" />
<glyph unicode="&#xf04c;" d="M1536 1344v-1408q0 -26 -19 -45t-45 -19h-512q-26 0 -45 19t-19 45v1408q0 26 19 45t45 19h512q26 0 45 -19t19 -45zM640 1344v-1408q0 -26 -19 -45t-45 -19h-512q-26 0 -45 19t-19 45v1408q0 26 19 45t45 19h512q26 0 45 -19t19 -45z" />
<glyph unicode="&#xf04d;" d="M1536 1344v-1408q0 -26 -19 -45t-45 -19h-1408q-26 0 -45 19t-19 45v1408q0 26 19 45t45 19h1408q26 0 45 -19t19 -45z" />
<glyph unicode="&#xf04e;" horiz-adv-x="1664" d="M45 -115q-19 -19 -32 -13t-13 32v1472q0 26 13 32t32 -13l710 -710q8 -8 13 -19v710q0 26 13 32t32 -13l710 -710q19 -19 19 -45t-19 -45l-710 -710q-19 -19 -32 -13t-13 32v710q-5 -10 -13 -19z" />
<glyph unicode="&#xf050;" horiz-adv-x="1792" d="M45 -115q-19 -19 -32 -13t-13 32v1472q0 26 13 32t32 -13l710 -710q8 -8 13 -19v710q0 26 13 32t32 -13l710 -710q8 -8 13 -19v678q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-1408q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v678q-5 -10 -13 -19l-710 -710 q-19 -19 -32 -13t-13 32v710q-5 -10 -13 -19z" />
<glyph unicode="&#xf051;" horiz-adv-x="1024" d="M45 -115q-19 -19 -32 -13t-13 32v1472q0 26 13 32t32 -13l710 -710q8 -8 13 -19v678q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-1408q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v678q-5 -10 -13 -19z" />
<glyph unicode="&#xf052;" horiz-adv-x="1538" d="M14 557l710 710q19 19 45 19t45 -19l710 -710q19 -19 13 -32t-32 -13h-1472q-26 0 -32 13t13 32zM1473 0h-1408q-26 0 -45 19t-19 45v256q0 26 19 45t45 19h1408q26 0 45 -19t19 -45v-256q0 -26 -19 -45t-45 -19z" />
<glyph unicode="&#xf053;" horiz-adv-x="1152" d="M742 -37l-652 651q-37 37 -37 90.5t37 90.5l652 651q37 37 90.5 37t90.5 -37l75 -75q37 -37 37 -90.5t-37 -90.5l-486 -486l486 -485q37 -38 37 -91t-37 -90l-75 -75q-37 -37 -90.5 -37t-90.5 37z" />
<glyph unicode="&#xf054;" horiz-adv-x="1152" d="M1099 704q0 -52 -37 -91l-652 -651q-37 -37 -90 -37t-90 37l-76 75q-37 39 -37 91q0 53 37 90l486 486l-486 485q-37 39 -37 91q0 53 37 90l76 75q36 38 90 38t90 -38l652 -651q37 -37 37 -90z" />
<glyph unicode="&#xf055;" d="M1216 576v128q0 26 -19 45t-45 19h-256v256q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-256h-256q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h256v-256q0 -26 19 -45t45 -19h128q26 0 45 19t19 45v256h256q26 0 45 19t19 45zM1536 640q0 -209 -103 -385.5 t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
<glyph unicode="&#xf056;" d="M1216 576v128q0 26 -19 45t-45 19h-768q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h768q26 0 45 19t19 45zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5 t103 -385.5z" />
<glyph unicode="&#xf057;" d="M1149 414q0 26 -19 45l-181 181l181 181q19 19 19 45q0 27 -19 46l-90 90q-19 19 -46 19q-26 0 -45 -19l-181 -181l-181 181q-19 19 -45 19q-27 0 -46 -19l-90 -90q-19 -19 -19 -46q0 -26 19 -45l181 -181l-181 -181q-19 -19 -19 -45q0 -27 19 -46l90 -90q19 -19 46 -19 q26 0 45 19l181 181l181 -181q19 -19 45 -19q27 0 46 19l90 90q19 19 19 46zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
<glyph unicode="&#xf058;" d="M1284 802q0 28 -18 46l-91 90q-19 19 -45 19t-45 -19l-408 -407l-226 226q-19 19 -45 19t-45 -19l-91 -90q-18 -18 -18 -46q0 -27 18 -45l362 -362q19 -19 45 -19q27 0 46 19l543 543q18 18 18 45zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103 t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
<glyph unicode="&#xf059;" d="M896 160v192q0 14 -9 23t-23 9h-192q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h192q14 0 23 9t9 23zM1152 832q0 88 -55.5 163t-138.5 116t-170 41q-243 0 -371 -213q-15 -24 8 -42l132 -100q7 -6 19 -6q16 0 25 12q53 68 86 92q34 24 86 24q48 0 85.5 -26t37.5 -59 q0 -38 -20 -61t-68 -45q-63 -28 -115.5 -86.5t-52.5 -125.5v-36q0 -14 9 -23t23 -9h192q14 0 23 9t9 23q0 19 21.5 49.5t54.5 49.5q32 18 49 28.5t46 35t44.5 48t28 60.5t12.5 81zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5 t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
<glyph unicode="&#xf05a;" d="M1024 160v160q0 14 -9 23t-23 9h-96v512q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-160q0 -14 9 -23t23 -9h96v-320h-96q-14 0 -23 -9t-9 -23v-160q0 -14 9 -23t23 -9h448q14 0 23 9t9 23zM896 1056v160q0 14 -9 23t-23 9h-192q-14 0 -23 -9t-9 -23v-160q0 -14 9 -23 t23 -9h192q14 0 23 9t9 23zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
<glyph unicode="&#xf05b;" d="M1197 512h-109q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h109q-32 108 -112.5 188.5t-188.5 112.5v-109q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v109q-108 -32 -188.5 -112.5t-112.5 -188.5h109q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-109 q32 -108 112.5 -188.5t188.5 -112.5v109q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-109q108 32 188.5 112.5t112.5 188.5zM1536 704v-128q0 -26 -19 -45t-45 -19h-143q-37 -161 -154.5 -278.5t-278.5 -154.5v-143q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v143 q-161 37 -278.5 154.5t-154.5 278.5h-143q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h143q37 161 154.5 278.5t278.5 154.5v143q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-143q161 -37 278.5 -154.5t154.5 -278.5h143q26 0 45 -19t19 -45z" />
<glyph unicode="&#xf05c;" d="M1097 457l-146 -146q-10 -10 -23 -10t-23 10l-137 137l-137 -137q-10 -10 -23 -10t-23 10l-146 146q-10 10 -10 23t10 23l137 137l-137 137q-10 10 -10 23t10 23l146 146q10 10 23 10t23 -10l137 -137l137 137q10 10 23 10t23 -10l146 -146q10 -10 10 -23t-10 -23 l-137 -137l137 -137q10 -10 10 -23t-10 -23zM1312 640q0 148 -73 273t-198 198t-273 73t-273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5 t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
<glyph unicode="&#xf05d;" d="M1171 723l-422 -422q-19 -19 -45 -19t-45 19l-294 294q-19 19 -19 45t19 45l102 102q19 19 45 19t45 -19l147 -147l275 275q19 19 45 19t45 -19l102 -102q19 -19 19 -45t-19 -45zM1312 640q0 148 -73 273t-198 198t-273 73t-273 -73t-198 -198t-73 -273t73 -273t198 -198 t273 -73t273 73t198 198t73 273zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
<glyph unicode="&#xf05e;" d="M1312 643q0 161 -87 295l-754 -753q137 -89 297 -89q111 0 211.5 43.5t173.5 116.5t116 174.5t43 212.5zM313 344l755 754q-135 91 -300 91q-148 0 -273 -73t-198 -199t-73 -274q0 -162 89 -299zM1536 643q0 -157 -61 -300t-163.5 -246t-245 -164t-298.5 -61t-298.5 61 t-245 164t-163.5 246t-61 300t61 299.5t163.5 245.5t245 164t298.5 61t298.5 -61t245 -164t163.5 -245.5t61 -299.5z" />
<glyph unicode="&#xf060;" d="M1536 640v-128q0 -53 -32.5 -90.5t-84.5 -37.5h-704l293 -294q38 -36 38 -90t-38 -90l-75 -76q-37 -37 -90 -37q-52 0 -91 37l-651 652q-37 37 -37 90q0 52 37 91l651 650q38 38 91 38q52 0 90 -38l75 -74q38 -38 38 -91t-38 -91l-293 -293h704q52 0 84.5 -37.5 t32.5 -90.5z" />
<glyph unicode="&#xf061;" d="M1472 576q0 -54 -37 -91l-651 -651q-39 -37 -91 -37q-51 0 -90 37l-75 75q-38 38 -38 91t38 91l293 293h-704q-52 0 -84.5 37.5t-32.5 90.5v128q0 53 32.5 90.5t84.5 37.5h704l-293 294q-38 36 -38 90t38 90l75 75q38 38 90 38q53 0 91 -38l651 -651q37 -35 37 -90z" />
<glyph unicode="&#xf062;" horiz-adv-x="1664" d="M1611 565q0 -51 -37 -90l-75 -75q-38 -38 -91 -38q-54 0 -90 38l-294 293v-704q0 -52 -37.5 -84.5t-90.5 -32.5h-128q-53 0 -90.5 32.5t-37.5 84.5v704l-294 -293q-36 -38 -90 -38t-90 38l-75 75q-38 38 -38 90q0 53 38 91l651 651q35 37 90 37q54 0 91 -37l651 -651 q37 -39 37 -91z" />
<glyph unicode="&#xf063;" horiz-adv-x="1664" d="M1611 704q0 -53 -37 -90l-651 -652q-39 -37 -91 -37q-53 0 -90 37l-651 652q-38 36 -38 90q0 53 38 91l74 75q39 37 91 37q53 0 90 -37l294 -294v704q0 52 38 90t90 38h128q52 0 90 -38t38 -90v-704l294 294q37 37 90 37q52 0 91 -37l75 -75q37 -39 37 -91z" />
<glyph unicode="&#xf064;" horiz-adv-x="1792" d="M1792 896q0 -26 -19 -45l-512 -512q-19 -19 -45 -19t-45 19t-19 45v256h-224q-98 0 -175.5 -6t-154 -21.5t-133 -42.5t-105.5 -69.5t-80 -101t-48.5 -138.5t-17.5 -181q0 -55 5 -123q0 -6 2.5 -23.5t2.5 -26.5q0 -15 -8.5 -25t-23.5 -10q-16 0 -28 17q-7 9 -13 22 t-13.5 30t-10.5 24q-127 285 -127 451q0 199 53 333q162 403 875 403h224v256q0 26 19 45t45 19t45 -19l512 -512q19 -19 19 -45z" />
<glyph unicode="&#xf065;" d="M755 480q0 -13 -10 -23l-332 -332l144 -144q19 -19 19 -45t-19 -45t-45 -19h-448q-26 0 -45 19t-19 45v448q0 26 19 45t45 19t45 -19l144 -144l332 332q10 10 23 10t23 -10l114 -114q10 -10 10 -23zM1536 1344v-448q0 -26 -19 -45t-45 -19t-45 19l-144 144l-332 -332 q-10 -10 -23 -10t-23 10l-114 114q-10 10 -10 23t10 23l332 332l-144 144q-19 19 -19 45t19 45t45 19h448q26 0 45 -19t19 -45z" />
<glyph unicode="&#xf066;" d="M768 576v-448q0 -26 -19 -45t-45 -19t-45 19l-144 144l-332 -332q-10 -10 -23 -10t-23 10l-114 114q-10 10 -10 23t10 23l332 332l-144 144q-19 19 -19 45t19 45t45 19h448q26 0 45 -19t19 -45zM1523 1248q0 -13 -10 -23l-332 -332l144 -144q19 -19 19 -45t-19 -45 t-45 -19h-448q-26 0 -45 19t-19 45v448q0 26 19 45t45 19t45 -19l144 -144l332 332q10 10 23 10t23 -10l114 -114q10 -10 10 -23z" />
<glyph unicode="&#xf067;" horiz-adv-x="1408" d="M1408 800v-192q0 -40 -28 -68t-68 -28h-416v-416q0 -40 -28 -68t-68 -28h-192q-40 0 -68 28t-28 68v416h-416q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h416v416q0 40 28 68t68 28h192q40 0 68 -28t28 -68v-416h416q40 0 68 -28t28 -68z" />
<glyph unicode="&#xf068;" horiz-adv-x="1408" d="M1408 800v-192q0 -40 -28 -68t-68 -28h-1216q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h1216q40 0 68 -28t28 -68z" />
<glyph unicode="&#xf069;" horiz-adv-x="1664" d="M1482 486q46 -26 59.5 -77.5t-12.5 -97.5l-64 -110q-26 -46 -77.5 -59.5t-97.5 12.5l-266 153v-307q0 -52 -38 -90t-90 -38h-128q-52 0 -90 38t-38 90v307l-266 -153q-46 -26 -97.5 -12.5t-77.5 59.5l-64 110q-26 46 -12.5 97.5t59.5 77.5l266 154l-266 154 q-46 26 -59.5 77.5t12.5 97.5l64 110q26 46 77.5 59.5t97.5 -12.5l266 -153v307q0 52 38 90t90 38h128q52 0 90 -38t38 -90v-307l266 153q46 26 97.5 12.5t77.5 -59.5l64 -110q26 -46 12.5 -97.5t-59.5 -77.5l-266 -154z" />
<glyph unicode="&#xf06a;" d="M768 1408q209 0 385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103zM896 161v190q0 14 -9 23.5t-22 9.5h-192q-13 0 -23 -10t-10 -23v-190q0 -13 10 -23t23 -10h192 q13 0 22 9.5t9 23.5zM894 505l18 621q0 12 -10 18q-10 8 -24 8h-220q-14 0 -24 -8q-10 -6 -10 -18l17 -621q0 -10 10 -17.5t24 -7.5h185q14 0 23.5 7.5t10.5 17.5z" />
<glyph unicode="&#xf06b;" d="M928 180v56v468v192h-320v-192v-468v-56q0 -25 18 -38.5t46 -13.5h192q28 0 46 13.5t18 38.5zM472 1024h195l-126 161q-26 31 -69 31q-40 0 -68 -28t-28 -68t28 -68t68 -28zM1160 1120q0 40 -28 68t-68 28q-43 0 -69 -31l-125 -161h194q40 0 68 28t28 68zM1536 864v-320 q0 -14 -9 -23t-23 -9h-96v-416q0 -40 -28 -68t-68 -28h-1088q-40 0 -68 28t-28 68v416h-96q-14 0 -23 9t-9 23v320q0 14 9 23t23 9h440q-93 0 -158.5 65.5t-65.5 158.5t65.5 158.5t158.5 65.5q107 0 168 -77l128 -165l128 165q61 77 168 77q93 0 158.5 -65.5t65.5 -158.5 t-65.5 -158.5t-158.5 -65.5h440q14 0 23 -9t9 -23z" />
<glyph unicode="&#xf06c;" horiz-adv-x="1792" d="M1280 832q0 26 -19 45t-45 19q-172 0 -318 -49.5t-259.5 -134t-235.5 -219.5q-19 -21 -19 -45q0 -26 19 -45t45 -19q24 0 45 19q27 24 74 71t67 66q137 124 268.5 176t313.5 52q26 0 45 19t19 45zM1792 1030q0 -95 -20 -193q-46 -224 -184.5 -383t-357.5 -268 q-214 -108 -438 -108q-148 0 -286 47q-15 5 -88 42t-96 37q-16 0 -39.5 -32t-45 -70t-52.5 -70t-60 -32q-30 0 -51 11t-31 24t-27 42q-2 4 -6 11t-5.5 10t-3 9.5t-1.5 13.5q0 35 31 73.5t68 65.5t68 56t31 48q0 4 -14 38t-16 44q-9 51 -9 104q0 115 43.5 220t119 184.5 t170.5 139t204 95.5q55 18 145 25.5t179.5 9t178.5 6t163.5 24t113.5 56.5l29.5 29.5t29.5 28t27 20t36.5 16t43.5 4.5q39 0 70.5 -46t47.5 -112t24 -124t8 -96z" />
<glyph unicode="&#xf06d;" horiz-adv-x="1408" d="M1408 -160v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-1344q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h1344q13 0 22.5 -9.5t9.5 -22.5zM1152 896q0 -78 -24.5 -144t-64 -112.5t-87.5 -88t-96 -77.5t-87.5 -72t-64 -81.5t-24.5 -96.5q0 -96 67 -224l-4 1l1 -1 q-90 41 -160 83t-138.5 100t-113.5 122.5t-72.5 150.5t-27.5 184q0 78 24.5 144t64 112.5t87.5 88t96 77.5t87.5 72t64 81.5t24.5 96.5q0 94 -66 224l3 -1l-1 1q90 -41 160 -83t138.5 -100t113.5 -122.5t72.5 -150.5t27.5 -184z" />
<glyph unicode="&#xf06e;" horiz-adv-x="1792" d="M1664 576q-152 236 -381 353q61 -104 61 -225q0 -185 -131.5 -316.5t-316.5 -131.5t-316.5 131.5t-131.5 316.5q0 121 61 225q-229 -117 -381 -353q133 -205 333.5 -326.5t434.5 -121.5t434.5 121.5t333.5 326.5zM944 960q0 20 -14 34t-34 14q-125 0 -214.5 -89.5 t-89.5 -214.5q0 -20 14 -34t34 -14t34 14t14 34q0 86 61 147t147 61q20 0 34 14t14 34zM1792 576q0 -34 -20 -69q-140 -230 -376.5 -368.5t-499.5 -138.5t-499.5 139t-376.5 368q-20 35 -20 69t20 69q140 229 376.5 368t499.5 139t499.5 -139t376.5 -368q20 -35 20 -69z" />
<glyph unicode="&#xf070;" horiz-adv-x="1792" d="M555 201l78 141q-87 63 -136 159t-49 203q0 121 61 225q-229 -117 -381 -353q167 -258 427 -375zM944 960q0 20 -14 34t-34 14q-125 0 -214.5 -89.5t-89.5 -214.5q0 -20 14 -34t34 -14t34 14t14 34q0 86 61 147t147 61q20 0 34 14t14 34zM1307 1151q0 -7 -1 -9 q-105 -188 -315 -566t-316 -567l-49 -89q-10 -16 -28 -16q-12 0 -134 70q-16 10 -16 28q0 12 44 87q-143 65 -263.5 173t-208.5 245q-20 31 -20 69t20 69q153 235 380 371t496 136q89 0 180 -17l54 97q10 16 28 16q5 0 18 -6t31 -15.5t33 -18.5t31.5 -18.5t19.5 -11.5 q16 -10 16 -27zM1344 704q0 -139 -79 -253.5t-209 -164.5l280 502q8 -45 8 -84zM1792 576q0 -35 -20 -69q-39 -64 -109 -145q-150 -172 -347.5 -267t-419.5 -95l74 132q212 18 392.5 137t301.5 307q-115 179 -282 294l63 112q95 -64 182.5 -153t144.5 -184q20 -34 20 -69z " />
<glyph unicode="&#xf071;" horiz-adv-x="1792" d="M1024 161v190q0 14 -9.5 23.5t-22.5 9.5h-192q-13 0 -22.5 -9.5t-9.5 -23.5v-190q0 -14 9.5 -23.5t22.5 -9.5h192q13 0 22.5 9.5t9.5 23.5zM1022 535l18 459q0 12 -10 19q-13 11 -24 11h-220q-11 0 -24 -11q-10 -7 -10 -21l17 -457q0 -10 10 -16.5t24 -6.5h185 q14 0 23.5 6.5t10.5 16.5zM1008 1469l768 -1408q35 -63 -2 -126q-17 -29 -46.5 -46t-63.5 -17h-1536q-34 0 -63.5 17t-46.5 46q-37 63 -2 126l768 1408q17 31 47 49t65 18t65 -18t47 -49z" />
<glyph unicode="&#xf072;" horiz-adv-x="1408" d="M1376 1376q44 -52 12 -148t-108 -172l-161 -161l160 -696q5 -19 -12 -33l-128 -96q-7 -6 -19 -6q-4 0 -7 1q-15 3 -21 16l-279 508l-259 -259l53 -194q5 -17 -8 -31l-96 -96q-9 -9 -23 -9h-2q-15 2 -24 13l-189 252l-252 189q-11 7 -13 23q-1 13 9 25l96 97q9 9 23 9 q6 0 8 -1l194 -53l259 259l-508 279q-14 8 -17 24q-2 16 9 27l128 128q14 13 30 8l665 -159l160 160q76 76 172 108t148 -12z" />
<glyph unicode="&#xf073;" horiz-adv-x="1664" d="M128 -128h288v288h-288v-288zM480 -128h320v288h-320v-288zM128 224h288v320h-288v-320zM480 224h320v320h-320v-320zM128 608h288v288h-288v-288zM864 -128h320v288h-320v-288zM480 608h320v288h-320v-288zM1248 -128h288v288h-288v-288zM864 224h320v320h-320v-320z M512 1088v288q0 13 -9.5 22.5t-22.5 9.5h-64q-13 0 -22.5 -9.5t-9.5 -22.5v-288q0 -13 9.5 -22.5t22.5 -9.5h64q13 0 22.5 9.5t9.5 22.5zM1248 224h288v320h-288v-320zM864 608h320v288h-320v-288zM1248 608h288v288h-288v-288zM1280 1088v288q0 13 -9.5 22.5t-22.5 9.5h-64 q-13 0 -22.5 -9.5t-9.5 -22.5v-288q0 -13 9.5 -22.5t22.5 -9.5h64q13 0 22.5 9.5t9.5 22.5zM1664 1152v-1280q0 -52 -38 -90t-90 -38h-1408q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h128v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h384v96q0 66 47 113t113 47 h64q66 0 113 -47t47 -113v-96h128q52 0 90 -38t38 -90z" />
<glyph unicode="&#xf074;" horiz-adv-x="1792" d="M666 1055q-60 -92 -137 -273q-22 45 -37 72.5t-40.5 63.5t-51 56.5t-63 35t-81.5 14.5h-224q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h224q250 0 410 -225zM1792 256q0 -14 -9 -23l-320 -320q-9 -9 -23 -9q-13 0 -22.5 9.5t-9.5 22.5v192q-32 0 -85 -0.5t-81 -1t-73 1 t-71 5t-64 10.5t-63 18.5t-58 28.5t-59 40t-55 53.5t-56 69.5q59 93 136 273q22 -45 37 -72.5t40.5 -63.5t51 -56.5t63 -35t81.5 -14.5h256v192q0 14 9 23t23 9q12 0 24 -10l319 -319q9 -9 9 -23zM1792 1152q0 -14 -9 -23l-320 -320q-9 -9 -23 -9q-13 0 -22.5 9.5t-9.5 22.5 v192h-256q-48 0 -87 -15t-69 -45t-51 -61.5t-45 -77.5q-32 -62 -78 -171q-29 -66 -49.5 -111t-54 -105t-64 -100t-74 -83t-90 -68.5t-106.5 -42t-128 -16.5h-224q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h224q48 0 87 15t69 45t51 61.5t45 77.5q32 62 78 171q29 66 49.5 111 t54 105t64 100t74 83t90 68.5t106.5 42t128 16.5h256v192q0 14 9 23t23 9q12 0 24 -10l319 -319q9 -9 9 -23z" />
<glyph unicode="&#xf075;" horiz-adv-x="1792" d="M1792 640q0 -174 -120 -321.5t-326 -233t-450 -85.5q-70 0 -145 8q-198 -175 -460 -242q-49 -14 -114 -22q-17 -2 -30.5 9t-17.5 29v1q-3 4 -0.5 12t2 10t4.5 9.5l6 9t7 8.5t8 9q7 8 31 34.5t34.5 38t31 39.5t32.5 51t27 59t26 76q-157 89 -247.5 220t-90.5 281 q0 130 71 248.5t191 204.5t286 136.5t348 50.5q244 0 450 -85.5t326 -233t120 -321.5z" />
<glyph unicode="&#xf076;" d="M1536 704v-128q0 -201 -98.5 -362t-274 -251.5t-395.5 -90.5t-395.5 90.5t-274 251.5t-98.5 362v128q0 26 19 45t45 19h384q26 0 45 -19t19 -45v-128q0 -52 23.5 -90t53.5 -57t71 -30t64 -13t44 -2t44 2t64 13t71 30t53.5 57t23.5 90v128q0 26 19 45t45 19h384 q26 0 45 -19t19 -45zM512 1344v-384q0 -26 -19 -45t-45 -19h-384q-26 0 -45 19t-19 45v384q0 26 19 45t45 19h384q26 0 45 -19t19 -45zM1536 1344v-384q0 -26 -19 -45t-45 -19h-384q-26 0 -45 19t-19 45v384q0 26 19 45t45 19h384q26 0 45 -19t19 -45z" />
<glyph unicode="&#xf077;" horiz-adv-x="1664" d="M1611 320q0 -53 -37 -90l-75 -75q-38 -38 -91 -38q-54 0 -90 38l-486 485l-486 -485q-36 -38 -90 -38t-90 38l-75 75q-38 36 -38 90q0 53 38 91l651 651q37 37 90 37q52 0 91 -37l650 -651q38 -38 38 -91z" />
<glyph unicode="&#xf078;" horiz-adv-x="1664" d="M1611 832q0 -53 -37 -90l-651 -651q-38 -38 -91 -38q-54 0 -90 38l-651 651q-38 36 -38 90q0 53 38 91l74 75q39 37 91 37q53 0 90 -37l486 -486l486 486q37 37 90 37q52 0 91 -37l75 -75q37 -39 37 -91z" />
<glyph unicode="&#xf079;" horiz-adv-x="1920" d="M1280 32q0 -13 -9.5 -22.5t-22.5 -9.5h-960q-8 0 -13.5 2t-9 7t-5.5 8t-3 11.5t-1 11.5v13v11v160v416h-192q-26 0 -45 19t-19 45q0 24 15 41l320 384q19 22 49 22t49 -22l320 -384q15 -17 15 -41q0 -26 -19 -45t-45 -19h-192v-384h576q16 0 25 -11l160 -192q7 -11 7 -21 zM1920 448q0 -24 -15 -41l-320 -384q-20 -23 -49 -23t-49 23l-320 384q-15 17 -15 41q0 26 19 45t45 19h192v384h-576q-16 0 -25 12l-160 192q-7 9 -7 20q0 13 9.5 22.5t22.5 9.5h960q8 0 13.5 -2t9 -7t5.5 -8t3 -11.5t1 -11.5v-13v-11v-160v-416h192q26 0 45 -19t19 -45z " />
<glyph unicode="&#xf07a;" horiz-adv-x="1664" d="M640 0q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1536 0q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1664 1088v-512q0 -24 -16 -42.5t-41 -21.5 l-1044 -122q1 -7 4.5 -21.5t6 -26.5t2.5 -22q0 -16 -24 -64h920q26 0 45 -19t19 -45t-19 -45t-45 -19h-1024q-26 0 -45 19t-19 45q0 14 11 39.5t29.5 59.5t20.5 38l-177 823h-204q-26 0 -45 19t-19 45t19 45t45 19h256q16 0 28.5 -6.5t20 -15.5t13 -24.5t7.5 -26.5 t5.5 -29.5t4.5 -25.5h1201q26 0 45 -19t19 -45z" />
<glyph unicode="&#xf07b;" horiz-adv-x="1664" d="M1664 928v-704q0 -92 -66 -158t-158 -66h-1216q-92 0 -158 66t-66 158v960q0 92 66 158t158 66h320q92 0 158 -66t66 -158v-32h672q92 0 158 -66t66 -158z" />
<glyph unicode="&#xf07c;" horiz-adv-x="1920" d="M1879 584q0 -31 -31 -66l-336 -396q-43 -51 -120.5 -86.5t-143.5 -35.5h-1088q-34 0 -60.5 13t-26.5 43q0 31 31 66l336 396q43 51 120.5 86.5t143.5 35.5h1088q34 0 60.5 -13t26.5 -43zM1536 928v-160h-832q-94 0 -197 -47.5t-164 -119.5l-337 -396l-5 -6q0 4 -0.5 12.5 t-0.5 12.5v960q0 92 66 158t158 66h320q92 0 158 -66t66 -158v-32h544q92 0 158 -66t66 -158z" />
<glyph unicode="&#xf07d;" horiz-adv-x="768" d="M704 1216q0 -26 -19 -45t-45 -19h-128v-1024h128q26 0 45 -19t19 -45t-19 -45l-256 -256q-19 -19 -45 -19t-45 19l-256 256q-19 19 -19 45t19 45t45 19h128v1024h-128q-26 0 -45 19t-19 45t19 45l256 256q19 19 45 19t45 -19l256 -256q19 -19 19 -45z" />
<glyph unicode="&#xf07e;" horiz-adv-x="1792" d="M1792 640q0 -26 -19 -45l-256 -256q-19 -19 -45 -19t-45 19t-19 45v128h-1024v-128q0 -26 -19 -45t-45 -19t-45 19l-256 256q-19 19 -19 45t19 45l256 256q19 19 45 19t45 -19t19 -45v-128h1024v128q0 26 19 45t45 19t45 -19l256 -256q19 -19 19 -45z" />
<glyph unicode="&#xf080;" horiz-adv-x="1920" d="M512 512v-384h-256v384h256zM896 1024v-896h-256v896h256zM1280 768v-640h-256v640h256zM1664 1152v-1024h-256v1024h256zM1792 32v1216q0 13 -9.5 22.5t-22.5 9.5h-1600q-13 0 -22.5 -9.5t-9.5 -22.5v-1216q0 -13 9.5 -22.5t22.5 -9.5h1600q13 0 22.5 9.5t9.5 22.5z M1920 1248v-1216q0 -66 -47 -113t-113 -47h-1600q-66 0 -113 47t-47 113v1216q0 66 47 113t113 47h1600q66 0 113 -47t47 -113z" />
<glyph unicode="&#xf081;" d="M1280 926q-56 -25 -121 -34q68 40 93 117q-65 -38 -134 -51q-61 66 -153 66q-87 0 -148.5 -61.5t-61.5 -148.5q0 -29 5 -48q-129 7 -242 65t-192 155q-29 -50 -29 -106q0 -114 91 -175q-47 1 -100 26v-2q0 -75 50 -133.5t123 -72.5q-29 -8 -51 -8q-13 0 -39 4 q21 -63 74.5 -104t121.5 -42q-116 -90 -261 -90q-26 0 -50 3q148 -94 322 -94q112 0 210 35.5t168 95t120.5 137t75 162t24.5 168.5q0 18 -1 27q63 45 105 109zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5 t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
<glyph unicode="&#xf082;" d="M1307 618l23 219h-198v109q0 49 15.5 68.5t71.5 19.5h110v219h-175q-152 0 -218 -72t-66 -213v-131h-131v-219h131v-635h262v635h175zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960 q119 0 203.5 -84.5t84.5 -203.5z" />
<glyph unicode="&#xf083;" horiz-adv-x="1792" d="M928 704q0 14 -9 23t-23 9q-66 0 -113 -47t-47 -113q0 -14 9 -23t23 -9t23 9t9 23q0 40 28 68t68 28q14 0 23 9t9 23zM1152 574q0 -106 -75 -181t-181 -75t-181 75t-75 181t75 181t181 75t181 -75t75 -181zM128 0h1536v128h-1536v-128zM1280 574q0 159 -112.5 271.5 t-271.5 112.5t-271.5 -112.5t-112.5 -271.5t112.5 -271.5t271.5 -112.5t271.5 112.5t112.5 271.5zM256 1216h384v128h-384v-128zM128 1024h1536v118v138h-828l-64 -128h-644v-128zM1792 1280v-1280q0 -53 -37.5 -90.5t-90.5 -37.5h-1536q-53 0 -90.5 37.5t-37.5 90.5v1280 q0 53 37.5 90.5t90.5 37.5h1536q53 0 90.5 -37.5t37.5 -90.5z" />
<glyph unicode="&#xf084;" horiz-adv-x="1792" d="M832 1024q0 80 -56 136t-136 56t-136 -56t-56 -136q0 -42 19 -83q-41 19 -83 19q-80 0 -136 -56t-56 -136t56 -136t136 -56t136 56t56 136q0 42 -19 83q41 -19 83 -19q80 0 136 56t56 136zM1683 320q0 -17 -49 -66t-66 -49q-9 0 -28.5 16t-36.5 33t-38.5 40t-24.5 26 l-96 -96l220 -220q28 -28 28 -68q0 -42 -39 -81t-81 -39q-40 0 -68 28l-671 671q-176 -131 -365 -131q-163 0 -265.5 102.5t-102.5 265.5q0 160 95 313t248 248t313 95q163 0 265.5 -102.5t102.5 -265.5q0 -189 -131 -365l355 -355l96 96q-3 3 -26 24.5t-40 38.5t-33 36.5 t-16 28.5q0 17 49 66t66 49q13 0 23 -10q6 -6 46 -44.5t82 -79.5t86.5 -86t73 -78t28.5 -41z" />
<glyph unicode="&#xf085;" horiz-adv-x="1920" d="M896 640q0 106 -75 181t-181 75t-181 -75t-75 -181t75 -181t181 -75t181 75t75 181zM1664 128q0 52 -38 90t-90 38t-90 -38t-38 -90q0 -53 37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1664 1152q0 52 -38 90t-90 38t-90 -38t-38 -90q0 -53 37.5 -90.5t90.5 -37.5 t90.5 37.5t37.5 90.5zM1280 731v-185q0 -10 -7 -19.5t-16 -10.5l-155 -24q-11 -35 -32 -76q34 -48 90 -115q7 -10 7 -20q0 -12 -7 -19q-23 -30 -82.5 -89.5t-78.5 -59.5q-11 0 -21 7l-115 90q-37 -19 -77 -31q-11 -108 -23 -155q-7 -24 -30 -24h-186q-11 0 -20 7.5t-10 17.5 l-23 153q-34 10 -75 31l-118 -89q-7 -7 -20 -7q-11 0 -21 8q-144 133 -144 160q0 9 7 19q10 14 41 53t47 61q-23 44 -35 82l-152 24q-10 1 -17 9.5t-7 19.5v185q0 10 7 19.5t16 10.5l155 24q11 35 32 76q-34 48 -90 115q-7 11 -7 20q0 12 7 20q22 30 82 89t79 59q11 0 21 -7 l115 -90q34 18 77 32q11 108 23 154q7 24 30 24h186q11 0 20 -7.5t10 -17.5l23 -153q34 -10 75 -31l118 89q8 7 20 7q11 0 21 -8q144 -133 144 -160q0 -9 -7 -19q-12 -16 -42 -54t-45 -60q23 -48 34 -82l152 -23q10 -2 17 -10.5t7 -19.5zM1920 198v-140q0 -16 -149 -31 q-12 -27 -30 -52q51 -113 51 -138q0 -4 -4 -7q-122 -71 -124 -71q-8 0 -46 47t-52 68q-20 -2 -30 -2t-30 2q-14 -21 -52 -68t-46 -47q-2 0 -124 71q-4 3 -4 7q0 25 51 138q-18 25 -30 52q-149 15 -149 31v140q0 16 149 31q13 29 30 52q-51 113 -51 138q0 4 4 7q4 2 35 20 t59 34t30 16q8 0 46 -46.5t52 -67.5q20 2 30 2t30 -2q51 71 92 112l6 2q4 0 124 -70q4 -3 4 -7q0 -25 -51 -138q17 -23 30 -52q149 -15 149 -31zM1920 1222v-140q0 -16 -149 -31q-12 -27 -30 -52q51 -113 51 -138q0 -4 -4 -7q-122 -71 -124 -71q-8 0 -46 47t-52 68 q-20 -2 -30 -2t-30 2q-14 -21 -52 -68t-46 -47q-2 0 -124 71q-4 3 -4 7q0 25 51 138q-18 25 -30 52q-149 15 -149 31v140q0 16 149 31q13 29 30 52q-51 113 -51 138q0 4 4 7q4 2 35 20t59 34t30 16q8 0 46 -46.5t52 -67.5q20 2 30 2t30 -2q51 71 92 112l6 2q4 0 124 -70 q4 -3 4 -7q0 -25 -51 -138q17 -23 30 -52q149 -15 149 -31z" />
<glyph unicode="&#xf086;" horiz-adv-x="1792" d="M1408 768q0 -139 -94 -257t-256.5 -186.5t-353.5 -68.5q-86 0 -176 16q-124 -88 -278 -128q-36 -9 -86 -16h-3q-11 0 -20.5 8t-11.5 21q-1 3 -1 6.5t0.5 6.5t2 6l2.5 5t3.5 5.5t4 5t4.5 5t4 4.5q5 6 23 25t26 29.5t22.5 29t25 38.5t20.5 44q-124 72 -195 177t-71 224 q0 139 94 257t256.5 186.5t353.5 68.5t353.5 -68.5t256.5 -186.5t94 -257zM1792 512q0 -120 -71 -224.5t-195 -176.5q10 -24 20.5 -44t25 -38.5t22.5 -29t26 -29.5t23 -25q1 -1 4 -4.5t4.5 -5t4 -5t3.5 -5.5l2.5 -5t2 -6t0.5 -6.5t-1 -6.5q-3 -14 -13 -22t-22 -7 q-50 7 -86 16q-154 40 -278 128q-90 -16 -176 -16q-271 0 -472 132q58 -4 88 -4q161 0 309 45t264 129q125 92 192 212t67 254q0 77 -23 152q129 -71 204 -178t75 -230z" />
<glyph unicode="&#xf087;" d="M256 192q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1408 768q0 51 -39 89.5t-89 38.5h-352q0 58 48 159.5t48 160.5q0 98 -32 145t-128 47q-26 -26 -38 -85t-30.5 -125.5t-59.5 -109.5q-22 -23 -77 -91q-4 -5 -23 -30t-31.5 -41t-34.5 -42.5 t-40 -44t-38.5 -35.5t-40 -27t-35.5 -9h-32v-640h32q13 0 31.5 -3t33 -6.5t38 -11t35 -11.5t35.5 -12.5t29 -10.5q211 -73 342 -73h121q192 0 192 167q0 26 -5 56q30 16 47.5 52.5t17.5 73.5t-18 69q53 50 53 119q0 25 -10 55.5t-25 47.5q32 1 53.5 47t21.5 81zM1536 769 q0 -89 -49 -163q9 -33 9 -69q0 -77 -38 -144q3 -21 3 -43q0 -101 -60 -178q1 -139 -85 -219.5t-227 -80.5h-36h-93q-96 0 -189.5 22.5t-216.5 65.5q-116 40 -138 40h-288q-53 0 -90.5 37.5t-37.5 90.5v640q0 53 37.5 90.5t90.5 37.5h274q36 24 137 155q58 75 107 128 q24 25 35.5 85.5t30.5 126.5t62 108q39 37 90 37q84 0 151 -32.5t102 -101.5t35 -186q0 -93 -48 -192h176q104 0 180 -76t76 -179z" />
<glyph unicode="&#xf088;" d="M256 1088q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1408 512q0 35 -21.5 81t-53.5 47q15 17 25 47.5t10 55.5q0 69 -53 119q18 32 18 69t-17.5 73.5t-47.5 52.5q5 30 5 56q0 85 -49 126t-136 41h-128q-131 0 -342 -73q-5 -2 -29 -10.5 t-35.5 -12.5t-35 -11.5t-38 -11t-33 -6.5t-31.5 -3h-32v-640h32q16 0 35.5 -9t40 -27t38.5 -35.5t40 -44t34.5 -42.5t31.5 -41t23 -30q55 -68 77 -91q41 -43 59.5 -109.5t30.5 -125.5t38 -85q96 0 128 47t32 145q0 59 -48 160.5t-48 159.5h352q50 0 89 38.5t39 89.5z M1536 511q0 -103 -76 -179t-180 -76h-176q48 -99 48 -192q0 -118 -35 -186q-35 -69 -102 -101.5t-151 -32.5q-51 0 -90 37q-34 33 -54 82t-25.5 90.5t-17.5 84.5t-31 64q-48 50 -107 127q-101 131 -137 155h-274q-53 0 -90.5 37.5t-37.5 90.5v640q0 53 37.5 90.5t90.5 37.5 h288q22 0 138 40q128 44 223 66t200 22h112q140 0 226.5 -79t85.5 -216v-5q60 -77 60 -178q0 -22 -3 -43q38 -67 38 -144q0 -36 -9 -69q49 -74 49 -163z" />
<glyph unicode="&#xf089;" horiz-adv-x="896" d="M832 1504v-1339l-449 -236q-22 -12 -40 -12q-21 0 -31.5 14.5t-10.5 35.5q0 6 2 20l86 500l-364 354q-25 27 -25 48q0 37 56 46l502 73l225 455q19 41 49 41z" />
<glyph unicode="&#xf08a;" horiz-adv-x="1792" d="M1664 940q0 81 -21.5 143t-55 98.5t-81.5 59.5t-94 31t-98 8t-112 -25.5t-110.5 -64t-86.5 -72t-60 -61.5q-18 -22 -49 -22t-49 22q-24 28 -60 61.5t-86.5 72t-110.5 64t-112 25.5t-98 -8t-94 -31t-81.5 -59.5t-55 -98.5t-21.5 -143q0 -168 187 -355l581 -560l580 559 q188 188 188 356zM1792 940q0 -221 -229 -450l-623 -600q-18 -18 -44 -18t-44 18l-624 602q-10 8 -27.5 26t-55.5 65.5t-68 97.5t-53.5 121t-23.5 138q0 220 127 344t351 124q62 0 126.5 -21.5t120 -58t95.5 -68.5t76 -68q36 36 76 68t95.5 68.5t120 58t126.5 21.5 q224 0 351 -124t127 -344z" />
<glyph unicode="&#xf08b;" horiz-adv-x="1664" d="M640 96q0 -4 1 -20t0.5 -26.5t-3 -23.5t-10 -19.5t-20.5 -6.5h-320q-119 0 -203.5 84.5t-84.5 203.5v704q0 119 84.5 203.5t203.5 84.5h320q13 0 22.5 -9.5t9.5 -22.5q0 -4 1 -20t0.5 -26.5t-3 -23.5t-10 -19.5t-20.5 -6.5h-320q-66 0 -113 -47t-47 -113v-704 q0 -66 47 -113t113 -47h288h11h13t11.5 -1t11.5 -3t8 -5.5t7 -9t2 -13.5zM1568 640q0 -26 -19 -45l-544 -544q-19 -19 -45 -19t-45 19t-19 45v288h-448q-26 0 -45 19t-19 45v384q0 26 19 45t45 19h448v288q0 26 19 45t45 19t45 -19l544 -544q19 -19 19 -45z" />
<glyph unicode="&#xf08c;" d="M237 122h231v694h-231v-694zM483 1030q-1 52 -36 86t-93 34t-94.5 -34t-36.5 -86q0 -51 35.5 -85.5t92.5 -34.5h1q59 0 95 34.5t36 85.5zM1068 122h231v398q0 154 -73 233t-193 79q-136 0 -209 -117h2v101h-231q3 -66 0 -694h231v388q0 38 7 56q15 35 45 59.5t74 24.5 q116 0 116 -157v-371zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
<glyph unicode="&#xf08d;" horiz-adv-x="1152" d="M480 672v448q0 14 -9 23t-23 9t-23 -9t-9 -23v-448q0 -14 9 -23t23 -9t23 9t9 23zM1152 320q0 -26 -19 -45t-45 -19h-429l-51 -483q-2 -12 -10.5 -20.5t-20.5 -8.5h-1q-27 0 -32 27l-76 485h-404q-26 0 -45 19t-19 45q0 123 78.5 221.5t177.5 98.5v512q-52 0 -90 38 t-38 90t38 90t90 38h640q52 0 90 -38t38 -90t-38 -90t-90 -38v-512q99 0 177.5 -98.5t78.5 -221.5z" />
<glyph unicode="&#xf08e;" horiz-adv-x="1792" d="M1408 608v-320q0 -119 -84.5 -203.5t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5v832q0 119 84.5 203.5t203.5 84.5h704q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-704q-66 0 -113 -47t-47 -113v-832q0 -66 47 -113t113 -47h832q66 0 113 47t47 113v320 q0 14 9 23t23 9h64q14 0 23 -9t9 -23zM1792 1472v-512q0 -26 -19 -45t-45 -19t-45 19l-176 176l-652 -652q-10 -10 -23 -10t-23 10l-114 114q-10 10 -10 23t10 23l652 652l-176 176q-19 19 -19 45t19 45t45 19h512q26 0 45 -19t19 -45z" />
<glyph unicode="&#xf090;" d="M1184 640q0 -26 -19 -45l-544 -544q-19 -19 -45 -19t-45 19t-19 45v288h-448q-26 0 -45 19t-19 45v384q0 26 19 45t45 19h448v288q0 26 19 45t45 19t45 -19l544 -544q19 -19 19 -45zM1536 992v-704q0 -119 -84.5 -203.5t-203.5 -84.5h-320q-13 0 -22.5 9.5t-9.5 22.5 q0 4 -1 20t-0.5 26.5t3 23.5t10 19.5t20.5 6.5h320q66 0 113 47t47 113v704q0 66 -47 113t-113 47h-288h-11h-13t-11.5 1t-11.5 3t-8 5.5t-7 9t-2 13.5q0 4 -1 20t-0.5 26.5t3 23.5t10 19.5t20.5 6.5h320q119 0 203.5 -84.5t84.5 -203.5z" />
<glyph unicode="&#xf091;" horiz-adv-x="1664" d="M458 653q-74 162 -74 371h-256v-96q0 -78 94.5 -162t235.5 -113zM1536 928v96h-256q0 -209 -74 -371q141 29 235.5 113t94.5 162zM1664 1056v-128q0 -71 -41.5 -143t-112 -130t-173 -97.5t-215.5 -44.5q-42 -54 -95 -95q-38 -34 -52.5 -72.5t-14.5 -89.5q0 -54 30.5 -91 t97.5 -37q75 0 133.5 -45.5t58.5 -114.5v-64q0 -14 -9 -23t-23 -9h-832q-14 0 -23 9t-9 23v64q0 69 58.5 114.5t133.5 45.5q67 0 97.5 37t30.5 91q0 51 -14.5 89.5t-52.5 72.5q-53 41 -95 95q-113 5 -215.5 44.5t-173 97.5t-112 130t-41.5 143v128q0 40 28 68t68 28h288v96 q0 66 47 113t113 47h576q66 0 113 -47t47 -113v-96h288q40 0 68 -28t28 -68z" />
<glyph unicode="&#xf092;" d="M394 184q-8 -9 -20 3q-13 11 -4 19q8 9 20 -3q12 -11 4 -19zM352 245q9 -12 0 -19q-8 -6 -17 7t0 18q9 7 17 -6zM291 305q-5 -7 -13 -2q-10 5 -7 12q3 5 13 2q10 -5 7 -12zM322 271q-6 -7 -16 3q-9 11 -2 16q6 6 16 -3q9 -11 2 -16zM451 159q-4 -12 -19 -6q-17 4 -13 15 t19 7q16 -5 13 -16zM514 154q0 -11 -16 -11q-17 -2 -17 11q0 11 16 11q17 2 17 -11zM572 164q2 -10 -14 -14t-18 8t14 15q16 2 18 -9zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-224q-16 0 -24.5 1t-19.5 5t-16 14.5t-5 27.5v239q0 97 -52 142q57 6 102.5 18t94 39 t81 66.5t53 105t20.5 150.5q0 121 -79 206q37 91 -8 204q-28 9 -81 -11t-92 -44l-38 -24q-93 26 -192 26t-192 -26q-16 11 -42.5 27t-83.5 38.5t-86 13.5q-44 -113 -7 -204q-79 -85 -79 -206q0 -85 20.5 -150t52.5 -105t80.5 -67t94 -39t102.5 -18q-40 -36 -49 -103 q-21 -10 -45 -15t-57 -5t-65.5 21.5t-55.5 62.5q-19 32 -48.5 52t-49.5 24l-20 3q-21 0 -29 -4.5t-5 -11.5t9 -14t13 -12l7 -5q22 -10 43.5 -38t31.5 -51l10 -23q13 -38 44 -61.5t67 -30t69.5 -7t55.5 3.5l23 4q0 -38 0.5 -103t0.5 -68q0 -22 -11 -33.5t-22 -13t-33 -1.5 h-224q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
<glyph unicode="&#xf093;" horiz-adv-x="1664" d="M1280 64q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1536 64q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1664 288v-320q0 -40 -28 -68t-68 -28h-1472q-40 0 -68 28t-28 68v320q0 40 28 68t68 28h427q21 -56 70.5 -92 t110.5 -36h256q61 0 110.5 36t70.5 92h427q40 0 68 -28t28 -68zM1339 936q-17 -40 -59 -40h-256v-448q0 -26 -19 -45t-45 -19h-256q-26 0 -45 19t-19 45v448h-256q-42 0 -59 40q-17 39 14 69l448 448q18 19 45 19t45 -19l448 -448q31 -30 14 -69z" />
<glyph unicode="&#xf094;" d="M1407 710q0 44 -7 113.5t-18 96.5q-12 30 -17 44t-9 36.5t-4 48.5q0 23 5 68.5t5 67.5q0 37 -10 55q-4 1 -13 1q-19 0 -58 -4.5t-59 -4.5q-60 0 -176 24t-175 24q-43 0 -94.5 -11.5t-85 -23.5t-89.5 -34q-137 -54 -202 -103q-96 -73 -159.5 -189.5t-88 -236t-24.5 -248.5 q0 -40 12.5 -120t12.5 -121q0 -23 -11 -66.5t-11 -65.5t12 -36.5t34 -14.5q24 0 72.5 11t73.5 11q57 0 169.5 -15.5t169.5 -15.5q181 0 284 36q129 45 235.5 152.5t166 245.5t59.5 275zM1535 712q0 -165 -70 -327.5t-196 -288t-281 -180.5q-124 -44 -326 -44 q-57 0 -170 14.5t-169 14.5q-24 0 -72.5 -14.5t-73.5 -14.5q-73 0 -123.5 55.5t-50.5 128.5q0 24 11 68t11 67q0 40 -12.5 120.5t-12.5 121.5q0 111 18 217.5t54.5 209.5t100.5 194t150 156q78 59 232 120q194 78 316 78q60 0 175.5 -24t173.5 -24q19 0 57 5t58 5 q81 0 118 -50.5t37 -134.5q0 -23 -5 -68t-5 -68q0 -10 1 -18.5t3 -17t4 -13.5t6.5 -16t6.5 -17q16 -40 25 -118.5t9 -136.5z" />
<glyph unicode="&#xf095;" horiz-adv-x="1408" d="M1408 296q0 -27 -10 -70.5t-21 -68.5q-21 -50 -122 -106q-94 -51 -186 -51q-27 0 -52.5 3.5t-57.5 12.5t-47.5 14.5t-55.5 20.5t-49 18q-98 35 -175 83q-128 79 -264.5 215.5t-215.5 264.5q-48 77 -83 175q-3 9 -18 49t-20.5 55.5t-14.5 47.5t-12.5 57.5t-3.5 52.5 q0 92 51 186q56 101 106 122q25 11 68.5 21t70.5 10q14 0 21 -3q18 -6 53 -76q11 -19 30 -54t35 -63.5t31 -53.5q3 -4 17.5 -25t21.5 -35.5t7 -28.5q0 -20 -28.5 -50t-62 -55t-62 -53t-28.5 -46q0 -9 5 -22.5t8.5 -20.5t14 -24t11.5 -19q76 -137 174 -235t235 -174 q2 -1 19 -11.5t24 -14t20.5 -8.5t22.5 -5q18 0 46 28.5t53 62t55 62t50 28.5q14 0 28.5 -7t35.5 -21.5t25 -17.5q25 -15 53.5 -31t63.5 -35t54 -30q70 -35 76 -53q3 -7 3 -21z" />
<glyph unicode="&#xf096;" horiz-adv-x="1408" d="M1120 1280h-832q-66 0 -113 -47t-47 -113v-832q0 -66 47 -113t113 -47h832q66 0 113 47t47 113v832q0 66 -47 113t-113 47zM1408 1120v-832q0 -119 -84.5 -203.5t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5v832q0 119 84.5 203.5t203.5 84.5h832 q119 0 203.5 -84.5t84.5 -203.5z" />
<glyph unicode="&#xf097;" horiz-adv-x="1280" d="M1152 1280h-1024v-1242l423 406l89 85l89 -85l423 -406v1242zM1164 1408q23 0 44 -9q33 -13 52.5 -41t19.5 -62v-1289q0 -34 -19.5 -62t-52.5 -41q-19 -8 -44 -8q-48 0 -83 32l-441 424l-441 -424q-36 -33 -83 -33q-23 0 -44 9q-33 13 -52.5 41t-19.5 62v1289 q0 34 19.5 62t52.5 41q21 9 44 9h1048z" />
<glyph unicode="&#xf098;" d="M1280 343q0 11 -2 16q-3 8 -38.5 29.5t-88.5 49.5l-53 29q-5 3 -19 13t-25 15t-21 5q-18 0 -47 -32.5t-57 -65.5t-44 -33q-7 0 -16.5 3.5t-15.5 6.5t-17 9.5t-14 8.5q-99 55 -170.5 126.5t-126.5 170.5q-2 3 -8.5 14t-9.5 17t-6.5 15.5t-3.5 16.5q0 13 20.5 33.5t45 38.5 t45 39.5t20.5 36.5q0 10 -5 21t-15 25t-13 19q-3 6 -15 28.5t-25 45.5t-26.5 47.5t-25 40.5t-16.5 18t-16 2q-48 0 -101 -22q-46 -21 -80 -94.5t-34 -130.5q0 -16 2.5 -34t5 -30.5t9 -33t10 -29.5t12.5 -33t11 -30q60 -164 216.5 -320.5t320.5 -216.5q6 -2 30 -11t33 -12.5 t29.5 -10t33 -9t30.5 -5t34 -2.5q57 0 130.5 34t94.5 80q22 53 22 101zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
<glyph unicode="&#xf099;" horiz-adv-x="1664" d="M1620 1128q-67 -98 -162 -167q1 -14 1 -42q0 -130 -38 -259.5t-115.5 -248.5t-184.5 -210.5t-258 -146t-323 -54.5q-271 0 -496 145q35 -4 78 -4q225 0 401 138q-105 2 -188 64.5t-114 159.5q33 -5 61 -5q43 0 85 11q-112 23 -185.5 111.5t-73.5 205.5v4q68 -38 146 -41 q-66 44 -105 115t-39 154q0 88 44 163q121 -149 294.5 -238.5t371.5 -99.5q-8 38 -8 74q0 134 94.5 228.5t228.5 94.5q140 0 236 -102q109 21 205 78q-37 -115 -142 -178q93 10 186 50z" />
<glyph unicode="&#xf09a;" horiz-adv-x="768" d="M511 980h257l-30 -284h-227v-824h-341v824h-170v284h170v171q0 182 86 275.5t283 93.5h227v-284h-142q-39 0 -62.5 -6.5t-34 -23.5t-13.5 -34.5t-3 -49.5v-142z" />
<glyph unicode="&#xf09b;" d="M1536 640q0 -251 -146.5 -451.5t-378.5 -277.5q-27 -5 -39.5 7t-12.5 30v211q0 97 -52 142q57 6 102.5 18t94 39t81 66.5t53 105t20.5 150.5q0 121 -79 206q37 91 -8 204q-28 9 -81 -11t-92 -44l-38 -24q-93 26 -192 26t-192 -26q-16 11 -42.5 27t-83.5 38.5t-86 13.5 q-44 -113 -7 -204q-79 -85 -79 -206q0 -85 20.5 -150t52.5 -105t80.5 -67t94 -39t102.5 -18q-40 -36 -49 -103q-21 -10 -45 -15t-57 -5t-65.5 21.5t-55.5 62.5q-19 32 -48.5 52t-49.5 24l-20 3q-21 0 -29 -4.5t-5 -11.5t9 -14t13 -12l7 -5q22 -10 43.5 -38t31.5 -51l10 -23 q13 -38 44 -61.5t67 -30t69.5 -7t55.5 3.5l23 4q0 -38 0.5 -89t0.5 -54q0 -18 -13 -30t-40 -7q-232 77 -378.5 277.5t-146.5 451.5q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
<glyph unicode="&#xf09c;" horiz-adv-x="1664" d="M1664 960v-256q0 -26 -19 -45t-45 -19h-64q-26 0 -45 19t-19 45v256q0 106 -75 181t-181 75t-181 -75t-75 -181v-192h96q40 0 68 -28t28 -68v-576q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68v576q0 40 28 68t68 28h672v192q0 185 131.5 316.5t316.5 131.5 t316.5 -131.5t131.5 -316.5z" />
<glyph unicode="&#xf09d;" horiz-adv-x="1920" d="M1760 1408q66 0 113 -47t47 -113v-1216q0 -66 -47 -113t-113 -47h-1600q-66 0 -113 47t-47 113v1216q0 66 47 113t113 47h1600zM160 1280q-13 0 -22.5 -9.5t-9.5 -22.5v-224h1664v224q0 13 -9.5 22.5t-22.5 9.5h-1600zM1760 0q13 0 22.5 9.5t9.5 22.5v608h-1664v-608 q0 -13 9.5 -22.5t22.5 -9.5h1600zM256 128v128h256v-128h-256zM640 128v128h384v-128h-384z" />
<glyph unicode="&#xf09e;" horiz-adv-x="1408" d="M384 192q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM896 69q2 -28 -17 -48q-18 -21 -47 -21h-135q-25 0 -43 16.5t-20 41.5q-22 229 -184.5 391.5t-391.5 184.5q-25 2 -41.5 20t-16.5 43v135q0 29 21 47q17 17 43 17h5q160 -13 306 -80.5 t259 -181.5q114 -113 181.5 -259t80.5 -306zM1408 67q2 -27 -18 -47q-18 -20 -46 -20h-143q-26 0 -44.5 17.5t-19.5 42.5q-12 215 -101 408.5t-231.5 336t-336 231.5t-408.5 102q-25 1 -42.5 19.5t-17.5 43.5v143q0 28 20 46q18 18 44 18h3q262 -13 501.5 -120t425.5 -294 q187 -186 294 -425.5t120 -501.5z" />
<glyph unicode="&#xf0a0;" d="M1040 320q0 -33 -23.5 -56.5t-56.5 -23.5t-56.5 23.5t-23.5 56.5t23.5 56.5t56.5 23.5t56.5 -23.5t23.5 -56.5zM1296 320q0 -33 -23.5 -56.5t-56.5 -23.5t-56.5 23.5t-23.5 56.5t23.5 56.5t56.5 23.5t56.5 -23.5t23.5 -56.5zM1408 160v320q0 13 -9.5 22.5t-22.5 9.5 h-1216q-13 0 -22.5 -9.5t-9.5 -22.5v-320q0 -13 9.5 -22.5t22.5 -9.5h1216q13 0 22.5 9.5t9.5 22.5zM178 640h1180l-157 482q-4 13 -16 21.5t-26 8.5h-782q-14 0 -26 -8.5t-16 -21.5zM1536 480v-320q0 -66 -47 -113t-113 -47h-1216q-66 0 -113 47t-47 113v320q0 25 16 75 l197 606q17 53 63 86t101 33h782q55 0 101 -33t63 -86l197 -606q16 -50 16 -75z" />
<glyph unicode="&#xf0a1;" horiz-adv-x="1792" d="M1664 896q53 0 90.5 -37.5t37.5 -90.5t-37.5 -90.5t-90.5 -37.5v-384q0 -52 -38 -90t-90 -38q-417 347 -812 380q-58 -19 -91 -66t-31 -100.5t40 -92.5q-20 -33 -23 -65.5t6 -58t33.5 -55t48 -50t61.5 -50.5q-29 -58 -111.5 -83t-168.5 -11.5t-132 55.5q-7 23 -29.5 87.5 t-32 94.5t-23 89t-15 101t3.5 98.5t22 110.5h-122q-66 0 -113 47t-47 113v192q0 66 47 113t113 47h480q435 0 896 384q52 0 90 -38t38 -90v-384zM1536 292v954q-394 -302 -768 -343v-270q377 -42 768 -341z" />
<glyph unicode="&#xf0a2;" horiz-adv-x="1664" d="M848 -160q0 16 -16 16q-59 0 -101.5 42.5t-42.5 101.5q0 16 -16 16t-16 -16q0 -73 51.5 -124.5t124.5 -51.5q16 0 16 16zM183 128h1298q-164 181 -246.5 411.5t-82.5 484.5q0 256 -320 256t-320 -256q0 -254 -82.5 -484.5t-246.5 -411.5zM1664 128q0 -52 -38 -90t-90 -38 h-448q0 -106 -75 -181t-181 -75t-181 75t-75 181h-448q-52 0 -90 38t-38 90q190 161 287 397.5t97 498.5q0 165 96 262t264 117q-8 18 -8 37q0 40 28 68t68 28t68 -28t28 -68q0 -19 -8 -37q168 -20 264 -117t96 -262q0 -262 97 -498.5t287 -397.5z" />
<glyph unicode="&#xf0a3;" d="M1376 640l138 -135q30 -28 20 -70q-12 -41 -52 -51l-188 -48l53 -186q12 -41 -19 -70q-29 -31 -70 -19l-186 53l-48 -188q-10 -40 -51 -52q-12 -2 -19 -2q-31 0 -51 22l-135 138l-135 -138q-28 -30 -70 -20q-41 11 -51 52l-48 188l-186 -53q-41 -12 -70 19q-31 29 -19 70 l53 186l-188 48q-40 10 -52 51q-10 42 20 70l138 135l-138 135q-30 28 -20 70q12 41 52 51l188 48l-53 186q-12 41 19 70q29 31 70 19l186 -53l48 188q10 41 51 51q41 12 70 -19l135 -139l135 139q29 30 70 19q41 -10 51 -51l48 -188l186 53q41 12 70 -19q31 -29 19 -70 l-53 -186l188 -48q40 -10 52 -51q10 -42 -20 -70z" />
<glyph unicode="&#xf0a4;" horiz-adv-x="1792" d="M256 192q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1664 768q0 51 -39 89.5t-89 38.5h-576q0 20 15 48.5t33 55t33 68t15 84.5q0 67 -44.5 97.5t-115.5 30.5q-24 0 -90 -139q-24 -44 -37 -65q-40 -64 -112 -145q-71 -81 -101 -106 q-69 -57 -140 -57h-32v-640h32q72 0 167 -32t193.5 -64t179.5 -32q189 0 189 167q0 26 -5 56q30 16 47.5 52.5t17.5 73.5t-18 69q53 50 53 119q0 25 -10 55.5t-25 47.5h331q52 0 90 38t38 90zM1792 769q0 -105 -75.5 -181t-180.5 -76h-169q-4 -62 -37 -119q3 -21 3 -43 q0 -101 -60 -178q1 -139 -85 -219.5t-227 -80.5q-133 0 -322 69q-164 59 -223 59h-288q-53 0 -90.5 37.5t-37.5 90.5v640q0 53 37.5 90.5t90.5 37.5h288q10 0 21.5 4.5t23.5 14t22.5 18t24 22.5t20.5 21.5t19 21.5t14 17q65 74 100 129q13 21 33 62t37 72t40.5 63t55 49.5 t69.5 17.5q125 0 206.5 -67t81.5 -189q0 -68 -22 -128h374q104 0 180 -76t76 -179z" />
<glyph unicode="&#xf0a5;" horiz-adv-x="1792" d="M1376 128h32v640h-32q-35 0 -67.5 12t-62.5 37t-50 46t-49 54q-2 3 -3.5 4.5t-4 4.5t-4.5 5q-72 81 -112 145q-14 22 -38 68q-1 3 -10.5 22.5t-18.5 36t-20 35.5t-21.5 30.5t-18.5 11.5q-71 0 -115.5 -30.5t-44.5 -97.5q0 -43 15 -84.5t33 -68t33 -55t15 -48.5h-576 q-50 0 -89 -38.5t-39 -89.5q0 -52 38 -90t90 -38h331q-15 -17 -25 -47.5t-10 -55.5q0 -69 53 -119q-18 -32 -18 -69t17.5 -73.5t47.5 -52.5q-4 -24 -4 -56q0 -85 48.5 -126t135.5 -41q84 0 183 32t194 64t167 32zM1664 192q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45 t45 -19t45 19t19 45zM1792 768v-640q0 -53 -37.5 -90.5t-90.5 -37.5h-288q-59 0 -223 -59q-190 -69 -317 -69q-142 0 -230 77.5t-87 217.5l1 5q-61 76 -61 178q0 22 3 43q-33 57 -37 119h-169q-105 0 -180.5 76t-75.5 181q0 103 76 179t180 76h374q-22 60 -22 128 q0 122 81.5 189t206.5 67q38 0 69.5 -17.5t55 -49.5t40.5 -63t37 -72t33 -62q35 -55 100 -129q2 -3 14 -17t19 -21.5t20.5 -21.5t24 -22.5t22.5 -18t23.5 -14t21.5 -4.5h288q53 0 90.5 -37.5t37.5 -90.5z" />
<glyph unicode="&#xf0a6;" d="M1280 -64q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1408 700q0 189 -167 189q-26 0 -56 -5q-16 30 -52.5 47.5t-73.5 17.5t-69 -18q-50 53 -119 53q-25 0 -55.5 -10t-47.5 -25v331q0 52 -38 90t-90 38q-51 0 -89.5 -39t-38.5 -89v-576 q-20 0 -48.5 15t-55 33t-68 33t-84.5 15q-67 0 -97.5 -44.5t-30.5 -115.5q0 -24 139 -90q44 -24 65 -37q64 -40 145 -112q81 -71 106 -101q57 -69 57 -140v-32h640v32q0 72 32 167t64 193.5t32 179.5zM1536 705q0 -133 -69 -322q-59 -164 -59 -223v-288q0 -53 -37.5 -90.5 t-90.5 -37.5h-640q-53 0 -90.5 37.5t-37.5 90.5v288q0 10 -4.5 21.5t-14 23.5t-18 22.5t-22.5 24t-21.5 20.5t-21.5 19t-17 14q-74 65 -129 100q-21 13 -62 33t-72 37t-63 40.5t-49.5 55t-17.5 69.5q0 125 67 206.5t189 81.5q68 0 128 -22v374q0 104 76 180t179 76 q105 0 181 -75.5t76 -180.5v-169q62 -4 119 -37q21 3 43 3q101 0 178 -60q139 1 219.5 -85t80.5 -227z" />
<glyph unicode="&#xf0a7;" d="M1408 576q0 84 -32 183t-64 194t-32 167v32h-640v-32q0 -35 -12 -67.5t-37 -62.5t-46 -50t-54 -49q-9 -8 -14 -12q-81 -72 -145 -112q-22 -14 -68 -38q-3 -1 -22.5 -10.5t-36 -18.5t-35.5 -20t-30.5 -21.5t-11.5 -18.5q0 -71 30.5 -115.5t97.5 -44.5q43 0 84.5 15t68 33 t55 33t48.5 15v-576q0 -50 38.5 -89t89.5 -39q52 0 90 38t38 90v331q46 -35 103 -35q69 0 119 53q32 -18 69 -18t73.5 17.5t52.5 47.5q24 -4 56 -4q85 0 126 48.5t41 135.5zM1280 1344q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1536 580 q0 -142 -77.5 -230t-217.5 -87l-5 1q-76 -61 -178 -61q-22 0 -43 3q-54 -30 -119 -37v-169q0 -105 -76 -180.5t-181 -75.5q-103 0 -179 76t-76 180v374q-54 -22 -128 -22q-121 0 -188.5 81.5t-67.5 206.5q0 38 17.5 69.5t49.5 55t63 40.5t72 37t62 33q55 35 129 100 q3 2 17 14t21.5 19t21.5 20.5t22.5 24t18 22.5t14 23.5t4.5 21.5v288q0 53 37.5 90.5t90.5 37.5h640q53 0 90.5 -37.5t37.5 -90.5v-288q0 -59 59 -223q69 -190 69 -317z" />
<glyph unicode="&#xf0a8;" d="M1280 576v128q0 26 -19 45t-45 19h-502l189 189q19 19 19 45t-19 45l-91 91q-18 18 -45 18t-45 -18l-362 -362l-91 -91q-18 -18 -18 -45t18 -45l91 -91l362 -362q18 -18 45 -18t45 18l91 91q18 18 18 45t-18 45l-189 189h502q26 0 45 19t19 45zM1536 640 q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
<glyph unicode="&#xf0a9;" d="M1285 640q0 27 -18 45l-91 91l-362 362q-18 18 -45 18t-45 -18l-91 -91q-18 -18 -18 -45t18 -45l189 -189h-502q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h502l-189 -189q-19 -19 -19 -45t19 -45l91 -91q18 -18 45 -18t45 18l362 362l91 91q18 18 18 45zM1536 640 q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
<glyph unicode="&#xf0aa;" d="M1284 641q0 27 -18 45l-362 362l-91 91q-18 18 -45 18t-45 -18l-91 -91l-362 -362q-18 -18 -18 -45t18 -45l91 -91q18 -18 45 -18t45 18l189 189v-502q0 -26 19 -45t45 -19h128q26 0 45 19t19 45v502l189 -189q19 -19 45 -19t45 19l91 91q18 18 18 45zM1536 640 q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
<glyph unicode="&#xf0ab;" d="M1284 639q0 27 -18 45l-91 91q-18 18 -45 18t-45 -18l-189 -189v502q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-502l-189 189q-19 19 -45 19t-45 -19l-91 -91q-18 -18 -18 -45t18 -45l362 -362l91 -91q18 -18 45 -18t45 18l91 91l362 362q18 18 18 45zM1536 640 q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
<glyph unicode="&#xf0ac;" d="M768 1408q209 0 385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103zM1042 887q-2 -1 -9.5 -9.5t-13.5 -9.5q2 0 4.5 5t5 11t3.5 7q6 7 22 15q14 6 52 12q34 8 51 -11 q-2 2 9.5 13t14.5 12q3 2 15 4.5t15 7.5l2 22q-12 -1 -17.5 7t-6.5 21q0 -2 -6 -8q0 7 -4.5 8t-11.5 -1t-9 -1q-10 3 -15 7.5t-8 16.5t-4 15q-2 5 -9.5 10.5t-9.5 10.5q-1 2 -2.5 5.5t-3 6.5t-4 5.5t-5.5 2.5t-7 -5t-7.5 -10t-4.5 -5q-3 2 -6 1.5t-4.5 -1t-4.5 -3t-5 -3.5 q-3 -2 -8.5 -3t-8.5 -2q15 5 -1 11q-10 4 -16 3q9 4 7.5 12t-8.5 14h5q-1 4 -8.5 8.5t-17.5 8.5t-13 6q-8 5 -34 9.5t-33 0.5q-5 -6 -4.5 -10.5t4 -14t3.5 -12.5q1 -6 -5.5 -13t-6.5 -12q0 -7 14 -15.5t10 -21.5q-3 -8 -16 -16t-16 -12q-5 -8 -1.5 -18.5t10.5 -16.5 q2 -2 1.5 -4t-3.5 -4.5t-5.5 -4t-6.5 -3.5l-3 -2q-11 -5 -20.5 6t-13.5 26q-7 25 -16 30q-23 8 -29 -1q-5 13 -41 26q-25 9 -58 4q6 1 0 15q-7 15 -19 12q3 6 4 17.5t1 13.5q3 13 12 23q1 1 7 8.5t9.5 13.5t0.5 6q35 -4 50 11q5 5 11.5 17t10.5 17q9 6 14 5.5t14.5 -5.5 t14.5 -5q14 -1 15.5 11t-7.5 20q12 -1 3 17q-5 7 -8 9q-12 4 -27 -5q-8 -4 2 -8q-1 1 -9.5 -10.5t-16.5 -17.5t-16 5q-1 1 -5.5 13.5t-9.5 13.5q-8 0 -16 -15q3 8 -11 15t-24 8q19 12 -8 27q-7 4 -20.5 5t-19.5 -4q-5 -7 -5.5 -11.5t5 -8t10.5 -5.5t11.5 -4t8.5 -3 q14 -10 8 -14q-2 -1 -8.5 -3.5t-11.5 -4.5t-6 -4q-3 -4 0 -14t-2 -14q-5 5 -9 17.5t-7 16.5q7 -9 -25 -6l-10 1q-4 0 -16 -2t-20.5 -1t-13.5 8q-4 8 0 20q1 4 4 2q-4 3 -11 9.5t-10 8.5q-46 -15 -94 -41q6 -1 12 1q5 2 13 6.5t10 5.5q34 14 42 7l5 5q14 -16 20 -25 q-7 4 -30 1q-20 -6 -22 -12q7 -12 5 -18q-4 3 -11.5 10t-14.5 11t-15 5q-16 0 -22 -1q-146 -80 -235 -222q7 -7 12 -8q4 -1 5 -9t2.5 -11t11.5 3q9 -8 3 -19q1 1 44 -27q19 -17 21 -21q3 -11 -10 -18q-1 2 -9 9t-9 4q-3 -5 0.5 -18.5t10.5 -12.5q-7 0 -9.5 -16t-2.5 -35.5 t-1 -23.5l2 -1q-3 -12 5.5 -34.5t21.5 -19.5q-13 -3 20 -43q6 -8 8 -9q3 -2 12 -7.5t15 -10t10 -10.5q4 -5 10 -22.5t14 -23.5q-2 -6 9.5 -20t10.5 -23q-1 0 -2.5 -1t-2.5 -1q3 -7 15.5 -14t15.5 -13q1 -3 2 -10t3 -11t8 -2q2 20 -24 62q-15 25 -17 29q-3 5 -5.5 15.5 t-4.5 14.5q2 0 6 -1.5t8.5 -3.5t7.5 -4t2 -3q-3 -7 2 -17.5t12 -18.5t17 -19t12 -13q6 -6 14 -19.5t0 -13.5q9 0 20 -10t17 -20q5 -8 8 -26t5 -24q2 -7 8.5 -13.5t12.5 -9.5l16 -8t13 -7q5 -2 18.5 -10.5t21.5 -11.5q10 -4 16 -4t14.5 2.5t13.5 3.5q15 2 29 -15t21 -21 q36 -19 55 -11q-2 -1 0.5 -7.5t8 -15.5t9 -14.5t5.5 -8.5q5 -6 18 -15t18 -15q6 4 7 9q-3 -8 7 -20t18 -10q14 3 14 32q-31 -15 -49 18q0 1 -2.5 5.5t-4 8.5t-2.5 8.5t0 7.5t5 3q9 0 10 3.5t-2 12.5t-4 13q-1 8 -11 20t-12 15q-5 -9 -16 -8t-16 9q0 -1 -1.5 -5.5t-1.5 -6.5 q-13 0 -15 1q1 3 2.5 17.5t3.5 22.5q1 4 5.5 12t7.5 14.5t4 12.5t-4.5 9.5t-17.5 2.5q-19 -1 -26 -20q-1 -3 -3 -10.5t-5 -11.5t-9 -7q-7 -3 -24 -2t-24 5q-13 8 -22.5 29t-9.5 37q0 10 2.5 26.5t3 25t-5.5 24.5q3 2 9 9.5t10 10.5q2 1 4.5 1.5t4.5 0t4 1.5t3 6q-1 1 -4 3 q-3 3 -4 3q7 -3 28.5 1.5t27.5 -1.5q15 -11 22 2q0 1 -2.5 9.5t-0.5 13.5q5 -27 29 -9q3 -3 15.5 -5t17.5 -5q3 -2 7 -5.5t5.5 -4.5t5 0.5t8.5 6.5q10 -14 12 -24q11 -40 19 -44q7 -3 11 -2t4.5 9.5t0 14t-1.5 12.5l-1 8v18l-1 8q-15 3 -18.5 12t1.5 18.5t15 18.5q1 1 8 3.5 t15.5 6.5t12.5 8q21 19 15 35q7 0 11 9q-1 0 -5 3t-7.5 5t-4.5 2q9 5 2 16q5 3 7.5 11t7.5 10q9 -12 21 -2q7 8 1 16q5 7 20.5 10.5t18.5 9.5q7 -2 8 2t1 12t3 12q4 5 15 9t13 5l17 11q3 4 0 4q18 -2 31 11q10 11 -6 20q3 6 -3 9.5t-15 5.5q3 1 11.5 0.5t10.5 1.5 q15 10 -7 16q-17 5 -43 -12zM879 10q206 36 351 189q-3 3 -12.5 4.5t-12.5 3.5q-18 7 -24 8q1 7 -2.5 13t-8 9t-12.5 8t-11 7q-2 2 -7 6t-7 5.5t-7.5 4.5t-8.5 2t-10 -1l-3 -1q-3 -1 -5.5 -2.5t-5.5 -3t-4 -3t0 -2.5q-21 17 -36 22q-5 1 -11 5.5t-10.5 7t-10 1.5t-11.5 -7 q-5 -5 -6 -15t-2 -13q-7 5 0 17.5t2 18.5q-3 6 -10.5 4.5t-12 -4.5t-11.5 -8.5t-9 -6.5t-8.5 -5.5t-8.5 -7.5q-3 -4 -6 -12t-5 -11q-2 4 -11.5 6.5t-9.5 5.5q2 -10 4 -35t5 -38q7 -31 -12 -48q-27 -25 -29 -40q-4 -22 12 -26q0 -7 -8 -20.5t-7 -21.5q0 -6 2 -16z" />
<glyph unicode="&#xf0ad;" horiz-adv-x="1664" d="M384 64q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1028 484l-682 -682q-37 -37 -90 -37q-52 0 -91 37l-106 108q-38 36 -38 90q0 53 38 91l681 681q39 -98 114.5 -173.5t173.5 -114.5zM1662 919q0 -39 -23 -106q-47 -134 -164.5 -217.5 t-258.5 -83.5q-185 0 -316.5 131.5t-131.5 316.5t131.5 316.5t316.5 131.5q58 0 121.5 -16.5t107.5 -46.5q16 -11 16 -28t-16 -28l-293 -169v-224l193 -107q5 3 79 48.5t135.5 81t70.5 35.5q15 0 23.5 -10t8.5 -25z" />
<glyph unicode="&#xf0ae;" horiz-adv-x="1792" d="M1024 128h640v128h-640v-128zM640 640h1024v128h-1024v-128zM1280 1152h384v128h-384v-128zM1792 320v-256q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v256q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1792 832v-256q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19 t-19 45v256q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1792 1344v-256q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v256q0 26 19 45t45 19h1664q26 0 45 -19t19 -45z" />
<glyph unicode="&#xf0b0;" horiz-adv-x="1408" d="M1403 1241q17 -41 -14 -70l-493 -493v-742q0 -42 -39 -59q-13 -5 -25 -5q-27 0 -45 19l-256 256q-19 19 -19 45v486l-493 493q-31 29 -14 70q17 39 59 39h1280q42 0 59 -39z" />
<glyph unicode="&#xf0b1;" horiz-adv-x="1792" d="M640 1280h512v128h-512v-128zM1792 640v-480q0 -66 -47 -113t-113 -47h-1472q-66 0 -113 47t-47 113v480h672v-160q0 -26 19 -45t45 -19h320q26 0 45 19t19 45v160h672zM1024 640v-128h-256v128h256zM1792 1120v-384h-1792v384q0 66 47 113t113 47h352v160q0 40 28 68 t68 28h576q40 0 68 -28t28 -68v-160h352q66 0 113 -47t47 -113z" />
<glyph unicode="&#xf0b2;" d="M1283 995l-355 -355l355 -355l144 144q29 31 70 14q39 -17 39 -59v-448q0 -26 -19 -45t-45 -19h-448q-42 0 -59 40q-17 39 14 69l144 144l-355 355l-355 -355l144 -144q31 -30 14 -69q-17 -40 -59 -40h-448q-26 0 -45 19t-19 45v448q0 42 40 59q39 17 69 -14l144 -144 l355 355l-355 355l-144 -144q-19 -19 -45 -19q-12 0 -24 5q-40 17 -40 59v448q0 26 19 45t45 19h448q42 0 59 -40q17 -39 -14 -69l-144 -144l355 -355l355 355l-144 144q-31 30 -14 69q17 40 59 40h448q26 0 45 -19t19 -45v-448q0 -42 -39 -59q-13 -5 -25 -5q-26 0 -45 19z " />
<glyph unicode="&#xf0c0;" horiz-adv-x="1920" d="M593 640q-162 -5 -265 -128h-134q-82 0 -138 40.5t-56 118.5q0 353 124 353q6 0 43.5 -21t97.5 -42.5t119 -21.5q67 0 133 23q-5 -37 -5 -66q0 -139 81 -256zM1664 3q0 -120 -73 -189.5t-194 -69.5h-874q-121 0 -194 69.5t-73 189.5q0 53 3.5 103.5t14 109t26.5 108.5 t43 97.5t62 81t85.5 53.5t111.5 20q10 0 43 -21.5t73 -48t107 -48t135 -21.5t135 21.5t107 48t73 48t43 21.5q61 0 111.5 -20t85.5 -53.5t62 -81t43 -97.5t26.5 -108.5t14 -109t3.5 -103.5zM640 1280q0 -106 -75 -181t-181 -75t-181 75t-75 181t75 181t181 75t181 -75 t75 -181zM1344 896q0 -159 -112.5 -271.5t-271.5 -112.5t-271.5 112.5t-112.5 271.5t112.5 271.5t271.5 112.5t271.5 -112.5t112.5 -271.5zM1920 671q0 -78 -56 -118.5t-138 -40.5h-134q-103 123 -265 128q81 117 81 256q0 29 -5 66q66 -23 133 -23q59 0 119 21.5t97.5 42.5 t43.5 21q124 0 124 -353zM1792 1280q0 -106 -75 -181t-181 -75t-181 75t-75 181t75 181t181 75t181 -75t75 -181z" />
<glyph unicode="&#xf0c1;" horiz-adv-x="1664" d="M1456 320q0 40 -28 68l-208 208q-28 28 -68 28q-42 0 -72 -32q3 -3 19 -18.5t21.5 -21.5t15 -19t13 -25.5t3.5 -27.5q0 -40 -28 -68t-68 -28q-15 0 -27.5 3.5t-25.5 13t-19 15t-21.5 21.5t-18.5 19q-33 -31 -33 -73q0 -40 28 -68l206 -207q27 -27 68 -27q40 0 68 26 l147 146q28 28 28 67zM753 1025q0 40 -28 68l-206 207q-28 28 -68 28q-39 0 -68 -27l-147 -146q-28 -28 -28 -67q0 -40 28 -68l208 -208q27 -27 68 -27q42 0 72 31q-3 3 -19 18.5t-21.5 21.5t-15 19t-13 25.5t-3.5 27.5q0 40 28 68t68 28q15 0 27.5 -3.5t25.5 -13t19 -15 t21.5 -21.5t18.5 -19q33 31 33 73zM1648 320q0 -120 -85 -203l-147 -146q-83 -83 -203 -83q-121 0 -204 85l-206 207q-83 83 -83 203q0 123 88 209l-88 88q-86 -88 -208 -88q-120 0 -204 84l-208 208q-84 84 -84 204t85 203l147 146q83 83 203 83q121 0 204 -85l206 -207 q83 -83 83 -203q0 -123 -88 -209l88 -88q86 88 208 88q120 0 204 -84l208 -208q84 -84 84 -204z" />
<glyph unicode="&#xf0c2;" horiz-adv-x="1920" d="M1920 384q0 -159 -112.5 -271.5t-271.5 -112.5h-1088q-185 0 -316.5 131.5t-131.5 316.5q0 132 71 241.5t187 163.5q-2 28 -2 43q0 212 150 362t362 150q158 0 286.5 -88t187.5 -230q70 62 166 62q106 0 181 -75t75 -181q0 -75 -41 -138q129 -30 213 -134.5t84 -239.5z " />
<glyph unicode="&#xf0c3;" horiz-adv-x="1664" d="M1527 88q56 -89 21.5 -152.5t-140.5 -63.5h-1152q-106 0 -140.5 63.5t21.5 152.5l503 793v399h-64q-26 0 -45 19t-19 45t19 45t45 19h512q26 0 45 -19t19 -45t-19 -45t-45 -19h-64v-399zM748 813l-272 -429h712l-272 429l-20 31v37v399h-128v-399v-37z" />
<glyph unicode="&#xf0c4;" horiz-adv-x="1792" d="M960 640q26 0 45 -19t19 -45t-19 -45t-45 -19t-45 19t-19 45t19 45t45 19zM1260 576l507 -398q28 -20 25 -56q-5 -35 -35 -51l-128 -64q-13 -7 -29 -7q-17 0 -31 8l-690 387l-110 -66q-8 -4 -12 -5q14 -49 10 -97q-7 -77 -56 -147.5t-132 -123.5q-132 -84 -277 -84 q-136 0 -222 78q-90 84 -79 207q7 76 56 147t131 124q132 84 278 84q83 0 151 -31q9 13 22 22l122 73l-122 73q-13 9 -22 22q-68 -31 -151 -31q-146 0 -278 84q-82 53 -131 124t-56 147q-5 59 15.5 113t63.5 93q85 79 222 79q145 0 277 -84q83 -52 132 -123t56 -148 q4 -48 -10 -97q4 -1 12 -5l110 -66l690 387q14 8 31 8q16 0 29 -7l128 -64q30 -16 35 -51q3 -36 -25 -56zM579 836q46 42 21 108t-106 117q-92 59 -192 59q-74 0 -113 -36q-46 -42 -21 -108t106 -117q92 -59 192 -59q74 0 113 36zM494 91q81 51 106 117t-21 108 q-39 36 -113 36q-100 0 -192 -59q-81 -51 -106 -117t21 -108q39 -36 113 -36q100 0 192 59zM672 704l96 -58v11q0 36 33 56l14 8l-79 47l-26 -26q-3 -3 -10 -11t-12 -12q-2 -2 -4 -3.5t-3 -2.5zM896 480l96 -32l736 576l-128 64l-768 -431v-113l-160 -96l9 -8q2 -2 7 -6 q4 -4 11 -12t11 -12l26 -26zM1600 64l128 64l-520 408l-177 -138q-2 -3 -13 -7z" />
<glyph unicode="&#xf0c5;" horiz-adv-x="1792" d="M1696 1152q40 0 68 -28t28 -68v-1216q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68v288h-544q-40 0 -68 28t-28 68v672q0 40 20 88t48 76l408 408q28 28 76 48t88 20h416q40 0 68 -28t28 -68v-328q68 40 128 40h416zM1152 939l-299 -299h299v299zM512 1323l-299 -299 h299v299zM708 676l316 316v416h-384v-416q0 -40 -28 -68t-68 -28h-416v-640h512v256q0 40 20 88t48 76zM1664 -128v1152h-384v-416q0 -40 -28 -68t-68 -28h-416v-640h896z" />
<glyph unicode="&#xf0c6;" horiz-adv-x="1408" d="M1404 151q0 -117 -79 -196t-196 -79q-135 0 -235 100l-777 776q-113 115 -113 271q0 159 110 270t269 111q158 0 273 -113l605 -606q10 -10 10 -22q0 -16 -30.5 -46.5t-46.5 -30.5q-13 0 -23 10l-606 607q-79 77 -181 77q-106 0 -179 -75t-73 -181q0 -105 76 -181 l776 -777q63 -63 145 -63q64 0 106 42t42 106q0 82 -63 145l-581 581q-26 24 -60 24q-29 0 -48 -19t-19 -48q0 -32 25 -59l410 -410q10 -10 10 -22q0 -16 -31 -47t-47 -31q-12 0 -22 10l-410 410q-63 61 -63 149q0 82 57 139t139 57q88 0 149 -63l581 -581q100 -98 100 -235 z" />
<glyph unicode="&#xf0c7;" d="M384 0h768v384h-768v-384zM1280 0h128v896q0 14 -10 38.5t-20 34.5l-281 281q-10 10 -34 20t-39 10v-416q0 -40 -28 -68t-68 -28h-576q-40 0 -68 28t-28 68v416h-128v-1280h128v416q0 40 28 68t68 28h832q40 0 68 -28t28 -68v-416zM896 928v320q0 13 -9.5 22.5t-22.5 9.5 h-192q-13 0 -22.5 -9.5t-9.5 -22.5v-320q0 -13 9.5 -22.5t22.5 -9.5h192q13 0 22.5 9.5t9.5 22.5zM1536 896v-928q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1344q0 40 28 68t68 28h928q40 0 88 -20t76 -48l280 -280q28 -28 48 -76t20 -88z" />
<glyph unicode="&#xf0c8;" d="M1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
<glyph unicode="&#xf0c9;" d="M1536 192v-128q0 -26 -19 -45t-45 -19h-1408q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1408q26 0 45 -19t19 -45zM1536 704v-128q0 -26 -19 -45t-45 -19h-1408q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1408q26 0 45 -19t19 -45zM1536 1216v-128q0 -26 -19 -45 t-45 -19h-1408q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1408q26 0 45 -19t19 -45z" />
<glyph unicode="&#xf0ca;" horiz-adv-x="1792" d="M384 128q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM384 640q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM1792 224v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1216q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5 t22.5 9.5h1216q13 0 22.5 -9.5t9.5 -22.5zM384 1152q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM1792 736v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1216q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1216q13 0 22.5 -9.5t9.5 -22.5z M1792 1248v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1216q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1216q13 0 22.5 -9.5t9.5 -22.5z" />
<glyph unicode="&#xf0cb;" horiz-adv-x="1792" d="M381 -84q0 -80 -54.5 -126t-135.5 -46q-106 0 -172 66l57 88q49 -45 106 -45q29 0 50.5 14.5t21.5 42.5q0 64 -105 56l-26 56q8 10 32.5 43.5t42.5 54t37 38.5v1q-16 0 -48.5 -1t-48.5 -1v-53h-106v152h333v-88l-95 -115q51 -12 81 -49t30 -88zM383 543v-159h-362 q-6 36 -6 54q0 51 23.5 93t56.5 68t66 47.5t56.5 43.5t23.5 45q0 25 -14.5 38.5t-39.5 13.5q-46 0 -81 -58l-85 59q24 51 71.5 79.5t105.5 28.5q73 0 123 -41.5t50 -112.5q0 -50 -34 -91.5t-75 -64.5t-75.5 -50.5t-35.5 -52.5h127v60h105zM1792 224v-192q0 -13 -9.5 -22.5 t-22.5 -9.5h-1216q-13 0 -22.5 9.5t-9.5 22.5v192q0 14 9 23t23 9h1216q13 0 22.5 -9.5t9.5 -22.5zM384 1123v-99h-335v99h107q0 41 0.5 122t0.5 121v12h-2q-8 -17 -50 -54l-71 76l136 127h106v-404h108zM1792 736v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1216q-13 0 -22.5 9.5 t-9.5 22.5v192q0 14 9 23t23 9h1216q13 0 22.5 -9.5t9.5 -22.5zM1792 1248v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1216q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1216q13 0 22.5 -9.5t9.5 -22.5z" />
<glyph unicode="&#xf0cc;" horiz-adv-x="1792" d="M1760 640q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-1728q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h1728zM483 704q-28 35 -51 80q-48 97 -48 188q0 181 134 309q133 127 393 127q50 0 167 -19q66 -12 177 -48q10 -38 21 -118q14 -123 14 -183q0 -18 -5 -45l-12 -3l-84 6 l-14 2q-50 149 -103 205q-88 91 -210 91q-114 0 -182 -59q-67 -58 -67 -146q0 -73 66 -140t279 -129q69 -20 173 -66q58 -28 95 -52h-743zM990 448h411q7 -39 7 -92q0 -111 -41 -212q-23 -55 -71 -104q-37 -35 -109 -81q-80 -48 -153 -66q-80 -21 -203 -21q-114 0 -195 23 l-140 40q-57 16 -72 28q-8 8 -8 22v13q0 108 -2 156q-1 30 0 68l2 37v44l102 2q15 -34 30 -71t22.5 -56t12.5 -27q35 -57 80 -94q43 -36 105 -57q59 -22 132 -22q64 0 139 27q77 26 122 86q47 61 47 129q0 84 -81 157q-34 29 -137 71z" />
<glyph unicode="&#xf0cd;" d="M48 1313q-37 2 -45 4l-3 88q13 1 40 1q60 0 112 -4q132 -7 166 -7q86 0 168 3q116 4 146 5q56 0 86 2l-1 -14l2 -64v-9q-60 -9 -124 -9q-60 0 -79 -25q-13 -14 -13 -132q0 -13 0.5 -32.5t0.5 -25.5l1 -229l14 -280q6 -124 51 -202q35 -59 96 -92q88 -47 177 -47 q104 0 191 28q56 18 99 51q48 36 65 64q36 56 53 114q21 73 21 229q0 79 -3.5 128t-11 122.5t-13.5 159.5l-4 59q-5 67 -24 88q-34 35 -77 34l-100 -2l-14 3l2 86h84l205 -10q76 -3 196 10l18 -2q6 -38 6 -51q0 -7 -4 -31q-45 -12 -84 -13q-73 -11 -79 -17q-15 -15 -15 -41 q0 -7 1.5 -27t1.5 -31q8 -19 22 -396q6 -195 -15 -304q-15 -76 -41 -122q-38 -65 -112 -123q-75 -57 -182 -89q-109 -33 -255 -33q-167 0 -284 46q-119 47 -179 122q-61 76 -83 195q-16 80 -16 237v333q0 188 -17 213q-25 36 -147 39zM1536 -96v64q0 14 -9 23t-23 9h-1472 q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h1472q14 0 23 9t9 23z" />
<glyph unicode="&#xf0ce;" horiz-adv-x="1664" d="M512 160v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM512 544v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM1024 160v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23 v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM512 928v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM1024 544v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM1536 160v192 q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM1024 928v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM1536 544v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192 q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM1536 928v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM1664 1248v-1088q0 -66 -47 -113t-113 -47h-1344q-66 0 -113 47t-47 113v1088q0 66 47 113t113 47h1344q66 0 113 -47t47 -113 z" />
<glyph unicode="&#xf0d0;" horiz-adv-x="1664" d="M1190 955l293 293l-107 107l-293 -293zM1637 1248q0 -27 -18 -45l-1286 -1286q-18 -18 -45 -18t-45 18l-198 198q-18 18 -18 45t18 45l1286 1286q18 18 45 18t45 -18l198 -198q18 -18 18 -45zM286 1438l98 -30l-98 -30l-30 -98l-30 98l-98 30l98 30l30 98zM636 1276 l196 -60l-196 -60l-60 -196l-60 196l-196 60l196 60l60 196zM1566 798l98 -30l-98 -30l-30 -98l-30 98l-98 30l98 30l30 98zM926 1438l98 -30l-98 -30l-30 -98l-30 98l-98 30l98 30l30 98z" />
<glyph unicode="&#xf0d1;" horiz-adv-x="1792" d="M640 128q0 52 -38 90t-90 38t-90 -38t-38 -90t38 -90t90 -38t90 38t38 90zM256 640h384v256h-158q-13 0 -22 -9l-195 -195q-9 -9 -9 -22v-30zM1536 128q0 52 -38 90t-90 38t-90 -38t-38 -90t38 -90t90 -38t90 38t38 90zM1792 1216v-1024q0 -15 -4 -26.5t-13.5 -18.5 t-16.5 -11.5t-23.5 -6t-22.5 -2t-25.5 0t-22.5 0.5q0 -106 -75 -181t-181 -75t-181 75t-75 181h-384q0 -106 -75 -181t-181 -75t-181 75t-75 181h-64q-3 0 -22.5 -0.5t-25.5 0t-22.5 2t-23.5 6t-16.5 11.5t-13.5 18.5t-4 26.5q0 26 19 45t45 19v320q0 8 -0.5 35t0 38 t2.5 34.5t6.5 37t14 30.5t22.5 30l198 198q19 19 50.5 32t58.5 13h160v192q0 26 19 45t45 19h1024q26 0 45 -19t19 -45z" />
<glyph unicode="&#xf0d2;" d="M1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103q-111 0 -218 32q59 93 78 164q9 34 54 211q20 -39 73 -67.5t114 -28.5q121 0 216 68.5t147 188.5t52 270q0 114 -59.5 214t-172.5 163t-255 63q-105 0 -196 -29t-154.5 -77t-109 -110.5t-67 -129.5t-21.5 -134 q0 -104 40 -183t117 -111q30 -12 38 20q2 7 8 31t8 30q6 23 -11 43q-51 61 -51 151q0 151 104.5 259.5t273.5 108.5q151 0 235.5 -82t84.5 -213q0 -170 -68.5 -289t-175.5 -119q-61 0 -98 43.5t-23 104.5q8 35 26.5 93.5t30 103t11.5 75.5q0 50 -27 83t-77 33 q-62 0 -105 -57t-43 -142q0 -73 25 -122l-99 -418q-17 -70 -13 -177q-206 91 -333 281t-127 423q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
<glyph unicode="&#xf0d3;" d="M1248 1408q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-725q85 122 108 210q9 34 53 209q21 -39 73.5 -67t112.5 -28q181 0 295.5 147.5t114.5 373.5q0 84 -35 162.5t-96.5 139t-152.5 97t-197 36.5q-104 0 -194.5 -28.5t-153 -76.5 t-107.5 -109.5t-66.5 -128t-21.5 -132.5q0 -102 39.5 -180t116.5 -110q13 -5 23.5 0t14.5 19q10 44 15 61q6 23 -11 42q-50 62 -50 150q0 150 103.5 256.5t270.5 106.5q149 0 232.5 -81t83.5 -210q0 -168 -67.5 -286t-173.5 -118q-60 0 -97 43.5t-23 103.5q8 34 26.5 92.5 t29.5 102t11 74.5q0 49 -26.5 81.5t-75.5 32.5q-61 0 -103.5 -56.5t-42.5 -139.5q0 -72 24 -121l-98 -414q-24 -100 -7 -254h-183q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960z" />
<glyph unicode="&#xf0d4;" d="M678 -57q0 -38 -10 -71h-380q-95 0 -171.5 56.5t-103.5 147.5q24 45 69 77.5t100 49.5t107 24t107 7q32 0 49 -2q6 -4 30.5 -21t33 -23t31 -23t32 -25.5t27.5 -25.5t26.5 -29.5t21 -30.5t17.5 -34.5t9.5 -36t4.5 -40.5zM385 294q-234 -7 -385 -85v433q103 -118 273 -118 q32 0 70 5q-21 -61 -21 -86q0 -67 63 -149zM558 805q0 -100 -43.5 -160.5t-140.5 -60.5q-51 0 -97 26t-78 67.5t-56 93.5t-35.5 104t-11.5 99q0 96 51.5 165t144.5 69q66 0 119 -41t84 -104t47 -130t16 -128zM1536 896v-736q0 -119 -84.5 -203.5t-203.5 -84.5h-468 q39 73 39 157q0 66 -22 122.5t-55.5 93t-72 71t-72 59.5t-55.5 54.5t-22 59.5q0 36 23 68t56 61.5t65.5 64.5t55.5 93t23 131t-26.5 145.5t-75.5 118.5q-6 6 -14 11t-12.5 7.5t-10 9.5t-10.5 17h135l135 64h-437q-138 0 -244.5 -38.5t-182.5 -133.5q0 126 81 213t207 87h960 q119 0 203.5 -84.5t84.5 -203.5v-96h-256v256h-128v-256h-256v-128h256v-256h128v256h256z" />
<glyph unicode="&#xf0d5;" horiz-adv-x="1664" d="M876 71q0 21 -4.5 40.5t-9.5 36t-17.5 34.5t-21 30.5t-26.5 29.5t-27.5 25.5t-32 25.5t-31 23t-33 23t-30.5 21q-17 2 -50 2q-54 0 -106 -7t-108 -25t-98 -46t-69 -75t-27 -107q0 -68 35.5 -121.5t93 -84t120.5 -45.5t127 -15q59 0 112.5 12.5t100.5 39t74.5 73.5 t27.5 110zM756 933q0 60 -16.5 127.5t-47 130.5t-84 104t-119.5 41q-93 0 -144 -69t-51 -165q0 -47 11.5 -99t35.5 -104t56 -93.5t78 -67.5t97 -26q97 0 140.5 60.5t43.5 160.5zM625 1408h437l-135 -79h-135q71 -45 110 -126t39 -169q0 -74 -23 -131.5t-56 -92.5t-66 -64.5 t-56 -61t-23 -67.5q0 -26 16.5 -51t43 -48t58.5 -48t64 -55.5t58.5 -66t43 -85t16.5 -106.5q0 -160 -140 -282q-152 -131 -420 -131q-59 0 -119.5 10t-122 33.5t-108.5 58t-77 89t-30 121.5q0 61 37 135q32 64 96 110.5t145 71t155 36t150 13.5q-64 83 -64 149q0 12 2 23.5 t5 19.5t8 21.5t7 21.5q-40 -5 -70 -5q-149 0 -255.5 98t-106.5 246q0 140 95 250.5t234 141.5q94 20 187 20zM1664 1152v-128h-256v-256h-128v256h-256v128h256v256h128v-256h256z" />
<glyph unicode="&#xf0d6;" horiz-adv-x="1920" d="M768 384h384v96h-128v448h-114l-148 -137l77 -80q42 37 55 57h2v-288h-128v-96zM1280 640q0 -70 -21 -142t-59.5 -134t-101.5 -101t-138 -39t-138 39t-101.5 101t-59.5 134t-21 142t21 142t59.5 134t101.5 101t138 39t138 -39t101.5 -101t59.5 -134t21 -142zM1792 384 v512q-106 0 -181 75t-75 181h-1152q0 -106 -75 -181t-181 -75v-512q106 0 181 -75t75 -181h1152q0 106 75 181t181 75zM1920 1216v-1152q0 -26 -19 -45t-45 -19h-1792q-26 0 -45 19t-19 45v1152q0 26 19 45t45 19h1792q26 0 45 -19t19 -45z" />
<glyph unicode="&#xf0d7;" horiz-adv-x="1024" d="M1024 832q0 -26 -19 -45l-448 -448q-19 -19 -45 -19t-45 19l-448 448q-19 19 -19 45t19 45t45 19h896q26 0 45 -19t19 -45z" />
<glyph unicode="&#xf0d8;" horiz-adv-x="1024" d="M1024 320q0 -26 -19 -45t-45 -19h-896q-26 0 -45 19t-19 45t19 45l448 448q19 19 45 19t45 -19l448 -448q19 -19 19 -45z" />
<glyph unicode="&#xf0d9;" horiz-adv-x="640" d="M640 1088v-896q0 -26 -19 -45t-45 -19t-45 19l-448 448q-19 19 -19 45t19 45l448 448q19 19 45 19t45 -19t19 -45z" />
<glyph unicode="&#xf0da;" horiz-adv-x="640" d="M576 640q0 -26 -19 -45l-448 -448q-19 -19 -45 -19t-45 19t-19 45v896q0 26 19 45t45 19t45 -19l448 -448q19 -19 19 -45z" />
<glyph unicode="&#xf0db;" horiz-adv-x="1664" d="M160 0h608v1152h-640v-1120q0 -13 9.5 -22.5t22.5 -9.5zM1536 32v1120h-640v-1152h608q13 0 22.5 9.5t9.5 22.5zM1664 1248v-1216q0 -66 -47 -113t-113 -47h-1344q-66 0 -113 47t-47 113v1216q0 66 47 113t113 47h1344q66 0 113 -47t47 -113z" />
<glyph unicode="&#xf0dc;" horiz-adv-x="1024" d="M1024 448q0 -26 -19 -45l-448 -448q-19 -19 -45 -19t-45 19l-448 448q-19 19 -19 45t19 45t45 19h896q26 0 45 -19t19 -45zM1024 832q0 -26 -19 -45t-45 -19h-896q-26 0 -45 19t-19 45t19 45l448 448q19 19 45 19t45 -19l448 -448q19 -19 19 -45z" />
<glyph unicode="&#xf0dd;" horiz-adv-x="1024" d="M1024 448q0 -26 -19 -45l-448 -448q-19 -19 -45 -19t-45 19l-448 448q-19 19 -19 45t19 45t45 19h896q26 0 45 -19t19 -45z" />
<glyph unicode="&#xf0de;" horiz-adv-x="1024" d="M1024 832q0 -26 -19 -45t-45 -19h-896q-26 0 -45 19t-19 45t19 45l448 448q19 19 45 19t45 -19l448 -448q19 -19 19 -45z" />
<glyph unicode="&#xf0e0;" horiz-adv-x="1792" d="M1792 826v-794q0 -66 -47 -113t-113 -47h-1472q-66 0 -113 47t-47 113v794q44 -49 101 -87q362 -246 497 -345q57 -42 92.5 -65.5t94.5 -48t110 -24.5h1h1q51 0 110 24.5t94.5 48t92.5 65.5q170 123 498 345q57 39 100 87zM1792 1120q0 -79 -49 -151t-122 -123 q-376 -261 -468 -325q-10 -7 -42.5 -30.5t-54 -38t-52 -32.5t-57.5 -27t-50 -9h-1h-1q-23 0 -50 9t-57.5 27t-52 32.5t-54 38t-42.5 30.5q-91 64 -262 182.5t-205 142.5q-62 42 -117 115.5t-55 136.5q0 78 41.5 130t118.5 52h1472q65 0 112.5 -47t47.5 -113z" />
<glyph unicode="&#xf0e1;" d="M349 911v-991h-330v991h330zM370 1217q1 -73 -50.5 -122t-135.5 -49h-2q-82 0 -132 49t-50 122q0 74 51.5 122.5t134.5 48.5t133 -48.5t51 -122.5zM1536 488v-568h-329v530q0 105 -40.5 164.5t-126.5 59.5q-63 0 -105.5 -34.5t-63.5 -85.5q-11 -30 -11 -81v-553h-329 q2 399 2 647t-1 296l-1 48h329v-144h-2q20 32 41 56t56.5 52t87 43.5t114.5 15.5q171 0 275 -113.5t104 -332.5z" />
<glyph unicode="&#xf0e2;" d="M1536 640q0 -156 -61 -298t-164 -245t-245 -164t-298 -61q-172 0 -327 72.5t-264 204.5q-7 10 -6.5 22.5t8.5 20.5l137 138q10 9 25 9q16 -2 23 -12q73 -95 179 -147t225 -52q104 0 198.5 40.5t163.5 109.5t109.5 163.5t40.5 198.5t-40.5 198.5t-109.5 163.5 t-163.5 109.5t-198.5 40.5q-98 0 -188 -35.5t-160 -101.5l137 -138q31 -30 14 -69q-17 -40 -59 -40h-448q-26 0 -45 19t-19 45v448q0 42 40 59q39 17 69 -14l130 -129q107 101 244.5 156.5t284.5 55.5q156 0 298 -61t245 -164t164 -245t61 -298z" />
<glyph unicode="&#xf0e3;" horiz-adv-x="1792" d="M1771 0q0 -53 -37 -90l-107 -108q-39 -37 -91 -37q-53 0 -90 37l-363 364q-38 36 -38 90q0 53 43 96l-256 256l-126 -126q-14 -14 -34 -14t-34 14q2 -2 12.5 -12t12.5 -13t10 -11.5t10 -13.5t6 -13.5t5.5 -16.5t1.5 -18q0 -38 -28 -68q-3 -3 -16.5 -18t-19 -20.5 t-18.5 -16.5t-22 -15.5t-22 -9t-26 -4.5q-40 0 -68 28l-408 408q-28 28 -28 68q0 13 4.5 26t9 22t15.5 22t16.5 18.5t20.5 19t18 16.5q30 28 68 28q10 0 18 -1.5t16.5 -5.5t13.5 -6t13.5 -10t11.5 -10t13 -12.5t12 -12.5q-14 14 -14 34t14 34l348 348q14 14 34 14t34 -14 q-2 2 -12.5 12t-12.5 13t-10 11.5t-10 13.5t-6 13.5t-5.5 16.5t-1.5 18q0 38 28 68q3 3 16.5 18t19 20.5t18.5 16.5t22 15.5t22 9t26 4.5q40 0 68 -28l408 -408q28 -28 28 -68q0 -13 -4.5 -26t-9 -22t-15.5 -22t-16.5 -18.5t-20.5 -19t-18 -16.5q-30 -28 -68 -28 q-10 0 -18 1.5t-16.5 5.5t-13.5 6t-13.5 10t-11.5 10t-13 12.5t-12 12.5q14 -14 14 -34t-14 -34l-126 -126l256 -256q43 43 96 43q52 0 91 -37l363 -363q37 -39 37 -91z" />
<glyph unicode="&#xf0e4;" horiz-adv-x="1792" d="M384 384q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM576 832q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1004 351l101 382q6 26 -7.5 48.5t-38.5 29.5 t-48 -6.5t-30 -39.5l-101 -382q-60 -5 -107 -43.5t-63 -98.5q-20 -77 20 -146t117 -89t146 20t89 117q16 60 -6 117t-72 91zM1664 384q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1024 1024q0 53 -37.5 90.5 t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1472 832q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1792 384q0 -261 -141 -483q-19 -29 -54 -29h-1402q-35 0 -54 29 q-141 221 -141 483q0 182 71 348t191 286t286 191t348 71t348 -71t286 -191t191 -286t71 -348z" />
<glyph unicode="&#xf0e5;" horiz-adv-x="1792" d="M896 1152q-204 0 -381.5 -69.5t-282 -187.5t-104.5 -255q0 -112 71.5 -213.5t201.5 -175.5l87 -50l-27 -96q-24 -91 -70 -172q152 63 275 171l43 38l57 -6q69 -8 130 -8q204 0 381.5 69.5t282 187.5t104.5 255t-104.5 255t-282 187.5t-381.5 69.5zM1792 640 q0 -174 -120 -321.5t-326 -233t-450 -85.5q-70 0 -145 8q-198 -175 -460 -242q-49 -14 -114 -22h-5q-15 0 -27 10.5t-16 27.5v1q-3 4 -0.5 12t2 10t4.5 9.5l6 9t7 8.5t8 9q7 8 31 34.5t34.5 38t31 39.5t32.5 51t27 59t26 76q-157 89 -247.5 220t-90.5 281q0 174 120 321.5 t326 233t450 85.5t450 -85.5t326 -233t120 -321.5z" />
<glyph unicode="&#xf0e6;" horiz-adv-x="1792" d="M704 1152q-153 0 -286 -52t-211.5 -141t-78.5 -191q0 -82 53 -158t149 -132l97 -56l-35 -84q34 20 62 39l44 31l53 -10q78 -14 153 -14q153 0 286 52t211.5 141t78.5 191t-78.5 191t-211.5 141t-286 52zM704 1280q191 0 353.5 -68.5t256.5 -186.5t94 -257t-94 -257 t-256.5 -186.5t-353.5 -68.5q-86 0 -176 16q-124 -88 -278 -128q-36 -9 -86 -16h-3q-11 0 -20.5 8t-11.5 21q-1 3 -1 6.5t0.5 6.5t2 6l2.5 5t3.5 5.5t4 5t4.5 5t4 4.5q5 6 23 25t26 29.5t22.5 29t25 38.5t20.5 44q-124 72 -195 177t-71 224q0 139 94 257t256.5 186.5 t353.5 68.5zM1526 111q10 -24 20.5 -44t25 -38.5t22.5 -29t26 -29.5t23 -25q1 -1 4 -4.5t4.5 -5t4 -5t3.5 -5.5l2.5 -5t2 -6t0.5 -6.5t-1 -6.5q-3 -14 -13 -22t-22 -7q-50 7 -86 16q-154 40 -278 128q-90 -16 -176 -16q-271 0 -472 132q58 -4 88 -4q161 0 309 45t264 129 q125 92 192 212t67 254q0 77 -23 152q129 -71 204 -178t75 -230q0 -120 -71 -224.5t-195 -176.5z" />
<glyph unicode="&#xf0e7;" horiz-adv-x="896" d="M885 970q18 -20 7 -44l-540 -1157q-13 -25 -42 -25q-4 0 -14 2q-17 5 -25.5 19t-4.5 30l197 808l-406 -101q-4 -1 -12 -1q-18 0 -31 11q-18 15 -13 39l201 825q4 14 16 23t28 9h328q19 0 32 -12.5t13 -29.5q0 -8 -5 -18l-171 -463l396 98q8 2 12 2q19 0 34 -15z" />
<glyph unicode="&#xf0e8;" horiz-adv-x="1792" d="M1792 288v-320q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v320q0 40 28 68t68 28h96v192h-512v-192h96q40 0 68 -28t28 -68v-320q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v320q0 40 28 68t68 28h96v192h-512v-192h96q40 0 68 -28t28 -68v-320 q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v320q0 40 28 68t68 28h96v192q0 52 38 90t90 38h512v192h-96q-40 0 -68 28t-28 68v320q0 40 28 68t68 28h320q40 0 68 -28t28 -68v-320q0 -40 -28 -68t-68 -28h-96v-192h512q52 0 90 -38t38 -90v-192h96q40 0 68 -28t28 -68 z" />
<glyph unicode="&#xf0e9;" horiz-adv-x="1664" d="M896 708v-580q0 -104 -76 -180t-180 -76t-180 76t-76 180q0 26 19 45t45 19t45 -19t19 -45q0 -50 39 -89t89 -39t89 39t39 89v580q33 11 64 11t64 -11zM1664 681q0 -13 -9.5 -22.5t-22.5 -9.5q-11 0 -23 10q-49 46 -93 69t-102 23q-68 0 -128 -37t-103 -97 q-7 -10 -17.5 -28t-14.5 -24q-11 -17 -28 -17q-18 0 -29 17q-4 6 -14.5 24t-17.5 28q-43 60 -102.5 97t-127.5 37t-127.5 -37t-102.5 -97q-7 -10 -17.5 -28t-14.5 -24q-11 -17 -29 -17q-17 0 -28 17q-4 6 -14.5 24t-17.5 28q-43 60 -103 97t-128 37q-58 0 -102 -23t-93 -69 q-12 -10 -23 -10q-13 0 -22.5 9.5t-9.5 22.5q0 5 1 7q45 183 172.5 319.5t298 204.5t360.5 68q140 0 274.5 -40t246.5 -113.5t194.5 -187t115.5 -251.5q1 -2 1 -7zM896 1408v-98q-42 2 -64 2t-64 -2v98q0 26 19 45t45 19t45 -19t19 -45z" />
<glyph unicode="&#xf0ea;" horiz-adv-x="1792" d="M768 -128h896v640h-416q-40 0 -68 28t-28 68v416h-384v-1152zM1024 1312v64q0 13 -9.5 22.5t-22.5 9.5h-704q-13 0 -22.5 -9.5t-9.5 -22.5v-64q0 -13 9.5 -22.5t22.5 -9.5h704q13 0 22.5 9.5t9.5 22.5zM1280 640h299l-299 299v-299zM1792 512v-672q0 -40 -28 -68t-68 -28 h-960q-40 0 -68 28t-28 68v160h-544q-40 0 -68 28t-28 68v1344q0 40 28 68t68 28h1088q40 0 68 -28t28 -68v-328q21 -13 36 -28l408 -408q28 -28 48 -76t20 -88z" />
<glyph unicode="&#xf0eb;" horiz-adv-x="1024" d="M736 960q0 -13 -9.5 -22.5t-22.5 -9.5t-22.5 9.5t-9.5 22.5q0 46 -54 71t-106 25q-13 0 -22.5 9.5t-9.5 22.5t9.5 22.5t22.5 9.5q50 0 99.5 -16t87 -54t37.5 -90zM896 960q0 72 -34.5 134t-90 101.5t-123 62t-136.5 22.5t-136.5 -22.5t-123 -62t-90 -101.5t-34.5 -134 q0 -101 68 -180q10 -11 30.5 -33t30.5 -33q128 -153 141 -298h228q13 145 141 298q10 11 30.5 33t30.5 33q68 79 68 180zM1024 960q0 -155 -103 -268q-45 -49 -74.5 -87t-59.5 -95.5t-34 -107.5q47 -28 47 -82q0 -37 -25 -64q25 -27 25 -64q0 -52 -45 -81q13 -23 13 -47 q0 -46 -31.5 -71t-77.5 -25q-20 -44 -60 -70t-87 -26t-87 26t-60 70q-46 0 -77.5 25t-31.5 71q0 24 13 47q-45 29 -45 81q0 37 25 64q-25 27 -25 64q0 54 47 82q-4 50 -34 107.5t-59.5 95.5t-74.5 87q-103 113 -103 268q0 99 44.5 184.5t117 142t164 89t186.5 32.5 t186.5 -32.5t164 -89t117 -142t44.5 -184.5z" />
<glyph unicode="&#xf0ec;" horiz-adv-x="1792" d="M1792 352v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1376v-192q0 -13 -9.5 -22.5t-22.5 -9.5q-12 0 -24 10l-319 320q-9 9 -9 22q0 14 9 23l320 320q9 9 23 9q13 0 22.5 -9.5t9.5 -22.5v-192h1376q13 0 22.5 -9.5t9.5 -22.5zM1792 896q0 -14 -9 -23l-320 -320q-9 -9 -23 -9 q-13 0 -22.5 9.5t-9.5 22.5v192h-1376q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1376v192q0 14 9 23t23 9q12 0 24 -10l319 -319q9 -9 9 -23z" />
<glyph unicode="&#xf0ed;" horiz-adv-x="1920" d="M1280 608q0 14 -9 23t-23 9h-224v352q0 13 -9.5 22.5t-22.5 9.5h-192q-13 0 -22.5 -9.5t-9.5 -22.5v-352h-224q-13 0 -22.5 -9.5t-9.5 -22.5q0 -14 9 -23l352 -352q9 -9 23 -9t23 9l351 351q10 12 10 24zM1920 384q0 -159 -112.5 -271.5t-271.5 -112.5h-1088 q-185 0 -316.5 131.5t-131.5 316.5q0 130 70 240t188 165q-2 30 -2 43q0 212 150 362t362 150q156 0 285.5 -87t188.5 -231q71 62 166 62q106 0 181 -75t75 -181q0 -76 -41 -138q130 -31 213.5 -135.5t83.5 -238.5z" />
<glyph unicode="&#xf0ee;" horiz-adv-x="1920" d="M1280 672q0 14 -9 23l-352 352q-9 9 -23 9t-23 -9l-351 -351q-10 -12 -10 -24q0 -14 9 -23t23 -9h224v-352q0 -13 9.5 -22.5t22.5 -9.5h192q13 0 22.5 9.5t9.5 22.5v352h224q13 0 22.5 9.5t9.5 22.5zM1920 384q0 -159 -112.5 -271.5t-271.5 -112.5h-1088 q-185 0 -316.5 131.5t-131.5 316.5q0 130 70 240t188 165q-2 30 -2 43q0 212 150 362t362 150q156 0 285.5 -87t188.5 -231q71 62 166 62q106 0 181 -75t75 -181q0 -76 -41 -138q130 -31 213.5 -135.5t83.5 -238.5z" />
<glyph unicode="&#xf0f0;" horiz-adv-x="1408" d="M384 192q0 -26 -19 -45t-45 -19t-45 19t-19 45t19 45t45 19t45 -19t19 -45zM1408 131q0 -121 -73 -190t-194 -69h-874q-121 0 -194 69t-73 190q0 68 5.5 131t24 138t47.5 132.5t81 103t120 60.5q-22 -52 -22 -120v-203q-58 -20 -93 -70t-35 -111q0 -80 56 -136t136 -56 t136 56t56 136q0 61 -35.5 111t-92.5 70v203q0 62 25 93q132 -104 295 -104t295 104q25 -31 25 -93v-64q-106 0 -181 -75t-75 -181v-89q-32 -29 -32 -71q0 -40 28 -68t68 -28t68 28t28 68q0 42 -32 71v89q0 52 38 90t90 38t90 -38t38 -90v-89q-32 -29 -32 -71q0 -40 28 -68 t68 -28t68 28t28 68q0 42 -32 71v89q0 68 -34.5 127.5t-93.5 93.5q0 10 0.5 42.5t0 48t-2.5 41.5t-7 47t-13 40q68 -15 120 -60.5t81 -103t47.5 -132.5t24 -138t5.5 -131zM1088 1024q0 -159 -112.5 -271.5t-271.5 -112.5t-271.5 112.5t-112.5 271.5t112.5 271.5t271.5 112.5 t271.5 -112.5t112.5 -271.5z" />
<glyph unicode="&#xf0f1;" horiz-adv-x="1408" d="M1280 832q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1408 832q0 -62 -35.5 -111t-92.5 -70v-395q0 -159 -131.5 -271.5t-316.5 -112.5t-316.5 112.5t-131.5 271.5v132q-164 20 -274 128t-110 252v512q0 26 19 45t45 19q6 0 16 -2q17 30 47 48 t65 18q53 0 90.5 -37.5t37.5 -90.5t-37.5 -90.5t-90.5 -37.5q-33 0 -64 18v-402q0 -106 94 -181t226 -75t226 75t94 181v402q-31 -18 -64 -18q-53 0 -90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5q35 0 65 -18t47 -48q10 2 16 2q26 0 45 -19t19 -45v-512q0 -144 -110 -252 t-274 -128v-132q0 -106 94 -181t226 -75t226 75t94 181v395q-57 21 -92.5 70t-35.5 111q0 80 56 136t136 56t136 -56t56 -136z" />
<glyph unicode="&#xf0f2;" horiz-adv-x="1792" d="M640 1152h512v128h-512v-128zM288 1152v-1280h-64q-92 0 -158 66t-66 158v832q0 92 66 158t158 66h64zM1408 1152v-1280h-1024v1280h128v160q0 40 28 68t68 28h576q40 0 68 -28t28 -68v-160h128zM1792 928v-832q0 -92 -66 -158t-158 -66h-64v1280h64q92 0 158 -66 t66 -158z" />
<glyph unicode="&#xf0f3;" horiz-adv-x="1664" d="M848 -160q0 16 -16 16q-59 0 -101.5 42.5t-42.5 101.5q0 16 -16 16t-16 -16q0 -73 51.5 -124.5t124.5 -51.5q16 0 16 16zM1664 128q0 -52 -38 -90t-90 -38h-448q0 -106 -75 -181t-181 -75t-181 75t-75 181h-448q-52 0 -90 38t-38 90q190 161 287 397.5t97 498.5 q0 165 96 262t264 117q-8 18 -8 37q0 40 28 68t68 28t68 -28t28 -68q0 -19 -8 -37q168 -20 264 -117t96 -262q0 -262 97 -498.5t287 -397.5z" />
<glyph unicode="&#xf0f4;" horiz-adv-x="1920" d="M1664 896q0 80 -56 136t-136 56h-64v-384h64q80 0 136 56t56 136zM0 128h1792q0 -106 -75 -181t-181 -75h-1280q-106 0 -181 75t-75 181zM1856 896q0 -159 -112.5 -271.5t-271.5 -112.5h-64v-32q0 -92 -66 -158t-158 -66h-704q-92 0 -158 66t-66 158v736q0 26 19 45 t45 19h1152q159 0 271.5 -112.5t112.5 -271.5z" />
<glyph unicode="&#xf0f5;" horiz-adv-x="1408" d="M640 1472v-640q0 -61 -35.5 -111t-92.5 -70v-779q0 -52 -38 -90t-90 -38h-128q-52 0 -90 38t-38 90v779q-57 20 -92.5 70t-35.5 111v640q0 26 19 45t45 19t45 -19t19 -45v-416q0 -26 19 -45t45 -19t45 19t19 45v416q0 26 19 45t45 19t45 -19t19 -45v-416q0 -26 19 -45 t45 -19t45 19t19 45v416q0 26 19 45t45 19t45 -19t19 -45zM1408 1472v-1600q0 -52 -38 -90t-90 -38h-128q-52 0 -90 38t-38 90v512h-224q-13 0 -22.5 9.5t-9.5 22.5v800q0 132 94 226t226 94h256q26 0 45 -19t19 -45z" />
<glyph unicode="&#xf0f6;" horiz-adv-x="1280" d="M1024 352v-64q0 -14 -9 -23t-23 -9h-704q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h704q14 0 23 -9t9 -23zM1024 608v-64q0 -14 -9 -23t-23 -9h-704q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h704q14 0 23 -9t9 -23zM128 0h1024v768h-416q-40 0 -68 28t-28 68v416h-512v-1280z M768 896h376q-10 29 -22 41l-313 313q-12 12 -41 22v-376zM1280 864v-896q0 -40 -28 -68t-68 -28h-1088q-40 0 -68 28t-28 68v1344q0 40 28 68t68 28h640q40 0 88 -20t76 -48l312 -312q28 -28 48 -76t20 -88z" />
<glyph unicode="&#xf0f7;" horiz-adv-x="1408" d="M384 224v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM384 480v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M640 480v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM384 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M1152 224v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM896 480v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M640 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM384 992v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M1152 480v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM896 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M640 992v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM384 1248v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M1152 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM896 992v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M640 1248v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM1152 992v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M896 1248v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM1152 1248v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M896 -128h384v1536h-1152v-1536h384v224q0 13 9.5 22.5t22.5 9.5h320q13 0 22.5 -9.5t9.5 -22.5v-224zM1408 1472v-1664q0 -26 -19 -45t-45 -19h-1280q-26 0 -45 19t-19 45v1664q0 26 19 45t45 19h1280q26 0 45 -19t19 -45z" />
<glyph unicode="&#xf0f8;" horiz-adv-x="1408" d="M384 224v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM384 480v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M640 480v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM384 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M1152 224v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM896 480v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M640 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM1152 480v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M896 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM1152 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M896 -128h384v1152h-256v-32q0 -40 -28 -68t-68 -28h-448q-40 0 -68 28t-28 68v32h-256v-1152h384v224q0 13 9.5 22.5t22.5 9.5h320q13 0 22.5 -9.5t9.5 -22.5v-224zM896 1056v320q0 13 -9.5 22.5t-22.5 9.5h-64q-13 0 -22.5 -9.5t-9.5 -22.5v-96h-128v96q0 13 -9.5 22.5 t-22.5 9.5h-64q-13 0 -22.5 -9.5t-9.5 -22.5v-320q0 -13 9.5 -22.5t22.5 -9.5h64q13 0 22.5 9.5t9.5 22.5v96h128v-96q0 -13 9.5 -22.5t22.5 -9.5h64q13 0 22.5 9.5t9.5 22.5zM1408 1088v-1280q0 -26 -19 -45t-45 -19h-1280q-26 0 -45 19t-19 45v1280q0 26 19 45t45 19h320 v288q0 40 28 68t68 28h448q40 0 68 -28t28 -68v-288h320q26 0 45 -19t19 -45z" />
<glyph unicode="&#xf0f9;" horiz-adv-x="1920" d="M640 128q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM256 640h384v256h-158q-14 -2 -22 -9l-195 -195q-7 -12 -9 -22v-30zM1536 128q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5 t90.5 37.5t37.5 90.5zM1664 800v192q0 14 -9 23t-23 9h-224v224q0 14 -9 23t-23 9h-192q-14 0 -23 -9t-9 -23v-224h-224q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h224v-224q0 -14 9 -23t23 -9h192q14 0 23 9t9 23v224h224q14 0 23 9t9 23zM1920 1344v-1152 q0 -26 -19 -45t-45 -19h-192q0 -106 -75 -181t-181 -75t-181 75t-75 181h-384q0 -106 -75 -181t-181 -75t-181 75t-75 181h-128q-26 0 -45 19t-19 45t19 45t45 19v416q0 26 13 58t32 51l198 198q19 19 51 32t58 13h160v320q0 26 19 45t45 19h1152q26 0 45 -19t19 -45z" />
<glyph unicode="&#xf0fa;" horiz-adv-x="1792" d="M1280 416v192q0 14 -9 23t-23 9h-224v224q0 14 -9 23t-23 9h-192q-14 0 -23 -9t-9 -23v-224h-224q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h224v-224q0 -14 9 -23t23 -9h192q14 0 23 9t9 23v224h224q14 0 23 9t9 23zM640 1152h512v128h-512v-128zM256 1152v-1280h-32 q-92 0 -158 66t-66 158v832q0 92 66 158t158 66h32zM1440 1152v-1280h-1088v1280h160v160q0 40 28 68t68 28h576q40 0 68 -28t28 -68v-160h160zM1792 928v-832q0 -92 -66 -158t-158 -66h-32v1280h32q92 0 158 -66t66 -158z" />
<glyph unicode="&#xf0fb;" horiz-adv-x="1920" d="M1920 576q-1 -32 -288 -96l-352 -32l-224 -64h-64l-293 -352h69q26 0 45 -4.5t19 -11.5t-19 -11.5t-45 -4.5h-96h-160h-64v32h64v416h-160l-192 -224h-96l-32 32v192h32v32h128v8l-192 24v128l192 24v8h-128v32h-32v192l32 32h96l192 -224h160v416h-64v32h64h160h96 q26 0 45 -4.5t19 -11.5t-19 -11.5t-45 -4.5h-69l293 -352h64l224 -64l352 -32q261 -58 287 -93z" />
<glyph unicode="&#xf0fc;" horiz-adv-x="1664" d="M640 640v384h-256v-256q0 -53 37.5 -90.5t90.5 -37.5h128zM1664 192v-192h-1152v192l128 192h-128q-159 0 -271.5 112.5t-112.5 271.5v320l-64 64l32 128h480l32 128h960l32 -192l-64 -32v-800z" />
<glyph unicode="&#xf0fd;" d="M1280 192v896q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-320h-512v320q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-896q0 -26 19 -45t45 -19h128q26 0 45 19t19 45v320h512v-320q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM1536 1120v-960 q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
<glyph unicode="&#xf0fe;" d="M1280 576v128q0 26 -19 45t-45 19h-320v320q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-320h-320q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h320v-320q0 -26 19 -45t45 -19h128q26 0 45 19t19 45v320h320q26 0 45 19t19 45zM1536 1120v-960 q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
<glyph unicode="&#xf100;" horiz-adv-x="1024" d="M627 160q0 -13 -10 -23l-50 -50q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23t10 23l466 466q10 10 23 10t23 -10l50 -50q10 -10 10 -23t-10 -23l-393 -393l393 -393q10 -10 10 -23zM1011 160q0 -13 -10 -23l-50 -50q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23 t10 23l466 466q10 10 23 10t23 -10l50 -50q10 -10 10 -23t-10 -23l-393 -393l393 -393q10 -10 10 -23z" />
<glyph unicode="&#xf101;" horiz-adv-x="1024" d="M595 576q0 -13 -10 -23l-466 -466q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23t10 23l393 393l-393 393q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10l466 -466q10 -10 10 -23zM979 576q0 -13 -10 -23l-466 -466q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23t10 23 l393 393l-393 393q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10l466 -466q10 -10 10 -23z" />
<glyph unicode="&#xf102;" horiz-adv-x="1152" d="M1075 224q0 -13 -10 -23l-50 -50q-10 -10 -23 -10t-23 10l-393 393l-393 -393q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23t10 23l466 466q10 10 23 10t23 -10l466 -466q10 -10 10 -23zM1075 608q0 -13 -10 -23l-50 -50q-10 -10 -23 -10t-23 10l-393 393l-393 -393 q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23t10 23l466 466q10 10 23 10t23 -10l466 -466q10 -10 10 -23z" />
<glyph unicode="&#xf103;" horiz-adv-x="1152" d="M1075 672q0 -13 -10 -23l-466 -466q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10l393 -393l393 393q10 10 23 10t23 -10l50 -50q10 -10 10 -23zM1075 1056q0 -13 -10 -23l-466 -466q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23 t10 23l50 50q10 10 23 10t23 -10l393 -393l393 393q10 10 23 10t23 -10l50 -50q10 -10 10 -23z" />
<glyph unicode="&#xf104;" horiz-adv-x="640" d="M627 992q0 -13 -10 -23l-393 -393l393 -393q10 -10 10 -23t-10 -23l-50 -50q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23t10 23l466 466q10 10 23 10t23 -10l50 -50q10 -10 10 -23z" />
<glyph unicode="&#xf105;" horiz-adv-x="640" d="M595 576q0 -13 -10 -23l-466 -466q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23t10 23l393 393l-393 393q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10l466 -466q10 -10 10 -23z" />
<glyph unicode="&#xf106;" horiz-adv-x="1152" d="M1075 352q0 -13 -10 -23l-50 -50q-10 -10 -23 -10t-23 10l-393 393l-393 -393q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23t10 23l466 466q10 10 23 10t23 -10l466 -466q10 -10 10 -23z" />
<glyph unicode="&#xf107;" horiz-adv-x="1152" d="M1075 800q0 -13 -10 -23l-466 -466q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10l393 -393l393 393q10 10 23 10t23 -10l50 -50q10 -10 10 -23z" />
<glyph unicode="&#xf108;" horiz-adv-x="1920" d="M1792 544v832q0 13 -9.5 22.5t-22.5 9.5h-1600q-13 0 -22.5 -9.5t-9.5 -22.5v-832q0 -13 9.5 -22.5t22.5 -9.5h1600q13 0 22.5 9.5t9.5 22.5zM1920 1376v-1088q0 -66 -47 -113t-113 -47h-544q0 -37 16 -77.5t32 -71t16 -43.5q0 -26 -19 -45t-45 -19h-512q-26 0 -45 19 t-19 45q0 14 16 44t32 70t16 78h-544q-66 0 -113 47t-47 113v1088q0 66 47 113t113 47h1600q66 0 113 -47t47 -113z" />
<glyph unicode="&#xf109;" horiz-adv-x="1920" d="M416 256q-66 0 -113 47t-47 113v704q0 66 47 113t113 47h1088q66 0 113 -47t47 -113v-704q0 -66 -47 -113t-113 -47h-1088zM384 1120v-704q0 -13 9.5 -22.5t22.5 -9.5h1088q13 0 22.5 9.5t9.5 22.5v704q0 13 -9.5 22.5t-22.5 9.5h-1088q-13 0 -22.5 -9.5t-9.5 -22.5z M1760 192h160v-96q0 -40 -47 -68t-113 -28h-1600q-66 0 -113 28t-47 68v96h160h1600zM1040 96q16 0 16 16t-16 16h-160q-16 0 -16 -16t16 -16h160z" />
<glyph unicode="&#xf10a;" horiz-adv-x="1152" d="M640 128q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1024 288v960q0 13 -9.5 22.5t-22.5 9.5h-832q-13 0 -22.5 -9.5t-9.5 -22.5v-960q0 -13 9.5 -22.5t22.5 -9.5h832q13 0 22.5 9.5t9.5 22.5zM1152 1248v-1088q0 -66 -47 -113t-113 -47h-832 q-66 0 -113 47t-47 113v1088q0 66 47 113t113 47h832q66 0 113 -47t47 -113z" />
<glyph unicode="&#xf10b;" horiz-adv-x="768" d="M464 128q0 33 -23.5 56.5t-56.5 23.5t-56.5 -23.5t-23.5 -56.5t23.5 -56.5t56.5 -23.5t56.5 23.5t23.5 56.5zM672 288v704q0 13 -9.5 22.5t-22.5 9.5h-512q-13 0 -22.5 -9.5t-9.5 -22.5v-704q0 -13 9.5 -22.5t22.5 -9.5h512q13 0 22.5 9.5t9.5 22.5zM480 1136 q0 16 -16 16h-160q-16 0 -16 -16t16 -16h160q16 0 16 16zM768 1152v-1024q0 -52 -38 -90t-90 -38h-512q-52 0 -90 38t-38 90v1024q0 52 38 90t90 38h512q52 0 90 -38t38 -90z" />
<glyph unicode="&#xf10c;" d="M768 1184q-148 0 -273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273t-73 273t-198 198t-273 73zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103 t279.5 -279.5t103 -385.5z" />
<glyph unicode="&#xf10d;" horiz-adv-x="1664" d="M768 576v-384q0 -80 -56 -136t-136 -56h-384q-80 0 -136 56t-56 136v704q0 104 40.5 198.5t109.5 163.5t163.5 109.5t198.5 40.5h64q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-64q-106 0 -181 -75t-75 -181v-32q0 -40 28 -68t68 -28h224q80 0 136 -56t56 -136z M1664 576v-384q0 -80 -56 -136t-136 -56h-384q-80 0 -136 56t-56 136v704q0 104 40.5 198.5t109.5 163.5t163.5 109.5t198.5 40.5h64q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-64q-106 0 -181 -75t-75 -181v-32q0 -40 28 -68t68 -28h224q80 0 136 -56t56 -136z" />
<glyph unicode="&#xf10e;" horiz-adv-x="1664" d="M768 1216v-704q0 -104 -40.5 -198.5t-109.5 -163.5t-163.5 -109.5t-198.5 -40.5h-64q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h64q106 0 181 75t75 181v32q0 40 -28 68t-68 28h-224q-80 0 -136 56t-56 136v384q0 80 56 136t136 56h384q80 0 136 -56t56 -136zM1664 1216 v-704q0 -104 -40.5 -198.5t-109.5 -163.5t-163.5 -109.5t-198.5 -40.5h-64q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h64q106 0 181 75t75 181v32q0 40 -28 68t-68 28h-224q-80 0 -136 56t-56 136v384q0 80 56 136t136 56h384q80 0 136 -56t56 -136z" />
<glyph unicode="&#xf110;" horiz-adv-x="1568" d="M496 192q0 -60 -42.5 -102t-101.5 -42q-60 0 -102 42t-42 102t42 102t102 42q59 0 101.5 -42t42.5 -102zM928 0q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM320 640q0 -66 -47 -113t-113 -47t-113 47t-47 113 t47 113t113 47t113 -47t47 -113zM1360 192q0 -46 -33 -79t-79 -33t-79 33t-33 79t33 79t79 33t79 -33t33 -79zM528 1088q0 -73 -51.5 -124.5t-124.5 -51.5t-124.5 51.5t-51.5 124.5t51.5 124.5t124.5 51.5t124.5 -51.5t51.5 -124.5zM992 1280q0 -80 -56 -136t-136 -56 t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM1536 640q0 -40 -28 -68t-68 -28t-68 28t-28 68t28 68t68 28t68 -28t28 -68zM1328 1088q0 -33 -23.5 -56.5t-56.5 -23.5t-56.5 23.5t-23.5 56.5t23.5 56.5t56.5 23.5t56.5 -23.5t23.5 -56.5z" />
<glyph unicode="&#xf111;" d="M1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
<glyph unicode="&#xf112;" horiz-adv-x="1792" d="M1792 416q0 -166 -127 -451q-3 -7 -10.5 -24t-13.5 -30t-13 -22q-12 -17 -28 -17q-15 0 -23.5 10t-8.5 25q0 9 2.5 26.5t2.5 23.5q5 68 5 123q0 101 -17.5 181t-48.5 138.5t-80 101t-105.5 69.5t-133 42.5t-154 21.5t-175.5 6h-224v-256q0 -26 -19 -45t-45 -19t-45 19 l-512 512q-19 19 -19 45t19 45l512 512q19 19 45 19t45 -19t19 -45v-256h224q713 0 875 -403q53 -134 53 -333z" />
<glyph unicode="&#xf113;" horiz-adv-x="1664" d="M640 320q0 -40 -12.5 -82t-43 -76t-72.5 -34t-72.5 34t-43 76t-12.5 82t12.5 82t43 76t72.5 34t72.5 -34t43 -76t12.5 -82zM1280 320q0 -40 -12.5 -82t-43 -76t-72.5 -34t-72.5 34t-43 76t-12.5 82t12.5 82t43 76t72.5 34t72.5 -34t43 -76t12.5 -82zM1440 320 q0 120 -69 204t-187 84q-41 0 -195 -21q-71 -11 -157 -11t-157 11q-152 21 -195 21q-118 0 -187 -84t-69 -204q0 -88 32 -153.5t81 -103t122 -60t140 -29.5t149 -7h168q82 0 149 7t140 29.5t122 60t81 103t32 153.5zM1664 496q0 -207 -61 -331q-38 -77 -105.5 -133t-141 -86 t-170 -47.5t-171.5 -22t-167 -4.5q-78 0 -142 3t-147.5 12.5t-152.5 30t-137 51.5t-121 81t-86 115q-62 123 -62 331q0 237 136 396q-27 82 -27 170q0 116 51 218q108 0 190 -39.5t189 -123.5q147 35 309 35q148 0 280 -32q105 82 187 121t189 39q51 -102 51 -218 q0 -87 -27 -168q136 -160 136 -398z" />
<glyph unicode="&#xf114;" horiz-adv-x="1664" d="M1536 224v704q0 40 -28 68t-68 28h-704q-40 0 -68 28t-28 68v64q0 40 -28 68t-68 28h-320q-40 0 -68 -28t-28 -68v-960q0 -40 28 -68t68 -28h1216q40 0 68 28t28 68zM1664 928v-704q0 -92 -66 -158t-158 -66h-1216q-92 0 -158 66t-66 158v960q0 92 66 158t158 66h320 q92 0 158 -66t66 -158v-32h672q92 0 158 -66t66 -158z" />
<glyph unicode="&#xf115;" horiz-adv-x="1920" d="M1781 605q0 35 -53 35h-1088q-40 0 -85.5 -21.5t-71.5 -52.5l-294 -363q-18 -24 -18 -40q0 -35 53 -35h1088q40 0 86 22t71 53l294 363q18 22 18 39zM640 768h768v160q0 40 -28 68t-68 28h-576q-40 0 -68 28t-28 68v64q0 40 -28 68t-68 28h-320q-40 0 -68 -28t-28 -68 v-853l256 315q44 53 116 87.5t140 34.5zM1909 605q0 -62 -46 -120l-295 -363q-43 -53 -116 -87.5t-140 -34.5h-1088q-92 0 -158 66t-66 158v960q0 92 66 158t158 66h320q92 0 158 -66t66 -158v-32h544q92 0 158 -66t66 -158v-160h192q54 0 99 -24.5t67 -70.5q15 -32 15 -68z " />
<glyph unicode="&#xf116;" horiz-adv-x="1152" d="M896 608v-64q0 -14 -9 -23t-23 -9h-224v-224q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v224h-224q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h224v224q0 14 9 23t23 9h64q14 0 23 -9t9 -23v-224h224q14 0 23 -9t9 -23zM1024 224v704q0 40 -28 68t-68 28h-704q-40 0 -68 -28 t-28 -68v-704q0 -40 28 -68t68 -28h704q40 0 68 28t28 68zM1152 928v-704q0 -92 -65.5 -158t-158.5 -66h-704q-93 0 -158.5 66t-65.5 158v704q0 93 65.5 158.5t158.5 65.5h704q93 0 158.5 -65.5t65.5 -158.5z" />
<glyph unicode="&#xf117;" horiz-adv-x="1152" d="M928 1152q93 0 158.5 -65.5t65.5 -158.5v-704q0 -92 -65.5 -158t-158.5 -66h-704q-93 0 -158.5 66t-65.5 158v704q0 93 65.5 158.5t158.5 65.5h704zM1024 224v704q0 40 -28 68t-68 28h-704q-40 0 -68 -28t-28 -68v-704q0 -40 28 -68t68 -28h704q40 0 68 28t28 68z M864 640q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-576q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h576z" />
<glyph unicode="&#xf118;" d="M1134 461q-37 -121 -138 -195t-228 -74t-228 74t-138 195q-8 25 4 48.5t38 31.5q25 8 48.5 -4t31.5 -38q25 -80 92.5 -129.5t151.5 -49.5t151.5 49.5t92.5 129.5q8 26 32 38t49 4t37 -31.5t4 -48.5zM640 896q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5 t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1152 896q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1408 640q0 130 -51 248.5t-136.5 204t-204 136.5t-248.5 51t-248.5 -51t-204 -136.5t-136.5 -204t-51 -248.5 t51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5t136.5 204t51 248.5zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
<glyph unicode="&#xf119;" d="M1134 307q8 -25 -4 -48.5t-37 -31.5t-49 4t-32 38q-25 80 -92.5 129.5t-151.5 49.5t-151.5 -49.5t-92.5 -129.5q-8 -26 -31.5 -38t-48.5 -4q-26 8 -38 31.5t-4 48.5q37 121 138 195t228 74t228 -74t138 -195zM640 896q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5 t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1152 896q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1408 640q0 130 -51 248.5t-136.5 204t-204 136.5t-248.5 51t-248.5 -51t-204 -136.5t-136.5 -204 t-51 -248.5t51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5t136.5 204t51 248.5zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
<glyph unicode="&#xf11a;" d="M1152 448q0 -26 -19 -45t-45 -19h-640q-26 0 -45 19t-19 45t19 45t45 19h640q26 0 45 -19t19 -45zM640 896q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1152 896q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5 t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1408 640q0 130 -51 248.5t-136.5 204t-204 136.5t-248.5 51t-248.5 -51t-204 -136.5t-136.5 -204t-51 -248.5t51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5t136.5 204t51 248.5zM1536 640 q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
<glyph unicode="&#xf11b;" horiz-adv-x="1920" d="M832 448v128q0 14 -9 23t-23 9h-192v192q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-192h-192q-14 0 -23 -9t-9 -23v-128q0 -14 9 -23t23 -9h192v-192q0 -14 9 -23t23 -9h128q14 0 23 9t9 23v192h192q14 0 23 9t9 23zM1408 384q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5 t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1664 640q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1920 512q0 -212 -150 -362t-362 -150q-192 0 -338 128h-220q-146 -128 -338 -128q-212 0 -362 150 t-150 362t150 362t362 150h896q212 0 362 -150t150 -362z" />
<glyph unicode="&#xf11c;" horiz-adv-x="1920" d="M384 368v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM512 624v-96q0 -16 -16 -16h-224q-16 0 -16 16v96q0 16 16 16h224q16 0 16 -16zM384 880v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM1408 368v-96q0 -16 -16 -16 h-864q-16 0 -16 16v96q0 16 16 16h864q16 0 16 -16zM768 624v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM640 880v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM1024 624v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16 h96q16 0 16 -16zM896 880v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM1280 624v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM1664 368v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM1152 880v-96 q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM1408 880v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM1664 880v-352q0 -16 -16 -16h-224q-16 0 -16 16v96q0 16 16 16h112v240q0 16 16 16h96q16 0 16 -16zM1792 128v896h-1664v-896 h1664zM1920 1024v-896q0 -53 -37.5 -90.5t-90.5 -37.5h-1664q-53 0 -90.5 37.5t-37.5 90.5v896q0 53 37.5 90.5t90.5 37.5h1664q53 0 90.5 -37.5t37.5 -90.5z" />
<glyph unicode="&#xf11d;" horiz-adv-x="1792" d="M1664 491v616q-169 -91 -306 -91q-82 0 -145 32q-100 49 -184 76.5t-178 27.5q-173 0 -403 -127v-599q245 113 433 113q55 0 103.5 -7.5t98 -26t77 -31t82.5 -39.5l28 -14q44 -22 101 -22q120 0 293 92zM320 1280q0 -35 -17.5 -64t-46.5 -46v-1266q0 -14 -9 -23t-23 -9 h-64q-14 0 -23 9t-9 23v1266q-29 17 -46.5 46t-17.5 64q0 53 37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1792 1216v-763q0 -39 -35 -57q-10 -5 -17 -9q-218 -116 -369 -116q-88 0 -158 35l-28 14q-64 33 -99 48t-91 29t-114 14q-102 0 -235.5 -44t-228.5 -102 q-15 -9 -33 -9q-16 0 -32 8q-32 19 -32 56v742q0 35 31 55q35 21 78.5 42.5t114 52t152.5 49.5t155 19q112 0 209 -31t209 -86q38 -19 89 -19q122 0 310 112q22 12 31 17q31 16 62 -2q31 -20 31 -55z" />
<glyph unicode="&#xf11e;" horiz-adv-x="1792" d="M832 536v192q-181 -16 -384 -117v-185q205 96 384 110zM832 954v197q-172 -8 -384 -126v-189q215 111 384 118zM1664 491v184q-235 -116 -384 -71v224q-20 6 -39 15q-5 3 -33 17t-34.5 17t-31.5 15t-34.5 15.5t-32.5 13t-36 12.5t-35 8.5t-39.5 7.5t-39.5 4t-44 2 q-23 0 -49 -3v-222h19q102 0 192.5 -29t197.5 -82q19 -9 39 -15v-188q42 -17 91 -17q120 0 293 92zM1664 918v189q-169 -91 -306 -91q-45 0 -78 8v-196q148 -42 384 90zM320 1280q0 -35 -17.5 -64t-46.5 -46v-1266q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v1266 q-29 17 -46.5 46t-17.5 64q0 53 37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1792 1216v-763q0 -39 -35 -57q-10 -5 -17 -9q-218 -116 -369 -116q-88 0 -158 35l-28 14q-64 33 -99 48t-91 29t-114 14q-102 0 -235.5 -44t-228.5 -102q-15 -9 -33 -9q-16 0 -32 8 q-32 19 -32 56v742q0 35 31 55q35 21 78.5 42.5t114 52t152.5 49.5t155 19q112 0 209 -31t209 -86q38 -19 89 -19q122 0 310 112q22 12 31 17q31 16 62 -2q31 -20 31 -55z" />
<glyph unicode="&#xf120;" horiz-adv-x="1664" d="M585 553l-466 -466q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23t10 23l393 393l-393 393q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10l466 -466q10 -10 10 -23t-10 -23zM1664 96v-64q0 -14 -9 -23t-23 -9h-960q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h960q14 0 23 -9 t9 -23z" />
<glyph unicode="&#xf121;" horiz-adv-x="1920" d="M617 137l-50 -50q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23t10 23l466 466q10 10 23 10t23 -10l50 -50q10 -10 10 -23t-10 -23l-393 -393l393 -393q10 -10 10 -23t-10 -23zM1208 1204l-373 -1291q-4 -13 -15.5 -19.5t-23.5 -2.5l-62 17q-13 4 -19.5 15.5t-2.5 24.5 l373 1291q4 13 15.5 19.5t23.5 2.5l62 -17q13 -4 19.5 -15.5t2.5 -24.5zM1865 553l-466 -466q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23t10 23l393 393l-393 393q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10l466 -466q10 -10 10 -23t-10 -23z" />
<glyph unicode="&#xf122;" horiz-adv-x="1792" d="M640 454v-70q0 -42 -39 -59q-13 -5 -25 -5q-27 0 -45 19l-512 512q-19 19 -19 45t19 45l512 512q29 31 70 14q39 -17 39 -59v-69l-397 -398q-19 -19 -19 -45t19 -45zM1792 416q0 -58 -17 -133.5t-38.5 -138t-48 -125t-40.5 -90.5l-20 -40q-8 -17 -28 -17q-6 0 -9 1 q-25 8 -23 34q43 400 -106 565q-64 71 -170.5 110.5t-267.5 52.5v-251q0 -42 -39 -59q-13 -5 -25 -5q-27 0 -45 19l-512 512q-19 19 -19 45t19 45l512 512q29 31 70 14q39 -17 39 -59v-262q411 -28 599 -221q169 -173 169 -509z" />
<glyph unicode="&#xf123;" horiz-adv-x="1664" d="M1186 579l257 250l-356 52l-66 10l-30 60l-159 322v-963l59 -31l318 -168l-60 355l-12 66zM1638 841l-363 -354l86 -500q5 -33 -6 -51.5t-34 -18.5q-17 0 -40 12l-449 236l-449 -236q-23 -12 -40 -12q-23 0 -34 18.5t-6 51.5l86 500l-364 354q-32 32 -23 59.5t54 34.5 l502 73l225 455q20 41 49 41q28 0 49 -41l225 -455l502 -73q45 -7 54 -34.5t-24 -59.5z" />
<glyph unicode="&#xf124;" horiz-adv-x="1408" d="M1401 1187l-640 -1280q-17 -35 -57 -35q-5 0 -15 2q-22 5 -35.5 22.5t-13.5 39.5v576h-576q-22 0 -39.5 13.5t-22.5 35.5t4 42t29 30l1280 640q13 7 29 7q27 0 45 -19q15 -14 18.5 -34.5t-6.5 -39.5z" />
<glyph unicode="&#xf125;" horiz-adv-x="1664" d="M557 256h595v595zM512 301l595 595h-595v-595zM1664 224v-192q0 -14 -9 -23t-23 -9h-224v-224q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v224h-864q-14 0 -23 9t-9 23v864h-224q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h224v224q0 14 9 23t23 9h192q14 0 23 -9t9 -23 v-224h851l246 247q10 9 23 9t23 -9q9 -10 9 -23t-9 -23l-247 -246v-851h224q14 0 23 -9t9 -23z" />
<glyph unicode="&#xf126;" horiz-adv-x="1024" d="M288 64q0 40 -28 68t-68 28t-68 -28t-28 -68t28 -68t68 -28t68 28t28 68zM288 1216q0 40 -28 68t-68 28t-68 -28t-28 -68t28 -68t68 -28t68 28t28 68zM928 1088q0 40 -28 68t-68 28t-68 -28t-28 -68t28 -68t68 -28t68 28t28 68zM1024 1088q0 -52 -26 -96.5t-70 -69.5 q-2 -287 -226 -414q-68 -38 -203 -81q-128 -40 -169.5 -71t-41.5 -100v-26q44 -25 70 -69.5t26 -96.5q0 -80 -56 -136t-136 -56t-136 56t-56 136q0 52 26 96.5t70 69.5v820q-44 25 -70 69.5t-26 96.5q0 80 56 136t136 56t136 -56t56 -136q0 -52 -26 -96.5t-70 -69.5v-497 q54 26 154 57q55 17 87.5 29.5t70.5 31t59 39.5t40.5 51t28 69.5t8.5 91.5q-44 25 -70 69.5t-26 96.5q0 80 56 136t136 56t136 -56t56 -136z" />
<glyph unicode="&#xf127;" horiz-adv-x="1664" d="M439 265l-256 -256q-10 -9 -23 -9q-12 0 -23 9q-9 10 -9 23t9 23l256 256q10 9 23 9t23 -9q9 -10 9 -23t-9 -23zM608 224v-320q0 -14 -9 -23t-23 -9t-23 9t-9 23v320q0 14 9 23t23 9t23 -9t9 -23zM384 448q0 -14 -9 -23t-23 -9h-320q-14 0 -23 9t-9 23t9 23t23 9h320 q14 0 23 -9t9 -23zM1648 320q0 -120 -85 -203l-147 -146q-83 -83 -203 -83q-121 0 -204 85l-334 335q-21 21 -42 56l239 18l273 -274q27 -27 68 -27.5t68 26.5l147 146q28 28 28 67q0 40 -28 68l-274 275l18 239q35 -21 56 -42l336 -336q84 -86 84 -204zM1031 1044l-239 -18 l-273 274q-28 28 -68 28q-39 0 -68 -27l-147 -146q-28 -28 -28 -67q0 -40 28 -68l274 -274l-18 -240q-35 21 -56 42l-336 336q-84 86 -84 204q0 120 85 203l147 146q83 83 203 83q121 0 204 -85l334 -335q21 -21 42 -56zM1664 960q0 -14 -9 -23t-23 -9h-320q-14 0 -23 9 t-9 23t9 23t23 9h320q14 0 23 -9t9 -23zM1120 1504v-320q0 -14 -9 -23t-23 -9t-23 9t-9 23v320q0 14 9 23t23 9t23 -9t9 -23zM1527 1353l-256 -256q-11 -9 -23 -9t-23 9q-9 10 -9 23t9 23l256 256q10 9 23 9t23 -9q9 -10 9 -23t-9 -23z" />
<glyph unicode="&#xf128;" horiz-adv-x="1024" d="M704 280v-240q0 -16 -12 -28t-28 -12h-240q-16 0 -28 12t-12 28v240q0 16 12 28t28 12h240q16 0 28 -12t12 -28zM1020 880q0 -54 -15.5 -101t-35 -76.5t-55 -59.5t-57.5 -43.5t-61 -35.5q-41 -23 -68.5 -65t-27.5 -67q0 -17 -12 -32.5t-28 -15.5h-240q-15 0 -25.5 18.5 t-10.5 37.5v45q0 83 65 156.5t143 108.5q59 27 84 56t25 76q0 42 -46.5 74t-107.5 32q-65 0 -108 -29q-35 -25 -107 -115q-13 -16 -31 -16q-12 0 -25 8l-164 125q-13 10 -15.5 25t5.5 28q160 266 464 266q80 0 161 -31t146 -83t106 -127.5t41 -158.5z" />
<glyph unicode="&#xf129;" horiz-adv-x="640" d="M640 192v-128q0 -26 -19 -45t-45 -19h-512q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h64v384h-64q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h384q26 0 45 -19t19 -45v-576h64q26 0 45 -19t19 -45zM512 1344v-192q0 -26 -19 -45t-45 -19h-256q-26 0 -45 19t-19 45v192 q0 26 19 45t45 19h256q26 0 45 -19t19 -45z" />
<glyph unicode="&#xf12a;" horiz-adv-x="640" d="M512 288v-224q0 -26 -19 -45t-45 -19h-256q-26 0 -45 19t-19 45v224q0 26 19 45t45 19h256q26 0 45 -19t19 -45zM542 1344l-28 -768q-1 -26 -20.5 -45t-45.5 -19h-256q-26 0 -45.5 19t-20.5 45l-28 768q-1 26 17.5 45t44.5 19h320q26 0 44.5 -19t17.5 -45z" />
<glyph unicode="&#xf12b;" d="M897 167v-167h-248l-159 252l-24 42q-8 9 -11 21h-3l-9 -21q-10 -20 -25 -44l-155 -250h-258v167h128l197 291l-185 272h-137v168h276l139 -228q2 -4 23 -42q8 -9 11 -21h3q3 9 11 21l25 42l140 228h257v-168h-125l-184 -267l204 -296h109zM1534 846v-206h-514l-3 27 q-4 28 -4 46q0 64 26 117t65 86.5t84 65t84 54.5t65 54t26 64q0 38 -29.5 62.5t-70.5 24.5q-51 0 -97 -39q-14 -11 -36 -38l-105 92q26 37 63 66q83 65 188 65q110 0 178 -59.5t68 -158.5q0 -56 -24.5 -103t-62 -76.5t-81.5 -58.5t-82 -50.5t-65.5 -51.5t-30.5 -63h232v80 h126z" />
<glyph unicode="&#xf12c;" d="M897 167v-167h-248l-159 252l-24 42q-8 9 -11 21h-3l-9 -21q-10 -20 -25 -44l-155 -250h-258v167h128l197 291l-185 272h-137v168h276l139 -228q2 -4 23 -42q8 -9 11 -21h3q3 9 11 21l25 42l140 228h257v-168h-125l-184 -267l204 -296h109zM1536 -50v-206h-514l-4 27 q-3 45 -3 46q0 64 26 117t65 86.5t84 65t84 54.5t65 54t26 64q0 38 -29.5 62.5t-70.5 24.5q-51 0 -97 -39q-14 -11 -36 -38l-105 92q26 37 63 66q80 65 188 65q110 0 178 -59.5t68 -158.5q0 -66 -34.5 -118.5t-84 -86t-99.5 -62.5t-87 -63t-41 -73h232v80h126z" />
<glyph unicode="&#xf12d;" horiz-adv-x="1920" d="M896 128l336 384h-768l-336 -384h768zM1909 1205q15 -34 9.5 -71.5t-30.5 -65.5l-896 -1024q-38 -44 -96 -44h-768q-38 0 -69.5 20.5t-47.5 54.5q-15 34 -9.5 71.5t30.5 65.5l896 1024q38 44 96 44h768q38 0 69.5 -20.5t47.5 -54.5z" />
<glyph unicode="&#xf12e;" horiz-adv-x="1664" d="M1664 438q0 -81 -44.5 -135t-123.5 -54q-41 0 -77.5 17.5t-59 38t-56.5 38t-71 17.5q-110 0 -110 -124q0 -39 16 -115t15 -115v-5q-22 0 -33 -1q-34 -3 -97.5 -11.5t-115.5 -13.5t-98 -5q-61 0 -103 26.5t-42 83.5q0 37 17.5 71t38 56.5t38 59t17.5 77.5q0 79 -54 123.5 t-135 44.5q-84 0 -143 -45.5t-59 -127.5q0 -43 15 -83t33.5 -64.5t33.5 -53t15 -50.5q0 -45 -46 -89q-37 -35 -117 -35q-95 0 -245 24q-9 2 -27.5 4t-27.5 4l-13 2q-1 0 -3 1q-2 0 -2 1v1024q2 -1 17.5 -3.5t34 -5t21.5 -3.5q150 -24 245 -24q80 0 117 35q46 44 46 89 q0 22 -15 50.5t-33.5 53t-33.5 64.5t-15 83q0 82 59 127.5t144 45.5q80 0 134 -44.5t54 -123.5q0 -41 -17.5 -77.5t-38 -59t-38 -56.5t-17.5 -71q0 -57 42 -83.5t103 -26.5q64 0 180 15t163 17v-2q-1 -2 -3.5 -17.5t-5 -34t-3.5 -21.5q-24 -150 -24 -245q0 -80 35 -117 q44 -46 89 -46q22 0 50.5 15t53 33.5t64.5 33.5t83 15q82 0 127.5 -59t45.5 -143z" />
<glyph unicode="&#xf130;" horiz-adv-x="1152" d="M1152 832v-128q0 -221 -147.5 -384.5t-364.5 -187.5v-132h256q26 0 45 -19t19 -45t-19 -45t-45 -19h-640q-26 0 -45 19t-19 45t19 45t45 19h256v132q-217 24 -364.5 187.5t-147.5 384.5v128q0 26 19 45t45 19t45 -19t19 -45v-128q0 -185 131.5 -316.5t316.5 -131.5 t316.5 131.5t131.5 316.5v128q0 26 19 45t45 19t45 -19t19 -45zM896 1216v-512q0 -132 -94 -226t-226 -94t-226 94t-94 226v512q0 132 94 226t226 94t226 -94t94 -226z" />
<glyph unicode="&#xf131;" horiz-adv-x="1408" d="M271 591l-101 -101q-42 103 -42 214v128q0 26 19 45t45 19t45 -19t19 -45v-128q0 -53 15 -113zM1385 1193l-361 -361v-128q0 -132 -94 -226t-226 -94q-55 0 -109 19l-96 -96q97 -51 205 -51q185 0 316.5 131.5t131.5 316.5v128q0 26 19 45t45 19t45 -19t19 -45v-128 q0 -221 -147.5 -384.5t-364.5 -187.5v-132h256q26 0 45 -19t19 -45t-19 -45t-45 -19h-640q-26 0 -45 19t-19 45t19 45t45 19h256v132q-125 13 -235 81l-254 -254q-10 -10 -23 -10t-23 10l-82 82q-10 10 -10 23t10 23l1234 1234q10 10 23 10t23 -10l82 -82q10 -10 10 -23 t-10 -23zM1005 1325l-621 -621v512q0 132 94 226t226 94q102 0 184.5 -59t116.5 -152z" />
<glyph unicode="&#xf132;" horiz-adv-x="1280" d="M1088 576v640h-448v-1137q119 63 213 137q235 184 235 360zM1280 1344v-768q0 -86 -33.5 -170.5t-83 -150t-118 -127.5t-126.5 -103t-121 -77.5t-89.5 -49.5t-42.5 -20q-12 -6 -26 -6t-26 6q-16 7 -42.5 20t-89.5 49.5t-121 77.5t-126.5 103t-118 127.5t-83 150 t-33.5 170.5v768q0 26 19 45t45 19h1152q26 0 45 -19t19 -45z" />
<glyph unicode="&#xf133;" horiz-adv-x="1664" d="M128 -128h1408v1024h-1408v-1024zM512 1088v288q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-288q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1280 1088v288q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-288q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1664 1152v-1280 q0 -52 -38 -90t-90 -38h-1408q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h128v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h384v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h128q52 0 90 -38t38 -90z" />
<glyph unicode="&#xf134;" horiz-adv-x="1408" d="M512 1344q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1408 1376v-320q0 -16 -12 -25q-8 -7 -20 -7q-4 0 -7 1l-448 96q-11 2 -18 11t-7 20h-256v-102q111 -23 183.5 -111t72.5 -203v-800q0 -26 -19 -45t-45 -19h-512q-26 0 -45 19t-19 45v800 q0 106 62.5 190.5t161.5 114.5v111h-32q-59 0 -115 -23.5t-91.5 -53t-66 -66.5t-40.5 -53.5t-14 -24.5q-17 -35 -57 -35q-16 0 -29 7q-23 12 -31.5 37t3.5 49q5 10 14.5 26t37.5 53.5t60.5 70t85 67t108.5 52.5q-25 42 -25 86q0 66 47 113t113 47t113 -47t47 -113 q0 -33 -14 -64h302q0 11 7 20t18 11l448 96q3 1 7 1q12 0 20 -7q12 -9 12 -25z" />
<glyph unicode="&#xf135;" horiz-adv-x="1664" d="M1440 1088q0 40 -28 68t-68 28t-68 -28t-28 -68t28 -68t68 -28t68 28t28 68zM1664 1376q0 -249 -75.5 -430.5t-253.5 -360.5q-81 -80 -195 -176l-20 -379q-2 -16 -16 -26l-384 -224q-7 -4 -16 -4q-12 0 -23 9l-64 64q-13 14 -8 32l85 276l-281 281l-276 -85q-3 -1 -9 -1 q-14 0 -23 9l-64 64q-17 19 -5 39l224 384q10 14 26 16l379 20q96 114 176 195q188 187 358 258t431 71q14 0 24 -9.5t10 -22.5z" />
<glyph unicode="&#xf136;" horiz-adv-x="1792" d="M1708 881l-188 -881h-304l181 849q4 21 1 43q-4 20 -16 35q-10 14 -28 24q-18 9 -40 9h-197l-205 -960h-303l204 960h-304l-205 -960h-304l272 1280h1139q157 0 245 -118q86 -116 52 -281z" />
<glyph unicode="&#xf137;" d="M909 141l102 102q19 19 19 45t-19 45l-307 307l307 307q19 19 19 45t-19 45l-102 102q-19 19 -45 19t-45 -19l-454 -454q-19 -19 -19 -45t19 -45l454 -454q19 -19 45 -19t45 19zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5 t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
<glyph unicode="&#xf138;" d="M717 141l454 454q19 19 19 45t-19 45l-454 454q-19 19 -45 19t-45 -19l-102 -102q-19 -19 -19 -45t19 -45l307 -307l-307 -307q-19 -19 -19 -45t19 -45l102 -102q19 -19 45 -19t45 19zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5 t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
<glyph unicode="&#xf139;" d="M1165 397l102 102q19 19 19 45t-19 45l-454 454q-19 19 -45 19t-45 -19l-454 -454q-19 -19 -19 -45t19 -45l102 -102q19 -19 45 -19t45 19l307 307l307 -307q19 -19 45 -19t45 19zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5 t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
<glyph unicode="&#xf13a;" d="M813 237l454 454q19 19 19 45t-19 45l-102 102q-19 19 -45 19t-45 -19l-307 -307l-307 307q-19 19 -45 19t-45 -19l-102 -102q-19 -19 -19 -45t19 -45l454 -454q19 -19 45 -19t45 19zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5 t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
<glyph unicode="&#xf13b;" horiz-adv-x="1408" d="M1130 939l16 175h-884l47 -534h612l-22 -228l-197 -53l-196 53l-13 140h-175l22 -278l362 -100h4v1l359 99l50 544h-644l-15 181h674zM0 1408h1408l-128 -1438l-578 -162l-574 162z" />
<glyph unicode="&#xf13c;" horiz-adv-x="1792" d="M275 1408h1505l-266 -1333l-804 -267l-698 267l71 356h297l-29 -147l422 -161l486 161l68 339h-1208l58 297h1209l38 191h-1208z" />
<glyph unicode="&#xf13d;" horiz-adv-x="1792" d="M960 1280q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1792 352v-352q0 -22 -20 -30q-8 -2 -12 -2q-13 0 -23 9l-93 93q-119 -143 -318.5 -226.5t-429.5 -83.5t-429.5 83.5t-318.5 226.5l-93 -93q-9 -9 -23 -9q-4 0 -12 2q-20 8 -20 30v352 q0 14 9 23t23 9h352q22 0 30 -20q8 -19 -7 -35l-100 -100q67 -91 189.5 -153.5t271.5 -82.5v647h-192q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h192v163q-58 34 -93 92.5t-35 128.5q0 106 75 181t181 75t181 -75t75 -181q0 -70 -35 -128.5t-93 -92.5v-163h192q26 0 45 -19 t19 -45v-128q0 -26 -19 -45t-45 -19h-192v-647q149 20 271.5 82.5t189.5 153.5l-100 100q-15 16 -7 35q8 20 30 20h352q14 0 23 -9t9 -23z" />
<glyph unicode="&#xf13e;" horiz-adv-x="1152" d="M1056 768q40 0 68 -28t28 -68v-576q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68v576q0 40 28 68t68 28h32v320q0 185 131.5 316.5t316.5 131.5t316.5 -131.5t131.5 -316.5q0 -26 -19 -45t-45 -19h-64q-26 0 -45 19t-19 45q0 106 -75 181t-181 75t-181 -75t-75 -181 v-320h736z" />
<glyph unicode="&#xf140;" d="M1024 640q0 -106 -75 -181t-181 -75t-181 75t-75 181t75 181t181 75t181 -75t75 -181zM1152 640q0 159 -112.5 271.5t-271.5 112.5t-271.5 -112.5t-112.5 -271.5t112.5 -271.5t271.5 -112.5t271.5 112.5t112.5 271.5zM1280 640q0 -212 -150 -362t-362 -150t-362 150 t-150 362t150 362t362 150t362 -150t150 -362zM1408 640q0 130 -51 248.5t-136.5 204t-204 136.5t-248.5 51t-248.5 -51t-204 -136.5t-136.5 -204t-51 -248.5t51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5t136.5 204t51 248.5zM1536 640 q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
<glyph unicode="&#xf141;" horiz-adv-x="1408" d="M384 800v-192q0 -40 -28 -68t-68 -28h-192q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h192q40 0 68 -28t28 -68zM896 800v-192q0 -40 -28 -68t-68 -28h-192q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h192q40 0 68 -28t28 -68zM1408 800v-192q0 -40 -28 -68t-68 -28h-192 q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h192q40 0 68 -28t28 -68z" />
<glyph unicode="&#xf142;" horiz-adv-x="384" d="M384 288v-192q0 -40 -28 -68t-68 -28h-192q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h192q40 0 68 -28t28 -68zM384 800v-192q0 -40 -28 -68t-68 -28h-192q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h192q40 0 68 -28t28 -68zM384 1312v-192q0 -40 -28 -68t-68 -28h-192 q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h192q40 0 68 -28t28 -68z" />
<glyph unicode="&#xf143;" d="M512 256q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM863 162q-13 232 -177 396t-396 177q-14 1 -24 -9t-10 -23v-128q0 -13 8.5 -22t21.5 -10q154 -11 264 -121t121 -264q1 -13 10 -21.5t22 -8.5h128q13 0 23 10 t9 24zM1247 161q-5 154 -56 297.5t-139.5 260t-205 205t-260 139.5t-297.5 56q-14 1 -23 -9q-10 -10 -10 -23v-128q0 -13 9 -22t22 -10q204 -7 378 -111.5t278.5 -278.5t111.5 -378q1 -13 10 -22t22 -9h128q13 0 23 10q11 9 9 23zM1536 1120v-960q0 -119 -84.5 -203.5 t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
<glyph unicode="&#xf144;" d="M768 1408q209 0 385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103zM1152 585q32 18 32 55t-32 55l-544 320q-31 19 -64 1q-32 -19 -32 -56v-640q0 -37 32 -56 q16 -8 32 -8q17 0 32 9z" />
<glyph unicode="&#xf145;" horiz-adv-x="1792" d="M1024 1084l316 -316l-572 -572l-316 316zM813 105l618 618q19 19 19 45t-19 45l-362 362q-18 18 -45 18t-45 -18l-618 -618q-19 -19 -19 -45t19 -45l362 -362q18 -18 45 -18t45 18zM1702 742l-907 -908q-37 -37 -90.5 -37t-90.5 37l-126 126q56 56 56 136t-56 136 t-136 56t-136 -56l-125 126q-37 37 -37 90.5t37 90.5l907 906q37 37 90.5 37t90.5 -37l125 -125q-56 -56 -56 -136t56 -136t136 -56t136 56l126 -125q37 -37 37 -90.5t-37 -90.5z" />
<glyph unicode="&#xf146;" d="M1280 576v128q0 26 -19 45t-45 19h-896q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h896q26 0 45 19t19 45zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5 t84.5 -203.5z" />
<glyph unicode="&#xf147;" horiz-adv-x="1408" d="M1152 736v-64q0 -14 -9 -23t-23 -9h-832q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h832q14 0 23 -9t9 -23zM1280 288v832q0 66 -47 113t-113 47h-832q-66 0 -113 -47t-47 -113v-832q0 -66 47 -113t113 -47h832q66 0 113 47t47 113zM1408 1120v-832q0 -119 -84.5 -203.5 t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5v832q0 119 84.5 203.5t203.5 84.5h832q119 0 203.5 -84.5t84.5 -203.5z" />
<glyph unicode="&#xf148;" horiz-adv-x="1024" d="M1018 933q-18 -37 -58 -37h-192v-864q0 -14 -9 -23t-23 -9h-704q-21 0 -29 18q-8 20 4 35l160 192q9 11 25 11h320v640h-192q-40 0 -58 37q-17 37 9 68l320 384q18 22 49 22t49 -22l320 -384q27 -32 9 -68z" />
<glyph unicode="&#xf149;" horiz-adv-x="1024" d="M32 1280h704q13 0 22.5 -9.5t9.5 -23.5v-863h192q40 0 58 -37t-9 -69l-320 -384q-18 -22 -49 -22t-49 22l-320 384q-26 31 -9 69q18 37 58 37h192v640h-320q-14 0 -25 11l-160 192q-13 14 -4 34q9 19 29 19z" />
<glyph unicode="&#xf14a;" d="M685 237l614 614q19 19 19 45t-19 45l-102 102q-19 19 -45 19t-45 -19l-467 -467l-211 211q-19 19 -45 19t-45 -19l-102 -102q-19 -19 -19 -45t19 -45l358 -358q19 -19 45 -19t45 19zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5 t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
<glyph unicode="&#xf14b;" d="M404 428l152 -152l-52 -52h-56v96h-96v56zM818 818q14 -13 -3 -30l-291 -291q-17 -17 -30 -3q-14 13 3 30l291 291q17 17 30 3zM544 128l544 544l-288 288l-544 -544v-288h288zM1152 736l92 92q28 28 28 68t-28 68l-152 152q-28 28 -68 28t-68 -28l-92 -92zM1536 1120 v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
<glyph unicode="&#xf14c;" d="M1280 608v480q0 26 -19 45t-45 19h-480q-42 0 -59 -39q-17 -41 14 -70l144 -144l-534 -534q-19 -19 -19 -45t19 -45l102 -102q19 -19 45 -19t45 19l534 534l144 -144q18 -19 45 -19q12 0 25 5q39 17 39 59zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960 q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
<glyph unicode="&#xf14d;" d="M1005 435l352 352q19 19 19 45t-19 45l-352 352q-30 31 -69 14q-40 -17 -40 -59v-160q-119 0 -216 -19.5t-162.5 -51t-114 -79t-76.5 -95.5t-44.5 -109t-21.5 -111.5t-5 -110.5q0 -181 167 -404q10 -12 25 -12q7 0 13 3q22 9 19 33q-44 354 62 473q46 52 130 75.5 t224 23.5v-160q0 -42 40 -59q12 -5 24 -5q26 0 45 19zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
<glyph unicode="&#xf14e;" d="M640 448l256 128l-256 128v-256zM1024 1039v-542l-512 -256v542zM1312 640q0 148 -73 273t-198 198t-273 73t-273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103 t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
<glyph unicode="&#xf150;" d="M1145 861q18 -35 -5 -66l-320 -448q-19 -27 -52 -27t-52 27l-320 448q-23 31 -5 66q17 35 57 35h640q40 0 57 -35zM1280 160v960q0 13 -9.5 22.5t-22.5 9.5h-960q-13 0 -22.5 -9.5t-9.5 -22.5v-960q0 -13 9.5 -22.5t22.5 -9.5h960q13 0 22.5 9.5t9.5 22.5zM1536 1120 v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
<glyph unicode="&#xf151;" d="M1145 419q-17 -35 -57 -35h-640q-40 0 -57 35q-18 35 5 66l320 448q19 27 52 27t52 -27l320 -448q23 -31 5 -66zM1280 160v960q0 13 -9.5 22.5t-22.5 9.5h-960q-13 0 -22.5 -9.5t-9.5 -22.5v-960q0 -13 9.5 -22.5t22.5 -9.5h960q13 0 22.5 9.5t9.5 22.5zM1536 1120v-960 q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
<glyph unicode="&#xf152;" d="M1088 640q0 -33 -27 -52l-448 -320q-31 -23 -66 -5q-35 17 -35 57v640q0 40 35 57q35 18 66 -5l448 -320q27 -19 27 -52zM1280 160v960q0 14 -9 23t-23 9h-960q-14 0 -23 -9t-9 -23v-960q0 -14 9 -23t23 -9h960q14 0 23 9t9 23zM1536 1120v-960q0 -119 -84.5 -203.5 t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
<glyph unicode="&#xf153;" horiz-adv-x="1024" d="M976 229l35 -159q3 -12 -3 -22.5t-17 -14.5l-5 -1q-4 -2 -10.5 -3.5t-16 -4.5t-21.5 -5.5t-25.5 -5t-30 -5t-33.5 -4.5t-36.5 -3t-38.5 -1q-234 0 -409 130.5t-238 351.5h-95q-13 0 -22.5 9.5t-9.5 22.5v113q0 13 9.5 22.5t22.5 9.5h66q-2 57 1 105h-67q-14 0 -23 9 t-9 23v114q0 14 9 23t23 9h98q67 210 243.5 338t400.5 128q102 0 194 -23q11 -3 20 -15q6 -11 3 -24l-43 -159q-3 -13 -14 -19.5t-24 -2.5l-4 1q-4 1 -11.5 2.5l-17.5 3.5t-22.5 3.5t-26 3t-29 2.5t-29.5 1q-126 0 -226 -64t-150 -176h468q16 0 25 -12q10 -12 7 -26 l-24 -114q-5 -26 -32 -26h-488q-3 -37 0 -105h459q15 0 25 -12q9 -12 6 -27l-24 -112q-2 -11 -11 -18.5t-20 -7.5h-387q48 -117 149.5 -185.5t228.5 -68.5q18 0 36 1.5t33.5 3.5t29.5 4.5t24.5 5t18.5 4.5l12 3l5 2q13 5 26 -2q12 -7 15 -21z" />
<glyph unicode="&#xf154;" horiz-adv-x="1024" d="M1020 399v-367q0 -14 -9 -23t-23 -9h-956q-14 0 -23 9t-9 23v150q0 13 9.5 22.5t22.5 9.5h97v383h-95q-14 0 -23 9.5t-9 22.5v131q0 14 9 23t23 9h95v223q0 171 123.5 282t314.5 111q185 0 335 -125q9 -8 10 -20.5t-7 -22.5l-103 -127q-9 -11 -22 -12q-13 -2 -23 7 q-5 5 -26 19t-69 32t-93 18q-85 0 -137 -47t-52 -123v-215h305q13 0 22.5 -9t9.5 -23v-131q0 -13 -9.5 -22.5t-22.5 -9.5h-305v-379h414v181q0 13 9 22.5t23 9.5h162q14 0 23 -9.5t9 -22.5z" />
<glyph unicode="&#xf155;" horiz-adv-x="1024" d="M978 351q0 -153 -99.5 -263.5t-258.5 -136.5v-175q0 -14 -9 -23t-23 -9h-135q-13 0 -22.5 9.5t-9.5 22.5v175q-66 9 -127.5 31t-101.5 44.5t-74 48t-46.5 37.5t-17.5 18q-17 21 -2 41l103 135q7 10 23 12q15 2 24 -9l2 -2q113 -99 243 -125q37 -8 74 -8q81 0 142.5 43 t61.5 122q0 28 -15 53t-33.5 42t-58.5 37.5t-66 32t-80 32.5q-39 16 -61.5 25t-61.5 26.5t-62.5 31t-56.5 35.5t-53.5 42.5t-43.5 49t-35.5 58t-21 66.5t-8.5 78q0 138 98 242t255 134v180q0 13 9.5 22.5t22.5 9.5h135q14 0 23 -9t9 -23v-176q57 -6 110.5 -23t87 -33.5 t63.5 -37.5t39 -29t15 -14q17 -18 5 -38l-81 -146q-8 -15 -23 -16q-14 -3 -27 7q-3 3 -14.5 12t-39 26.5t-58.5 32t-74.5 26t-85.5 11.5q-95 0 -155 -43t-60 -111q0 -26 8.5 -48t29.5 -41.5t39.5 -33t56 -31t60.5 -27t70 -27.5q53 -20 81 -31.5t76 -35t75.5 -42.5t62 -50 t53 -63.5t31.5 -76.5t13 -94z" />
<glyph unicode="&#xf156;" horiz-adv-x="898" d="M898 1066v-102q0 -14 -9 -23t-23 -9h-168q-23 -144 -129 -234t-276 -110q167 -178 459 -536q14 -16 4 -34q-8 -18 -29 -18h-195q-16 0 -25 12q-306 367 -498 571q-9 9 -9 22v127q0 13 9.5 22.5t22.5 9.5h112q132 0 212.5 43t102.5 125h-427q-14 0 -23 9t-9 23v102 q0 14 9 23t23 9h413q-57 113 -268 113h-145q-13 0 -22.5 9.5t-9.5 22.5v133q0 14 9 23t23 9h832q14 0 23 -9t9 -23v-102q0 -14 -9 -23t-23 -9h-233q47 -61 64 -144h171q14 0 23 -9t9 -23z" />
<glyph unicode="&#xf157;" horiz-adv-x="1027" d="M603 0h-172q-13 0 -22.5 9t-9.5 23v330h-288q-13 0 -22.5 9t-9.5 23v103q0 13 9.5 22.5t22.5 9.5h288v85h-288q-13 0 -22.5 9t-9.5 23v104q0 13 9.5 22.5t22.5 9.5h214l-321 578q-8 16 0 32q10 16 28 16h194q19 0 29 -18l215 -425q19 -38 56 -125q10 24 30.5 68t27.5 61 l191 420q8 19 29 19h191q17 0 27 -16q9 -14 1 -31l-313 -579h215q13 0 22.5 -9.5t9.5 -22.5v-104q0 -14 -9.5 -23t-22.5 -9h-290v-85h290q13 0 22.5 -9.5t9.5 -22.5v-103q0 -14 -9.5 -23t-22.5 -9h-290v-330q0 -13 -9.5 -22.5t-22.5 -9.5z" />
<glyph unicode="&#xf158;" horiz-adv-x="1664" d="M1664 352v-32q0 -132 -94 -226t-226 -94h-128q-132 0 -226 94t-94 226v480h-224q-2 -102 -14.5 -190.5t-30.5 -156t-48.5 -126.5t-57 -99.5t-67.5 -77.5t-69.5 -58.5t-74 -44t-69 -32t-65.5 -25.5q-4 -2 -32 -13q-8 -2 -12 -2q-22 0 -30 20l-71 178q-5 13 0 25t17 17 q7 3 20 7.5t18 6.5q31 12 46.5 18.5t44.5 20t45.5 26t42 32.5t40.5 42.5t34.5 53.5t30.5 68.5t22.5 83.5t17 103t6.5 123h-256q-14 0 -23 9t-9 23v160q0 14 9 23t23 9h1216q14 0 23 -9t9 -23v-160q0 -14 -9 -23t-23 -9h-224v-512q0 -26 19 -45t45 -19h128q26 0 45 19t19 45 v64q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM1280 1376v-160q0 -14 -9 -23t-23 -9h-960q-14 0 -23 9t-9 23v160q0 14 9 23t23 9h960q14 0 23 -9t9 -23z" />
<glyph unicode="&#xf159;" horiz-adv-x="1792" d="M514 341l81 299h-159l75 -300q1 -1 1 -3t1 -3q0 1 0.5 3.5t0.5 3.5zM630 768l35 128h-292l32 -128h225zM822 768h139l-35 128h-70zM1271 340l78 300h-162l81 -299q0 -1 0.5 -3.5t1.5 -3.5q0 1 0.5 3t0.5 3zM1382 768l33 128h-297l34 -128h230zM1792 736v-64q0 -14 -9 -23 t-23 -9h-213l-164 -616q-7 -24 -31 -24h-159q-24 0 -31 24l-166 616h-209l-167 -616q-7 -24 -31 -24h-159q-11 0 -19.5 7t-10.5 17l-160 616h-208q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h175l-33 128h-142q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h109l-89 344q-5 15 5 28 q10 12 26 12h137q26 0 31 -24l90 -360h359l97 360q7 24 31 24h126q24 0 31 -24l98 -360h365l93 360q5 24 31 24h137q16 0 26 -12q10 -13 5 -28l-91 -344h111q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-145l-34 -128h179q14 0 23 -9t9 -23z" />
<glyph unicode="&#xf15a;" horiz-adv-x="1280" d="M1167 896q18 -182 -131 -258q117 -28 175 -103t45 -214q-7 -71 -32.5 -125t-64.5 -89t-97 -58.5t-121.5 -34.5t-145.5 -15v-255h-154v251q-80 0 -122 1v-252h-154v255q-18 0 -54 0.5t-55 0.5h-200l31 183h111q50 0 58 51v402h16q-6 1 -16 1v287q-13 68 -89 68h-111v164 l212 -1q64 0 97 1v252h154v-247q82 2 122 2v245h154v-252q79 -7 140 -22.5t113 -45t82.5 -78t36.5 -114.5zM952 351q0 36 -15 64t-37 46t-57.5 30.5t-65.5 18.5t-74 9t-69 3t-64.5 -1t-47.5 -1v-338q8 0 37 -0.5t48 -0.5t53 1.5t58.5 4t57 8.5t55.5 14t47.5 21t39.5 30 t24.5 40t9.5 51zM881 827q0 33 -12.5 58.5t-30.5 42t-48 28t-55 16.5t-61.5 8t-58 2.5t-54 -1t-39.5 -0.5v-307q5 0 34.5 -0.5t46.5 0t50 2t55 5.5t51.5 11t48.5 18.5t37 27t27 38.5t9 51z" />
<glyph unicode="&#xf15b;" horiz-adv-x="1280" d="M1280 768v-800q0 -40 -28 -68t-68 -28h-1088q-40 0 -68 28t-28 68v1344q0 40 28 68t68 28h544v-544q0 -40 28 -68t68 -28h544zM1277 896h-509v509q82 -15 132 -65l312 -312q50 -50 65 -132z" />
<glyph unicode="&#xf15c;" horiz-adv-x="1280" d="M1024 160v64q0 14 -9 23t-23 9h-704q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h704q14 0 23 9t9 23zM1024 416v64q0 14 -9 23t-23 9h-704q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h704q14 0 23 9t9 23zM1280 768v-800q0 -40 -28 -68t-68 -28h-1088q-40 0 -68 28 t-28 68v1344q0 40 28 68t68 28h544v-544q0 -40 28 -68t68 -28h544zM1277 896h-509v509q82 -15 132 -65l312 -312q50 -50 65 -132z" />
<glyph unicode="&#xf15d;" horiz-adv-x="1664" d="M1191 1128h177l-72 218l-12 47q-2 16 -2 20h-4l-3 -20q0 -1 -3.5 -18t-7.5 -29zM736 96q0 -12 -10 -24l-319 -319q-10 -9 -23 -9q-12 0 -23 9l-320 320q-15 16 -7 35q8 20 30 20h192v1376q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1376h192q14 0 23 -9t9 -23zM1572 -23 v-233h-584v90l369 529q12 18 21 27l11 9v3q-2 0 -6.5 -0.5t-7.5 -0.5q-12 -3 -30 -3h-232v-115h-120v229h567v-89l-369 -530q-6 -8 -21 -26l-11 -11v-2l14 2q9 2 30 2h248v119h121zM1661 874v-106h-288v106h75l-47 144h-243l-47 -144h75v-106h-287v106h70l230 662h162 l230 -662h70z" />
<glyph unicode="&#xf15e;" horiz-adv-x="1664" d="M1191 104h177l-72 218l-12 47q-2 16 -2 20h-4l-3 -20q0 -1 -3.5 -18t-7.5 -29zM736 96q0 -12 -10 -24l-319 -319q-10 -9 -23 -9q-12 0 -23 9l-320 320q-15 16 -7 35q8 20 30 20h192v1376q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1376h192q14 0 23 -9t9 -23zM1661 -150 v-106h-288v106h75l-47 144h-243l-47 -144h75v-106h-287v106h70l230 662h162l230 -662h70zM1572 1001v-233h-584v90l369 529q12 18 21 27l11 9v3q-2 0 -6.5 -0.5t-7.5 -0.5q-12 -3 -30 -3h-232v-115h-120v229h567v-89l-369 -530q-6 -8 -21 -26l-11 -10v-3l14 3q9 1 30 1h248 v119h121z" />
<glyph unicode="&#xf160;" horiz-adv-x="1792" d="M736 96q0 -12 -10 -24l-319 -319q-10 -9 -23 -9q-12 0 -23 9l-320 320q-15 16 -7 35q8 20 30 20h192v1376q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1376h192q14 0 23 -9t9 -23zM1792 -32v-192q0 -14 -9 -23t-23 -9h-832q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h832 q14 0 23 -9t9 -23zM1600 480v-192q0 -14 -9 -23t-23 -9h-640q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h640q14 0 23 -9t9 -23zM1408 992v-192q0 -14 -9 -23t-23 -9h-448q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h448q14 0 23 -9t9 -23zM1216 1504v-192q0 -14 -9 -23t-23 -9h-256 q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h256q14 0 23 -9t9 -23z" />
<glyph unicode="&#xf161;" horiz-adv-x="1792" d="M1216 -32v-192q0 -14 -9 -23t-23 -9h-256q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h256q14 0 23 -9t9 -23zM736 96q0 -12 -10 -24l-319 -319q-10 -9 -23 -9q-12 0 -23 9l-320 320q-15 16 -7 35q8 20 30 20h192v1376q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1376h192 q14 0 23 -9t9 -23zM1408 480v-192q0 -14 -9 -23t-23 -9h-448q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h448q14 0 23 -9t9 -23zM1600 992v-192q0 -14 -9 -23t-23 -9h-640q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h640q14 0 23 -9t9 -23zM1792 1504v-192q0 -14 -9 -23t-23 -9h-832 q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h832q14 0 23 -9t9 -23z" />
<glyph unicode="&#xf162;" d="M1346 223q0 63 -44 116t-103 53q-52 0 -83 -37t-31 -94t36.5 -95t104.5 -38q50 0 85 27t35 68zM736 96q0 -12 -10 -24l-319 -319q-10 -9 -23 -9q-12 0 -23 9l-320 320q-15 16 -7 35q8 20 30 20h192v1376q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1376h192q14 0 23 -9t9 -23 zM1486 165q0 -62 -13 -121.5t-41 -114t-68 -95.5t-98.5 -65.5t-127.5 -24.5q-62 0 -108 16q-24 8 -42 15l39 113q15 -7 31 -11q37 -13 75 -13q84 0 134.5 58.5t66.5 145.5h-2q-21 -23 -61.5 -37t-84.5 -14q-106 0 -173 71.5t-67 172.5q0 105 72 178t181 73q123 0 205 -94.5 t82 -252.5zM1456 882v-114h-469v114h167v432q0 7 0.5 19t0.5 17v16h-2l-7 -12q-8 -13 -26 -31l-62 -58l-82 86l192 185h123v-654h165z" />
<glyph unicode="&#xf163;" d="M1346 1247q0 63 -44 116t-103 53q-52 0 -83 -37t-31 -94t36.5 -95t104.5 -38q50 0 85 27t35 68zM736 96q0 -12 -10 -24l-319 -319q-10 -9 -23 -9q-12 0 -23 9l-320 320q-15 16 -7 35q8 20 30 20h192v1376q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1376h192q14 0 23 -9 t9 -23zM1456 -142v-114h-469v114h167v432q0 7 0.5 19t0.5 17v16h-2l-7 -12q-8 -13 -26 -31l-62 -58l-82 86l192 185h123v-654h165zM1486 1189q0 -62 -13 -121.5t-41 -114t-68 -95.5t-98.5 -65.5t-127.5 -24.5q-62 0 -108 16q-24 8 -42 15l39 113q15 -7 31 -11q37 -13 75 -13 q84 0 134.5 58.5t66.5 145.5h-2q-21 -23 -61.5 -37t-84.5 -14q-106 0 -173 71.5t-67 172.5q0 105 72 178t181 73q123 0 205 -94.5t82 -252.5z" />
<glyph unicode="&#xf164;" horiz-adv-x="1664" d="M256 192q0 26 -19 45t-45 19q-27 0 -45.5 -19t-18.5 -45q0 -27 18.5 -45.5t45.5 -18.5q26 0 45 18.5t19 45.5zM416 704v-640q0 -26 -19 -45t-45 -19h-288q-26 0 -45 19t-19 45v640q0 26 19 45t45 19h288q26 0 45 -19t19 -45zM1600 704q0 -86 -55 -149q15 -44 15 -76 q3 -76 -43 -137q17 -56 0 -117q-15 -57 -54 -94q9 -112 -49 -181q-64 -76 -197 -78h-36h-76h-17q-66 0 -144 15.5t-121.5 29t-120.5 39.5q-123 43 -158 44q-26 1 -45 19.5t-19 44.5v641q0 25 18 43.5t43 20.5q24 2 76 59t101 121q68 87 101 120q18 18 31 48t17.5 48.5 t13.5 60.5q7 39 12.5 61t19.5 52t34 50q19 19 45 19q46 0 82.5 -10.5t60 -26t40 -40.5t24 -45t12 -50t5 -45t0.5 -39q0 -38 -9.5 -76t-19 -60t-27.5 -56q-3 -6 -10 -18t-11 -22t-8 -24h277q78 0 135 -57t57 -135z" />
<glyph unicode="&#xf165;" horiz-adv-x="1664" d="M256 960q0 -26 -19 -45t-45 -19q-27 0 -45.5 19t-18.5 45q0 27 18.5 45.5t45.5 18.5q26 0 45 -18.5t19 -45.5zM416 448v640q0 26 -19 45t-45 19h-288q-26 0 -45 -19t-19 -45v-640q0 -26 19 -45t45 -19h288q26 0 45 19t19 45zM1545 597q55 -61 55 -149q-1 -78 -57.5 -135 t-134.5 -57h-277q4 -14 8 -24t11 -22t10 -18q18 -37 27 -57t19 -58.5t10 -76.5q0 -24 -0.5 -39t-5 -45t-12 -50t-24 -45t-40 -40.5t-60 -26t-82.5 -10.5q-26 0 -45 19q-20 20 -34 50t-19.5 52t-12.5 61q-9 42 -13.5 60.5t-17.5 48.5t-31 48q-33 33 -101 120q-49 64 -101 121 t-76 59q-25 2 -43 20.5t-18 43.5v641q0 26 19 44.5t45 19.5q35 1 158 44q77 26 120.5 39.5t121.5 29t144 15.5h17h76h36q133 -2 197 -78q58 -69 49 -181q39 -37 54 -94q17 -61 0 -117q46 -61 43 -137q0 -32 -15 -76z" />
<glyph unicode="&#xf166;" d="M919 233v157q0 50 -29 50q-17 0 -33 -16v-224q16 -16 33 -16q29 0 29 49zM1103 355h66v34q0 51 -33 51t-33 -51v-34zM532 621v-70h-80v-423h-74v423h-78v70h232zM733 495v-367h-67v40q-39 -45 -76 -45q-33 0 -42 28q-6 16 -6 54v290h66v-270q0 -24 1 -26q1 -15 15 -15 q20 0 42 31v280h67zM985 384v-146q0 -52 -7 -73q-12 -42 -53 -42q-35 0 -68 41v-36h-67v493h67v-161q32 40 68 40q41 0 53 -42q7 -21 7 -74zM1236 255v-9q0 -29 -2 -43q-3 -22 -15 -40q-27 -40 -80 -40q-52 0 -81 38q-21 27 -21 86v129q0 59 20 86q29 38 80 38t78 -38 q21 -28 21 -86v-76h-133v-65q0 -51 34 -51q24 0 30 26q0 1 0.5 7t0.5 16.5v21.5h68zM785 1079v-156q0 -51 -32 -51t-32 51v156q0 52 32 52t32 -52zM1318 366q0 177 -19 260q-10 44 -43 73.5t-76 34.5q-136 15 -412 15q-275 0 -411 -15q-44 -5 -76.5 -34.5t-42.5 -73.5 q-20 -87 -20 -260q0 -176 20 -260q10 -43 42.5 -73t75.5 -35q137 -15 412 -15t412 15q43 5 75.5 35t42.5 73q20 84 20 260zM563 1017l90 296h-75l-51 -195l-53 195h-78l24 -69t23 -69q35 -103 46 -158v-201h74v201zM852 936v130q0 58 -21 87q-29 38 -78 38q-51 0 -78 -38 q-21 -29 -21 -87v-130q0 -58 21 -87q27 -38 78 -38q49 0 78 38q21 27 21 87zM1033 816h67v370h-67v-283q-22 -31 -42 -31q-15 0 -16 16q-1 2 -1 26v272h-67v-293q0 -37 6 -55q11 -27 43 -27q36 0 77 45v-40zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960 q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
<glyph unicode="&#xf167;" d="M971 292v-211q0 -67 -39 -67q-23 0 -45 22v301q22 22 45 22q39 0 39 -67zM1309 291v-46h-90v46q0 68 45 68t45 -68zM343 509h107v94h-312v-94h105v-569h100v569zM631 -60h89v494h-89v-378q-30 -42 -57 -42q-18 0 -21 21q-1 3 -1 35v364h-89v-391q0 -49 8 -73 q12 -37 58 -37q48 0 102 61v-54zM1060 88v197q0 73 -9 99q-17 56 -71 56q-50 0 -93 -54v217h-89v-663h89v48q45 -55 93 -55q54 0 71 55q9 27 9 100zM1398 98v13h-91q0 -51 -2 -61q-7 -36 -40 -36q-46 0 -46 69v87h179v103q0 79 -27 116q-39 51 -106 51q-68 0 -107 -51 q-28 -37 -28 -116v-173q0 -79 29 -116q39 -51 108 -51q72 0 108 53q18 27 21 54q2 9 2 58zM790 1011v210q0 69 -43 69t-43 -69v-210q0 -70 43 -70t43 70zM1509 260q0 -234 -26 -350q-14 -59 -58 -99t-102 -46q-184 -21 -555 -21t-555 21q-58 6 -102.5 46t-57.5 99 q-26 112 -26 350q0 234 26 350q14 59 58 99t103 47q183 20 554 20t555 -20q58 -7 102.5 -47t57.5 -99q26 -112 26 -350zM511 1536h102l-121 -399v-271h-100v271q-14 74 -61 212q-37 103 -65 187h106l71 -263zM881 1203v-175q0 -81 -28 -118q-37 -51 -106 -51q-67 0 -105 51 q-28 38 -28 118v175q0 80 28 117q38 51 105 51q69 0 106 -51q28 -37 28 -117zM1216 1365v-499h-91v55q-53 -62 -103 -62q-46 0 -59 37q-8 24 -8 75v394h91v-367q0 -33 1 -35q3 -22 21 -22q27 0 57 43v381h91z" />
<glyph unicode="&#xf168;" horiz-adv-x="1408" d="M597 869q-10 -18 -257 -456q-27 -46 -65 -46h-239q-21 0 -31 17t0 36l253 448q1 0 0 1l-161 279q-12 22 -1 37q9 15 32 15h239q40 0 66 -45zM1403 1511q11 -16 0 -37l-528 -934v-1l336 -615q11 -20 1 -37q-10 -15 -32 -15h-239q-42 0 -66 45l-339 622q18 32 531 942 q25 45 64 45h241q22 0 31 -15z" />
<glyph unicode="&#xf169;" d="M685 771q0 1 -126 222q-21 34 -52 34h-184q-18 0 -26 -11q-7 -12 1 -29l125 -216v-1l-196 -346q-9 -14 0 -28q8 -13 24 -13h185q31 0 50 36zM1309 1268q-7 12 -24 12h-187q-30 0 -49 -35l-411 -729q1 -2 262 -481q20 -35 52 -35h184q18 0 25 12q8 13 -1 28l-260 476v1 l409 723q8 16 0 28zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
<glyph unicode="&#xf16a;" horiz-adv-x="1792" d="M1280 640q0 37 -30 54l-512 320q-31 20 -65 2q-33 -18 -33 -56v-640q0 -38 33 -56q16 -8 31 -8q20 0 34 10l512 320q30 17 30 54zM1792 640q0 -96 -1 -150t-8.5 -136.5t-22.5 -147.5q-16 -73 -69 -123t-124 -58q-222 -25 -671 -25t-671 25q-71 8 -124.5 58t-69.5 123 q-14 65 -21.5 147.5t-8.5 136.5t-1 150t1 150t8.5 136.5t22.5 147.5q16 73 69 123t124 58q222 25 671 25t671 -25q71 -8 124.5 -58t69.5 -123q14 -65 21.5 -147.5t8.5 -136.5t1 -150z" />
<glyph unicode="&#xf16b;" horiz-adv-x="1792" d="M402 829l494 -305l-342 -285l-490 319zM1388 274v-108l-490 -293v-1l-1 1l-1 -1v1l-489 293v108l147 -96l342 284v2l1 -1l1 1v-2l343 -284zM554 1418l342 -285l-494 -304l-338 270zM1390 829l338 -271l-489 -319l-343 285zM1239 1418l489 -319l-338 -270l-494 304z" />
<glyph unicode="&#xf16c;" horiz-adv-x="1408" d="M928 135v-151l-707 -1v151zM1169 481v-701l-1 -35v-1h-1132l-35 1h-1v736h121v-618h928v618h120zM241 393l704 -65l-13 -150l-705 65zM309 709l683 -183l-39 -146l-683 183zM472 1058l609 -360l-77 -130l-609 360zM832 1389l398 -585l-124 -85l-399 584zM1285 1536 l121 -697l-149 -26l-121 697z" />
<glyph unicode="&#xf16d;" d="M1362 110v648h-135q20 -63 20 -131q0 -126 -64 -232.5t-174 -168.5t-240 -62q-197 0 -337 135.5t-140 327.5q0 68 20 131h-141v-648q0 -26 17.5 -43.5t43.5 -17.5h1069q25 0 43 17.5t18 43.5zM1078 643q0 124 -90.5 211.5t-218.5 87.5q-127 0 -217.5 -87.5t-90.5 -211.5 t90.5 -211.5t217.5 -87.5q128 0 218.5 87.5t90.5 211.5zM1362 1003v165q0 28 -20 48.5t-49 20.5h-174q-29 0 -49 -20.5t-20 -48.5v-165q0 -29 20 -49t49 -20h174q29 0 49 20t20 49zM1536 1211v-1142q0 -81 -58 -139t-139 -58h-1142q-81 0 -139 58t-58 139v1142q0 81 58 139 t139 58h1142q81 0 139 -58t58 -139z" />
<glyph unicode="&#xf16e;" d="M1248 1408q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960zM698 640q0 88 -62 150t-150 62t-150 -62t-62 -150t62 -150t150 -62t150 62t62 150zM1262 640q0 88 -62 150 t-150 62t-150 -62t-62 -150t62 -150t150 -62t150 62t62 150z" />
<glyph unicode="&#xf170;" d="M768 914l201 -306h-402zM1133 384h94l-459 691l-459 -691h94l104 160h522zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
<glyph unicode="&#xf171;" horiz-adv-x="1408" d="M815 677q8 -63 -50.5 -101t-111.5 -6q-39 17 -53.5 58t-0.5 82t52 58q36 18 72.5 12t64 -35.5t27.5 -67.5zM926 698q-14 107 -113 164t-197 13q-63 -28 -100.5 -88.5t-34.5 -129.5q4 -91 77.5 -155t165.5 -56q91 8 152 84t50 168zM1165 1240q-20 27 -56 44.5t-58 22 t-71 12.5q-291 47 -566 -2q-43 -7 -66 -12t-55 -22t-50 -43q30 -28 76 -45.5t73.5 -22t87.5 -11.5q228 -29 448 -1q63 8 89.5 12t72.5 21.5t75 46.5zM1222 205q-8 -26 -15.5 -76.5t-14 -84t-28.5 -70t-58 -56.5q-86 -48 -189.5 -71.5t-202 -22t-201.5 18.5q-46 8 -81.5 18 t-76.5 27t-73 43.5t-52 61.5q-25 96 -57 292l6 16l18 9q223 -148 506.5 -148t507.5 148q21 -6 24 -23t-5 -45t-8 -37zM1403 1166q-26 -167 -111 -655q-5 -30 -27 -56t-43.5 -40t-54.5 -31q-252 -126 -610 -88q-248 27 -394 139q-15 12 -25.5 26.5t-17 35t-9 34t-6 39.5 t-5.5 35q-9 50 -26.5 150t-28 161.5t-23.5 147.5t-22 158q3 26 17.5 48.5t31.5 37.5t45 30t46 22.5t48 18.5q125 46 313 64q379 37 676 -50q155 -46 215 -122q16 -20 16.5 -51t-5.5 -54z" />
<glyph unicode="&#xf172;" d="M848 666q0 43 -41 66t-77 1q-43 -20 -42.5 -72.5t43.5 -70.5q39 -23 81 4t36 72zM928 682q8 -66 -36 -121t-110 -61t-119 40t-56 113q-2 49 25.5 93t72.5 64q70 31 141.5 -10t81.5 -118zM1100 1073q-20 -21 -53.5 -34t-53 -16t-63.5 -8q-155 -20 -324 0q-44 6 -63 9.5 t-52.5 16t-54.5 32.5q13 19 36 31t40 15.5t47 8.5q198 35 408 1q33 -5 51 -8.5t43 -16t39 -31.5zM1142 327q0 7 5.5 26.5t3 32t-17.5 16.5q-161 -106 -365 -106t-366 106l-12 -6l-5 -12q26 -154 41 -210q47 -81 204 -108q249 -46 428 53q34 19 49 51.5t22.5 85.5t12.5 71z M1272 1020q9 53 -8 75q-43 55 -155 88q-216 63 -487 36q-132 -12 -226 -46q-38 -15 -59.5 -25t-47 -34t-29.5 -54q8 -68 19 -138t29 -171t24 -137q1 -5 5 -31t7 -36t12 -27t22 -28q105 -80 284 -100q259 -28 440 63q24 13 39.5 23t31 29t19.5 40q48 267 80 473zM1536 1120 v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
<glyph unicode="&#xf173;" horiz-adv-x="1024" d="M390 1408h219v-388h364v-241h-364v-394q0 -136 14 -172q13 -37 52 -60q50 -31 117 -31q117 0 232 76v-242q-102 -48 -178 -65q-77 -19 -173 -19q-105 0 -186 27q-78 25 -138 75q-58 51 -79 105q-22 54 -22 161v539h-170v217q91 30 155 84q64 55 103 132q39 78 54 196z " />
<glyph unicode="&#xf174;" d="M1123 127v181q-88 -56 -174 -56q-51 0 -88 23q-29 17 -39 45q-11 30 -11 129v295h274v181h-274v291h-164q-11 -90 -40 -147t-78 -99q-48 -40 -116 -63v-163h127v-404q0 -78 17 -121q17 -42 59 -78q43 -37 104 -57q62 -20 140 -20q67 0 129 14q57 13 134 49zM1536 1120 v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
<glyph unicode="&#xf175;" horiz-adv-x="768" d="M765 237q8 -19 -5 -35l-350 -384q-10 -10 -23 -10q-14 0 -24 10l-355 384q-13 16 -5 35q9 19 29 19h224v1248q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1248h224q21 0 29 -19z" />
<glyph unicode="&#xf176;" horiz-adv-x="768" d="M765 1043q-9 -19 -29 -19h-224v-1248q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v1248h-224q-21 0 -29 19t5 35l350 384q10 10 23 10q14 0 24 -10l355 -384q13 -16 5 -35z" />
<glyph unicode="&#xf177;" horiz-adv-x="1792" d="M1792 736v-192q0 -14 -9 -23t-23 -9h-1248v-224q0 -21 -19 -29t-35 5l-384 350q-10 10 -10 23q0 14 10 24l384 354q16 14 35 6q19 -9 19 -29v-224h1248q14 0 23 -9t9 -23z" />
<glyph unicode="&#xf178;" horiz-adv-x="1792" d="M1728 643q0 -14 -10 -24l-384 -354q-16 -14 -35 -6q-19 9 -19 29v224h-1248q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h1248v224q0 21 19 29t35 -5l384 -350q10 -10 10 -23z" />
<glyph unicode="&#xf179;" horiz-adv-x="1408" d="M1393 321q-39 -125 -123 -250q-129 -196 -257 -196q-49 0 -140 32q-86 32 -151 32q-61 0 -142 -33q-81 -34 -132 -34q-152 0 -301 259q-147 261 -147 503q0 228 113 374q112 144 284 144q72 0 177 -30q104 -30 138 -30q45 0 143 34q102 34 173 34q119 0 213 -65 q52 -36 104 -100q-79 -67 -114 -118q-65 -94 -65 -207q0 -124 69 -223t158 -126zM1017 1494q0 -61 -29 -136q-30 -75 -93 -138q-54 -54 -108 -72q-37 -11 -104 -17q3 149 78 257q74 107 250 148q1 -3 2.5 -11t2.5 -11q0 -4 0.5 -10t0.5 -10z" />
<glyph unicode="&#xf17a;" horiz-adv-x="1664" d="M682 530v-651l-682 94v557h682zM682 1273v-659h-682v565zM1664 530v-786l-907 125v661h907zM1664 1408v-794h-907v669z" />
<glyph unicode="&#xf17b;" horiz-adv-x="1408" d="M493 1053q16 0 27.5 11.5t11.5 27.5t-11.5 27.5t-27.5 11.5t-27 -11.5t-11 -27.5t11 -27.5t27 -11.5zM915 1053q16 0 27 11.5t11 27.5t-11 27.5t-27 11.5t-27.5 -11.5t-11.5 -27.5t11.5 -27.5t27.5 -11.5zM103 869q42 0 72 -30t30 -72v-430q0 -43 -29.5 -73t-72.5 -30 t-73 30t-30 73v430q0 42 30 72t73 30zM1163 850v-666q0 -46 -32 -78t-77 -32h-75v-227q0 -43 -30 -73t-73 -30t-73 30t-30 73v227h-138v-227q0 -43 -30 -73t-73 -30q-42 0 -72 30t-30 73l-1 227h-74q-46 0 -78 32t-32 78v666h918zM931 1255q107 -55 171 -153.5t64 -215.5 h-925q0 117 64 215.5t172 153.5l-71 131q-7 13 5 20q13 6 20 -6l72 -132q95 42 201 42t201 -42l72 132q7 12 20 6q12 -7 5 -20zM1408 767v-430q0 -43 -30 -73t-73 -30q-42 0 -72 30t-30 73v430q0 43 30 72.5t72 29.5q43 0 73 -29.5t30 -72.5z" />
<glyph unicode="&#xf17c;" d="M663 1125q-11 -1 -15.5 -10.5t-8.5 -9.5q-5 -1 -5 5q0 12 19 15h10zM750 1111q-4 -1 -11.5 6.5t-17.5 4.5q24 11 32 -2q3 -6 -3 -9zM399 684q-4 1 -6 -3t-4.5 -12.5t-5.5 -13.5t-10 -13q-7 -10 -1 -12q4 -1 12.5 7t12.5 18q1 3 2 7t2 6t1.5 4.5t0.5 4v3t-1 2.5t-3 2z M1254 325q0 18 -55 42q4 15 7.5 27.5t5 26t3 21.5t0.5 22.5t-1 19.5t-3.5 22t-4 20.5t-5 25t-5.5 26.5q-10 48 -47 103t-72 75q24 -20 57 -83q87 -162 54 -278q-11 -40 -50 -42q-31 -4 -38.5 18.5t-8 83.5t-11.5 107q-9 39 -19.5 69t-19.5 45.5t-15.5 24.5t-13 15t-7.5 7 q-14 62 -31 103t-29.5 56t-23.5 33t-15 40q-4 21 6 53.5t4.5 49.5t-44.5 25q-15 3 -44.5 18t-35.5 16q-8 1 -11 26t8 51t36 27q37 3 51 -30t4 -58q-11 -19 -2 -26.5t30 -0.5q13 4 13 36v37q-5 30 -13.5 50t-21 30.5t-23.5 15t-27 7.5q-107 -8 -89 -134q0 -15 -1 -15 q-9 9 -29.5 10.5t-33 -0.5t-15.5 5q1 57 -16 90t-45 34q-27 1 -41.5 -27.5t-16.5 -59.5q-1 -15 3.5 -37t13 -37.5t15.5 -13.5q10 3 16 14q4 9 -7 8q-7 0 -15.5 14.5t-9.5 33.5q-1 22 9 37t34 14q17 0 27 -21t9.5 -39t-1.5 -22q-22 -15 -31 -29q-8 -12 -27.5 -23.5 t-20.5 -12.5q-13 -14 -15.5 -27t7.5 -18q14 -8 25 -19.5t16 -19t18.5 -13t35.5 -6.5q47 -2 102 15q2 1 23 7t34.5 10.5t29.5 13t21 17.5q9 14 20 8q5 -3 6.5 -8.5t-3 -12t-16.5 -9.5q-20 -6 -56.5 -21.5t-45.5 -19.5q-44 -19 -70 -23q-25 -5 -79 2q-10 2 -9 -2t17 -19 q25 -23 67 -22q17 1 36 7t36 14t33.5 17.5t30 17t24.5 12t17.5 2.5t8.5 -11q0 -2 -1 -4.5t-4 -5t-6 -4.5t-8.5 -5t-9 -4.5t-10 -5t-9.5 -4.5q-28 -14 -67.5 -44t-66.5 -43t-49 -1q-21 11 -63 73q-22 31 -25 22q-1 -3 -1 -10q0 -25 -15 -56.5t-29.5 -55.5t-21 -58t11.5 -63 q-23 -6 -62.5 -90t-47.5 -141q-2 -18 -1.5 -69t-5.5 -59q-8 -24 -29 -3q-32 31 -36 94q-2 28 4 56q4 19 -1 18l-4 -5q-36 -65 10 -166q5 -12 25 -28t24 -20q20 -23 104 -90.5t93 -76.5q16 -15 17.5 -38t-14 -43t-45.5 -23q8 -15 29 -44.5t28 -54t7 -70.5q46 24 7 92 q-4 8 -10.5 16t-9.5 12t-2 6q3 5 13 9.5t20 -2.5q46 -52 166 -36q133 15 177 87q23 38 34 30q12 -6 10 -52q-1 -25 -23 -92q-9 -23 -6 -37.5t24 -15.5q3 19 14.5 77t13.5 90q2 21 -6.5 73.5t-7.5 97t23 70.5q15 18 51 18q1 37 34.5 53t72.5 10.5t60 -22.5zM626 1152 q3 17 -2.5 30t-11.5 15q-9 2 -9 -7q2 -5 5 -6q10 0 7 -15q-3 -20 8 -20q3 0 3 3zM1045 955q-2 8 -6.5 11.5t-13 5t-14.5 5.5q-5 3 -9.5 8t-7 8t-5.5 6.5t-4 4t-4 -1.5q-14 -16 7 -43.5t39 -31.5q9 -1 14.5 8t3.5 20zM867 1168q0 11 -5 19.5t-11 12.5t-9 3q-14 -1 -7 -7l4 -2 q14 -4 18 -31q0 -3 8 2zM921 1401q0 2 -2.5 5t-9 7t-9.5 6q-15 15 -24 15q-9 -1 -11.5 -7.5t-1 -13t-0.5 -12.5q-1 -4 -6 -10.5t-6 -9t3 -8.5q4 -3 8 0t11 9t15 9q1 1 9 1t15 2t9 7zM1486 60q20 -12 31 -24.5t12 -24t-2.5 -22.5t-15.5 -22t-23.5 -19.5t-30 -18.5 t-31.5 -16.5t-32 -15.5t-27 -13q-38 -19 -85.5 -56t-75.5 -64q-17 -16 -68 -19.5t-89 14.5q-18 9 -29.5 23.5t-16.5 25.5t-22 19.5t-47 9.5q-44 1 -130 1q-19 0 -57 -1.5t-58 -2.5q-44 -1 -79.5 -15t-53.5 -30t-43.5 -28.5t-53.5 -11.5q-29 1 -111 31t-146 43q-19 4 -51 9.5 t-50 9t-39.5 9.5t-33.5 14.5t-17 19.5q-10 23 7 66.5t18 54.5q1 16 -4 40t-10 42.5t-4.5 36.5t10.5 27q14 12 57 14t60 12q30 18 42 35t12 51q21 -73 -32 -106q-32 -20 -83 -15q-34 3 -43 -10q-13 -15 5 -57q2 -6 8 -18t8.5 -18t4.5 -17t1 -22q0 -15 -17 -49t-14 -48 q3 -17 37 -26q20 -6 84.5 -18.5t99.5 -20.5q24 -6 74 -22t82.5 -23t55.5 -4q43 6 64.5 28t23 48t-7.5 58.5t-19 52t-20 36.5q-121 190 -169 242q-68 74 -113 40q-11 -9 -15 15q-3 16 -2 38q1 29 10 52t24 47t22 42q8 21 26.5 72t29.5 78t30 61t39 54q110 143 124 195 q-12 112 -16 310q-2 90 24 151.5t106 104.5q39 21 104 21q53 1 106 -13.5t89 -41.5q57 -42 91.5 -121.5t29.5 -147.5q-5 -95 30 -214q34 -113 133 -218q55 -59 99.5 -163t59.5 -191q8 -49 5 -84.5t-12 -55.5t-20 -22q-10 -2 -23.5 -19t-27 -35.5t-40.5 -33.5t-61 -14 q-18 1 -31.5 5t-22.5 13.5t-13.5 15.5t-11.5 20.5t-9 19.5q-22 37 -41 30t-28 -49t7 -97q20 -70 1 -195q-10 -65 18 -100.5t73 -33t85 35.5q59 49 89.5 66.5t103.5 42.5q53 18 77 36.5t18.5 34.5t-25 28.5t-51.5 23.5q-33 11 -49.5 48t-15 72.5t15.5 47.5q1 -31 8 -56.5 t14.5 -40.5t20.5 -28.5t21 -19t21.5 -13t16.5 -9.5z" />
<glyph unicode="&#xf17d;" d="M1024 36q-42 241 -140 498h-2l-2 -1q-16 -6 -43 -16.5t-101 -49t-137 -82t-131 -114.5t-103 -148l-15 11q184 -150 418 -150q132 0 256 52zM839 643q-21 49 -53 111q-311 -93 -673 -93q-1 -7 -1 -21q0 -124 44 -236.5t124 -201.5q50 89 123.5 166.5t142.5 124.5t130.5 81 t99.5 48l37 13q4 1 13 3.5t13 4.5zM732 855q-120 213 -244 378q-138 -65 -234 -186t-128 -272q302 0 606 80zM1416 536q-210 60 -409 29q87 -239 128 -469q111 75 185 189.5t96 250.5zM611 1277q-1 0 -2 -1q1 1 2 1zM1201 1132q-185 164 -433 164q-76 0 -155 -19 q131 -170 246 -382q69 26 130 60.5t96.5 61.5t65.5 57t37.5 40.5zM1424 647q-3 232 -149 410l-1 -1q-9 -12 -19 -24.5t-43.5 -44.5t-71 -60.5t-100 -65t-131.5 -64.5q25 -53 44 -95q2 -6 6.5 -17.5t7.5 -16.5q36 5 74.5 7t73.5 2t69 -1.5t64 -4t56.5 -5.5t48 -6.5t36.5 -6 t25 -4.5zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
<glyph unicode="&#xf17e;" d="M1173 473q0 50 -19.5 91.5t-48.5 68.5t-73 49t-82.5 34t-87.5 23l-104 24q-30 7 -44 10.5t-35 11.5t-30 16t-16.5 21t-7.5 30q0 77 144 77q43 0 77 -12t54 -28.5t38 -33.5t40 -29t48 -12q47 0 75.5 32t28.5 77q0 55 -56 99.5t-142 67.5t-182 23q-68 0 -132 -15.5 t-119.5 -47t-89 -87t-33.5 -128.5q0 -61 19 -106.5t56 -75.5t80 -48.5t103 -32.5l146 -36q90 -22 112 -36q32 -20 32 -60q0 -39 -40 -64.5t-105 -25.5q-51 0 -91.5 16t-65 38.5t-45.5 45t-46 38.5t-54 16q-50 0 -75.5 -30t-25.5 -75q0 -92 122 -157.5t291 -65.5 q73 0 140 18.5t122.5 53.5t88.5 93.5t33 131.5zM1536 256q0 -159 -112.5 -271.5t-271.5 -112.5q-130 0 -234 80q-77 -16 -150 -16q-143 0 -273.5 55.5t-225 150t-150 225t-55.5 273.5q0 73 16 150q-80 104 -80 234q0 159 112.5 271.5t271.5 112.5q130 0 234 -80 q77 16 150 16q143 0 273.5 -55.5t225 -150t150 -225t55.5 -273.5q0 -73 -16 -150q80 -104 80 -234z" />
<glyph unicode="&#xf180;" horiz-adv-x="1664" d="M1483 512l-587 -587q-52 -53 -127.5 -53t-128.5 53l-587 587q-53 53 -53 128t53 128l587 587q53 53 128 53t128 -53l265 -265l-398 -399l-188 188q-42 42 -99 42q-59 0 -100 -41l-120 -121q-42 -40 -42 -99q0 -58 42 -100l406 -408q30 -28 67 -37l6 -4h28q60 0 99 41 l619 619l2 -3q53 -53 53 -128t-53 -128zM1406 1138l120 -120q14 -15 14 -36t-14 -36l-730 -730q-17 -15 -37 -15v0q-4 0 -6 1q-18 2 -30 14l-407 408q-14 15 -14 36t14 35l121 120q13 15 35 15t36 -15l252 -252l574 575q15 15 36 15t36 -15z" />
<glyph unicode="&#xf181;" d="M704 192v1024q0 14 -9 23t-23 9h-480q-14 0 -23 -9t-9 -23v-1024q0 -14 9 -23t23 -9h480q14 0 23 9t9 23zM1376 576v640q0 14 -9 23t-23 9h-480q-14 0 -23 -9t-9 -23v-640q0 -14 9 -23t23 -9h480q14 0 23 9t9 23zM1536 1344v-1408q0 -26 -19 -45t-45 -19h-1408 q-26 0 -45 19t-19 45v1408q0 26 19 45t45 19h1408q26 0 45 -19t19 -45z" />
<glyph unicode="&#xf182;" horiz-adv-x="1280" d="M1280 480q0 -40 -28 -68t-68 -28q-51 0 -80 43l-227 341h-45v-132l247 -411q9 -15 9 -33q0 -26 -19 -45t-45 -19h-192v-272q0 -46 -33 -79t-79 -33h-160q-46 0 -79 33t-33 79v272h-192q-26 0 -45 19t-19 45q0 18 9 33l247 411v132h-45l-227 -341q-29 -43 -80 -43 q-40 0 -68 28t-28 68q0 29 16 53l256 384q73 107 176 107h384q103 0 176 -107l256 -384q16 -24 16 -53zM864 1280q0 -93 -65.5 -158.5t-158.5 -65.5t-158.5 65.5t-65.5 158.5t65.5 158.5t158.5 65.5t158.5 -65.5t65.5 -158.5z" />
<glyph unicode="&#xf183;" horiz-adv-x="1024" d="M1024 832v-416q0 -40 -28 -68t-68 -28t-68 28t-28 68v352h-64v-912q0 -46 -33 -79t-79 -33t-79 33t-33 79v464h-64v-464q0 -46 -33 -79t-79 -33t-79 33t-33 79v912h-64v-352q0 -40 -28 -68t-68 -28t-68 28t-28 68v416q0 80 56 136t136 56h640q80 0 136 -56t56 -136z M736 1280q0 -93 -65.5 -158.5t-158.5 -65.5t-158.5 65.5t-65.5 158.5t65.5 158.5t158.5 65.5t158.5 -65.5t65.5 -158.5z" />
<glyph unicode="&#xf184;" d="M773 234l350 473q16 22 24.5 59t-6 85t-61.5 79q-40 26 -83 25.5t-73.5 -17.5t-54.5 -45q-36 -40 -96 -40q-59 0 -95 40q-24 28 -54.5 45t-73.5 17.5t-84 -25.5q-46 -31 -60.5 -79t-6 -85t24.5 -59zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103 t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
<glyph unicode="&#xf185;" horiz-adv-x="1792" d="M1472 640q0 117 -45.5 223.5t-123 184t-184 123t-223.5 45.5t-223.5 -45.5t-184 -123t-123 -184t-45.5 -223.5t45.5 -223.5t123 -184t184 -123t223.5 -45.5t223.5 45.5t184 123t123 184t45.5 223.5zM1748 363q-4 -15 -20 -20l-292 -96v-306q0 -16 -13 -26q-15 -10 -29 -4 l-292 94l-180 -248q-10 -13 -26 -13t-26 13l-180 248l-292 -94q-14 -6 -29 4q-13 10 -13 26v306l-292 96q-16 5 -20 20q-5 17 4 29l180 248l-180 248q-9 13 -4 29q4 15 20 20l292 96v306q0 16 13 26q15 10 29 4l292 -94l180 248q9 12 26 12t26 -12l180 -248l292 94 q14 6 29 -4q13 -10 13 -26v-306l292 -96q16 -5 20 -20q5 -16 -4 -29l-180 -248l180 -248q9 -12 4 -29z" />
<glyph unicode="&#xf186;" d="M1262 233q-54 -9 -110 -9q-182 0 -337 90t-245 245t-90 337q0 192 104 357q-201 -60 -328.5 -229t-127.5 -384q0 -130 51 -248.5t136.5 -204t204 -136.5t248.5 -51q144 0 273.5 61.5t220.5 171.5zM1465 318q-94 -203 -283.5 -324.5t-413.5 -121.5q-156 0 -298 61 t-245 164t-164 245t-61 298q0 153 57.5 292.5t156 241.5t235.5 164.5t290 68.5q44 2 61 -39q18 -41 -15 -72q-86 -78 -131.5 -181.5t-45.5 -218.5q0 -148 73 -273t198 -198t273 -73q118 0 228 51q41 18 72 -13q14 -14 17.5 -34t-4.5 -38z" />
<glyph unicode="&#xf187;" horiz-adv-x="1792" d="M1088 704q0 26 -19 45t-45 19h-256q-26 0 -45 -19t-19 -45t19 -45t45 -19h256q26 0 45 19t19 45zM1664 896v-960q0 -26 -19 -45t-45 -19h-1408q-26 0 -45 19t-19 45v960q0 26 19 45t45 19h1408q26 0 45 -19t19 -45zM1728 1344v-256q0 -26 -19 -45t-45 -19h-1536 q-26 0 -45 19t-19 45v256q0 26 19 45t45 19h1536q26 0 45 -19t19 -45z" />
<glyph unicode="&#xf188;" horiz-adv-x="1664" d="M1632 576q0 -26 -19 -45t-45 -19h-224q0 -171 -67 -290l208 -209q19 -19 19 -45t-19 -45q-18 -19 -45 -19t-45 19l-198 197q-5 -5 -15 -13t-42 -28.5t-65 -36.5t-82 -29t-97 -13v896h-128v-896q-51 0 -101.5 13.5t-87 33t-66 39t-43.5 32.5l-15 14l-183 -207 q-20 -21 -48 -21q-24 0 -43 16q-19 18 -20.5 44.5t15.5 46.5l202 227q-58 114 -58 274h-224q-26 0 -45 19t-19 45t19 45t45 19h224v294l-173 173q-19 19 -19 45t19 45t45 19t45 -19l173 -173h844l173 173q19 19 45 19t45 -19t19 -45t-19 -45l-173 -173v-294h224q26 0 45 -19 t19 -45zM1152 1152h-640q0 133 93.5 226.5t226.5 93.5t226.5 -93.5t93.5 -226.5z" />
<glyph unicode="&#xf189;" horiz-adv-x="1920" d="M1917 1016q23 -64 -150 -294q-24 -32 -65 -85q-78 -100 -90 -131q-17 -41 14 -81q17 -21 81 -82h1l1 -1l1 -1l2 -2q141 -131 191 -221q3 -5 6.5 -12.5t7 -26.5t-0.5 -34t-25 -27.5t-59 -12.5l-256 -4q-24 -5 -56 5t-52 22l-20 12q-30 21 -70 64t-68.5 77.5t-61 58 t-56.5 15.5q-3 -1 -8 -3.5t-17 -14.5t-21.5 -29.5t-17 -52t-6.5 -77.5q0 -15 -3.5 -27.5t-7.5 -18.5l-4 -5q-18 -19 -53 -22h-115q-71 -4 -146 16.5t-131.5 53t-103 66t-70.5 57.5l-25 24q-10 10 -27.5 30t-71.5 91t-106 151t-122.5 211t-130.5 272q-6 16 -6 27t3 16l4 6 q15 19 57 19l274 2q12 -2 23 -6.5t16 -8.5l5 -3q16 -11 24 -32q20 -50 46 -103.5t41 -81.5l16 -29q29 -60 56 -104t48.5 -68.5t41.5 -38.5t34 -14t27 5q2 1 5 5t12 22t13.5 47t9.5 81t0 125q-2 40 -9 73t-14 46l-6 12q-25 34 -85 43q-13 2 5 24q17 19 38 30q53 26 239 24 q82 -1 135 -13q20 -5 33.5 -13.5t20.5 -24t10.5 -32t3.5 -45.5t-1 -55t-2.5 -70.5t-1.5 -82.5q0 -11 -1 -42t-0.5 -48t3.5 -40.5t11.5 -39t22.5 -24.5q8 -2 17 -4t26 11t38 34.5t52 67t68 107.5q60 104 107 225q4 10 10 17.5t11 10.5l4 3l5 2.5t13 3t20 0.5l288 2 q39 5 64 -2.5t31 -16.5z" />
<glyph unicode="&#xf18a;" horiz-adv-x="1792" d="M675 252q21 34 11 69t-45 50q-34 14 -73 1t-60 -46q-22 -34 -13 -68.5t43 -50.5t74.5 -2.5t62.5 47.5zM769 373q8 13 3.5 26.5t-17.5 18.5q-14 5 -28.5 -0.5t-21.5 -18.5q-17 -31 13 -45q14 -5 29 0.5t22 18.5zM943 266q-45 -102 -158 -150t-224 -12 q-107 34 -147.5 126.5t6.5 187.5q47 93 151.5 139t210.5 19q111 -29 158.5 -119.5t2.5 -190.5zM1255 426q-9 96 -89 170t-208.5 109t-274.5 21q-223 -23 -369.5 -141.5t-132.5 -264.5q9 -96 89 -170t208.5 -109t274.5 -21q223 23 369.5 141.5t132.5 264.5zM1563 422 q0 -68 -37 -139.5t-109 -137t-168.5 -117.5t-226 -83t-270.5 -31t-275 33.5t-240.5 93t-171.5 151t-65 199.5q0 115 69.5 245t197.5 258q169 169 341.5 236t246.5 -7q65 -64 20 -209q-4 -14 -1 -20t10 -7t14.5 0.5t13.5 3.5l6 2q139 59 246 59t153 -61q45 -63 0 -178 q-2 -13 -4.5 -20t4.5 -12.5t12 -7.5t17 -6q57 -18 103 -47t80 -81.5t34 -116.5zM1489 1046q42 -47 54.5 -108.5t-6.5 -117.5q-8 -23 -29.5 -34t-44.5 -4q-23 8 -34 29.5t-4 44.5q20 63 -24 111t-107 35q-24 -5 -45 8t-25 37q-5 24 8 44.5t37 25.5q60 13 119 -5.5t101 -65.5z M1670 1209q87 -96 112.5 -222.5t-13.5 -241.5q-9 -27 -34 -40t-52 -4t-40 34t-5 52q28 82 10 172t-80 158q-62 69 -148 95.5t-173 8.5q-28 -6 -52 9.5t-30 43.5t9.5 51.5t43.5 29.5q123 26 244 -11.5t208 -134.5z" />
<glyph unicode="&#xf18b;" horiz-adv-x="1920" d="M805 163q-122 -67 -261 -67q-141 0 -261 67q98 61 167 149t94 191q25 -103 94 -191t167 -149zM453 1176v-344q0 -179 -89.5 -326t-234.5 -217q-129 152 -129 351q0 200 129.5 352t323.5 184zM958 991q-128 -152 -128 -351q0 -201 128 -351q-145 70 -234.5 218t-89.5 328 v341q196 -33 324 -185zM1638 163q-122 -67 -261 -67q-141 0 -261 67q98 61 167 149t94 191q25 -103 94 -191t167 -149zM1286 1176v-344q0 -179 -91 -326t-237 -217v0q133 154 133 351q0 195 -133 351q129 151 328 185zM1920 640q0 -201 -129 -351q-145 70 -234.5 218 t-89.5 328v341q194 -32 323.5 -184t129.5 -352z" />
<glyph unicode="&#xf18c;" horiz-adv-x="1792" />
<glyph unicode="&#xf18d;" horiz-adv-x="1792" />
<glyph unicode="&#xf18e;" horiz-adv-x="1792" />
<glyph unicode="&#xf500;" horiz-adv-x="1792" />
</font>
</defs></svg>

After

Width:  |  Height:  |  Size: 193 KiB

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,23 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
id="svg4"
xml:space="preserve"
enable-background="new 0 0 6 3"
viewBox="0 0 6 3"
height="3px"
width="24px"
y="0px"
x="12px"
version="1.1"><metadata
id="metadata10"><rdf:RDF><cc:Work
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
id="defs8" /><polygon
style="fill:#000000;fill-opacity:1"
id="polygon2"
points="5.992,0 2.992,3 -0.008,0 " /></svg>

After

Width:  |  Height:  |  Size: 832 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

File diff suppressed because it is too large Load Diff

Before

Width:  |  Height:  |  Size: 107 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 138 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 105 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 570 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 206 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 244 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 195 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 34 KiB

File diff suppressed because it is too large Load Diff

Before

Width:  |  Height:  |  Size: 123 KiB

View File

@@ -1,72 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 17.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="386.638px" height="320px" viewBox="-31.319 2 386.638 320" enable-background="new -31.319 2 386.638 320"
xml:space="preserve">
<g>
<path fill="#ABDBD0" d="M331.518,159.254c-13.147,0-23.805,26.723-23.805,59.69c0,32.96,10.658,59.685,23.805,59.685
c13.142,0,23.801-26.725,23.801-59.685C355.319,185.977,344.66,159.254,331.518,159.254z M332.114,255.185
c-8.06,0-14.593-15.746-14.593-35.167s6.533-35.165,14.593-35.165c8.059,0,14.594,15.743,14.594,35.165
S340.173,255.185,332.114,255.185z"/>
<path fill="#ABDBD0" d="M304.557,219.468c0-36.244,11.718-65.623,26.171-65.623c2.107,0,4.154,0.642,6.116,1.823
c-10.469-8.709-35.108-4.515-46.498-2.514c-2.139,3.216-3.572,6.079-4.237,7.624c-3.91,9.023-7.063,22.001-7.063,22.001
l-11.863-0.291l11.689,55.666h-17.909c2.54,25.911,10.809,43.072,25.314,46.94c0,0,30.567,4.944,45.693-0.081
c-0.414,0.046-0.828,0.081-1.243,0.081C316.273,285.091,304.557,255.707,304.557,219.468z"/>
<path fill="#ABDBD0" d="M64.393,237.666c0-46.574,34.058-84.332,76.072-84.332c1.812,0,3.605,0.095,5.386,0.234
c-5.466-1.08-11.117-1.655-16.903-1.655c-47.453,0-85.919,38.074-85.919,85.044c0,46.967,38.467,85.042,85.919,85.042
c2.052,0,4.08-0.097,6.096-0.238C95.562,318.679,64.393,282.219,64.393,237.666z"/>
<path fill="#ABDBD0" d="M122.02,149.109c44.188-2.104,67.371,17.402,79.829,34.057l3.027-2.314l4.452-5.008l28.39,7.793
l10.02,52.325h27.275l-11.689-55.667l11.861,0.291c0,0,3.157-12.974,7.066-22c1.977-4.57,10.576-20.597,24.492-23.378
c13.917-2.784,26.31,15.218,26.31,15.218l-6.824-19.114l-25.606-9.464l-7.794-42.304l11.689-7.236l-1.114-11.69l-64.57-23.38
l-82.387,19.483V66.74l13.361,3.341l-8.908,25.608c0,0-23.709-3.198-47.031-1.02c-27.244,2.543-54.707,10.521-54.707,10.521
l-7.365,14.434l-5.009,66.242l2.983,0.565l5.182-59.414l70.49-6.662L122.02,149.109L122.02,149.109z M65.958,118.276
c-3.541,0.556-6.775-1.29-7.219-4.123c-0.446-2.835,2.065-5.583,5.606-6.139c3.543-0.556,6.776,1.288,7.22,4.124
C72.011,114.972,69.5,117.719,65.958,118.276z M107.793,115.428c-4.711,0.741-9.011-1.713-9.603-5.483
c-0.592-3.77,2.748-7.425,7.458-8.167c4.713-0.741,9.014,1.717,9.604,5.484C115.845,111.034,112.505,114.689,107.793,115.428z
M225.388,109.481h-19.989L166.472,98.96l7.715-25.25l57.162-10.17L225.388,109.481z M252.39,181.723l-17.886-0.702l7.015-117.482
l30.508,9.469l5.612,49.447L252.39,181.723z M282.025,122.017l-6.135-47.956l14.378,7.715l7.015,43.925L282.025,122.017z"/>
<path fill="#ABDBD0" d="M147.008,91.476V57.053h-6.84V41.534c-0.001-8.57-6.945-15.515-15.517-15.519v6.314
c5.083,0.008,9.198,4.123,9.206,9.204v15.519h-6.312v33.7C134.962,90.733,141.75,91.082,147.008,91.476z"/>
<path fill="#ABDBD0" d="M-22.811,227.408c0-33.523,28.628-60.694,63.942-60.694c1.17,0,2.333,0.034,3.487,0.094l0.406-5.338
c-2.084-0.176-4.193-0.274-6.325-0.274c-38.67-0.001-70.018,29.602-70.018,66.12c0,36.522,31.348,66.125,70.018,66.125
c6.585,0,12.95-0.877,18.994-2.483c-1.019-1.387-1.98-2.814-2.918-4.26c-4.397,0.909-8.959,1.4-13.642,1.4
C5.817,288.099-22.811,260.925-22.811,227.408z"/>
<path fill="#ABDBD0" d="M10.539,226.003c0-18.358,16.222-33.24,36.233-33.24c2.119,0,4.189,0.176,6.207,0.497
c0.214-0.435,0.437-0.864,0.675-1.295l-10.952-2.055l1.408-18.469c-1.078-0.059-2.159-0.087-3.249-0.087
c-32.898,0-59.568,25.249-59.568,56.395c0,31.139,26.67,56.388,59.568,56.388c4.363,0,8.614-0.457,12.71-1.299
c-4.71-7.248-8.31-15.242-10.552-23.764C24.771,257.346,10.539,243.2,10.539,226.003z"/>
<g>
<polygon fill="#ABDBD0" points="121.189,130.962 56.135,136.089 56.662,129.208 122.02,123.859 "/>
<polygon fill="#ABDBD0" points="120.531,141.218 55.478,146.347 56.004,139.465 121.364,134.116 "/>
<path fill="#ABDBD0" d="M120.311,143.455l-65.36,5.348l-0.526,6.882l50.139-3.953c4.875-1.368,9.922-2.336,15.109-2.83
L120.311,143.455z"/>
<path fill="#ABDBD0" d="M54.293,159.059l-0.527,6.883l24.851-1.96c4.491-3.131,9.296-5.842,14.364-8.088L54.293,159.059z"/>
<path fill="#ABDBD0" d="M72.954,168.275l-19.187,1.571l-0.526,6.882l11.721-0.926C67.461,173.128,70.129,170.612,72.954,168.275z"
/>
<path fill="#ABDBD0" d="M52.847,179.313l-0.526,6.882l4.571-0.362c1.745-2.542,3.636-4.978,5.641-7.313L52.847,179.313z"/>
</g>
<circle fill="#ABDBD0" cx="140.958" cy="239.852" r="19.726"/>
<ellipse fill="#ABDBD0" cx="328.491" cy="218.807" rx="4.487" ry="12.775"/>
<g>
<circle fill="#ABDBD0" cx="162.134" cy="223.81" r="2.781"/>
<circle fill="#ABDBD0" cx="133.371" cy="215.827" r="2.781"/>
<circle fill="#ABDBD0" cx="115.492" cy="239.462" r="2.781"/>
<circle fill="#ABDBD0" cx="131.915" cy="265.616" r="2.781"/>
<circle fill="#ABDBD0" cx="161.682" cy="255.915" r="2.783"/>
</g>
<path fill="#ABDBD0" d="M126.341,6.21c-9.103,0-16.483,7.379-16.483,16.482c0,2.76,0.686,5.357,1.886,7.641
c-2.135-2.062-3.7-4.699-4.48-7.655l0,0c-0.538,0.587-1.051,1.203-1.509,1.884c-5.088,7.548-3.096,17.791,4.454,22.881
c2.287,1.542,4.825,2.424,7.39,2.708c-4.22,0.898-8.783,0.158-12.644-2.444c-7.548-5.088-9.542-15.333-4.452-22.881
c1.634-2.423,3.81-4.247,6.245-5.472c-0.014-0.289-0.046-0.574-0.046-0.869c0-3.665,1.211-7.038,3.233-9.775l-0.001,0.001
c-0.855-0.185-1.731-0.312-2.642-0.312c-7.101,0-12.857,5.756-12.857,12.858c0,2.152,0.535,4.177,1.472,5.959
c-2.421-2.337-3.933-5.611-3.933-9.241c0-7.101,5.756-12.857,12.856-12.857c2.414,0,4.663,0.675,6.591,1.833
c-0.004,0.002-0.004,0.004-0.006,0.005C114.405,3.9,118.571,2,123.185,2c6.343,0,11.841,3.588,14.598,8.842
C134.817,7.98,130.789,6.21,126.341,6.21z"/>
<path fill="#ABDBD0" d="M188.32,300.982c-0.004,0-0.006,0.002-0.008,0.004c19.094-15.154,31.275-38.079,31.275-63.757
c0-40.085-29.659-73.5-69.016-81.055c-1.782-0.134-3.574-0.227-5.385-0.227c-42.013,0-76.072,36.7-76.072,81.97
c0,43.31,31.169,78.747,70.65,81.743c7.991-0.539,15.673-2.145,22.914-4.642L188.32,300.982z M144.663,286.068
c-23.696,0-42.907-20.166-42.907-45.041c0-24.878,19.211-45.042,42.907-45.042c23.697,0,42.908,20.166,42.908,45.042
C187.571,265.902,168.359,286.068,144.663,286.068z"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 6.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 540 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 534 B

View File

@@ -0,0 +1,2 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="28px" height="33px" enable-background="new 0 0 28 33" version="1.1" viewBox="0 0 28 33" xmlns="http://www.w3.org/2000/svg"><path d="M14,25c-6.059,0-10.988,1.679-10.988,3.333c0,2.485,10.307,4.542,10.746,4.643 C13.828,32.992,13.914,33,14,33c0.084,0,0.17-0.008,0.239-0.023c0.439-0.099,10.749-2.114,10.749-4.643 C24.988,26.679,20.059,25,14,25z" fill="#282828" opacity=".25"/><path d="M14,0C6.28,0,0,6.717,0,13.332c0,9.941,13.132,18.169,13.691,18.572C13.78,31.968,13.891,32,14,32 c0.107,0,0.217-0.031,0.305-0.094C14.864,31.511,28,23.45,28,13.332C28,6.717,21.72,0,14,0z" fill="#fff"/><g><g fill="#0b8c61"><path d="m14 0c-7.72 0-14 6.717-14 13.333 0 9.941 13.132 18.169 13.691 18.571 0.089 0.064 0.2 0.096 0.309 0.096 0.107 0 0.217-0.031 0.305-0.094 0.559-0.395 13.695-8.456 13.695-18.573 0-6.616-6.28-13.333-14-13.333zm9.5 12.057c0 0.863-0.567 1.661-1.325 1.942l-1.025 5.889c-0.015 0.976-0.889 1.831-1.94 1.831h-10.466c-1.052 0-1.925-0.855-1.947-1.906l-1.024-5.828c-0.737-0.294-1.273-1.075-1.273-1.928v-0.827c0-1.074 0.874-1.948 1.948-1.948h2.302l1.396-2.247c0.4-0.698 1.417-0.978 2.145-0.555 0.755 0.435 1.015 1.403 0.58 2.159l-0.41 0.642h2.662l-0.39-0.61c-0.227-0.391-0.284-0.823-0.174-1.235 0.109-0.406 0.37-0.745 0.734-0.955 0.716-0.417 1.739-0.148 2.159 0.579l1.381 2.223h2.718c1.074 0 1.948 0.874 1.948 1.948v0.826z"/><rect x="3.6006" y="6.9915" width="20.415" height="15.521"/><rect x="8.9841" y="5.6631" width="10.487" height="3.6356"/></g><text x="5.0698848" y="20.243376" fill="#000000" font-family="sans-serif" font-size="16px" style="line-height:1.25" xml:space="preserve"><tspan x="5.0698848" y="20.243376" fill="#ffffff" font-family="Arial" font-size="16px" font-weight="bold">1+</tspan></text></g></svg>

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 759 B

View File

@@ -0,0 +1,23 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
id="svg4"
xml:space="preserve"
enable-background="new 0 0 6 3"
viewBox="0 0 6 3"
height="3px"
width="24px"
y="0px"
x="12px"
version="1.1"><metadata
id="metadata10"><rdf:RDF><cc:Work
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
id="defs8" /><polygon
style="fill:#ffffff;fill-opacity:1"
id="polygon2"
points="5.992,0 2.992,3 -0.008,0 " /></svg>

After

Width:  |  Height:  |  Size: 832 B

View File

@@ -5,21 +5,38 @@
// the compiled file.
//
// jquery and angular
//= require jquery
//= require jquery-migrate-min
//= require jquery_ujs
//= require jquery.ui.all
//= require jquery-ui-timepicker-addon
//= require jquery.powertip
//= require jquery.cookie
//= require jquery.jstree/jquery.jstree
//= require jquery.vAlign
//= require jquery.horizontalNav
//= require jquery.adaptivemenu
//= require angular
//= require angular-resource
//= require angular-animate
//= require angular-sanitize
//= require admin/spree_backend
//= require admin/spree_paypal_express
//= require angularjs-file-upload
//= require ../shared/ng-infinite-scroll.min.js
//= require ../shared/ng-tags-input.min.js
//= require moment
//= require angular-rails-templates
//= require lodash.underscore.js
// spree
//= require spree
//= require admin/spree/spree-select2
//= require modernizr
//= require equalize
//= require css_browser_selector_dev
//= require responsive-tables
//= require admin/spree_paypal_express
//= require admin/handlebar_extensions
// OFN specific
//= require_tree ../templates/admin
//= require ./admin_ofn
//= require ./customers/customers
@@ -45,7 +62,11 @@
//= require ./utils/utils
//= require ./users/users
//= require ./variant_overrides/variant_overrides
// text, dates and translations
//= require textAngular-rangy.min.js
// This replaces angular-sanitize. We should include only one.
// https://github.com/textAngular/textAngular#where-to-get-it
//= require textAngular-sanitize.min.js
//= require textAngular.min.js
//= require i18n/translations
@@ -59,8 +80,14 @@
//= require moment/nb.js
//= require moment/pt-br.js
//= require moment/pt.js
//= require moment/ru.js
//= require moment/sv.js
//= require ../shared/mm-foundation-tpls-0.9.0-20180826174721.min.js
//= require angularjs-file-upload
//= require moment/ca.js
//= require moment/ar.js
//= require moment/tr.js
// foundation
//= require ../shared/mm-foundation-tpls-0.9.0-20180826174721.min.js
// requires the rest of the JS code in this folder
//= require_tree .

View File

@@ -1,4 +1,4 @@
angular.module("ofn.admin").controller "AdminProductEditCtrl", ($scope, $timeout, $filter, $http, $window, BulkProducts, DisplayProperties, DirtyProducts, VariantUnitManager, StatusMessage, producers, Taxons, Columns, tax_categories, RequestMonitor) ->
angular.module("ofn.admin").controller "AdminProductEditCtrl", ($scope, $timeout, $filter, $http, $window, BulkProducts, DisplayProperties, DirtyProducts, VariantUnitManager, StatusMessage, producers, Taxons, Columns, tax_categories, RequestMonitor, SortOptions, ErrorsParser) ->
$scope.StatusMessage = StatusMessage
$scope.columns = Columns.columns
@@ -38,6 +38,8 @@ angular.module("ofn.admin").controller "AdminProductEditCtrl", ($scope, $timeout
$scope.query = ""
$scope.DisplayProperties = DisplayProperties
$scope.sortOptions = SortOptions
$scope.initialise = ->
$scope.fetchProducts()
@@ -54,6 +56,7 @@ angular.module("ofn.admin").controller "AdminProductEditCtrl", ($scope, $timeout
'q[name_cont]': $scope.query,
'q[supplier_id_eq]': $scope.producerFilter,
'q[primary_taxon_id_eq]': $scope.categoryFilter,
'q[s]': $scope.sorting,
import_date: $scope.importDateFilter,
page: $scope.page,
per_page: $scope.per_page
@@ -102,10 +105,18 @@ angular.module("ofn.admin").controller "AdminProductEditCtrl", ($scope, $timeout
$scope.producerFilter = "0"
$scope.categoryFilter = "0"
$scope.importDateFilter = "0"
$scope.fetchProducts()
$scope.$watch 'sortOptions', (sort) ->
return unless sort && sort.predicate != ""
$scope.sorting = sort.getSortingExpr()
$scope.fetchProducts()
, true
confirm_unsaved_changes = () ->
(DirtyProducts.count() > 0 and confirm(t("unsaved_changes_confirmation"))) or (DirtyProducts.count() == 0)
editProductUrl = (product, variant) ->
"/admin/products/" + product.permalink_live + ((if variant then "/variants/" + variant.id else "")) + "/edit"
@@ -142,7 +153,7 @@ angular.module("ofn.admin").controller "AdminProductEditCtrl", ($scope, $timeout
if confirm("Are you sure?")
$http(
method: "DELETE"
url: "/api/products/" + product.id + "/soft_delete"
url: "/api/products/" + product.id
).success (data) ->
$scope.products.splice $scope.products.indexOf(product), 1
DirtyProducts.deleteProduct product.id
@@ -157,7 +168,7 @@ angular.module("ofn.admin").controller "AdminProductEditCtrl", ($scope, $timeout
if confirm(t("are_you_sure"))
$http(
method: "DELETE"
url: "/api/products/" + product.permalink_live + "/variants/" + variant.id + "/soft_delete"
url: "/api/products/" + product.permalink_live + "/variants/" + variant.id
).success (data) ->
$scope.removeVariant(product, variant)
else
@@ -220,10 +231,9 @@ angular.module("ofn.admin").controller "AdminProductEditCtrl", ($scope, $timeout
BulkProducts.updateVariantLists(data.products || [])
$timeout -> $scope.displaySuccess()
).error (data, status) ->
if status == 400 && data.errors? && data.errors.length > 0
errors = error + "\n" for error in data.errors
alert t("products_update_error") + "\n" + errors
$scope.displayFailure t("products_update_error")
if status == 400 && data.errors?
errorsString = ErrorsParser.toString(data.errors, status)
$scope.displayFailure t("products_update_error") + "\n" + errorsString
else
$scope.displayFailure t("products_update_error_data") + status
@@ -274,7 +284,7 @@ angular.module("ofn.admin").controller "AdminProductEditCtrl", ($scope, $timeout
$scope.displayFailure = (failMessage) ->
StatusMessage.display 'failure', t("products_update_error_msg") + "#{failMessage}"
StatusMessage.display 'failure', t("products_update_error_msg") + " #{failMessage}"
$scope.displayDirtyProducts = ->

View File

@@ -29,7 +29,7 @@ angular.module("admin.enterprises")
# from a directive "nav-check" in the page - if we pass it here it will be called in the test suite,
# and on all new uses of this contoller, and we might not want that.
enterpriseNavCallback = ->
if $scope.enterprise_form != undefined && $scope.enterprise_form.$dirty
if $scope.enterprise_form?.$dirty
t('admin.unsaved_confirm_leave')
# Register the NavigationCheck callback

View File

@@ -2,19 +2,24 @@ angular.module("admin.indexUtils").factory "PagedFetcher", (dataFetcher) ->
new class PagedFetcher
# Given a URL like http://example.com/foo?page=::page::&per_page=20
# And the response includes an attribute pages with the number of pages to fetch
# Fetch each page async, and call the processData callback with the resulting data
fetch: (url, processData, onLastPageComplete) ->
dataFetcher(@urlForPage(url, 1)).then (data) =>
processData data
# Fetch each page async, and call the pageCallback callback with the resulting data
# Developer note: this class should not be re-used!
page: 1
last_page: 1
if data.pages > 1
for page in [2..data.pages]
lastPromise = dataFetcher(@urlForPage(url, page)).then (data) ->
processData data
onLastPageComplete && lastPromise.then onLastPageComplete
return
else
onLastPageComplete && onLastPageComplete()
fetch: (url, pageCallback) ->
@fetchPages(url, @page, pageCallback)
urlForPage: (url, page) ->
url.replace("::page::", page)
fetchPages: (url, page, pageCallback) ->
dataFetcher(@urlForPage(url, page)).then (data) =>
@page++
@last_page = data.pages
pageCallback(data) if pageCallback
if @page <= @last_page
@fetchPages(url, @page, pageCallback)

View File

@@ -3,6 +3,11 @@ angular.module("admin.indexUtils").factory 'SortOptions', ->
predicate: ""
reverse: true
getSortingExpr: () ->
sortingExpr = this.predicate + ' desc' if this.reverse
sortingExpr = this.predicate + ' asc' if !this.reverse
sortingExpr
toggle: (predicate) ->
@reverse = (@predicate == predicate) && !@reverse
@predicate = predicate

View File

@@ -1,7 +1,7 @@
angular.module("admin.lineItems").controller 'LineItemsCtrl', ($scope, $timeout, $http, $q, StatusMessage, Columns, SortOptions, Dereferencer, Orders, LineItems, Enterprises, OrderCycles, VariantUnitManager, RequestMonitor) ->
$scope.initialized = false
$scope.RequestMonitor = RequestMonitor
$scope.filteredLineItems = []
$scope.line_items = LineItems.all
$scope.confirmDelete = true
$scope.startDate = moment().startOf('day').subtract(7, 'days').format('YYYY-MM-DD')
$scope.endDate = moment().startOf('day').format('YYYY-MM-DD')
@@ -15,50 +15,77 @@ angular.module("admin.lineItems").controller 'LineItemsCtrl', ($scope, $timeout,
$scope.confirmRefresh = ->
LineItems.allSaved() || confirm(t("unsaved_changes_warning"))
$scope.resetFilters = ->
$scope.distributorFilter = ''
$scope.supplierFilter = ''
$scope.orderCycleFilter = ''
$scope.quickSearch = ''
$scope.resetSelectFilters = ->
$scope.distributorFilter = 0
$scope.supplierFilter = 0
$scope.orderCycleFilter = 0
$scope.quickSearch = ""
$scope.resetFilters()
$scope.refreshData()
$scope.refreshData = ->
unless !$scope.orderCycleFilter? || $scope.orderCycleFilter == 0
$scope.startDate = moment(OrderCycles.byID[$scope.orderCycleFilter].orders_open_at).format('YYYY-MM-DD')
$scope.endDate = moment(OrderCycles.byID[$scope.orderCycleFilter].orders_close_at).startOf('day').format('YYYY-MM-DD')
unless !$scope.orderCycleFilter? || $scope.orderCycleFilter == ''
$scope.setOrderCycleDateRange()
formatted_start_date = moment($scope.startDate).format()
formatted_end_date = moment($scope.endDate).add(1,'day').format()
$scope.formattedStartDate = moment($scope.startDate).format()
$scope.formattedEndDate = moment($scope.endDate).add(1,'day').format()
return unless moment($scope.formattedStartDate).isValid() and moment($scope.formattedEndDate).isValid()
$scope.loadOrders()
$scope.loadLineItems()
unless $scope.initialized
$scope.loadAssociatedData()
$scope.dereferenceLoadedData()
$scope.setOrderCycleDateRange = ->
start_date = OrderCycles.byID[$scope.orderCycleFilter].orders_open_at
end_date = OrderCycles.byID[$scope.orderCycleFilter].orders_close_at
format = "YYYY-MM-DD HH:mm:ss Z"
$scope.startDate = moment(start_date, format).format('YYYY-MM-DD')
$scope.endDate = moment(end_date, format).startOf('day').format('YYYY-MM-DD')
$scope.loadOrders = ->
RequestMonitor.load $scope.orders = Orders.index(
"q[state_not_eq]": "canceled",
"q[completed_at_not_null]": "true",
"q[completed_at_gteq]": formatted_start_date,
"q[completed_at_lt]": formatted_end_date
"q[distributor_id_eq]": $scope.distributorFilter,
"q[order_cycle_id_eq]": $scope.orderCycleFilter,
"q[completed_at_gteq]": $scope.formattedStartDate,
"q[completed_at_lt]": $scope.formattedEndDate
)
RequestMonitor.load $scope.lineItems = LineItems.index(
"q[order][state_not_eq]": "canceled",
"q[order][completed_at_not_null]": "true",
"q[order][completed_at_gteq]": formatted_start_date,
"q[order][completed_at_lt]": formatted_end_date
$scope.loadLineItems = ->
RequestMonitor.load LineItems.index(
"q[order_state_not_eq]": "canceled",
"q[order_completed_at_not_null]": "true",
"q[order_distributor_id_eq]": $scope.distributorFilter,
"q[variant_product_supplier_id_eq]": $scope.supplierFilter,
"q[order_order_cycle_id_eq]": $scope.orderCycleFilter,
"q[order_completed_at_gteq]": $scope.formattedStartDate,
"q[order_completed_at_lt]": $scope.formattedEndDate
)
unless $scope.initialized
RequestMonitor.load $scope.distributors = Enterprises.index(action: "visible", ams_prefix: "basic", "q[sells_in][]": ["own", "any"])
RequestMonitor.load $scope.orderCycles = OrderCycles.index(ams_prefix: "basic", as: "distributor", "q[orders_close_at_gt]": "#{moment().subtract(90,'days').format()}")
RequestMonitor.load $scope.suppliers = Enterprises.index(action: "visible", ams_prefix: "basic", "q[is_primary_producer_eq]": "true")
$scope.loadAssociatedData = ->
RequestMonitor.load $scope.distributors = Enterprises.index(action: "visible", ams_prefix: "basic", "q[sells_in][]": ["own", "any"])
RequestMonitor.load $scope.orderCycles = OrderCycles.index(ams_prefix: "basic", as: "distributor", "q[orders_close_at_gt]": "#{moment().subtract(90,'days').format()}")
RequestMonitor.load $scope.suppliers = Enterprises.index(action: "visible", ams_prefix: "basic", "q[is_primary_producer_eq]": "true")
RequestMonitor.load $q.all([$scope.orders.$promise, $scope.distributors.$promise, $scope.orderCycles.$promise, $scope.suppliers.$promise, $scope.lineItems.$promise]).then ->
$scope.dereferenceLoadedData = ->
RequestMonitor.load $q.all([$scope.orders.$promise, $scope.distributors.$promise, $scope.orderCycles.$promise, $scope.suppliers.$promise, $scope.line_items.$promise]).then ->
Dereferencer.dereferenceAttr $scope.orders, "distributor", Enterprises.byID
Dereferencer.dereferenceAttr $scope.orders, "order_cycle", OrderCycles.byID
Dereferencer.dereferenceAttr $scope.lineItems, "supplier", Enterprises.byID
Dereferencer.dereferenceAttr $scope.lineItems, "order", Orders.byID
Dereferencer.dereferenceAttr $scope.line_items, "supplier", Enterprises.byID
Dereferencer.dereferenceAttr $scope.line_items, "order", Orders.byID
$scope.bulk_order_form.$setPristine()
StatusMessage.clear()
unless $scope.initialized
$scope.initialized = true
$timeout ->
$scope.resetSelectFilters()
$scope.$watch 'bulk_order_form.$dirty', (newVal, oldVal) ->
if newVal == true
@@ -77,13 +104,12 @@ angular.module("admin.lineItems").controller 'LineItemsCtrl', ($scope, $timeout,
$scope.deleteLineItem = (lineItem) ->
if ($scope.confirmDelete && confirm(t "are_you_sure")) || !$scope.confirmDelete
LineItems.delete lineItem, =>
$scope.lineItems.splice $scope.lineItems.indexOf(lineItem), 1
LineItems.delete lineItem
$scope.deleteLineItems = (lineItems) ->
$scope.deleteLineItems = (lineItemsToDelete) ->
existingState = $scope.confirmDelete
$scope.confirmDelete = false
$scope.deleteLineItem lineItem for lineItem in lineItems when lineItem.checked
$scope.deleteLineItem lineItem for lineItem in lineItemsToDelete when lineItem.checked
$scope.confirmDelete = existingState
$scope.allBoxesChecked = ->
@@ -154,4 +180,5 @@ angular.module("admin.lineItems").controller 'LineItemsCtrl', ($scope, $timeout,
lineItem.final_weight_volume = LineItems.pristineByID[lineItem.id].final_weight_volume * lineItem.quantity / LineItems.pristineByID[lineItem.id].quantity
$scope.weightAdjustedPrice(lineItem)
$scope.resetFilters()
$scope.refreshData()

View File

@@ -1,5 +1,5 @@
angular.module('admin.orderCycles')
.controller 'AdminEditOrderCycleCtrl', ($scope, $controller, $filter, $location, $window, OrderCycle, Enterprise, EnterpriseFee, StatusMessage, Schedules, RequestMonitor, ocInstance) ->
.controller 'AdminEditOrderCycleCtrl', ($scope, $controller, $filter, $location, $window, OrderCycle, Enterprise, EnterpriseFee, StatusMessage, Schedules, RequestMonitor, NavigationCheck, ocInstance) ->
$controller('AdminOrderCycleBasicCtrl', {$scope: $scope, ocInstance: ocInstance})
order_cycle_id = $location.absUrl().match(/\/admin\/order_cycles\/(\d+)/)[1]
@@ -18,5 +18,12 @@ angular.module('admin.orderCycles')
$scope.submit = ($event, destination) ->
$event.preventDefault()
NavigationCheck.clear()
StatusMessage.display 'progress', t('js.saving')
OrderCycle.update(destination, $scope.order_cycle_form)
warnAboutUnsavedChanges = ->
if $scope.order_cycle_form?.$dirty
t('admin.unsaved_confirm_leave')
NavigationCheck.register(warnAboutUnsavedChanges)

View File

@@ -1,5 +1,31 @@
angular.module('admin.orderCycles').controller 'AdminOrderCycleIncomingCtrl', ($scope, $controller, $location, Enterprise, ocInstance) ->
angular.module('admin.orderCycles').controller 'AdminOrderCycleIncomingCtrl', ($scope, $controller, $location, Enterprise, OrderCycle, ExchangeProduct, ocInstance) ->
$controller('AdminOrderCycleExchangesCtrl', {$scope: $scope, ocInstance: ocInstance, $location: $location})
$scope.enterpriseTotalVariants = (enterprise) ->
Enterprise.totalVariants(enterprise)
$scope.view = 'incoming'
$scope.exchangeTotalVariants = (exchange) ->
return unless $scope.enterprises? && $scope.enterprises[exchange.enterprise_id]?
enterprise = $scope.enterprises[exchange.enterprise_id]
return enterprise.numVariants if enterprise.numVariants?
enterprise.numVariants = 0
params = { exchange_id: exchange.id, enterprise_id: exchange.enterprise_id, order_cycle_id: $scope.order_cycle.id, incoming: true}
ExchangeProduct.countVariants params, (variants_count) ->
enterprise.numVariants = variants_count
$scope.setSelectAllVariantsCheckboxValue(exchange, enterprise.numVariants)
return enterprise.numVariants
$scope.addSupplier = ($event) ->
$event.preventDefault()
OrderCycle.addSupplier $scope.new_supplier_id
# To select all variants we first need to load them all from the server
#
# This is only needed in Incoming exchanges as here we use supplied_products,
# in Outgoing Exchanges the variants are loaded as part of the Exchange payload
$scope.selectAllVariants = (exchange, selected) ->
$scope.loadAllExchangeProducts(exchange).then ->
$scope.setExchangeVariants(exchange, $scope.suppliedVariants(exchange.enterprise_id), selected)
$scope.$apply()

View File

@@ -18,11 +18,11 @@ angular.module('admin.orderCycles')
$scope.cancel = (destination) ->
$window.location = destination
# Used in panels/exchange_supplied_products.html
# Used in panels/exchange_products_supplied.html
$scope.suppliedVariants = (enterprise_id) ->
Enterprise.suppliedVariants(enterprise_id)
# Used in panels/exchange_supplied_products.html and panels/exchange_distributed_products.html
# Used in panels/exchange_products_supplied.html and panels/exchange_products_distributed.html
$scope.setExchangeVariants = (exchange, variants, selected) ->
OrderCycle.setExchangeVariants(exchange, variants, selected)

View File

@@ -1,10 +1,15 @@
angular.module('admin.orderCycles')
.controller 'AdminOrderCycleExchangesCtrl', ($scope, $controller, $filter, $window, $location, $timeout, OrderCycle, Enterprise, EnterpriseFee, Schedules, RequestMonitor, ocInstance, StatusMessage) ->
.controller 'AdminOrderCycleExchangesCtrl', ($scope, $controller, $filter, $window, $location, $timeout, OrderCycle, ExchangeProduct, Enterprise, EnterpriseFee, Schedules, RequestMonitor, ocInstance, StatusMessage) ->
$controller('AdminEditOrderCycleCtrl', {$scope: $scope, ocInstance: ocInstance, $location: $location})
$scope.supplier_enterprises = Enterprise.producer_enterprises
$scope.distributor_enterprises = Enterprise.hub_enterprises
$scope.supplied_products = Enterprise.supplied_products
$scope.productsLoading = ->
RequestMonitor.loading
$scope.setSelectAllVariantsCheckboxValue = (exchange, totalNumberOfVariants) ->
exchange.select_all_variants = $scope.exchangeSelectedVariants(exchange) >= totalNumberOfVariants
$scope.exchangeSelectedVariants = (exchange) ->
OrderCycle.exchangeSelectedVariants(exchange)
@@ -29,14 +34,6 @@ angular.module('admin.orderCycles')
OrderCycle.removeExchangeFee(exchange, index)
$scope.order_cycle_form.$dirty = true
$scope.addSupplier = ($event) ->
$event.preventDefault()
OrderCycle.addSupplier($scope.new_supplier_id)
$scope.addDistributor = ($event) ->
$event.preventDefault()
OrderCycle.addDistributor($scope.new_distributor_id)
$scope.setPickupTimeFieldDirty = (index) ->
$timeout ->
pickup_time_field_name = "order_cycle_outgoing_exchange_" + index + "_pickup_time"
@@ -44,3 +41,38 @@ angular.module('admin.orderCycles')
$scope.removeDistributionOfVariant = (variant_id) ->
OrderCycle.removeDistributionOfVariant(variant_id)
$scope.loadExchangeProducts = (exchange, page = 1) ->
enterprise = $scope.enterprises[exchange.enterprise_id]
enterprise.supplied_products ?= []
return if enterprise.last_page_loaded? && enterprise.last_page_loaded >= page
enterprise.last_page_loaded = page
enterprise.loaded_variants ?= 0
incoming = true if $scope.view == 'incoming'
params = { exchange_id: exchange.id, enterprise_id: exchange.enterprise_id, order_cycle_id: $scope.order_cycle.id, incoming: incoming, page: page}
ExchangeProduct.index params, (products, num_of_pages) ->
enterprise.num_of_pages = num_of_pages
enterprise.supplied_products.push products...
angular.forEach products, (product) ->
enterprise.loaded_variants += product.variants.length
$scope.loadMoreExchangeProducts = (exchange) ->
$scope.loadExchangeProducts(exchange, $scope.enterprises[exchange.enterprise_id].last_page_loaded + 1)
$scope.loadAllExchangeProducts = (exchange) ->
enterprise = $scope.enterprises[exchange.enterprise_id]
if enterprise.last_page_loaded < enterprise.num_of_pages
for page_to_load in [(enterprise.last_page_loaded + 1)..enterprise.num_of_pages]
RequestMonitor.load $scope.loadExchangeProducts(exchange, page_to_load).$promise
RequestMonitor.loadQueue
# initialize exchange products panel if not yet done
$scope.exchangeProdutsPanelInitialized = []
$scope.initializeExchangeProductsPanel = (exchange) ->
return if $scope.exchangeProdutsPanelInitialized[exchange.enterprise_id]
RequestMonitor.load $scope.loadExchangeProducts(exchange).$promise
$scope.exchangeProdutsPanelInitialized[exchange.enterprise_id] = true

View File

@@ -1,8 +1,7 @@
angular.module('admin.orderCycles').controller 'AdminOrderCycleOutgoingCtrl', ($scope, $controller, $filter, $location, OrderCycle, ocInstance, StatusMessage) ->
$controller('AdminOrderCycleExchangesCtrl', {$scope: $scope, ocInstance: ocInstance, $location: $location})
$scope.productSuppliedToOrderCycle = (product) ->
OrderCycle.productSuppliedToOrderCycle(product)
$scope.view = 'outgoing'
$scope.variantSuppliedToOrderCycle = (variant) ->
OrderCycle.variantSuppliedToOrderCycle(variant)
@@ -10,6 +9,15 @@ angular.module('admin.orderCycles').controller 'AdminOrderCycleOutgoingCtrl', ($
$scope.incomingExchangeVariantsFor = (enterprise_id) ->
$filter('filterExchangeVariants')(OrderCycle.incomingExchangesVariants(), $scope.order_cycle.visible_variants_for_outgoing_exchanges[enterprise_id])
$scope.exchangeTotalVariants = (exchange) ->
totalNumberOfVariants = $scope.incomingExchangeVariantsFor(exchange.enterprise_id).length
$scope.setSelectAllVariantsCheckboxValue(exchange, totalNumberOfVariants)
totalNumberOfVariants
$scope.addDistributor = ($event) ->
$event.preventDefault()
OrderCycle.addDistributor $scope.new_distributor_id
$scope.submit = ($event, destination) ->
$event.preventDefault()
StatusMessage.display 'progress', t('js.saving')

View File

@@ -1,23 +1,33 @@
angular.module('admin.orderCycles').controller "AdminSimpleCreateOrderCycleCtrl", ($scope, $controller, $window, OrderCycle, Enterprise, EnterpriseFee, StatusMessage, Schedules, RequestMonitor, ocInstance) ->
angular.module('admin.orderCycles').controller "AdminSimpleCreateOrderCycleCtrl", ($scope, $controller, $window, OrderCycle, Enterprise, EnterpriseFee, ExchangeProduct, StatusMessage, Schedules, RequestMonitor, ocInstance) ->
$controller('AdminOrderCycleBasicCtrl', {$scope: $scope, ocInstance: ocInstance})
$scope.order_cycle = OrderCycle.new {coordinator_id: ocInstance.coordinator_id}, =>
# TODO: make this a get method, which only fetches one enterprise
$scope.enterprises = Enterprise.index {coordinator_id: ocInstance.coordinator_id}, (enterprises) =>
$scope.init(enterprises)
$scope.enterprise_fees = EnterpriseFee.index(coordinator_id: ocInstance.coordinator_id)
$scope.init = (enterprises) ->
enterprise = enterprises[Object.keys(enterprises)[0]]
OrderCycle.addSupplier enterprise.id
OrderCycle.addDistributor enterprise.id
OrderCycle.order_cycle.coordinator_id = enterprise.id
OrderCycle.addDistributor enterprise.id, $scope.setOutgoingExchange
OrderCycle.addSupplier enterprise.id, $scope.loadExchangeProducts
$scope.setOutgoingExchange = ->
$scope.outgoing_exchange = OrderCycle.order_cycle.outgoing_exchanges[0]
# All variants start as checked
OrderCycle.setExchangeVariants(OrderCycle.order_cycle.incoming_exchanges[0],
Enterprise.suppliedVariants(enterprise.id), true)
$scope.loadExchangeProducts = ->
$scope.incoming_exchange = OrderCycle.order_cycle.incoming_exchanges[0]
OrderCycle.order_cycle.coordinator_id = enterprise.id
params = { enterprise_id: $scope.incoming_exchange.enterprise_id, incoming: true }
ExchangeProduct.index params, $scope.storeProductsAndSelectAllVariants
$scope.storeProductsAndSelectAllVariants = (products) ->
$scope.enterprises[$scope.incoming_exchange.enterprise_id].supplied_products = products
# All variants start as checked
OrderCycle.setExchangeVariants($scope.incoming_exchange,
Enterprise.suppliedVariants($scope.incoming_exchange.enterprise_id), true)
$scope.removeDistributionOfVariant = angular.noop

View File

@@ -1,4 +1,4 @@
angular.module('admin.orderCycles').controller "AdminSimpleEditOrderCycleCtrl", ($scope, $controller, $location, $window, OrderCycle, Enterprise, EnterpriseFee, Schedules, RequestMonitor, StatusMessage, ocInstance) ->
angular.module('admin.orderCycles').controller "AdminSimpleEditOrderCycleCtrl", ($scope, $controller, $location, $window, OrderCycle, Enterprise, EnterpriseFee, ExchangeProduct, Schedules, RequestMonitor, StatusMessage, ocInstance) ->
$controller('AdminOrderCycleBasicCtrl', {$scope: $scope, ocInstance: ocInstance})
$scope.orderCycleId = ->
@@ -11,6 +11,12 @@ angular.module('admin.orderCycles').controller "AdminSimpleEditOrderCycleCtrl",
$scope.init = ->
$scope.outgoing_exchange = OrderCycle.order_cycle.outgoing_exchanges[0]
$scope.loadExchangeProducts()
$scope.loadExchangeProducts = ->
exchange = OrderCycle.order_cycle.incoming_exchanges[0]
ExchangeProduct.index { exchange_id: exchange.id }, (products) ->
$scope.enterprises[exchange.enterprise_id].supplied_products = products
$scope.removeDistributionOfVariant = angular.noop

View File

@@ -12,7 +12,6 @@ angular.module('admin.orderCycles').factory('Enterprise', ($resource) ->
enterprises: {}
producer_enterprises: []
hub_enterprises: []
supplied_products: []
loaded: false
index: (params={}, callback=null) ->
@@ -22,9 +21,6 @@ angular.module('admin.orderCycles').factory('Enterprise', ($resource) ->
@producer_enterprises.push(enterprise) if enterprise.is_primary_producer
@hub_enterprises.push(enterprise) if enterprise.sells == 'any'
for product in enterprise.supplied_products
@supplied_products.push(product)
@loaded = true
(callback || angular.noop)(@enterprises)
@@ -39,13 +35,4 @@ angular.module('admin.orderCycles').factory('Enterprise', ($resource) ->
variant.id for variant in product.variants
else
[product.master_id]
totalVariants: (enterprise) ->
numVariants = 0
if enterprise
counts = for product in enterprise.supplied_products
numVariants += if product.variants.length == 0 then 1 else product.variants.length
numVariants
})

View File

@@ -0,0 +1,16 @@
angular.module('admin.orderCycles').factory('ExchangeProduct', ($resource) ->
ExchangeProductResource = $resource('/api/exchanges/:exchange_id/products.json', {}, {
'index': { method: 'GET' }
'variant_count': { method: 'GET', params: { action_name: "variant_count" }}
})
{
ExchangeProductResource: ExchangeProductResource
index: (params={}, callback=null) ->
ExchangeProductResource.index params, (data) =>
(callback || angular.noop)(data.products, data.pagination?.pages, data.pagination?.results)
countVariants: (params={}, callback=null) ->
ExchangeProductResource.variant_count params, (data) =>
(callback || angular.noop)(data.count)
})

View File

@@ -1,4 +1,4 @@
angular.module('admin.orderCycles').factory 'OrderCycle', ($resource, $window, StatusMessage, Panels) ->
angular.module('admin.orderCycles').factory 'OrderCycle', ($resource, $window, $timeout, StatusMessage, Panels) ->
OrderCycleResource = $resource '/admin/order_cycles/:action_name/:order_cycle_id.json', {}, {
'index': { method: 'GET', isArray: true}
'new' : { method: 'GET', params: { action_name: "new" } }
@@ -44,11 +44,15 @@ angular.module('admin.orderCycles').factory 'OrderCycle', ($resource, $window, S
@removeDistributionOfVariant(variant.id) if exchange.incoming
addSupplier: (new_supplier_id) ->
this.order_cycle.incoming_exchanges.push({enterprise_id: new_supplier_id, incoming: true, active: true, variants: {}, enterprise_fees: []})
addSupplier: (new_supplier_id, callback) ->
this.order_cycle.incoming_exchanges.push({enterprise_id: new_supplier_id, incoming: true, active: true, variants: {}, enterprise_fees: []})
$timeout ->
(callback || angular.noop)()
addDistributor: (new_distributor_id) ->
this.order_cycle.outgoing_exchanges.push({enterprise_id: new_distributor_id, incoming: false, active: true, variants: {}, enterprise_fees: []})
addDistributor: (new_distributor_id, callback) ->
this.order_cycle.outgoing_exchanges.push({ enterprise_id: new_distributor_id, incoming: false, active: true, variants: {}, enterprise_fees: [] })
$timeout ->
(callback || angular.noop)()
removeExchange: (exchange) ->
if exchange.incoming
@@ -71,18 +75,6 @@ angular.module('admin.orderCycles').factory 'OrderCycle', ($resource, $window, S
removeExchangeFee: (exchange, index) ->
exchange.enterprise_fees.splice(index, 1)
productSuppliedToOrderCycle: (product) ->
product_variant_ids = (variant.id for variant in product.variants)
variant_ids = [product.master_id].concat(product_variant_ids)
incomingExchangesVariants = this.incomingExchangesVariants()
# TODO: This is an O(n^2) implementation of set intersection and thus is slooow.
# Use a better algorithm if needed.
# Also, incomingExchangesVariants is called every time, when it only needs to be
# called once per change to incoming variants. Some sort of caching?
ids = (variant_id for variant_id in variant_ids when incomingExchangesVariants.indexOf(variant_id) != -1)
ids.length > 0
variantSuppliedToOrderCycle: (variant) ->
this.incomingExchangesVariants().indexOf(variant.id) != -1
@@ -143,7 +135,8 @@ angular.module('admin.orderCycles').factory 'OrderCycle', ($resource, $window, S
delete(service.order_cycle.exchanges)
service.loaded = true
(callback || angular.noop)(service.order_cycle)
$timeout ->
(callback || angular.noop)(service.order_cycle)
this.order_cycle

View File

@@ -1,4 +1,4 @@
angular.module("admin.orders").controller "ordersCtrl", ($scope, RequestMonitor, Orders, SortOptions, $window, $filter) ->
angular.module("admin.orders").controller "ordersCtrl", ($scope, $timeout, RequestMonitor, Orders, SortOptions, $window, $filter) ->
$scope.RequestMonitor = RequestMonitor
$scope.pagination = Orders.pagination
$scope.orders = Orders.all
@@ -13,6 +13,7 @@ angular.module("admin.orders").controller "ordersCtrl", ($scope, RequestMonitor,
$scope.selected = false
$scope.select_all = false
$scope.poll = 0
$scope.rowStatus = {}
$scope.initialise = ->
$scope.per_page = 15
@@ -22,10 +23,13 @@ angular.module("admin.orders").controller "ordersCtrl", ($scope, RequestMonitor,
$scope.fetchResults()
$scope.fetchResults = (page=1) ->
startDateWithTime = $scope.appendStringIfNotEmpty($scope['q']['completed_at_gteq'], ' 00:00:00')
endDateWithTime = $scope.appendStringIfNotEmpty($scope['q']['completed_at_lteq'], ' 23:59:59')
$scope.resetSelected()
params = {
'q[completed_at_lt]': $scope['q']['completed_at_lt'],
'q[completed_at_gt]': $scope['q']['completed_at_gt'],
'q[completed_at_gteq]': startDateWithTime,
'q[completed_at_lteq]': endDateWithTime,
'q[state_eq]': $scope['q']['state_eq'],
'q[number_cont]': $scope['q']['number_cont'],
'q[email_cont]': $scope['q']['email_cont'],
@@ -33,15 +37,20 @@ angular.module("admin.orders").controller "ordersCtrl", ($scope, RequestMonitor,
'q[bill_address_lastname_start]': $scope['q']['bill_address_lastname_start'],
# Set default checkbox values to null. See: https://github.com/openfoodfoundation/openfoodnetwork/pull/3076#issuecomment-440010498
'q[completed_at_not_null]': $scope['q']['completed_at_not_null'] || null,
'q[distributor_id_in]': $scope['q']['distributor_id_in'],
'q[order_cycle_id_in]': $scope['q']['order_cycle_id_in'],
'q[order_cycle_id_in]': $scope['q']['order_cycle_id_in'],
'q[distributor_id_in][]': $scope['q']['distributor_id_in'],
'q[order_cycle_id_in][]': $scope['q']['order_cycle_id_in'],
'q[s]': $scope.sorting || 'completed_at desc',
shipping_method_id: $scope.shipping_method_id,
per_page: $scope.per_page,
page: page
}
RequestMonitor.load(Orders.index(params).$promise)
$scope.appendStringIfNotEmpty = (baseString, stringToAppend) ->
return baseString unless baseString
baseString + stringToAppend
$scope.resetSelected = ->
$scope.selected_orders.length = 0
$scope.selected = false
@@ -63,12 +72,29 @@ angular.module("admin.orders").controller "ordersCtrl", ($scope, RequestMonitor,
$scope.selected_orders.push order.id if $scope.select_all
$scope.$watch 'sortOptions', (sort) ->
if sort && sort.predicate != ""
$scope.sorting = sort.predicate + ' desc' if sort.reverse
$scope.sorting = sort.predicate + ' asc' if !sort.reverse
$scope.fetchResults()
return unless sort && sort.predicate != ""
$scope.sorting = sort.getSortingExpr()
$scope.fetchResults()
, true
$scope.capturePayment = (order) ->
$scope.rowAction('capture', order)
$scope.shipOrder = (order) ->
$scope.rowAction('ship', order)
$scope.rowAction = (action, order) ->
$scope.rowStatus[order.id] = "loading"
Orders[action](order).$promise.then (data) ->
$scope.rowStatus[order.id] = "success"
$timeout(->
$scope.rowStatus[order.id] = null
, 1500)
, (error) ->
$scope.rowStatus[order.id] = "error"
$scope.changePage = (newPage) ->
$scope.page = newPage
$scope.fetchResults(newPage)

View File

@@ -3,6 +3,9 @@ angular.module("admin.orders").directive 'customerSearchOverride', ->
scope:
distributorId: '@'
link: (scope, element, attr) ->
if $('#customer_autocomplete_template').length > 0
customerTemplate = Handlebars.compile($('#customer_autocomplete_template').text())
formatCustomerResult = (customer) ->
customerTemplate
customer: customer

View File

@@ -21,7 +21,7 @@ angular.module('admin.payments').factory 'Payment', (AdminStripeElements, curren
year: @form_data.card_year
verification_value: @form_data.card_verification_value
}
when 'stripe'
when 'stripe', 'stripe_sca'
angular.extend munged_payment.payment, {
source_attributes:
gateway_payment_profile_id: @form_data.token
@@ -35,6 +35,8 @@ angular.module('admin.payments').factory 'Payment', (AdminStripeElements, curren
purchase: ->
if @paymentMethodType() == 'stripe'
AdminStripeElements.requestToken(@form_data, @submit)
else if @paymentMethodType() == 'stripe_sca'
AdminStripeElements.createPaymentMethod(@form_data, @submit)
else
@submit()

View File

@@ -5,7 +5,7 @@ angular.module("admin.payments").factory 'AdminStripeElements', ($rootScope, Sta
stripe: null
card: null
# New Stripe Elements method
# Create Token to be used with the Stripe Charges API
requestToken: (secrets, submit) ->
return unless @stripe? && @card?
@@ -14,15 +14,32 @@ angular.module("admin.payments").factory 'AdminStripeElements', ($rootScope, Sta
@stripe.createToken(@card, cardData).then (response) =>
if(response.error)
StatusMessage.display 'error', response.error.message
console.error(JSON.stringify(response.error))
else
secrets.token = response.token.id
secrets.cc_type = @mapCC(response.token.card.brand)
secrets.cc_type = @mapTokenApiCardBrand(response.token.card.brand)
secrets.card = response.token.card
submit()
# Maps the brand returned by Stripe to that required by activemerchant
mapCC: (ccType) ->
switch ccType
# Create Payment Method to be used with the Stripe Payment Intents API
createPaymentMethod: (secrets, submit) ->
return unless @stripe? && @card?
cardData = @makeCardData(secrets)
@stripe.createPaymentMethod({ type: 'card', card: @card }, @card, cardData).then (response) =>
if(response.error)
StatusMessage.display 'error', response.error.message
console.error(JSON.stringify(response.error))
else
secrets.token = response.paymentMethod.id
secrets.cc_type = @mapPaymentMethodsApiCardBrand(response.paymentMethod.card.brand)
secrets.card = response.paymentMethod.card
submit()
# Maps the brand returned by Stripe's tokenAPI to that required by activemerchant
mapTokenApiCardBrand: (cardBrand) ->
switch cardBrand
when 'MasterCard' then return 'master'
when 'Visa' then return 'visa'
when 'American Express' then return 'american_express'
@@ -30,6 +47,14 @@ angular.module("admin.payments").factory 'AdminStripeElements', ($rootScope, Sta
when 'JCB' then return 'jcb'
when 'Diners Club' then return 'diners_club'
# Maps the brand returned by Stripe's paymentMethodsAPI to that required by activemerchant
mapPaymentMethodsApiCardBrand: (cardBrand) ->
switch cardBrand
when 'mastercard' then return 'master'
when 'amex' then return 'american_express'
when 'diners' then return 'diners_club'
else return cardBrand # a few brands are equal, for example, visa
# It doesn't matter if any of these are nil, all are optional.
makeCardData: (secrets) ->
{'name': secrets.name,

View File

@@ -21,9 +21,7 @@ angular.module("admin.products").factory "OptionValueNamer", (VariantUnitManager
else
value = @variant.unit_value
unit_name = @variant.product.variant_unit_name
# TODO needs to add pluralize to line below
# unit_name = unit_name if value > 1
unit_name = @pluralize(@variant.product.variant_unit_name, value)
value = parseInt(value, 10) if value == parseInt(value, 10)
@@ -32,6 +30,21 @@ angular.module("admin.products").factory "OptionValueNamer", (VariantUnitManager
[value, unit_name]
pluralize: (unit_name, count) ->
return unit_name if count == undefined
unit_key = @unit_key(unit_name)
return unit_name unless unit_key
I18n.t(["inflections", unit_key], {count: count, defaultValue: unit_name})
unit_key: (unit_name) ->
unless I18n.unit_keys
I18n.unit_keys = {}
for key, translations of I18n.t("inflections")
for quantifier, translation of translations
I18n.unit_keys[translation.toLowerCase()] = key
I18n.unit_keys[unit_name.toLowerCase()]
option_value_value_unit_scaled: ->
[unit_scale, unit_name] = @scale_for_unit_value()

View File

@@ -2,7 +2,6 @@ angular.module("admin.resources").factory 'LineItemResource', ($resource) ->
$resource('/admin/bulk_line_items/:id.json', {}, {
'index':
method: 'GET'
isArray: true
'update':
method: 'PUT'
transformRequest: (data, headersGetter) =>

View File

@@ -5,4 +5,14 @@ angular.module("admin.resources").factory 'OrderResource', ($resource) ->
method: 'GET'
'update':
method: 'PUT'
'capture':
url: '/api/orders/:id/capture.json'
method: 'PUT'
params:
id: '@id'
'ship':
url: '/api/orders/:id/ship.json'
method: 'PUT'
params:
id: '@id'
})

View File

@@ -1,20 +1,27 @@
angular.module("admin.resources").factory 'LineItems', ($q, LineItemResource) ->
new class LineItems
all: []
byID: {}
pristineByID: {}
pagination: {}
index: (params={}, callback=null) ->
LineItemResource.index params, (data) =>
request = LineItemResource.index params, (data) =>
@load(data)
(callback || angular.noop)(data)
@all.$promise = request.$promise
@all
resetData: ->
@all.length = 0
@byID = {}
@pristineByID = {}
load: (lineItems) ->
load: (data) ->
angular.extend(@pagination, data.pagination)
@resetData()
for lineItem in lineItems
for lineItem in data.line_items
@all.push lineItem
@byID[lineItem.id] = lineItem
@pristineByID[lineItem.id] = angular.copy(lineItem)
@@ -25,8 +32,9 @@ angular.module("admin.resources").factory 'LineItems', ($q, LineItemResource) ->
save: (lineItem) ->
deferred = $q.defer()
lineItemResource = new LineItemResource(lineItem)
lineItem.errors = {}
lineItem.$update({id: lineItem.id})
lineItemResource.$update({id: lineItem.id})
.then( (data) =>
@pristineByID[lineItem.id] = angular.copy(lineItem)
deferred.resolve(data)
@@ -54,8 +62,10 @@ angular.module("admin.resources").factory 'LineItems', ($q, LineItemResource) ->
delete: (lineItem, callback=null) ->
deferred = $q.defer()
lineItem.$delete({id: lineItem.id})
lineItemResource = new LineItemResource(lineItem)
lineItemResource.$delete({id: lineItem.id})
.then( (data) =>
@all.splice(@all.indexOf(lineItem),1)
delete @byID[lineItem.id]
delete @pristineByID[lineItem.id]
(callback || angular.noop)(data)

View File

@@ -44,5 +44,19 @@ angular.module("admin.resources").factory 'Orders', ($q, OrderResource, RequestM
changed.push attr unless attr is "$$hashKey"
changed
capture: (order) ->
@processAction('capture', order)
ship: (order) ->
@processAction('ship', order)
processAction: (action, order) ->
OrderResource[action] {id: order.number}, (data) =>
if data.id
angular.merge(order, data)
data
, (response) =>
response.data
resetAttribute: (order, attribute) ->
order[attribute] = @pristineByID[order.id][attribute]

View File

@@ -4,7 +4,6 @@ angular.module("admin.side_menu")
items: []
selected: null
# Checks for path and uses it to set the view
# If no path, loads first view
init: =>
@@ -31,11 +30,3 @@ angular.module("admin.side_menu")
for item in @items when item.name is name
return item
null
hide_item_by_name: (name) =>
item = @find_by_name(name)
item.visible = false if item
show_item_by_name: (name) =>
item = @find_by_name(name)
item.visible = true if item

View File

@@ -0,0 +1,252 @@
//= require_self
//= require admin/handlebar_extensions
//= require admin/spree/orders/variant_autocomplete
/**
This is a collection of javascript functions and whatnot
under the spree namespace that do stuff we find helpful.
Hopefully, this will evolve into a propper class.
**/
jQuery(function($) {
// Make main menu use full width
mainMenu = $('.fullwidth-menu')
if (typeof mainMenu.horizontalNav === 'function' )
mainMenu.horizontalNav({
tableDisplay: false,
responsiveDelay: 0
});
// Vertical align of checkbox fields
if (typeof $('.field.checkbox label').vAlign === 'function' )
$('.field.checkbox label').vAlign()
// We activate AdaptiveMenu only if not on webdriver
// Re-adjusting the admin menu during tests causes tests to fail.
if (!navigator.webdriver && typeof Spree !== 'undefined') {
$('.main-menu-wrapper ul').AdaptiveMenu({
text: "<a href='#'><i class='icon-chevron-down'></i> " + Spree.translations.more + "</a>",
klass: "dropdown"
});
}
// Add some tips
if (typeof $('.with-tip').powerTip === 'function' ) {
$('.with-tip').powerTip({
smartPlacement: true,
fadeInTime: 50,
fadeOutTime: 50,
intentPollInterval: 300
});
$('.with-tip').on({
powerTipPreRender: function(){
$('#powerTip').addClass($(this).attr("data-action"));
$('#powerTip').addClass($(this).attr("data-tip-color"));
},
powerTipClose: function(){
$('#powerTip').removeClass($(this).attr("data-action"))
}
});
}
// Make flash messages dissapear
setTimeout('$(".flash").fadeOut()', 5000);
// Highlight hovered table column
$('table tbody tr td.actions a').hover(function(){
var tr = $(this).closest('tr');
var klass = 'highlight action-' + $(this).attr('data-action')
tr.addClass(klass)
tr.prev().addClass('before-' + klass);
}, function(){
var tr = $(this).closest('tr');
var klass = 'highlight action-' + $(this).attr('data-action')
tr.removeClass(klass)
tr.prev().removeClass('before-' + klass);
});
// Trunkate text in page_title that didn't fit
var truncate_elements = $('.truncate');
truncate_elements.each(function(){
$(this).trunk8();
});
$(window).resize(function (event) {
truncate_elements.each(function(){
$(this).trunk8();
})
});
// Make height of dt/dd elements the same
if (typeof $("dl").equalize === 'function' )
$("dl").equalize('outerHeight');
});
$.fn.visible = function(cond) { this[cond ? 'show' : 'hide' ]() };
// Overriding a broken function in Spree. Bug report at
// https://github.com/spree/spree/issues/4032
show_flash_error = function(message) {
error_div = $('.flash.error');
if (error_div.length > 0) {
error_div.html(message);
error_div.show();
} else {
if ($("#content .toolbar").length > 0) {
$("#content .toolbar").before('<div class="flash error">' + message + '</div>');
} else {
$("#progress").before('<div class="flash error">' + message + '</div>');
}
}
}
// Apply to individual radio button that makes another element visible when checked
$.fn.radioControlsVisibilityOfElement = function(dependentElementSelector){
if(!this.get(0)){ return }
showValue = this.get(0).value;
radioGroup = $("input[name='" + this.get(0).name + "']");
radioGroup.each(function(){
$(this).click(function(){
$(dependentElementSelector).visible(this.checked && this.value == showValue)
});
if(this.checked){ this.click() }
});
}
$(document).ready(function() {
if (typeof Spree !== 'undefined') {
handle_date_picker_fields = function(){
$('.datepicker').datepicker({
dateFormat: Spree.translations.date_picker,
dayNames: Spree.translations.abbr_day_names,
dayNamesMin: Spree.translations.abbr_day_names,
monthNames: Spree.translations.month_names,
prevText: Spree.translations.previous,
nextText: Spree.translations.next,
showOn: "focus"
});
// Correctly display range dates
$('.date-range-filter .datepicker-from').datepicker('option', 'onSelect', function(selectedDate) {
$(".date-range-filter .datepicker-to" ).datepicker( "option", "minDate", selectedDate );
});
$('.date-range-filter .datepicker-to').datepicker('option', 'onSelect', function(selectedDate) {
$(".date-range-filter .datepicker-from" ).datepicker( "option", "maxDate", selectedDate );
});
}
handle_date_picker_fields();
}
$(".observe_field").on('change', function() {
target = $(this).attr("data-update");
ajax_indicator = $(this).attr("data-ajax-indicator") || '#busy_indicator';
$(target).hide();
$(ajax_indicator).show();
$.ajax({ dataType: 'html',
url: $(this).attr("data-base-url")+encodeURIComponent($(this).val()),
type: 'get',
success: function(data){
$(target).html(data);
$(ajax_indicator).hide();
$(target).show();
}
});
});
$('.spree_add_fields').click(function() {
var target = $(this).data("target");
var new_table_row = $(target + ' tr:visible:last').clone();
var new_id = new Date().getTime();
new_table_row.find("input, select").each(function () {
var el = $(this);
el.val("");
if (typeof el.attr("id") !== 'undefined') el.attr("id", el.attr("id").replace(/\d+/, new_id))
if (typeof el.attr("name") !== 'undefined') el.attr("name", el.attr("name").replace(/\d+/, new_id))
})
// When cloning a new row, set the href of all icons to be an empty "#"
// This is so that clicking on them does not perform the actions for the
// duplicated row
new_table_row.find("a").each(function () {
var el = $(this);
el.attr('href', '#');
})
$(target).prepend(new_table_row);
})
$('body').on('click', '.delete-resource', function() {
var el = $(this);
if (confirm(el.data("confirm"))) {
$.ajax({
type: 'POST',
url: $(this).attr("href"),
data: {
_method: 'delete',
authenticity_token: AUTH_TOKEN
},
dataType: 'html',
success: function(response) {
el.parents("tr").fadeOut('hide');
},
error: function(response, textStatus, errorThrown) {
show_flash_error(response.responseText);
}
});
}
return false;
});
// Fix sortable helper
var fixHelper = function(e, ui) {
ui.children().each(function() {
$(this).width($(this).width());
});
return ui;
};
$('table.sortable').ready(function(){
var td_count = $(this).find('tbody tr:first-child td').length
if (typeof $('table.sortable tbody').sortable !== 'function' )
return
$('table.sortable tbody').sortable(
{
handle: '.handle',
helper: fixHelper,
placeholder: 'ui-sortable-placeholder',
update: function(event, ui) {
$("#progress").show();
positions = {};
$.each($('table.sortable tbody tr'), function(position, obj){
reg = /spree_(\w+_?)+_(\d+)/;
parts = reg.exec($(obj).attr('id'));
if (parts) {
positions['positions['+parts[2]+']'] = position;
}
});
$.ajax({
type: 'POST',
dataType: 'script',
url: $(ui.item).closest("table.sortable").data("sortable-link"),
data: positions,
success: function(data){ $("#progress").hide(); }
});
},
start: function (event, ui) {
// Set correct height for placehoder (from dragged tr)
ui.placeholder.height(ui.item.height())
// Fix placeholder content to make it correct width
ui.placeholder.html("<td colspan='"+(td_count-1)+"'></td><td class='actions'></td>")
},
stop: function (event, ui) {
// Fix odd/even classes after reorder
$("table.sortable tr:even").removeClass("odd even").addClass("even");
$("table.sortable tr:odd").removeClass("odd even").addClass("odd");
}
});
});
});

View File

@@ -0,0 +1,16 @@
$(function() {
var calculator_select = $('select#calc_type')
var original_calc_type = calculator_select.attr('value');
$('.calculator-settings-warning').hide();
calculator_select.change(function() {
if (calculator_select.attr('value') == original_calc_type) {
$('div.calculator-settings').show();
$('.calculator-settings-warning').hide();
$('.calculator-settings').find('input,textarea').prop("disabled", false);
} else {
$('div.calculator-settings').hide();
$('.calculator-settings-warning').show();
$('.calculator-settings').find('input,texttarea').prop("disabled", true);
}
});
})

View File

@@ -0,0 +1,59 @@
$(document).ready(function() {
if ($('input#preferences_use_s3[type="checkbox"]:checked').length > 0) {
$('#s3_settings, #s3_headers').show();
}
// Toggle display of S3 settings based on value of use_s3 checkbox
$('input#preferences_use_s3[type="checkbox"]').click(function() {
$('#s3_settings, #s3_headers').toggle();
});
$(document).on('click', '.destroy_style', function(e) {
e.preventDefault();
$(this).parent().remove();
});
$(document).on('click', '.destroy_new_attachment_styles', function(e) {
e.preventDefault();
$(this).closest('.new_attachment_styles').remove();
});
$(document).on('click', '.destroy_new_s3_headers', function(e) {
e.preventDefault();
$(this).closest('.new_s3_headers').remove();
});
// Handle adding new styles
var styles_hash_index = 1;
$(document).on('click', '.add_new_style', function(e) {
e.preventDefault();
$('#new-styles').append(generate_html_for_hash("new_attachment_styles", styles_hash_index));
});
// Handle adding new headers
var headers_hash_index = 1;
$(document).on('click', '.add_header', function(e) {
e.preventDefault();
$('#headers_list').append(generate_html_for_hash("new_s3_headers", headers_hash_index));
});
// Generates html for new paperclip styles form fields
generate_html_for_hash = function(hash_name, index) {
var html = '<div class="' + hash_name + ' row"><div class="field">';
html += '<div class="five columns">';
html += '<label for="' + hash_name + '_' + index + '_name">';
html += Spree.translations.name + '</label>';
html += '<input id="' + hash_name + '_' + index + '_name" name="' + hash_name + '[' + index + '][name]" type="text" class="fullwidth"><br>';
html += '</div><div class="five columns">'
html += '<label for="' + hash_name + '_' + index + '_value">';
html += Spree.translations.value + '</label>';
html += '<input id="' + hash_name + '_' + index + '_value" name="' + hash_name + '[' + index + '][value]" type="text" class="fullwidth">';
html += '</div><div class="two columns">'
html += '<a href="#" title="' + Spree.translations.destroy + '" class="destroy_' + hash_name + ' with-tip button" style="margin-top: 19px;"><i class="icon-trash"></i> &nbsp; ' + Spree.translations.destroy + '</a>';
html += '</div></div></div>';
index += 1;
return html;
};
});

View File

@@ -0,0 +1,15 @@
$ ->
($ '#new_image_link').click (event) ->
event.preventDefault()
($ '.no-objects-found').hide()
($ this).hide()
$.ajax
type: 'GET'
url: @href
data: (
authenticity_token: AUTH_TOKEN
)
success: (r) ->
($ '#images').html r

View File

@@ -0,0 +1,7 @@
($ '#cancel_link').click (event) ->
event.preventDefault()
($ '.no-objects-found').show()
($ '#new_image_link').show()
($ '#images').html('')

View File

@@ -0,0 +1,23 @@
//On page load
replace_ids = function(s){
var new_id = new Date().getTime();
return s.replace(/NEW_RECORD/g, new_id);
}
$(function() {
$('a[id*=nested]').click(function() {
var template = $(this).attr('href').replace(/.*#/, '');
html = replace_ids(eval(template));
$('#ul-' + $(this).attr('id')).append(html);
update_remove_links();
});
update_remove_links();
})
var update_remove_links = function() {
$('.remove').click(function() {
$(this).prevAll(':first').val(1);
$(this).parent().hide();
return false;
});
};

View File

@@ -0,0 +1,27 @@
var update_state = function(region) {
var country = $('span#' + region + 'country .select2').select2('val');
var state_select = $('span#' + region + 'state select.select2');
var state_input = $('span#' + region + 'state input.state_name');
$.get(Spree.routes.states_search + "?country_id=" + country, function(data) {
var states = data["states"]
if (states.length > 0) {
state_select.html('');
var states_with_blank = [{name: '', id: ''}].concat(states);
$.each(states_with_blank, function(pos,state) {
var opt = $(document.createElement('option'))
.attr('value', state.id)
.html(state.name);
state_select.append(opt);
});
state_select.prop("disabled", false).show();
state_select.select2();
state_input.hide().prop("disabled", true);
} else {
state_input.prop("disabled", false).show();
state_select.select2('destroy').hide();
}
})
};

View File

@@ -0,0 +1,64 @@
// Shipments AJAX API
$(document).ready(function() {
handle_ship_click = function(){
var link = $(this);
var shipment_number = link.data('shipment-number');
var url = Spree.url( Spree.routes.orders_api + "/" + order_number + "/shipments/" + shipment_number + "/ship.json");
$.ajax({
type: "PUT",
url: url
}).done(function( msg ) {
window.location.reload();
}).error(function( msg ) {
console.log(msg);
});
}
$('[data-hook=admin_order_edit_form] a.ship').click(handle_ship_click);
//handle shipping method edit click
$('a.edit-method').click(toggleMethodEdit);
$('a.cancel-method').click(toggleMethodEdit);
handle_shipping_method_save = function(){
var link = $(this);
var shipment_number = link.data('shipment-number');
var selected_shipping_rate_id = link.parents('tbody').find("select#selected_shipping_rate_id[data-shipment-number='" + shipment_number + "']").val();
var unlock = link.parents('tbody').find("input[name='open_adjustment'][data-shipment-number='" + shipment_number + "']:checked").val();
var url = Spree.url( Spree.routes.orders_api + "/" + order_number + "/shipments/" + shipment_number + ".json");
$.ajax({
type: "PUT",
url: url,
data: { shipment: { selected_shipping_rate_id: selected_shipping_rate_id, unlock: unlock } }
}).done(function( msg ) {
window.location.reload();
}).error(function( msg ) {
console.log(msg);
});
}
$('[data-hook=admin_order_edit_form] a.save-method').click(handle_shipping_method_save);
//handle tracking edit click
$('a.edit-tracking').click(toggleTrackingEdit);
$('a.cancel-tracking').click(toggleTrackingEdit);
handle_tracking_save = function(){
var link = $(this);
var shipment_number = link.data('shipment-number');
var tracking = link.parents('tbody').find('input#tracking').val();
var url = Spree.url( Spree.routes.orders_api + "/" + order_number + "/shipments/" + shipment_number + ".json");
$.ajax({
type: "PUT",
url: url,
data: { shipment: { tracking: tracking } }
}).done(function( msg ) {
window.location.reload();
}).error(function( msg ) {
console.log(msg);
});
}
$('[data-hook=admin_order_edit_form] a.save-tracking').click(handle_tracking_save);
});

View File

@@ -0,0 +1,141 @@
// variant autocompletion
$(document).ready(function() {
if ($('#variant_autocomplete_template').length > 0) {
window.variantTemplate = Handlebars.compile($('#variant_autocomplete_template').text());
window.variantStockTemplate = Handlebars.compile($('#variant_autocomplete_stock_template').text());
// handle variant selection, show stock level.
$('#add_variant_id').change(function(){
var variant_id = $(this).val();
var variant = _.find(window.variants, function(variant){
return variant.id == variant_id
})
$('#stock_details').html(variantStockTemplate({variant: variant}));
$('#stock_details').show();
$('button.add_variant').click(addVariantFromStockLocation);
// Add some tips
$('.with-tip').powerTip({
smartPlacement: true,
fadeInTime: 50,
fadeOutTime: 50,
intentPollInterval: 300
});
});
//handle edit click
$('a.edit-item').click(toggleItemEdit);
//handle cancel click
$('a.cancel-item').click(toggleItemEdit);
handle_save_click = function(){
var save = $(this);
var shipment_number = save.data('shipment-number');
var variant_id = save.data('variant-id');
var quantity = parseInt(save.parents('tr').find('input.line_item_quantity').val());
toggleItemEdit();
adjustItems(shipment_number, variant_id, quantity);
return false;
}
$('a.save-item').click(handle_save_click);
handle_delete_click = function(){
var del = $(this);
var shipment_number = del.data('shipment-number');
var variant_id = del.data('variant-id');
toggleItemEdit();
adjustItems(shipment_number, variant_id, 0);
}
$('a.delete-item').click(handle_delete_click);
}
});
adjustItems = function(shipment_number, variant_id, quantity){
var shipment = _.findWhere(shipments, {number: shipment_number + ''});
var inventory_units = _.where(shipment.inventory_units, {variant_id: variant_id});
var url = Spree.routes.orders_api + "/" + order_number + "/shipments/" + shipment_number;
var new_quantity = 0;
if(inventory_units.length<quantity){
url += "/add"
new_quantity = (quantity - inventory_units.length);
}else if(inventory_units.length>quantity){
url += "/remove"
new_quantity = (inventory_units.length - quantity);
}
url += '.json';
if(new_quantity!=0){
$.ajax({
type: "PUT",
url: Spree.url(url),
data: { variant_id: variant_id, quantity: new_quantity }
}).done(function( msg ) {
window.location.reload();
});
}
}
toggleTrackingEdit = function(){
var link = $(this);
link.parents('tbody').find('tr.edit-tracking').toggle();
link.parents('tbody').find('tr.show-tracking').toggle();
}
toggleMethodEdit = function(){
var link = $(this);
link.parents('tbody').find('tr.edit-method').toggle();
link.parents('tbody').find('tr.show-method').toggle();
}
toggleItemEdit = function(){
var link = $(this);
link.parent().find('a.edit-item').toggle();
link.parent().find('a.cancel-item').toggle();
link.parent().find('a.save-item').toggle();
link.parent().find('a.delete-item').toggle();
link.parents('tr').find('td.item-qty-show').toggle();
link.parents('tr').find('td.item-qty-edit').toggle();
return false;
}
addVariantFromStockLocation = function() {
$('#stock_details').hide();
var variant_id = $('input.variant_autocomplete').val();
var stock_location_id = $(this).data('stock-location-id');
var quantity = $("input.quantity[data-stock-location-id='" + stock_location_id + "']").val();
var shipment = _.find(shipments, function(shipment){
return shipment.stock_location_id == stock_location_id && (shipment.state == 'ready' || shipment.state == 'pending');
});
if(shipment==undefined){
$.ajax({
type: "POST",
url: Spree.url(Spree.routes.orders_api + "/" + order_number + "/shipments.json"),
data: { variant_id: variant_id, quantity: quantity, stock_location_id: stock_location_id }
}).done(function( msg ) {
window.location.reload();
}).error(function( msg ) {
console.log(msg);
});
}else{
//add to existing shipment
adjustItems(shipment.number, variant_id, quantity);
}
return 1
}

View File

@@ -0,0 +1,7 @@
$(document).ready ->
$(document).ajaxStart ->
$("#progress").fadeIn()
$(document).ajaxStop ->
$("#progress").fadeOut()

View File

@@ -0,0 +1,8 @@
//= require select2
jQuery(function($) {
// Make select beautiful
if (typeof $('select.select2').select2 === 'function' )
$('select.select2').select2({
allowClear: true
});
})

View File

@@ -0,0 +1,8 @@
$(document).ready(function() {
$("#country").change(function() {
var new_state_link_href = $('#new_state_link a').attr('href');
var selected_country_id = $('#country option:selected').attr('value');
var new_link = new_state_link_href.replace(/countries\/(\d+)/, 'countries/'+selected_country_id);
$('#new_state_link a').attr('href', new_link);
});
});

View File

@@ -0,0 +1,22 @@
root = exports ? this
root.taxon_tree_menu = (obj, context) ->
base_url = Spree.url(Spree.routes.taxonomy_taxons_path)
admin_base_url = Spree.url(Spree.routes.admin_taxonomy_taxons_path)
edit_url = admin_base_url.clone()
edit_url.setPath(edit_url.path() + '/' + obj.attr("id") + "/edit");
create:
label: "<i class='icon-plus'></i> " + Spree.translations.add,
action: (obj) -> context.create(obj)
rename:
label: "<i class='icon-pencil'></i> " + Spree.translations.rename,
action: (obj) -> context.rename(obj)
remove:
label: "<i class='icon-trash'></i> " + Spree.translations.remove,
action: (obj) -> context.remove(obj)
edit:
separator_before: true,
label: "<i class='icon-edit'></i> " + Spree.translations.edit,
action: (obj) -> window.location = edit_url.toString()

View File

@@ -0,0 +1,127 @@
handle_ajax_error = (XMLHttpRequest, textStatus, errorThrown) ->
$.jstree.rollback(last_rollback)
$("#ajax_error").show().html("<strong>" + server_error + "</strong><br />" + taxonomy_tree_error)
handle_move = (e, data) ->
last_rollback = data.rlbk
position = data.rslt.cp
node = data.rslt.o
new_parent = data.rslt.np
url = Spree.url(base_url).clone()
url.setPath url.path() + '/' + node.attr("id")
$.ajax
type: "POST",
dataType: "json",
url: url.toString(),
data: ({_method: "put", "taxon[parent_id]": new_parent.attr("id"), "taxon[position]": position }),
error: handle_ajax_error
true
handle_create = (e, data) ->
last_rollback = data.rlbk
node = data.rslt.obj
name = data.rslt.name
position = data.rslt.position
new_parent = data.rslt.parent
$.ajax
type: "POST",
dataType: "json",
url: base_url.toString(),
data: ({"taxon[name]": name, "taxon[parent_id]": new_parent.attr("id"), "taxon[position]": position }),
error: handle_ajax_error,
success: (data,result) ->
node.attr('id', data.id)
handle_rename = (e, data) ->
last_rollback = data.rlbk
node = data.rslt.obj
name = data.rslt.new_name
url = Spree.url(base_url).clone()
url.setPath(url.path() + '/' + node.attr("id"))
$.ajax
type: "POST",
dataType: "json",
url: url.toString(),
data: {_method: "put", "taxon[name]": name },
error: handle_ajax_error
handle_delete = (e, data) ->
last_rollback = data.rlbk
node = data.rslt.obj
delete_url = base_url.clone()
delete_url.setPath delete_url.path() + '/' + node.attr("id")
if confirm(Spree.translations.are_you_sure_delete)
$.ajax
type: "POST",
dataType: "json",
url: delete_url.toString(),
data: {_method: "delete"},
error: handle_ajax_error
else
$.jstree.rollback(last_rollback)
last_rollback = null
root = exports ? this
root.setup_taxonomy_tree = (taxonomy_id) ->
if taxonomy_id != undefined
# this is defined within admin/taxonomies/edit
root.base_url = Spree.url(Spree.routes.taxonomy_taxons_path)
$.ajax
url: base_url.path().replace("/taxons", "/jstree"),
success: (taxonomy) ->
last_rollback = null
conf =
json_data:
data: taxonomy,
ajax:
url: (e) ->
base_url.path() + '/' + e.attr('id') + '/jstree'
themes:
theme: "apple",
url: "/assets/jquery.jstree/themes/apple/style.css"
strings:
new_node: new_taxon,
loading: Spree.translations.loading + "..."
crrm:
move:
check_move: (m) ->
position = m.cp
node = m.o
new_parent = m.np
# no parent or cant drag and drop
if !new_parent || node.attr("rel") == "root"
return false
# can't drop before root
if new_parent.attr("id") == "taxonomy_tree" && position == 0
return false
true
contextmenu:
items: (obj) ->
taxon_tree_menu(obj, this)
plugins: ["themes", "json_data", "dnd", "crrm", "contextmenu"]
$("#taxonomy_tree").jstree(conf)
.bind("move_node.jstree", handle_move)
.bind("remove.jstree", handle_delete)
.bind("create.jstree", handle_create)
.bind("rename.jstree", handle_rename)
.bind "loaded.jstree", ->
$(this).jstree("core").toggle_node($('.jstree-icon').first())
$("#taxonomy_tree a").on "dblclick", (e) ->
$("#taxonomy_tree").jstree("rename", this)
# surpress form submit on enter/return
$(document).keypress (e) ->
if e.keyCode == 13
e.preventDefault()

View File

@@ -0,0 +1,43 @@
$ ->
($ '#country_based').click ->
show_country()
($ '#state_based').click ->
show_state()
if ($ '#country_based').is(':checked')
show_country()
else if ($ '#state_based').is(':checked')
show_state()
else
show_state()
($ '#state_based').click()
show_country = ->
($ '#state_members :input').each ->
($ this).prop 'disabled', true
($ '#state_members').hide()
($ '#zone_members :input').each ->
($ this).prop 'disabled', true
($ '#zone_members').hide()
($ '#country_members :input').each ->
($ this).prop 'disabled', false
($ '#country_members').show()
show_state = ->
($ '#country_members :input').each ->
($ this).prop 'disabled', true
($ '#country_members').hide()
($ '#zone_members :input').each ->
($ this).prop 'disabled', true
($ '#zone_members').hide()
($ '#state_members :input').each ->
($ this).prop 'disabled', false
($ '#state_members').show()

View File

@@ -16,7 +16,7 @@ angular.module("admin.subscriptions").controller "DetailsController", ($scope, $
return if !newValue?
paymentMethod = ($scope.paymentMethods.filter (pm) -> pm.id == newValue)[0]
return unless paymentMethod?
$scope.cardRequired = (paymentMethod.type == "Spree::Gateway::StripeConnect")
$scope.cardRequired = (paymentMethod.type == "Spree::Gateway::StripeConnect" || paymentMethod.type == "Spree::Gateway::StripeSCA")
$scope.loadCustomer() if $scope.cardRequired && !$scope.customer
$scope.loadCustomer = ->

View File

@@ -20,4 +20,4 @@ angular.module("admin.subscriptions").controller "ProductsPanelController", ($sc
keys = Object.keys(response.data.errors)
StatusMessage.display 'failure', response.data.errors[keys[0]][0]
else
StatusMessage.display 'success', t('js.changes_saved')
StatusMessage.display 'failure', t('js.admin.subscriptions.error_saving')

View File

@@ -16,22 +16,6 @@ $(document).ready(function() {
});
});
// Overriding a broken function in Spree. Bug report at
// https://github.com/spree/spree/issues/4032
show_flash_error = function(message) {
error_div = $('.flash.error');
if (error_div.length > 0) {
error_div.html(message);
error_div.show();
} else {
if ($("#content .toolbar").length > 0) {
$("#content .toolbar").before('<div class="flash error">' + message + '</div>');
} else {
$("#progress").before('<div class="flash error">' + message + '</div>');
}
}
}
$(document).ready(function(){
$('a.close').click(function(event){
event.preventDefault();

View File

@@ -2,4 +2,10 @@ angular.module("admin.utils").directive "textangularStrip", () ->
restrict: 'CA'
link: (scope, element, attrs) ->
scope.stripFormatting = ($html) ->
return String($html).replace(/<[^>]+>/gm, '')
element = document.createElement("div")
element.innerHTML = String($html)
allTags = element.getElementsByTagName("*")
for child in allTags
child.removeAttribute("style")
child.removeAttribute("class")
return element.innerHTML

View File

@@ -1,10 +1,6 @@
angular.module("admin.utils").directive "variantAutocomplete", ($timeout) ->
restrict: 'C'
link: (scope, element, attrs) ->
# Make variantAutocomplete do nothing because it is called
# from core/app/assets/javascripts/admin/orders/edit.js
$.fn.variantAutocomplete = angular.noop
$timeout ->
if $("#variant_autocomplete_template").length > 0
variantTemplate = Handlebars.compile($("#variant_autocomplete_template").text())

View File

@@ -0,0 +1,21 @@
# Parses a structure of errors that came from the server
angular.module("admin.utils").factory "ErrorsParser", ->
new class ErrorsParser
toString: (errors, defaultContent = "") =>
return defaultContent unless errors?
errorsString = ""
if errors.length > 0
# it is an array of errors
errorsString = errors.join("\n") + "\n"
else
# it is a hash of errors
keys = Object.keys(errors)
for key in keys
errorsString += errors[key].join("\n") + "\n"
this.defaultIfEmpty(errorsString, defaultContent)
defaultIfEmpty: (content, defaultContent) =>
return defaultContent if content == ""
content

View File

@@ -43,12 +43,11 @@ angular.module("admin.variantOverrides").controller "AdminVariantOverridesCtrl",
$scope.fetchProducts = ->
url = "/api/products/overridable?page=::page::;per_page=100"
PagedFetcher.fetch url, (data) => $scope.addProducts data.products
PagedFetcher.fetch url, $scope.addProducts
$scope.addProducts = (products) ->
$scope.products = $scope.products.concat products
VariantOverrides.ensureDataFor hubs, products
$scope.addProducts = (data) ->
$scope.products = $scope.products.concat data.products
VariantOverrides.ensureDataFor hubs, data.products
$scope.displayDirty = ->
if DirtyVariantOverrides.count() > 0

View File

@@ -1,9 +0,0 @@
// This is a manifest file that'll be compiled into including all the files listed below.
// Add new JavaScript/Coffee code in separate files in this directory and they'll automatically
// be included in the compiled file accessible from http://example.com/assets/application.js
// It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
// the compiled file.
//
//= require jquery
//= require jquery_ujs
//= require_tree .

View File

@@ -1,14 +1,18 @@
#= require jquery
#= require jquery_ujs
#= require jquery.ui.all
#= require spin
#
#= require angular
#= require angular-cookies
#= require angular-sanitize
#= require angular-animate
#= require angular-resource
#= require autocomplete.min.js
#= require leaflet-1.6.0.js
#= require leaflet-providers.js
#= require lodash.underscore.js
# bluebird.js is a dependency of angular-google-maps.js 2.0.0
#= require bluebird.js
#= require angular-scroll.min.js
#= require angular-google-maps.min.js
#= require ../shared/mm-foundation-tpls-0.9.0-20180826174721.min.js
@@ -33,7 +37,11 @@
#= require moment/nb.js
#= require moment/pt-br.js
#= require moment/pt.js
#= require moment/ru.js
#= require moment/sv.js
#= require moment/ca.js
#= require moment/ar.js
#= require moment/tr.js
#
#= require modernizr
#

View File

@@ -1,2 +1,4 @@
Darkswarm.controller "CartCtrl", ($scope, Cart, $timeout) ->
Darkswarm.controller "CartCtrl", ($scope, Cart, CurrentHub) ->
$scope.Cart = Cart
$scope.CurrentHub = CurrentHub
$scope.max_characters = 20

View File

@@ -0,0 +1,7 @@
Darkswarm.controller "CartDropdownCtrl", ($scope, Cart, BodyScroll) ->
$scope.Cart = Cart
$scope.showCartSidebar = false
$scope.toggleCartSidebar = ->
$scope.showCartSidebar = !$scope.showCartSidebar
BodyScroll.toggle()

View File

@@ -0,0 +1,2 @@
Darkswarm.controller "CartFormCtrl", ($scope) ->

View File

@@ -9,8 +9,13 @@ Darkswarm.controller "EnterprisesCtrl", ($scope, $rootScope, $timeout, $location
$scope.show_closed = false
$scope.filtersActive = false
$scope.distanceMatchesShown = false
$scope.closed_shops_loading = false
$scope.closed_shops_loaded = false
$scope.$watch "query", (query)->
$scope.resetSearch(query)
$scope.resetSearch = (query) ->
Enterprises.flagMatching query
Search.search query
$rootScope.$broadcast 'enterprisesChanged'
@@ -19,6 +24,7 @@ Darkswarm.controller "EnterprisesCtrl", ($scope, $rootScope, $timeout, $location
$timeout ->
Enterprises.calculateDistance query, $scope.firstNameMatch()
$rootScope.$broadcast 'enterprisesChanged'
$scope.closed_shops_loading = false
$timeout ->
if $location.search()['show_closed']?
@@ -73,6 +79,12 @@ Darkswarm.controller "EnterprisesCtrl", ($scope, $rootScope, $timeout, $location
undefined
$scope.showClosedShops = ->
unless $scope.closed_shops_loaded
$scope.closed_shops_loading = true
$scope.closed_shops_loaded = true
Enterprises.loadClosedEnterprises().then ->
$scope.resetSearch($scope.query)
$scope.show_closed = true
$location.search('show_closed', '1')

View File

@@ -1,6 +1,3 @@
Darkswarm.controller "GroupPageCtrl", ($scope, enterprises, Enterprises, MapConfiguration, OfnMap) ->
Darkswarm.controller "GroupPageCtrl", ($scope, enterprises, Enterprises) ->
$scope.Enterprises = Enterprises
$scope.map = angular.copy MapConfiguration.options
$scope.mapMarkers = OfnMap.enterprise_markers enterprises
$scope.embedded_layout = window.location.search.indexOf("embedded_shopfront=true") != -1

View File

@@ -24,7 +24,7 @@ Darkswarm.controller "HubNodeCtrl", ($scope, HashNavigation, CurrentHub, $http,
$scope.shopfront_loading = true
$scope.toggle_tab(event)
$http.get("/api/enterprises/" + $scope.hub.id + "/shopfront")
$http.get("/api/shops/" + $scope.hub.id)
.success (data) ->
$scope.shopfront_loading = false
$scope.hub = data

Some files were not shown because too many files have changed in this diff Show More