Compare commits

...

1274 Commits

Author SHA1 Message Date
Luis Ramos
22a60e4fa9 Merge pull request #3769 from amers185/fix_rebase_error
Closes translation bug for enterprise fee settings
2019-05-03 12:53:52 +01:00
luisramos0
d7596b4066 Merge branch 'master' into fix_rebase_error 2019-05-03 12:10:57 +01:00
luisramos0
f0f08f7cd3 Update all locales with the latest Transifex translations 2019-05-02 11:22:37 +01:00
Pau Pérez Fabregat
5f47a37fac Merge pull request #3763 from coopdevs/allow-passing-s3-region
Allow passing s3 region
2019-05-02 12:17:58 +02:00
Pau Pérez Fabregat
2d77605e59 Merge pull request #3764 from Matt-Yorkley/s3_backups_without_images
Don't use s3 for images unless images bucket has been provisioned.
2019-05-01 17:55:01 +02:00
Syed Usama Amer
75a7745736 Closes translation bug for enterprise fee settings 2019-05-01 10:43:35 -05:00
Pau Pérez Fabregat
88cbf5bd36 Merge pull request #3753 from openfoodfoundation/dependabot/bundler/whenever-0.11.0
Bump whenever from 0.10.0 to 0.11.0
2019-04-30 18:38:52 +02:00
Matt-Yorkley
732d0f7cf4 Don't use s3 for images unless images bucket has been provisioned.
Sets the "use_s3" (for images) option based on presence of `s3_images_bucket` from ofn-install instead of presence of s3 keys, for instances that use s3 for backups but not for images.
2019-04-30 17:06:42 +01:00
Pau Perez
d5b08c602a Allow passing a specific AWS region to S3 settings
This solves the error showed below when executed `bundle exec rake
db2fog:backup RAILS_ENV=staging` on Katuma staging

```
Excon::Error::BadRequest: Expected(200) <=> Actual(400 Bad Request)
excon.error.response
  :body          => "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Error><Code>AuthorizationHeaderMalformed</Code><Message>The authorization header is malformed; the region 'us-east-1' is wrong; expecting 'eu-central-1'</Message><Region>eu-central-1</Region><RequestId>3DE2763883FC601D</RequestId><HostId>1E6UapnblBqVZM0SeeLrdPNDd+VaQ0nxCWwrQ9mi8HjRo2xevAUwtSq5V3fxhsj4Cj9ynnDroco=</HostId></Error>"
```
2019-04-30 13:31:36 +02:00
Pau Perez
f36646d0a3 Store S3 keys in Config before calling db2fog
This ensures that Db2fog always picks up the latest value of the S3_*
env vars and not the one that was persisted last time. Now you can do
things like `S3_BUCKET=xxx bundle exec rake db2fog:backup` if you had
to.
2019-04-30 13:31:36 +02:00
Pau Pérez Fabregat
010f058618 Merge pull request #3744 from openfoodfoundation/dependabot/bundler/oj-3.7.12
Bump oj from 3.7.11 to 3.7.12
2019-04-30 11:53:44 +02:00
Pau Pérez Fabregat
6c9101dffa Merge pull request #3745 from openfoodfoundation/transifex
Transifex
2019-04-30 11:46:17 +02:00
dependabot[bot]
2c536c29c5 Bump whenever from 0.10.0 to 0.11.0
Bumps [whenever](https://github.com/javan/whenever) from 0.10.0 to 0.11.0.
- [Release notes](https://github.com/javan/whenever/releases)
- [Changelog](https://github.com/javan/whenever/blob/master/CHANGELOG.md)
- [Commits](https://github.com/javan/whenever/compare/v0.10.0...v0.11.0)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2019-04-23 19:18:23 +00:00
Transifex-Openfoodnetwork
225b159b9b Updating translations for config/locales/en_BE.yml 2019-04-17 02:23:46 +10:00
Transifex-Openfoodnetwork
e07ae3d931 Updating translations for config/locales/en_BE.yml 2019-04-17 02:20:37 +10:00
Luis Ramos
c5720bede5 Merge pull request #3697 from coopdevs/add-delayed-job-web
Add delayed job web
2019-04-16 15:33:59 +01:00
dependabot[bot]
2a025be032 Bump oj from 3.7.11 to 3.7.12
Bumps [oj](https://github.com/ohler55/oj) from 3.7.11 to 3.7.12.
- [Release notes](https://github.com/ohler55/oj/releases)
- [Changelog](https://github.com/ohler55/oj/blob/master/CHANGELOG.md)
- [Commits](https://github.com/ohler55/oj/compare/v3.7.11...v3.7.12)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2019-04-15 19:14:59 +00:00
Pau Pérez Fabregat
ffbea7d3fd Merge pull request #3712 from openfoodfoundation/transifex
Transifex
2019-04-15 12:58:30 +02:00
Transifex-Openfoodnetwork
f76fada066 Updating translations for config/locales/es.yml 2019-04-15 19:15:24 +10:00
Transifex-Openfoodnetwork
1b01c44ce4 Updating translations for config/locales/es.yml 2019-04-15 19:12:19 +10:00
Transifex-Openfoodnetwork
10c917a693 Updating translations for config/locales/ca.yml 2019-04-15 17:08:06 +10:00
Transifex-Openfoodnetwork
418d80bdc0 Updating translations for config/locales/ca.yml 2019-04-15 17:05:00 +10:00
Pau Pérez Fabregat
e0fd2fbaa9 Merge pull request #3726 from Matt-Yorkley/db2fog_patch
Db2fog patch
2019-04-12 14:26:46 +02:00
Transifex-Openfoodnetwork
45ca63e751 Updating translations for config/locales/fr_BE.yml 2019-04-12 01:14:59 +10:00
Transifex-Openfoodnetwork
b6989c6d6e Updating translations for config/locales/nl_BE.yml 2019-04-12 01:05:30 +10:00
Matt-Yorkley
7373fff190 Define default s3_protocol as 'https' 2019-04-10 19:23:16 +01:00
Matt-Yorkley
4912a9e258 Ensure ENV vars in applications.yml actually update stored Spree::Config preferences 2019-04-10 19:10:31 +01:00
Matt-Yorkley
2ac981a9a3 Make db2fog tasks conditional 2019-04-10 17:17:43 +01:00
Matt-Yorkley
37cbfcb692 Use ENV var for backups bucket 2019-04-10 17:17:17 +01:00
Transifex-Openfoodnetwork
029e8eb848 Updating translations for config/locales/de_DE.yml 2019-04-09 20:50:31 +10:00
Transifex-Openfoodnetwork
44e6adbe34 Updating translations for config/locales/en_GB.yml 2019-04-09 00:21:57 +10:00
Transifex-Openfoodnetwork
fde3d72a66 Updating translations for config/locales/en_GB.yml 2019-04-09 00:18:48 +10:00
Pau Pérez Fabregat
6e727e12e2 Merge pull request #3711 from openfoodfoundation/transifex
Transifex
2019-04-08 15:15:28 +02:00
Transifex-Openfoodnetwork
0261baaed3 Updating translations for config/locales/pt.yml 2019-04-08 21:06:43 +10:00
Transifex-Openfoodnetwork
4a69fdef27 Updating translations for config/locales/pt.yml 2019-04-08 21:06:39 +10:00
Transifex-Openfoodnetwork
5e672dc7d4 Updating translations for config/locales/pt.yml 2019-04-08 21:03:32 +10:00
Pau Pérez Fabregat
ffce31ca45 Merge pull request #3710 from coopdevs/pull-Transifex-translations
Update locales with latest Transifex translations
2019-04-08 12:56:23 +02:00
Pau Perez
860414fa31 Update locales with latest Transifex translations 2019-04-08 12:27:19 +02:00
Pau Pérez Fabregat
fa31ca5a95 Merge pull request #3686 from openfoodfoundation/transifex
Transifex
2019-04-08 12:23:36 +02:00
Transifex-Openfoodnetwork
f5ab89eb03 Updating translations for config/locales/it.yml 2019-04-06 07:38:45 +11:00
Transifex-Openfoodnetwork
80fd367da0 Updating translations for config/locales/en_US.yml 2019-04-06 00:27:12 +11:00
Transifex-Openfoodnetwork
231fa28713 Updating translations for config/locales/en_US.yml 2019-04-06 00:24:05 +11:00
Pau Pérez Fabregat
67376a29a6 Merge pull request #3694 from Matt-Yorkley/db2fog
Fix outdated db2fog initializer
2019-04-05 12:26:07 +02:00
Transifex-Openfoodnetwork
74b7418f59 Updating translations for config/locales/fr.yml 2019-04-05 04:39:15 +11:00
Transifex-Openfoodnetwork
545f2fefa4 Updating translations for config/locales/fr.yml 2019-04-05 04:36:07 +11:00
Pau Perez
aa3f0ac577 Reuse #superadmin? in Delayed Job Web route
This moves #superadmin? to the user decorator so it can be reused
outside FeatureFlags.
2019-04-04 16:00:27 +02:00
Pau Perez
bf20376667 Add Delayed Job Web for superadmins only
This adds https://github.com/ejschmitt/delayed_job_web to enable async
job management such as retries, removal of failed jobs, etc.

Only superadmins can access this web UI though. Therefore any sysadmin
that needs to use it should have access to the appropriate instance
superadmin credentials in Bitwarden.
2019-04-04 16:00:27 +02:00
Pau Pérez Fabregat
07888b355a Merge pull request #3679 from mkllnk/3477-missing-v2-translation
Add missing translation for order form in v2
2019-04-04 14:25:05 +02:00
Transifex-Openfoodnetwork
8d69180c8c Updating translations for config/locales/es.yml 2019-04-04 23:23:06 +11:00
Transifex-Openfoodnetwork
4b60a75eae Updating translations for config/locales/ca.yml 2019-04-04 23:22:59 +11:00
Matt-Yorkley
9b45269cbb Fix name of Spree::Config preference 2019-04-04 13:06:05 +01:00
Matt-Yorkley
7522594b85 Fix outdated db2fog initializer 2019-04-04 12:02:57 +01:00
Pau Pérez Fabregat
ec00544130 Merge pull request #3665 from mkllnk/stripe-version
Relax stripe version requirement
2019-04-03 17:02:40 +02:00
Pau Pérez Fabregat
c515a8f115 Merge pull request #3537 from Matt-Yorkley/pi/on_demand_error
Fix nil values in on_hand column
2019-04-03 11:56:06 +02:00
Pau Pérez Fabregat
b288cb00c1 Merge pull request #3654 from mkllnk/3237-spec-overrides-in-inventory-report
Test inventory report to use variant overrides
2019-04-03 11:55:33 +02:00
Transifex-Openfoodnetwork
898966fbea Updating translations for config/locales/pt.yml 2019-04-03 03:20:34 +11:00
Transifex-Openfoodnetwork
b8f8ea964e Updating translations for config/locales/pt.yml 2019-04-03 03:17:29 +11:00
Transifex-Openfoodnetwork
1874f55fa4 Updating translations for config/locales/pt.yml 2019-04-03 03:14:14 +11:00
Maikel Linke
8b6561addd Add missing translation for order form in v2
I saw the following error on the 2-0-stable branch:

  translation missing: en.spree.line_item_adjustments

In a pending PR I change all three translations in the view file to use
lazy lookup. This commit backports the addition to the locale so that it
can be translated via Transifex before we release v2.
2019-04-02 17:52:24 +11:00
Luis Ramos
d48d2a748b Merge pull request #3662 from SDBowen/add_shipping_method
Add shipping method name to orders detail report
2019-04-01 15:37:57 +01:00
Maikel
6e31f0078a Merge pull request #3639 from coopdevs/fix-variant-cache-refreshing-on-delete
Fix variant cache refreshing on delete
2019-03-29 15:12:46 +11:00
Maikel Linke
29f32604f2 Relax stripe version requirement
We are using the latest version of the `stripe` gem. We don't depend on
any particular version. I'm proposing to drop our dependency declaration
on a particular version and just track the current used version in
Gemfile.lock. That means fewer code changes when updating, which happens
quite frequently with this gem.
2019-03-29 13:40:51 +11:00
Maikel
973ae3d43a Merge pull request #3656 from openfoodfoundation/dependabot/bundler/stripe-4.11.0
Bump stripe from 4.10.0 to 4.11.0
2019-03-29 13:39:08 +11:00
sdbowen
0f7ef2671f Add shipping method name to orders detail report
Added column allows users to see the shipping method of each order.
2019-03-28 16:08:10 -06:00
Maikel
fed2b60743 Merge pull request #3644 from kevinchristianson/master
Fixed producer profile translation bug
2019-03-28 15:51:45 +11:00
Luis Ramos
4455073f6d Merge pull request #3647 from luisramos0/fix-shipment-state-translation
Add missing translation key for order shipment state canceled
2019-03-27 13:02:14 +00:00
dependabot[bot]
6c97bb6cac Bump stripe from 4.10.0 to 4.11.0
Bumps [stripe](https://github.com/stripe/stripe-ruby) from 4.10.0 to 4.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.10.0...v4.11.0)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2019-03-26 19:25:43 +00:00
Maikel
d963df2c87 Merge pull request #3632 from openfoodfoundation/dependabot/bundler/oj-3.7.11
Bump oj from 3.7.10 to 3.7.11
2019-03-26 16:28:36 +11:00
Maikel
84246fedc9 Merge pull request #3631 from openfoodfoundation/dependabot/bundler/stripe-4.10.0
Bump stripe from 4.9.0 to 4.10.0
2019-03-26 16:28:08 +11:00
Maikel
6ad42fcceb Merge pull request #3636 from openfoodfoundation/transifex
Transifex
2019-03-26 16:27:50 +11:00
Maikel Linke
9d4589632b Test inventory report to use variant overrides 2019-03-26 16:13:50 +11:00
Maikel
9e3734fc3e Merge pull request #3646 from kristinalim/fix/3528-product_sku_in_report
3528 Scope Customer Totals report also by variant (not just product) and use variant SKU
2019-03-26 12:05:14 +11:00
Transifex-Openfoodnetwork
a2f3110b06 Updating translations for config/locales/en_CA.yml 2019-03-26 03:33:01 +11:00
Transifex-Openfoodnetwork
e504783929 Updating translations for config/locales/fr_CA.yml 2019-03-26 03:06:18 +11:00
Transifex-Openfoodnetwork
a4bc739d48 Updating translations for config/locales/de_DE.yml 2019-03-25 16:40:06 +11:00
Kristina Lim
807cdb4746 Code style changes for Customer Totals report 2019-03-25 07:46:32 +08:00
Kristina Lim
4a95578db2 Use name helpers in Customer Totals report 2019-03-25 07:46:31 +08:00
Kristina Lim
79d0b63069 Add Spree::Address#full_name_reverse 2019-03-25 07:46:31 +08:00
Kristina Lim
7c7d61fbc5 Simplify some logic for Customer Totals report
Line items belong to a single order.
2019-03-25 07:46:30 +08:00
Kristina Lim
c088fb9a49 Use shorter syntax for Customer Totals report 2019-03-25 07:46:30 +08:00
Kristina Lim
46e7090d11 Group report by variant and use variant SKU
This groups the Customer Totals report by variant too (among others,
including by product), and then changes the report to use the variant
SKU not the product SKU.

This adds a spec for customer totals grouping and details, which
replaces the test specific to the SKU column.
2019-03-25 07:45:32 +08:00
Maikel Linke
7bc735eea3 Cover report content with specs 2019-03-25 04:47:13 +08:00
Maikel Linke
fdd8c06823 Style reports spec 2019-03-25 04:47:13 +08:00
Maikel Linke
856603cadd Convert specs to RSpec 3.8.0 syntax with Transpec
This conversion is done by Transpec 3.4.0 with the following command:
    transpec spec/lib/open_food_network/orders_and_fulfillments_report_spec.rb

* 8 conversions
    from: == expected
      to: eq(expected)

* 8 conversions
    from: obj.should
      to: expect(obj).to

* 1 conversion
    from: obj.stub(:message)
      to: allow(obj).to receive(:message)

For more details: https://github.com/yujinakayama/transpec#supported-conversions
2019-03-25 04:47:13 +08:00
Maikel Linke
0a243ac9ca Give spec vars proper names 2019-03-25 04:47:12 +08:00
Maikel Linke
6ee27cd166 Fix spec to test the right report
Probably a copy&paste error. The PackingReport had exactly the same
spec.
2019-03-25 04:47:12 +08:00
Maikel Linke
dac4d4ff1a DRY report spec 2019-03-25 04:47:07 +08:00
luisramos0
2c97eaa62e Add missing translation key for order shipment state canceled 2019-03-24 15:33:14 +00:00
Transifex-Openfoodnetwork
b979a09478 Updating translations for config/locales/en_US.yml 2019-03-23 23:42:22 +11:00
Transifex-Openfoodnetwork
f050086d47 Updating translations for config/locales/pt.yml 2019-03-23 23:28:49 +11:00
Transifex-Openfoodnetwork
dc198b7b5d Updating translations for config/locales/pt.yml 2019-03-23 23:28:43 +11:00
Usama
698c71f039 Fixed producer profile translation bug 2019-03-22 18:25:40 -05:00
Luis Ramos
6cd07cd107 Merge pull request #3605 from kristinalim/fix/2788-improve_specs_for_order_syncer
[Subscriptions] (v1) Fix assertions in specs for OrderSyncer
2019-03-22 10:31:01 +00:00
Luis Ramos
8d2d5a8708 Merge pull request #3579 from luisramos0/sanitize_data
Add sanitize and truncate data tasks
2019-03-22 10:29:57 +00:00
Pau Pérez Fabregat
deec4f83f8 Merge pull request #3633 from mkllnk/remove-product-distribution-from-sample-data
Remove usage of ProductDistribution which is dead
2019-03-22 10:54:59 +01:00
Pau Pérez Fabregat
4595ea033f Merge pull request #3624 from mkllnk/2873-spec-register-link
Add spec for registration link on Spree pages
2019-03-22 10:47:43 +01:00
Pau Pérez Fabregat
5b06f580e2 Merge pull request #3614 from mkllnk/3335-localized-number-for-weight-calculator
Support international decimals in weight calculator
2019-03-22 10:35:37 +01:00
Pau Perez
96b8c8ac2c Refresh products cache also on Variant#delete
Note that, as explained in
https://apidock.com/rails/v3.2.13/ActiveRecord/Relation/delete, `delete` does
not trigger callbacks and so it skips the products cache logic.

If we still want to avoid instantiating the AR object, we need to explicitly
call that logic for the cache to be up-to-date.
2019-03-22 09:57:15 +01:00
Pau Perez
b293e00777 Test that we refresh the cache on variant destroy
These tests prove that
https://github.com/openfoodfoundation/openfoodnetwork/issues/3629 is
indeed is a bug because we don't refresh the cache when deleting
a variant.
2019-03-22 09:38:24 +01:00
Pau Perez
fbc3fc6a51 Test spree/admin/variants_controller #destroy 2019-03-22 09:18:31 +01:00
Transifex-Openfoodnetwork
2ba10c416a Updating translations for config/locales/nb.yml 2019-03-22 07:41:18 +11:00
Kristina Lim
c222971e26 Clean up setup data for some OrderSyncer specs 2019-03-22 03:30:50 +08:00
Kristina Lim
0c2a75a227 Randomize bill and ship address of sample subscriptions
This also fixes some phone references in OrderSyncer specs.
2019-03-22 02:47:12 +08:00
Kristina Lim
7be669e1dd Add address factory with randomized attributes
Randomizing all addresses generated will be explored separately.
2019-03-22 02:45:50 +08:00
Kristina Lim
d047e04e33 Customize addresses for subscriptions in specs
This forces us to write correct assertions when adding specs affected by
subscription addresses.
2019-03-22 01:58:27 +08:00
Transifex-Openfoodnetwork
f0d985753f Updating translations for config/locales/fr.yml 2019-03-22 03:23:47 +11:00
Transifex-Openfoodnetwork
310b4a08b7 Updating translations for config/locales/fr.yml 2019-03-22 03:20:40 +11:00
luisramos0
61433ee395 Make anonimize and truncate tasks respect rubocop rules 2019-03-21 11:16:56 +00:00
Maikel Linke
0b7192b82a Remove usage of ProductDistribution which is dead
Sample data was failing since:
https://github.com/openfoodfoundation/openfoodnetwork/pull/3570
2019-03-21 17:37:16 +11:00
Maikel Linke
3803094409 Add more examples to LocalizedNumber spec 2019-03-21 12:49:19 +11:00
Maikel Linke
3ef6878233 Avoid global state change by using config stub 2019-03-21 12:49:19 +11:00
Maikel Linke
1ea2f37c18 Support international decimals in weight calculator
A previous pull request added support for flexible decimal characters
when editing money amounts.
https://github.com/openfoodfoundation/openfoodnetwork/pull/1831

This pull request applies the same principle to the weight calculator
which was missed in the previous pull request.
2019-03-21 12:49:19 +11:00
Maikel
130ba64f2f Merge pull request #3619 from openfoodfoundation/dependabot/bundler/dalli-2.7.10
Bump dalli from 2.7.9 to 2.7.10
2019-03-21 12:47:29 +11:00
Maikel
f1ac33f304 Merge pull request #3590 from mkllnk/3576-bulk-order-spec
3576 Fix bulk order management race condition
2019-03-21 12:40:41 +11:00
Maikel Linke
d62908fd2d Add spec for registration link on Spree pages
The `registration_path` helper resolves to `/signup` in Spree
controllers due to spree_auth_device > config > routes.rb.
We worked around that in:
https://github.com/openfoodfoundation/openfoodnetwork/pull/3174

Here we add a spec for this so that we can test more easily if we
remove that workaround or detect it's accidental removal.
2019-03-21 10:06:15 +11:00
dependabot[bot]
6b01eba293 Bump oj from 3.7.10 to 3.7.11
Bumps [oj](https://github.com/ohler55/oj) from 3.7.10 to 3.7.11.
- [Release notes](https://github.com/ohler55/oj/releases)
- [Changelog](https://github.com/ohler55/oj/blob/master/CHANGELOG.md)
- [Commits](https://github.com/ohler55/oj/compare/v3.7.10...v3.7.11)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2019-03-20 19:23:20 +00:00
dependabot[bot]
ee79f97aa0 Bump stripe from 4.9.0 to 4.10.0
Bumps [stripe](https://github.com/stripe/stripe-ruby) from 4.9.0 to 4.10.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.9.0...v4.10.0)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2019-03-20 19:22:18 +00:00
Kristina Lim
d3c2d1859c Update all locales with the latest Transifex translations 2019-03-21 01:56:45 +08:00
Kristina Lim
b942dc1074 Merge pull request #3628 from openfoodfoundation/transifex
Transifex
2019-03-21 01:52:58 +08:00
Transifex-Openfoodnetwork
08894c242c Updating translations for config/locales/en_GB.yml 2019-03-21 04:04:33 +11:00
Transifex-Openfoodnetwork
eeb8f12b4e Updating translations for config/locales/en_GB.yml 2019-03-21 04:01:27 +11:00
Transifex-Openfoodnetwork
79eb89ac0b Updating translations for config/locales/en_GB.yml 2019-03-21 03:58:20 +11:00
luisramos0
3841656979 Rename data sanitize task to data anonymize 2019-03-20 11:58:26 +00:00
luisramos0
fefced5400 Improve sanitize data: keep customers connected to users and let addresses' city and zipcode remain as they are 2019-03-20 11:49:55 +00:00
Pau Pérez Fabregat
4f82808243 Merge pull request #3617 from luisramos0/edit-variants-specs
Add spec to cover editing on_hand and on_demand values in the variants edit page
2019-03-20 09:13:56 +01:00
Pau Pérez Fabregat
2a3a935c16 Merge pull request #3570 from luisramos0/byebye-prod-distributions
Delete dead feature product distributions
2019-03-20 09:01:23 +01:00
Maikel Linke
a66eb7fe1d Add spec for registration link on Spree pages
The `registration_path` helper resolves to `/signup` in Spree
controllers due to spree_auth_device > config > routes.rb.
We worked around that in:
https://github.com/openfoodfoundation/openfoodnetwork/pull/3174

Here we add a spec for this so that we can test more easily if we can
remove that workaround or detect it's accidental removal.
2019-03-20 15:02:30 +11:00
dependabot[bot]
b0854b6d51 Bump dalli from 2.7.9 to 2.7.10
Bumps [dalli](https://github.com/petergoldstein/dalli) from 2.7.9 to 2.7.10.
- [Release notes](https://github.com/petergoldstein/dalli/releases)
- [Changelog](https://github.com/petergoldstein/dalli/blob/master/History.md)
- [Commits](https://github.com/petergoldstein/dalli/compare/v2.7.9...v2.7.10)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2019-03-18 19:21:33 +00:00
luisramos0
90a14d426b Add spec to cover editing on_hand and on_demand values in the variants edit page 2019-03-18 17:04:59 +00:00
luisramos0
9fff795162 Fix typo in en.yml in key new_shipping_category 2019-03-18 17:04:59 +00:00
luisramos0
b148b9ae46 Remove delete addresses SQL from truncate task 2019-03-18 12:04:37 +00:00
Pau Pérez Fabregat
fb29a7c7c2 Merge pull request #3606 from openfoodfoundation/dependabot/bundler/oj-3.7.10
Bump oj from 3.7.9 to 3.7.10
2019-03-18 12:12:13 +01:00
dependabot[bot]
d7b25d63f9 Bump oj from 3.7.9 to 3.7.10
Bumps [oj](https://github.com/ohler55/oj) from 3.7.9 to 3.7.10.
- [Release notes](https://github.com/ohler55/oj/releases)
- [Changelog](https://github.com/ohler55/oj/blob/master/CHANGELOG.md)
- [Commits](https://github.com/ohler55/oj/compare/v3.7.9...v3.7.10)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2019-03-14 19:25:55 +00:00
Kristina Lim
3ab00d862e Create subscriptions with set up shipping methods
The shipping methods are updated to their target settings after the
subscription order has been created, so the order is created with the
"require_ship_address" factory default which is "true".

The shipping method setting at time of order creation has implications
on whether a shipment is set up for the order or not.
2019-03-15 03:15:55 +08:00
Kristina Lim
ba100a6522 Specify order addresses in some OrderSyncer specs
This is to check that we are using the correct address data in
assertions.

This also clarifies the scenario for one of the specs.
2019-03-15 03:15:55 +08:00
Kristina Lim
7200e2c2c2 Specify hub address in some OrderSyncer specs
This fixes some assertions from using the same subscription shipping and
billing addresses, and distributor address.

One of the specs also pass because the subscription shipping address
matches the distributor address. This commit makes that scenario
clearer.
2019-03-15 03:15:55 +08:00
Kristina Lim
ad935e8d66 Require spec_helper.rb for OrderSyncer specs 2019-03-15 03:15:54 +08:00
Pau Pérez Fabregat
75abd4586e Merge pull request #3583 from coopdevs/handle-deleted-oc-refreshing-cache
Handle deleted order cycle when refreshing cache
2019-03-14 20:11:14 +01:00
Pau Pérez Fabregat
33b74bef0e Merge pull request #3599 from coopdevs/add-nl_BE-belgium
Bring in latest nl_BE translations
2019-03-14 18:59:57 +01:00
Pau Pérez Fabregat
baacea9f6a Merge pull request #3595 from coopdevs/instrument-products-cache
Instrument products cache
2019-03-14 18:58:43 +01:00
Pau Perez
e60437c6a2 Refactor test to execute public API instead 2019-03-14 18:53:11 +01:00
Pau Perez
b9636b975a Refactor test to stop using .any_instance
Although might be useful in very particular cases its use is discourage
by RSpec itself. See https://relishapp.com/rspec/rspec-mocks/docs/working-with-legacy-code/any-instance
2019-03-14 18:53:11 +01:00
Pau Perez
bc34d04c31 Do not retry when refreshing cache on deleted OC 2019-03-14 18:53:11 +01:00
luisramos0
cb78f8f8c8 Fetch latest nl_BE translations from transifex with correct menu links 2019-03-13 23:29:40 +00:00
Pau Perez
fede58289b Move Cache::Store config to new initializer
I don't know why but `Rails.logger` is still nil when evaluated from
`configure` block in `config/environments/development.rb`. The only way
I found to make ActiveSupport's cache to use the default logger is from
an initializer.

Note that `ActiveSupport::Cache::Store` uses `debug` level and so we
need to set the dev logger in that same level to see its messages. If
you want to debug in staging as well, you'll need to modify the log
level manually.
2019-03-13 19:08:46 +01:00
Pau Perez
15a95a3bf5 Use :file_store cache store in development
:memory_store uses the process' memory and therefore, what the
background job writes is not reachable for the rails server process when
it reads from the cache. See
https://github.com/openfoodfoundation/openfoodnetwork/wiki/Products-cache#development.
2019-03-13 19:08:46 +01:00
Pau Perez
10a79d5a65 Decouple CachedProductsRenderer from the Rails env
This way we don't need to touch the class implementation to enable the
products cache in development. Just change the default value in
`app/models/spree/app_configuration_decorator.rb`.
2019-03-13 19:08:46 +01:00
Pau Pérez Fabregat
13b2115a29 Merge pull request #3581 from coopdevs/cache-stylistic-improvements
Cache stylistic improvements
2019-03-13 19:05:38 +01:00
luisramos0
8965dedfd7 Add sanitize and truncate tasks to support loading live data into other environments safely 2019-03-13 16:08:07 +00:00
luisramos0
786ba15174 Remove unused translation 2019-03-13 12:24:40 +00:00
luisramos0
7a2bc384d5 Re-add spec removed in product distributions removal but now adapted to use order cycles 2019-03-13 12:24:40 +00:00
luisramos0
34d7070c6c Delete spec used to test product distributions (removed feature) 2019-03-13 12:24:40 +00:00
luisramos0
b62e350fab Improve reports controller decorator by removing some copy pasted code and deleting some code repeated across data_load and the main action methods 2019-03-13 12:24:40 +00:00
luisramos0
2401b947b9 Make load sample data rake task work without product distributions 2019-03-13 12:24:40 +00:00
luisramos0
05d42d475e Make reports and subscriptions specs work without product.distributors attribute 2019-03-13 12:24:40 +00:00
luisramos0
2de6c46834 Make order.order_cycle required in cart_service. There’s no more exception for that without product_distributions. 2019-03-13 12:24:40 +00:00
luisramos0
4768ca27c7 Remove all dependencies to product distributions including the validation to avoid deleting fees with product distributions 2019-03-13 11:50:35 +00:00
luisramos0
3117dbf624 Remove product distributions from order model 2019-03-13 11:50:35 +00:00
luisramos0
a022cebfc8 Remove product distributions from enterprise model and controller 2019-03-13 11:49:13 +00:00
luisramos0
ed9321e92d Remove product distributions from product model and controller 2019-03-13 11:47:50 +00:00
luisramos0
86f9b3d663 Delete product_distributions: drop table and remove models, controllers and BO edit page 2019-03-13 11:47:50 +00:00
Maikel Linke
d129665d43 Wait for orders being loaded in bulk order manage
The bulk order management page tried to wait for orders being loaded.
But instead of receiving a request object with an a promise to wait for
the page received a simple array without promise. As a result, the page
didn't wait for orders being loaded.

When loading of orders took longer than loading of line items they or at
least not all of them were enriched with distributors and order cycles
and the line items were missing some orders. That lead to random spec
failures.
2019-03-13 10:37:24 +11:00
Pau Pérez Fabregat
2dd55770fe Merge pull request #3569 from luisramos0/delete-more-overrides
Delete some more dead overrides and more dead code
2019-03-12 17:48:12 +01:00
Pau Pérez Fabregat
01baba336d Merge pull request #3575 from openfoodfoundation/dependabot/bundler/unicorn-5.5.0
Bump unicorn from 5.4.1 to 5.5.0
2019-03-12 17:30:56 +01:00
Pau Perez
c4fcc25faa Bring in latest nl_BE translations
As we didn't reach 100% translation Transifex does not sync the changes
into the repo. However, the Belgian instance still needs it.
2019-03-12 15:30:52 +01:00
Maikel Linke
7270a9e8e8 DRY date calculation in BOM js
This also minimises the risk of values changing in the meantime.
2019-03-12 18:59:14 +11:00
Maikel
6722f21cb0 Merge pull request #3593 from openfoodfoundation/transifex
Transifex
2019-03-12 16:01:28 +11:00
Maikel Linke
49a6b5224d Remove duplicate expectations from spec 2019-03-12 11:35:06 +11:00
Maikel Linke
af9e80e55d Load data after all callbacks are installed 2019-03-12 09:46:27 +11:00
Maikel Linke
0c6a5d730b Add spaces around HAML brackets 2019-03-12 09:12:10 +11:00
Maikel Linke
6f875e83ec Remove unconventional and unused ng:cloak selector 2019-03-12 09:10:39 +11:00
Maikel Linke
9e33ef8140 Style ng-cloak directive 2019-03-12 09:09:52 +11:00
Maikel Linke
30c1a8d924 Move ng-cloak CSS to components 2019-03-12 08:59:59 +11:00
Pau Perez
931cb89a9d Move new class to services and rename it 2019-03-11 18:28:25 +01:00
Transifex-Openfoodnetwork
46f16c060b Updating translations for config/locales/en_US.yml 2019-03-12 00:38:22 +11:00
Transifex-Openfoodnetwork
8afd5e7050 Updating translations for config/locales/nb.yml 2019-03-09 06:33:01 +11:00
Maikel Linke
4574a770d3 Synchronise dereferencing and initilising
This seems to make the spec 4 times more reliable. Still failing from
time to time.
2019-03-08 17:36:25 +11:00
Maikel Linke
e00a3ee263 Use clearer and more reliable waiting in spec 2019-03-08 17:24:31 +11:00
Maikel Linke
52fd7b102e Unify visiting bulk order management
DRYing the code allows for easier refactor and more consistency.
2019-03-08 14:46:58 +11:00
Maikel Linke
37d37a6057 Speed up initial spec log in 2019-03-08 14:46:39 +11:00
Maikel Linke
2d7498b77b Hide elements before Angular is loaded
The "Loading orders" spinner is still visible from the beginning so that
it can be used as indicator for when the page is loaded.

Before, the "No orders found" message was visible between page load and
Angular initilisation.
2019-03-08 14:23:18 +11:00
Maikel
22bac3daaf Merge pull request #3588 from openfoodfoundation/transifex
Transifex
2019-03-08 11:31:36 +11:00
Maikel
608c322770 Merge pull request #3585 from mkllnk/1829-missing-translation-product-category
1829 missing translation product category
2019-03-08 10:10:09 +11:00
Transifex-Openfoodnetwork
2eb3b7acea Updating translations for config/locales/fr.yml 2019-03-08 04:06:14 +11:00
Transifex-Openfoodnetwork
66d6936452 Updating translations for config/locales/en_GB.yml 2019-03-08 01:36:28 +11:00
Pau Pérez Fabregat
f125686016 Merge pull request #3511 from coopdevs/update-bugsnag-notifier-library
Update Bugsnag from 5.5.0 to 6.11.1
2019-03-07 11:30:04 +01:00
Maikel Linke
972ebb5fc9 Fix missing translation by using AR default
Using the default fixes a missing translation. The text is slightly
changed but should be okay as well:

- "^Tax Category is required"
+ "Tax category can't be blank"
2019-03-07 11:54:04 +11:00
Maikel Linke
5ed13d1539 Fix translation by using ActiveRecord's default
Our translations are not available when decorators are loaded. The
message for a missing product category was missing:
https://github.com/openfoodfoundation/openfoodnetwork/issues/1829

I moved the translation to ActiveRecord's default scope so that it can
be picked up automatically.
2019-03-07 11:37:54 +11:00
Matt-Yorkley
3f6a6f7f33 Merge pull request #3572 from openfoodfoundation/transifex
Transifex
2019-03-07 00:17:49 +00:00
Matt-Yorkley
59fd5ce478 Merge branch 'master' into transifex 2019-03-07 00:17:14 +00:00
Matt-Yorkley
4fe7d276b4 Update all locales with the latest Transifex translations 2019-03-07 00:04:09 +00:00
Maikel Linke
f033cfcc12 Remove obsolete Bugsnag option
It prevents the app from booting with the new Bugsnag version.
2019-03-07 10:04:20 +11:00
Pau Perez
8db6560fe7 Update Bugsnag from 5.5.0 to 6.11.1
This brings lots of fixes and a great dose of enhancements such as
a rewritten `Delayed::Job` integration.
2019-03-07 10:03:43 +11:00
Maikel
4780a2193f Merge pull request #3209 from mkllnk/2072-test-data
2072 New sample data for testing
2019-03-07 08:49:12 +11:00
Pau Pérez Fabregat
e850182f95 Merge pull request #3563 from kristinalim/fix/3562-fix_payment_fee_for_order_based_calculator
3562 Fix error calculating payment fee using order-based calculator
2019-03-06 19:31:49 +01:00
Pau Pérez Fabregat
9f8d90cc0a Merge pull request #3305 from coopdevs/improve-shops-performance-take-2
Improve shops performance take 2
2019-03-06 16:25:28 +01:00
Transifex-Openfoodnetwork
9922ce070e Updating translations for config/locales/es.yml 2019-03-07 02:22:03 +11:00
Pau Perez
347aa3c4ae Replace #valid_products_distributed_by by class 2019-03-06 15:06:00 +01:00
Pau Perez
adb40d6c73 Test just the public method
This one is the one calling the private method that was tested now. It
involves some refactoring of the specs as well.
2019-03-06 13:38:53 +01:00
Pau Perez
7c533c6347 Extract DistributedValidProducts from OrderCycle 2019-03-06 13:35:43 +01:00
luisramos0
9644fcf67c Improve payment method factory in sample data by removing constantize 2019-03-06 10:01:17 +00:00
Pau Perez
2b58aab197 Extract method from cache key generation 2019-03-06 10:49:56 +01:00
Pau Perez
bbfd35c861 Fix CacheSettingsController violations 2019-03-06 10:45:45 +01:00
Transifex-Openfoodnetwork
0e2d303701 Updating translations for config/locales/ca.yml 2019-03-06 20:00:41 +11:00
Pau Pérez Fabregat
7e06807a11 Merge pull request #3539 from Matt-Yorkley/subs/confirmation_email
Don't process proxy_order if the order has been cancelled
2019-03-05 17:38:29 +01:00
Pau Pérez Fabregat
3ddee83be5 Merge pull request #3404 from luisramos0/2-0-disable-cache
[Spree Upgrade] Add checkbox to disable products cache
2019-03-05 14:51:11 +01:00
Pau Pérez Fabregat
30bbc5ee6f Merge pull request #3472 from pacodelaluna/fix-datetime-picker
Fix datetime picker on Order Cycle form
2019-03-05 14:50:34 +01:00
Pau Pérez Fabregat
b330db3b4b Merge pull request #2947 from Matt-Yorkley/pi/submenu_link
Pi/submenu link
2019-03-05 14:49:02 +01:00
Transifex-Openfoodnetwork
03aaea2a08 Updating translations for config/locales/ca.yml 2019-03-05 21:52:24 +11:00
dependabot[bot]
6ecb9cc848 Bump unicorn from 5.4.1 to 5.5.0
Bumps [unicorn](https://bogomips.org/unicorn/) from 5.4.1 to 5.5.0.

Signed-off-by: dependabot[bot] <support@dependabot.com>
2019-03-04 19:18:03 +00:00
Transifex-Openfoodnetwork
5ddb8fb1ae Updating translations for config/locales/nb.yml 2019-03-04 21:22:36 +11:00
Pau Perez
54e120889f Remove useless array wrapping on AR relation 2019-03-04 11:08:34 +01:00
luisramos0
5ab4ae88f5 Remove distribution change in order_spec, order distributor cannot be changed, if distributor or oc is changed, the order is emptied 2019-03-02 13:08:39 +00:00
luisramos0
7ac4a99bc7 Remove product distributions spe that needed distribution_change_validator. Product distributions will be removed soon, see https://github.com/openfoodfoundation/openfoodnetwork/issues/3525 2019-03-02 13:08:39 +00:00
luisramos0
d7bd944af3 Fix distribution_change_validator spec 2019-03-02 13:08:35 +00:00
luisramos0
351555d4e2 Remove unused methods from add_to_cart helper and distribution change validator 2019-03-02 12:55:08 +00:00
luisramos0
93e13742be Delete some more dead overrides. We are not using spree/checkout (except for /checkout/payment) nor spree/products 2019-03-01 23:56:03 +00:00
Pau Pérez Fabregat
6c83f67b86 Merge pull request #3556 from Matt-Yorkley/pi/template
Add description to CSV template
2019-03-01 11:37:58 +01:00
Maikel
a14c785e69 Merge pull request #3435 from Matt-Yorkley/bug/tmpfile
Use Dir::Tmpname.make_tmpname for threadsafe file naming
2019-03-01 10:20:26 +11:00
Maikel
54679f6651 Merge pull request #3535 from luisramos0/translations-for-v2
Move to master all en.yml entries added so far to v2 and add more missing v2 translations
2019-03-01 10:04:13 +11:00
luisramos0
e4edfe0b61 Merge branch 'master' into translations-for-v2 2019-02-28 21:32:34 +00:00
Pau Pérez Fabregat
88e6fa84a2 Merge pull request #3534 from luisramos0/registration_trans_all
Move registration process translations to lazy lookups to better organize the en.yml file
2019-02-28 17:15:09 +01:00
Pau Pérez Fabregat
aa635106ac Merge pull request #3531 from mkllnk/document-stock-validation-rules
Document stock validation of variant overrides
2019-02-28 17:14:45 +01:00
Pau Pérez Fabregat
89708de7c1 Merge pull request #3512 from kristinalim/fix/3478-scope_enterprise_fee_summary_to_eligible
3466,3478 [Enterprise Fee Summary] Scope report to eligible: true and non-zero adjustments
2019-02-28 17:14:15 +01:00
Pau Pérez Fabregat
6f0479c27d Merge pull request #3547 from openfoodfoundation/dependabot/bundler/combine_pdf-1.0.16
Bump combine_pdf from 1.0.15 to 1.0.16
2019-02-28 17:13:50 +01:00
Pau Pérez Fabregat
63312a6d5f Merge pull request #3554 from coopdevs/bring-bugsnag-initializer
Bring in Bugsnag initializer from ofn-install
2019-02-28 16:41:59 +01:00
Kristina Lim
36e4a22b58 Use delegate for Payment#line_items 2019-02-28 09:52:56 +08:00
Kristina Lim
bd58667747 Remove stock check done for payment fees 2019-02-28 09:24:29 +08:00
Maikel Linke
958e98debd Document stock validation of variant overrides 2019-02-28 12:21:26 +11:00
Kristina Lim
ce658e9dfa Fix error computing payment fee when order-based 2019-02-28 12:17:45 +11:00
Kristina Lim
dfc8cc0f9e Add failing test for calculation of payment fee 2019-02-28 12:17:44 +11:00
Maikel
4ed0831e4c Merge pull request #3550 from openfoodfoundation/transifex
Transifex
2019-02-28 11:39:57 +11:00
Maikel
824beba066 Merge pull request #3505 from luisramos0/vo-false
Adapt scope_variant_to_hub to new VO rules where on_demand=nil means use_producer_settings
2019-02-28 10:26:23 +11:00
Maikel
c472d2fbbe Merge pull request #3498 from luisramos0/delete-dead-overrides
Remove dead overrides
2019-02-28 10:25:42 +11:00
luisramos0
03d242c061 Fix typo in sample_data zone creation (zonEable) and added clause to avoid re-adding the same country to the zone 2019-02-27 23:19:39 +00:00
luisramos0
ad5c379771 Make sample data zone read from the environment variable CHECKOUT_ZONE 2019-02-27 09:46:18 +00:00
luisramos0
d418ca1b1f Add mandatory payment method provider to sample data payment methods 2019-02-27 09:45:21 +00:00
Pau Pérez Fabregat
a04de6e3cd Merge pull request #3499 from openfoodfoundation/dependabot/bundler/stripe-4.9.0
Bump stripe from 4.5.0 to 4.9.0
2019-02-27 09:56:32 +01:00
Danni M
5b880f7bfe Update issue templates
Fixed headings on the story template
2019-02-27 10:41:39 +11:00
François Turbelin
82fbcd35a8 Update tests 2019-02-26 22:07:11 +01:00
Matt-Yorkley
9dd5b9dd6c Fix import button specificity in feature spec 2019-02-26 20:06:02 +00:00
Matt-Yorkley
25e2d2adda Update references to product_sub_menu view 2019-02-26 20:06:01 +00:00
Matt-Yorkley
777850259b Apply and delete overrides 2019-02-26 19:42:47 +00:00
Matt-Yorkley
f1e55507c3 Recreate product_sub_menu Spree view 2019-02-26 19:42:47 +00:00
Matt-Yorkley
32470f33ec Add description to CSV template 2019-02-26 19:36:44 +00:00
luisramos0
3f3581cdbc Add more missing translations for v2, remove unnecessary en.order_state and remove duplicated en.spree.payment_states and en.spree.shipment_states 2019-02-26 16:54:48 +00:00
Pau Perez
4d47276810 Bring Bugsnag initializer from ofn-install
This copies ofn-install's `roles/app/templates/bugsnag.rb.j2` to
`config/initializers/bugsnag.rb`. All tasks and templates
regarding Bugsnag can then be 🔥 from ofn-install.

As a result, it'll fix the issue that both Katuma and OFF are facing
where the `config/initializer/bugsnag.rb` symlink to
`shared/config/bugsnag.rb` does not exist thus, nothing gets notified to
Bugsnag since December 3rd (according to customer support).
2019-02-26 17:52:49 +01:00
Pau Perez
a728da4f62 Cover product and producer props. in ctrl. spec 2019-02-26 12:09:26 +01:00
Pau Perez
915b5cf09e Inline also the active product properties query
This makes it easier to spot what are the differences and similarities
between active and non-active, which in turn, it'll help remove the N+1
the "active" branch causes.

Make it look `#distributed_producer_properties` with which seems to
share a lot.
2019-02-26 11:39:43 +01:00
Pau Perez
19cbda4128 Fix Rubocop violation 2019-02-26 11:39:43 +01:00
Pau Perez
24c031b3cd Extract #distributed_product_properties method 2019-02-26 11:39:43 +01:00
Pau Perez
6e9bb640f6 Add spacing between long scopes 2019-02-26 11:36:36 +01:00
Pau Perez
7b2d4f10ee Cover #distributed_properties \w a controller spec
This exercises the controller and the serializer ensuring the
integration works allowing to confidently refactor things further.
2019-02-26 11:36:36 +01:00
Pau Perez
e55fbf80fc Check property presentation attribute only in test
The PropertySerializer contains :id, :name and :presentation attributes
which leads to JSON objects like `{"id": 1, "name": "foo",
"presentation": "foo"}`. Because of this, we don't care about object
identity, just about their presentation attribute.
2019-02-26 11:36:36 +01:00
Pau Perez
d4635bd7cb Fetch Property instead of ProducerProps from query
By not having to treat producer properties differently we can filter and
fetch all properties from DB without having to process it with Ruby and
with a single query.
2019-02-26 11:36:36 +01:00
Pau Perez
92e2ed78d1 Test active distributor as well 2019-02-26 11:36:36 +01:00
Pau Perez
8eb35e491d Don't fetch rows by ids of DISTINCT records
There's no point on fetching the same records again by the resulting ids
of the previous query (nasty way of removing duplicates), when that
query has a DISTINCT.
2019-02-26 11:36:36 +01:00
Pau Perez
328cda66f5 Stop using PropertyMerge in serializer 2019-02-26 11:36:36 +01:00
Pau Perez
47a90e937b Have a duplicate product to test with 2019-02-26 11:36:36 +01:00
Pau Perez
8fef69387e Simplify test setup using factory transient attrs 2019-02-26 11:36:36 +01:00
Pau Perez
0782907f4d Setup a test order cycle with its exchanges 2019-02-26 11:36:36 +01:00
Pau Perez
64fb230297 Make it more obvious we talk about an enterprise 2019-02-26 11:36:36 +01:00
Pau Perez
a5f890cf36 Fix styling on method 2019-02-26 11:36:36 +01:00
Transifex-Openfoodnetwork
539544de28 Updating translations for config/locales/es.yml 2019-02-26 20:49:18 +11:00
Transifex-Openfoodnetwork
595fb75d82 Updating translations for config/locales/es.yml 2019-02-26 20:46:12 +11:00
François Turbelin
e1953c279b Move jquery-ui-timepicker libs to vendor dir 2019-02-25 22:48:30 +01:00
François Turbelin
ab86332949 Tune up config and style 2019-02-25 22:22:27 +01:00
François Turbelin
68fd6de39b Update Jquery datetimepicker lib to v1.6.3 2019-02-25 22:22:27 +01:00
dependabot[bot]
a1647053cb Bump combine_pdf from 1.0.15 to 1.0.16
Bumps [combine_pdf](https://github.com/boazsegev/combine_pdf) from 1.0.15 to 1.0.16.
- [Release notes](https://github.com/boazsegev/combine_pdf/releases)
- [Changelog](https://github.com/boazsegev/combine_pdf/blob/master/CHANGELOG.md)
- [Commits](https://github.com/boazsegev/combine_pdf/compare/v1.0.15...v1.0.16)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2019-02-25 19:26:41 +00:00
Pau Pérez Fabregat
df77f6e051 Merge pull request #3536 from Matt-Yorkley/flaky/bom_spec
Wait for angular to load in BOM spec
2019-02-25 13:14:57 +01:00
Pau Pérez Fabregat
6004d09698 Merge pull request #3538 from Matt-Yorkley/flaky/shipping_methods_spec
Adjust expectations in flaky spec
2019-02-25 12:50:48 +01:00
Matt-Yorkley
6e77afbf35 Adjust expectations in flaky spec 2019-02-25 11:08:10 +00:00
Pau Pérez Fabregat
4e180f9f43 Merge pull request #3517 from openfoodfoundation/dependabot/bundler/oj-3.7.9
Bump oj from 3.7.8 to 3.7.9
2019-02-25 11:37:43 +01:00
Pau Pérez Fabregat
59962bbfb1 Merge pull request #3540 from openfoodfoundation/transifex
Transifex
2019-02-25 11:36:56 +01:00
Matt-Yorkley
bbfe71fd27 Improve readability and add code comment 2019-02-25 10:27:34 +00:00
Transifex-Openfoodnetwork
021220514e Updating translations for config/locales/ca.yml 2019-02-25 21:11:12 +11:00
luisramos0
963fddf159 Add missing translations
These translations are missing in v2 but some will also make v1 better
2019-02-24 22:29:44 +00:00
luisramos0
f40ff61f97 Move all en.yml entries added so far to v2 to master so that we can start the translation process now 2019-02-24 22:28:30 +00:00
Matt-Yorkley
627b101be9 Don't process proxy_order if the order has been cancelled 2019-02-24 12:06:58 +00:00
Matt-Yorkley
ea8be0ab95 Fine-tune angular helper 2019-02-23 21:45:33 +00:00
Matt-Yorkley
c4b646c583 Wait for angular to load in BOM spec 2019-02-23 16:12:37 +00:00
luisramos0
ee8fe4b6b4 Move registration process translations to lazy lookups to better organize the en.yml file 2019-02-22 14:37:45 +00:00
luisramos0
0b1ea1beda Rename VariantOverride.use_producer_settings to VariantOverride.use_producer_stock_settings 2019-02-22 09:57:21 +00:00
Pau Pérez Fabregat
632826a192 Merge pull request #3494 from luisramos0/break-oc-specs
Break order_cycle_spec.js in specific files and remove reference to product.count_on_hand in bulk_product_update_spec.js
2019-02-22 08:30:35 +01:00
luisramos0
45e5fed609 Improve scope_variant_to_hub code and spec by testing an invalid data state 2019-02-21 11:25:01 +00:00
Maikel
509e644cf7 Merge pull request #3526 from openfoodfoundation/transifex
Transifex
2019-02-21 16:05:21 +11:00
Transifex-Openfoodnetwork
4b21c9cb70 Updating translations for config/locales/en_CA.yml 2019-02-21 07:32:50 +11:00
Luis Ramos
34acaa4e03 Merge pull request #3425 from mkllnk/2783-product-importer-spec
Apply import defaults to variants of new products in Spree 2
2019-02-20 13:34:57 +00:00
Matt-Yorkley
f73221ed85 Use Dir::Tmpname.make_tmpname for threadsafe file naming 2019-02-20 13:10:47 +00:00
luisramos0
ef786adcfc Make variant_override.stock_overridden? simpler and add comment to explain relationship between count_on_hand and on_demand in a VO 2019-02-20 13:07:21 +00:00
Maikel
ec26948949 Merge pull request #3521 from openfoodfoundation/transifex
Transifex
2019-02-20 19:10:16 +11:00
Transifex-Openfoodnetwork
aba4d742f6 Updating translations for config/locales/fr_CA.yml 2019-02-20 12:55:33 +11:00
Maikel
e7e2d1d870 Merge pull request #3516 from openfoodfoundation/transifex
Transifex
2019-02-20 10:39:55 +11:00
Transifex-Openfoodnetwork
7e59132bb2 Updating translations for config/locales/en_GB.yml 2019-02-20 06:50:52 +11:00
dependabot[bot]
47e154f2ac Bump oj from 3.7.8 to 3.7.9
Bumps [oj](https://github.com/ohler55/oj) from 3.7.8 to 3.7.9.
- [Release notes](https://github.com/ohler55/oj/releases)
- [Changelog](https://github.com/ohler55/oj/blob/master/CHANGELOG.md)
- [Commits](https://github.com/ohler55/oj/compare/v3.7.8...v3.7.9)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2019-02-19 19:21:37 +00:00
Transifex-Openfoodnetwork
9688fe7540 Updating translations for config/locales/fr.yml 2019-02-20 06:15:01 +11:00
Maikel
f0a6f5ae3c Merge pull request #3514 from openfoodfoundation/transifex
Transifex
2019-02-19 15:40:30 +11:00
Transifex-Openfoodnetwork
0a50a74561 Updating translations for config/locales/en_US.yml 2019-02-19 15:23:20 +11:00
Maikel
bb4d42ef9d Merge pull request #3464 from openfoodfoundation/transifex
Transifex
2019-02-19 12:41:16 +11:00
Maikel
1b45033e33 Merge pull request #3506 from Matt-Yorkley/pi/parse_bom
Sanitize non-parsable BOM characters inserted by Excel
2019-02-19 11:24:11 +11:00
Maikel
be59a8ce32 Merge pull request #3434 from Matt-Yorkley/pi/fix_hash_merge
Fix hash merge for recording already created products by name
2019-02-19 11:21:49 +11:00
Maikel
b7abb72ed5 Merge pull request #3462 from luisramos0/delete-api-order-ctrl
Delete empty controller class eval and spec
2019-02-19 11:14:29 +11:00
Maikel
ae4d36b3ed Merge pull request #3451 from Matt-Yorkley/subs/currency
Use localized currency symbols in Subs pages
2019-02-19 09:55:36 +11:00
Matt-Yorkley
9705c249ac Sanitize no-parsable BOM characters inserted by Excel 2019-02-18 13:13:37 +00:00
Kristina Lim
b0a82b0e21 Exclude $0 adjustments from report 2019-02-18 16:53:19 +08:00
Kristina Lim
36fd385f7d Add test showing $0 mandatory adjustments included 2019-02-18 16:53:19 +08:00
Kristina Lim
19f99255fa Exclude non-eligible entries from report 2019-02-18 16:53:18 +08:00
Kristina Lim
8ce7337c9d Add test showing $0 non-mandatory adjustments included 2019-02-18 16:53:18 +08:00
Kristina Lim
ca2c8e6ff2 Add test showing non-"eligible" entries included 2019-02-18 16:53:18 +08:00
Pau Pérez Fabregat
f5df10f5dc Merge pull request #3507 from openfoodfoundation/dependabot/bundler/selenium-webdriver-3.141.0
Bump selenium-webdriver from 3.12.0 to 3.141.0
2019-02-18 09:28:01 +01:00
Matt-Yorkley
09655b9f88 Fix nil values in on_hand column 2019-02-16 01:05:20 +00:00
dependabot[bot]
ed7015ae98 Bump selenium-webdriver from 3.12.0 to 3.141.0
Bumps [selenium-webdriver](https://github.com/SeleniumHQ/selenium) from 3.12.0 to 3.141.0.
- [Release notes](https://github.com/SeleniumHQ/selenium/releases)
- [Changelog](https://github.com/SeleniumHQ/selenium/blob/master/rb/CHANGES)
- [Commits](https://github.com/SeleniumHQ/selenium/compare/selenium-3.12.0...selenium-3.141.0)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2019-02-15 19:20:25 +00:00
luisramos0
75a79717cf Adapt scope_variant_to_hub to new VO rules where on_demand nil is seen as use_producer_settings 2019-02-15 14:05:24 +00:00
Transifex-Openfoodnetwork
9bf5531233 Updating translations for config/locales/nb.yml 2019-02-15 23:47:20 +11:00
Pau Pérez Fabregat
93c6271400 Merge pull request #3500 from openfoodfoundation/dependabot/bundler/bugsnag-5.5.0
Bump bugsnag from 4.1.0 to 5.5.0
2019-02-15 09:26:41 +01:00
Pau Pérez Fabregat
0a391783bc Merge pull request #3470 from kristinalim/fix/3426-intermittent_spec_failures
3426 [Flaky Spec] Address timing issues in enterprise users feature specs
2019-02-15 08:39:39 +01:00
Maikel Linke
6790e8895d Create sample payment methods with current environment 2019-02-15 16:44:55 +11:00
Maikel
d4589cc2f4 Merge pull request #3444 from mkllnk/3437-supplier-name-on-invoice
3437 supplier name on invoice
2019-02-15 16:31:29 +11:00
Matt-Yorkley
0c5cc23415 Fix hash merge for recording already created products by name 2019-02-14 21:38:18 +00:00
dependabot[bot]
7c5e58dd94 Bump bugsnag from 4.1.0 to 5.5.0
Bumps [bugsnag](https://github.com/bugsnag/bugsnag-ruby) from 4.1.0 to 5.5.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/v4.1.0...v5.5.0)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2019-02-14 19:34:17 +00:00
dependabot[bot]
a369b48bf4 Bump stripe from 4.5.0 to 4.9.0
Bumps [stripe](https://github.com/stripe/stripe-ruby) from 4.5.0 to 4.9.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.5.0...v4.9.0)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2019-02-14 19:30:48 +00:00
Pau Pérez Fabregat
6f2b894cfe Merge pull request #3403 from openfoodfoundation/dependabot/bundler/dalli-2.7.9
Bump dalli from 2.7.2 to 2.7.9
2019-02-14 20:12:06 +01:00
Pau Pérez Fabregat
43fff8f18d Merge pull request #3460 from openfoodfoundation/dependabot/bundler/spinjs-rails-1.4
Bump spinjs-rails from 1.3 to 1.4
2019-02-14 19:42:33 +01:00
luisramos0
4a35b53b43 Remove dead overrides 2019-02-14 18:00:25 +00:00
Pau Pérez Fabregat
34020f7bf6 Merge pull request #3377 from openfoodfoundation/dependabot/bundler/i18n-js-3.2.1
Bump i18n-js from 3.1.0 to 3.2.1
2019-02-14 18:26:49 +01:00
Kristina Lim
af95e3871f Move check for table presence out of helper 2019-02-15 01:15:58 +08:00
luisramos0
bf4ce90f98 Add product.on_hand and product.on_demand positive test, these should be returned if no variants are provided in the input
Also, removed product.count_on_hand negative test (there's no such attriubte in v2) and added product.on_hand, this should not be returned because a variant is provided
2019-02-14 15:58:15 +00:00
luisramos0
bfa0734cc6 Break order_cycle_spec.js in specific files like create controller, edit controller and services
Move bulk_product_update_spec.js to its apropriate place under /admin
2019-02-14 15:57:40 +00:00
Pau Pérez Fabregat
0a885af7a6 Merge pull request #3481 from mkllnk/simplify-stripe-creation-in-specs
Simplify specs with stripe factory
2019-02-14 09:42:05 +01:00
Transifex-Openfoodnetwork
a71c89f70e Updating translations for config/locales/en_GB.yml 2019-02-14 18:01:18 +11:00
Transifex-Openfoodnetwork
19568577f5 Updating translations for config/locales/es.yml 2019-02-14 18:01:18 +11:00
Transifex-Openfoodnetwork
71b24ba314 Updating translations for config/locales/ca.yml 2019-02-14 18:01:17 +11:00
Maikel
9058729a9d Merge pull request #3459 from openfoodfoundation/dependabot/bundler/rspec-rails-3.8.2
Bump rspec-rails from 3.8.1 to 3.8.2
2019-02-14 17:18:07 +11:00
Maikel Linke
87abfcd704 Simplify shopping spec 2019-02-14 11:42:46 +11:00
Maikel Linke
5f5b0aaabf Simplify specs with stripe factory 2019-02-13 18:34:22 +11:00
Maikel Linke
612ea4c781 Simplify spec of invoice creation 2019-02-13 17:55:48 +11:00
Maikel
a36dc13192 Add issue templates for tech debt 2019-02-13 17:26:56 +11:00
Pau Pérez Fabregat
bda5eb1b1f Merge pull request #3337 from kristinalim/feature-enterprise_fees_report-order_based_calculator_bug
3283 [Enterprise Fee Summary] Fix values when calculator is order-based
2019-02-12 20:07:57 +01:00
Kristina Lim
5e8a336e24 Initialize data representation classes with data
There is no more need to pass the summarizer.
2019-02-13 01:51:34 +11:00
Kristina Lim
ddc788ed5d Move data representation translations to class 2019-02-13 01:51:34 +11:00
Kristina Lim
bc95560598 Add descriptions for data representation classes 2019-02-13 01:51:33 +11:00
Kristina Lim
664943a6e5 Include UsingEnterpriseFee instead of inheriting 2019-02-13 01:51:33 +11:00
Kristina Lim
b9c144bb1f Prepare to change AssociatedEnterpriseFee to module
The superclasses will include this module, instead of inheriting the class.
2019-02-13 01:51:32 +11:00
Kristina Lim
373e3e1039 Simplify name of SQL data summarizer class 2019-02-13 01:51:32 +11:00
Kristina Lim
7a76355cfe Separate summarizing of SQL data by source 2019-02-13 01:51:32 +11:00
Kristina Lim
c4801aafd4 Fix Fee Calc on Transfer Through and Tax Category
For exchange fees with calculator that is order-based:

* "Fee Calc on Transfer Through" should show "Entire Orders through
  DISTRIBUTOR_NAME".
* For tax category:
  a. If the enterprise fee itself has a tax category, this is used.
  b. If the enterprise fee inherits the product's tax category, this is
     "Various".
  c. If the enterprise fee has no tax, this is blank.

For coordinator fees:

* "Fee Calc on Transfer Through" should be "All".
* For tax category: Same as abova.
2019-02-13 01:51:31 +11:00
Kristina Lim
8f65beeb0b Clarify method name in report scope 2019-02-13 01:51:31 +11:00
Kristina Lim
e550be9bda Add test for using order-based exchange fees
This is not filling the "Fee Calc on Transfer Through" column. This will
be addressed in another commit.
2019-02-13 01:51:31 +11:00
Kristina Lim
0212454041 Refactor SQL result summarizer for report 2019-02-13 01:51:30 +11:00
Kristina Lim
06ba5182b4 Add flat rate calculator traits to related factories 2019-02-13 01:51:30 +11:00
dependabot[bot]
0fc9ead934 Bump i18n-js from 3.1.0 to 3.2.1
Bumps [i18n-js](https://github.com/fnando/i18n-js) from 3.1.0 to 3.2.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.1.0...v3.2.1)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2019-02-12 13:19:50 +00:00
Pau Pérez Fabregat
1f72eb9f68 Merge pull request #3378 from kevinchristianson/active-products-translation-fix
Add missing 'active products' translation on dashboard
2019-02-12 14:15:53 +01:00
Pau Pérez Fabregat
a0c144fd0c Merge pull request #3415 from openfoodfoundation/feature/enterprise_fee_summary
[Enterprise Fee Summary] Merge "Enterprise Fee Summary" report to master
2019-02-12 13:58:47 +01:00
Pau Pérez Fabregat
a6c5e3423f Merge pull request #3474 from Matt-Yorkley/pi/broken_build
Fix broken spec from refactored method
2019-02-12 11:03:28 +01:00
Matt-Yorkley
097ffba323 Fix broken spec from refactored method 2019-02-11 23:57:13 +00:00
Pau Pérez Fabregat
4165ba5cdb Merge pull request #3463 from coopdevs/enable-catalan
Import Catalan translation from Transifex
2019-02-11 18:13:50 +01:00
Pau Perez
990de63728 Merge branch 'master' into active-products-translation-fix
* master: (46 commits)
  Wait for button to disappear before checking flash
  Use flash matcher in shipping method feature specs
  Add RSpec matchers for flash messages
  Do not expect modal open when checking spinner gone
  Update issue templates
  Update all locales with the latest Transifex translations
  Do not show table until first time dereferencing is done
  Remove unused have_no_selector argument in feature test
  Compile row ID with higher priority
  Compile edit link with higher priority
  Support selecting date in next months
  Improve sync between keyword filter and selecting all
  Wait for datepicker to associate and open before selecting date
  Update cancan permissions for second iteration of bulk invoices
  Fix shop accidentally becoming order coordinator
  Match date format in spec with import date filter
  Update name spaces for rake tasks to shorter 'ofn'.
  Refactor checking no preview image in specs
  Refactor checking of preview image path in specs
  Fix race condition in enterprise image feature specs
  ...
2019-02-11 16:12:52 +01:00
Pau Pérez Fabregat
9d065c8a0b Merge pull request #3233 from Matt-Yorkley/pi/inventories
Pi/inventories
2019-02-11 16:10:33 +01:00
Pau Pérez Fabregat
da09c8f86c Merge pull request #3467 from kristinalim/fix/3455-intermittent_spec_failure
3455 [Flaky Spec] Do not expect modal still open when checking that the spinner is gone
2019-02-11 15:58:22 +01:00
Pau Pérez Fabregat
b508d51406 Merge pull request #3469 from kristinalim/fix/3468-intermittent_spec_failures
3468 [Flaky Spec] Check for presence of flash div before trying to get its text
2019-02-11 15:54:33 +01:00
luisramos0
acc99fc9bb Improve readability of cached_product_renderer and respective spec 2019-02-11 11:46:04 +00:00
Kristina Lim
a876c2ab9f Address timing issues in enterprise roles specs 2019-02-11 13:02:40 +08:00
Kristina Lim
0032a237a2 Wait for button to disappear before checking flash 2019-02-10 22:08:18 +08:00
Kristina Lim
175264f41f Use flash matcher in shipping method feature specs 2019-02-10 22:08:18 +08:00
Kristina Lim
e14c60c1c1 Add RSpec matchers for flash messages 2019-02-10 22:08:18 +08:00
Kristina Lim
f143540d0c Do not expect modal open when checking spinner gone
The element referenced in the following might no longer be visible:

  within "div.reveal-modal"
2019-02-09 22:40:40 +08:00
Kristina Lim
b6be8c48d1 Fix layout violation in Spree::Ability decorator 2019-02-08 21:26:39 +00:00
Kristina Lim
de30cf1198 Fix description for feature flag example groups 2019-02-08 21:26:39 +00:00
Kristina Lim
461b5725d1 Hide report link and resource from non-superadmins 2019-02-08 21:26:38 +00:00
Kristina Lim
1d3f4aa28a Add feature flag for enterprise fee summary 2019-02-08 21:26:38 +00:00
Kristina Lim
f59834ddc8 Use receiver as "Fee Calc on Transfer Through" for outgoing exchanges 2019-02-08 21:26:38 +00:00
Kristina Lim
ddf15f1d30 Add scenario test for enterprise fee summary
Add test for more complex scenario where there is a coordinator and
distributor fee for an incoming exchange, and a producer and coordinator
fee for an outgoing exchange.
2019-02-08 21:26:38 +00:00
Kristina Lim
c92d202612 Rename files for factories in spec/factories/
Make these follow the "#{SINGULAR_OBJECT}_factory.rb" convention.
2019-02-08 21:26:38 +00:00
Kristina Lim
625069cb5a Add :per_item factory trait to shipping and payment methods 2019-02-08 21:26:38 +00:00
Kristina Lim
d2e49b8b49 Move variant setup to new factory trait 2019-02-08 21:26:38 +00:00
Kristina Lim
f36d13a736 Rename helper for setting up incomplete order 2019-02-08 21:26:38 +00:00
Kristina Lim
ce030aeb07 Move order setup to new factory traits 2019-02-08 21:26:38 +00:00
Kristina Lim
a3aa594c42 Use enterprise fee factory trait where applicable 2019-02-08 21:26:38 +00:00
Kristina Lim
5dda3b67eb Use factory for tax category in entperprise fee summary tests 2019-02-08 21:26:38 +00:00
Kristina Lim
61ec43f868 Add enterprise fee factory trait for per item rate
We should not presume what is not default for an enterprise fee object.
2019-02-08 21:26:38 +00:00
Kristina Lim
53c458f817 Clean up setup data for enterprise fee summary tests 2019-02-08 21:26:38 +00:00
Kristina Lim
4a73b1d26c Do not include incomplete orders in report 2019-02-08 21:26:38 +00:00
Kristina Lim
eaa7800427 Do not assign I18n translation to constants
The preferred language could change dynamically.
2019-02-08 21:26:38 +00:00
Kristina Lim
6378afdddb Address Rubocop violation 2019-02-08 21:26:38 +00:00
Kristina Lim
c81be75530 Move engine libraries except Engine and Version to services 2019-02-08 21:26:38 +00:00
Kristina Lim
3e499faa7c Do not use ReportData::EnterpriseFeeTypeTotals 2019-02-08 21:26:38 +00:00
Kristina Lim
3f84d0008a Move some in OpenFoodNetwork to engine services
This removes the OpenFoodNetwork namespace from these too.
2019-02-08 21:26:38 +00:00
Kristina Lim
95e3a2f45d Move authorization to the ::Parameters class 2019-02-08 21:26:38 +00:00
Kristina Lim
c61a83faca Move routes for enterprise fee summary to engine 2019-02-08 21:26:38 +00:00
Kristina Lim
9e035efd50 Render enterprise fee report directly in renderer 2019-02-08 21:26:38 +00:00
Kristina Lim
c8b154b12a Separate enterprise fee summary action
Split the previous "index" action into "new" and "create" actions.
2019-02-08 21:26:38 +00:00
Kristina Lim
da914289ea Copy spree/admin/reports#index into application 2019-02-08 21:26:38 +00:00
Kristina Lim
a17fa8013f Clean up I18n scope in feature specs for report 2019-02-08 21:26:38 +00:00
Kristina Lim
c0e6b70131 Rename EnterpriseFeeSummaryReportController
Remove "Report" because this is redundant, and pluralize the resource
name.
2019-02-08 21:26:38 +00:00
Kristina Lim
207b6c7f30 Use shorthand for RSpec expect(subject).to 2019-02-08 21:26:38 +00:00
Kristina Lim
2063752b97 Improve specs for Enterprise Fee Summary
This also addresses a spec that has failed over the rebasing.
2019-02-08 21:26:38 +00:00
Kristina Lim
2bf38b3ea1 Improve code based on Rubocop recommendations 2019-02-08 21:26:38 +00:00
Kristina Lim
552bf1b9f7 Move report list to own class 2019-02-08 21:26:38 +00:00
Kristina Lim
b78e2b4720 Move lib files for enterprise fee summary to engine 2019-02-08 21:26:38 +00:00
Kristina Lim
0cdcd96bb5 Add skeleton for OrderManagement engine 2019-02-08 21:26:38 +00:00
Kristina Lim
dcb1d9fe25 Add feature tests for enterprise fee summary 2019-02-08 21:26:37 +00:00
Kristina Lim
edf0b0df76 Add navigation item for enterprise fee summary 2019-02-08 21:26:37 +00:00
Kristina Lim
d3e9a53120 Filter enterprise fee summary for user permissions 2019-02-08 21:26:37 +00:00
Kristina Lim
8ad53055c7 Allow non-admins to see enterprise fee summary
Relax controller permissions for enterprise fee summary. Even non-admin
enterprise users should be able to see these reports.

Filtering of data based on permissions is handled in:

* OrderManagement::Reports::EnterpriseFeeSummary::Authorizer and
* OrderManagement::Reports::EnterpriseFeeSummary::Permissions.
2019-02-08 21:26:37 +00:00
Kristina Lim
f81f4b7e4a Authorize filters before generating enterprise fee report 2019-02-08 21:26:37 +00:00
Kristina Lim
9ce313c7f5 Define filter authorizer for enterprise fee report 2019-02-08 21:26:37 +00:00
Kristina Lim
cd3e258b59 Rename report authorizers to reflect permissions 2019-02-08 21:26:37 +00:00
Kristina Lim
469988856d Define permissions for enterprise fee summary 2019-02-08 21:26:37 +00:00
Kristina Lim
5fce9d0a7d Add multi-distributor scope to shipping and payment methods 2019-02-08 21:26:37 +00:00
Kristina Lim
24ab2e7fb0 Add filtering to enterprise fee summary 2019-02-08 21:26:37 +00:00
Kristina Lim
2407531957 Make more code for report tests reusable 2019-02-08 21:26:37 +00:00
Kristina Lim
d573dc5023 Make order builder for enterprise fee summary flexible
This is in preparation for tests for filtering the report.
2019-02-08 21:26:37 +00:00
Kristina Lim
4a00aceba2 Include shipping fees in enterprise fee summary 2019-02-08 21:26:37 +00:00
Kristina Lim
1273cc085b Include payment fees in enterprise fee summary 2019-02-08 21:26:37 +00:00
Kristina Lim
7d74ddc85b Add HTML view for enterprise fee summary report 2019-02-08 21:26:37 +00:00
Kristina Lim
418050c1b8 Remove blank strings from array report parameters
Remove the blank strings that Rails multiple selects add by default to
make sure that blank lists are still submitted to the server as arrays
instead of nil.

https://api.rubyonrails.org/classes/ActionView/Helpers/FormOptionsHelper.html#method-i-select
2019-02-08 21:26:37 +00:00
Kristina Lim
6e03ab03f5 Extract general behaviour for report parameters 2019-02-08 21:26:37 +00:00
Kristina Lim
34dc16f8c9 Base filter options from initial authorizer object 2019-02-08 21:26:37 +00:00
Kristina Lim
bd2b4c0134 Add enterprise fee summary form without options
The objects will be filled in another commit. This simply sets up the
filters UI for now.
2019-02-08 21:26:37 +00:00
Kristina Lim
ec81e4221f Add basic action for enterprise fee summary 2019-02-08 21:26:37 +00:00
Kristina Lim
b7439d2574 Fix sort for nil cells in enterprise fee summary 2019-02-08 21:26:37 +00:00
Kristina Lim
5b6bbc3920 Add generation of CSV renderer filename 2019-02-08 21:26:37 +00:00
Kristina Lim
ed2b8e9b9f Add CSV renderer for enterprise fee summary report 2019-02-08 21:26:37 +00:00
Kristina Lim
00e70733b0 Add test data for enterprise fee summary report 2019-02-08 21:26:37 +00:00
Kristina Lim
e7ed625d5a Add processing of enterprise fee summary from DB 2019-02-08 21:26:37 +00:00
Kristina Lim
faf7079780 Specify sort order of enterprise fee totals data 2019-02-08 21:26:37 +00:00
Kristina Lim
3763cb98a3 Add data classes for Enterprise Fee Summary report 2019-02-08 21:26:37 +00:00
Kristina Lim
a097640464 Add basic form object for enterprise fee summary 2019-02-08 21:26:36 +00:00
Kristina Lim
519a7d2ee6 Add datetime and integer array validator matchers 2019-02-08 21:26:36 +00:00
Kristina Lim
f6e8f18d89 Add validator for integer arrays
Example usage:

    validates :related_post_ids, integer_array: true
2019-02-08 21:26:36 +00:00
Kristina Lim
de9cff6fc2 Add validator for datetime string
Example usage:

    validates :start_at, date_time_string: true
2019-02-08 21:26:36 +00:00
Pau Perez
7359789903 Import Catalan translation from Transifex
Although we've started translating to Catalan and focused on it
recently, we never imported the file in the app thus the language menu
showed "English" for the "ca" locale and clicking on it switched to
English as well instead of Catalan.
2019-02-08 15:22:59 +01:00
luisramos0
3dc75c88d2 Delete empty controller class eval and spec. Useless left overs from 0ad2978926 2019-02-08 09:29:58 +00:00
Danni M
8ff5f9055b Update issue templates
I've created 3 types of templates based on those in the wiki and the default (bug) issue template. These can be edited or additional ones added at your leisure.

I also added the OFN software instance and version to the bugs template
2019-02-08 16:58:32 +11:00
Matt-Yorkley
f9ea93933e Use localizeCurrency filter in subscriptions 2019-02-07 22:58:49 +00:00
Matt-Yorkley
5582160e73 Add localizeCurrency filter to admin and inject currencyConfig data 2019-02-07 22:55:08 +00:00
luisramos0
1b4666fc6a Add checkbox to cache settings to disable products cache 2019-02-07 20:06:27 +00:00
dependabot[bot]
72cd0537fb Bump spinjs-rails from 1.3 to 1.4
Bumps [spinjs-rails](https://github.com/dnagir/spinjs-rails) from 1.3 to 1.4.
- [Release notes](https://github.com/dnagir/spinjs-rails/releases)
- [Commits](https://github.com/dnagir/spinjs-rails/compare/v1.3...v1.4)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2019-02-07 19:39:54 +00:00
dependabot[bot]
492b1c905f Bump rspec-rails from 3.8.1 to 3.8.2
Bumps [rspec-rails](https://github.com/rspec/rspec-rails) from 3.8.1 to 3.8.2.
- [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.8.1...v3.8.2)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2019-02-07 19:39:25 +00:00
luisramos0
93aabf6741 Update all locales with the latest Transifex translations 2019-02-07 19:26:00 +00:00
Pau Pérez Fabregat
676fa3d84d Merge pull request #3433 from Matt-Yorkley/bi/user_permission
Update cancan permissions for second iteration of bulk invoices
2019-02-07 20:17:34 +01:00
Luis Ramos
8c0683938a Merge pull request #3416 from kristinalim/fix/race_condition_in_bulk_order_management_feature_specs
3417,2962,3358 [Flaky Spec] Address some race conditions for bulk order management specs
2019-02-07 11:28:54 +00:00
Maikel Linke
5ee3dbf9f2 Re-use renderer object 2019-02-07 10:12:06 +11:00
Luis Ramos
2d0df7ffdf Update app/controllers/spree/admin/orders_controller_decorator.rb
Co-Authored-By: mkllnk <maikel@email.org.au>
2019-02-07 09:19:19 +11:00
Kristina Lim
0030428647 Do not show table until first time dereferencing is done 2019-02-07 04:39:45 +08:00
Kristina Lim
428e58f8f7 Remove unused have_no_selector argument in feature test 2019-02-07 04:39:44 +08:00
Kristina Lim
35ecbe1584 Compile row ID with higher priority 2019-02-07 04:39:44 +08:00
Kristina Lim
ed5856afa4 Compile edit link with higher priority 2019-02-07 04:39:44 +08:00
Kristina Lim
fdede83086 Support selecting date in next months
This was causing failures when selecting tomorrow when running tests on
the last day of the month.
2019-02-07 04:39:43 +08:00
Kristina Lim
bb51f7e36b Improve sync between keyword filter and selecting all 2019-02-07 04:36:28 +08:00
Kristina Lim
3eedee313e Wait for datepicker to associate and open before selecting date 2019-02-07 04:36:24 +08:00
Pau Pérez Fabregat
8f63be9519 Merge pull request #2733 from kristinalim/fix-subscription_should_not_require_future_oc
Reduce restrictions for adding a variant to a subscription
2019-02-06 21:24:57 +01:00
Pau Pérez Fabregat
cd1f469588 Merge pull request #3389 from openfoodfoundation/dependabot/bundler/redcarpet-3.4.0
Bump redcarpet from 3.2.3 to 3.4.0
2019-02-06 21:23:21 +01:00
Pau Pérez Fabregat
433d10c42f Merge pull request #3386 from leandroalemao/fix-moment-deprecation-warning
[ISSUE-3348] LC: Fix moment.js deprecation warning
2019-02-06 21:22:58 +01:00
Pau Pérez Fabregat
b4ba9e65e1 Merge pull request #3367 from openfoodfoundation/dependabot/bundler/jwt-2.1.0
Bump jwt from 1.5.6 to 2.1.0
2019-02-06 21:22:37 +01:00
Pau Pérez Fabregat
6239397589 Merge pull request #3357 from openfoodfoundation/dependabot/bundler/stripe-4.5.0
Bump stripe from 3.3.2 to 4.5.0
2019-02-06 21:22:19 +01:00
Matt-Yorkley
2c3eeec2b9 Update cancan permissions for second iteration of bulk invoices 2019-02-06 18:19:53 +00:00
Maikel Linke
4a3e5f1d0a Print supplier name on invoice 2019-02-06 15:07:05 +11:00
Maikel Linke
3aea16e9ba Cover alternative invoice template with specs 2019-02-06 15:06:44 +11:00
Maikel Linke
d97fa60c31 Remove code duplication and test PDF creation 2019-02-06 14:53:05 +11:00
Maikel Linke
7c5b430a37 Test execution of BulkInvoiceService#start_pdf_job
The spec just tested if a job was enqueued, but not if the job can
actually be executed. Unfortunately, this test is quite slow.
2019-02-06 11:26:22 +11:00
Maikel Linke
cc46bfd002 Rename namespace to ofn 2019-02-05 16:30:46 +11:00
Maikel Linke
659aa269de Fix creation of sample payment methods on staging
Due to an unknown reason my chosen way of creating calculator and
assigning it to a payment method didn't work in staging environment even
though it was working in development.

Without diving deeper into the cause of this, I decided to change the
record assignments and fix the problem that way.
2019-02-05 16:24:30 +11:00
Maikel Linke
7a723d9061 Use new sample data during setup 2019-02-05 16:24:30 +11:00
Maikel Linke
c6393b6077 Warn about deprecation via ActiveSupport 2019-02-05 16:23:17 +11:00
Maikel Linke
c3029c612a Fix sample product creation and use bang methods
Mistakes like the missing fee when creating product distributions were
hidden, because I didn't use the bang methods to create records.
2019-02-05 16:23:17 +11:00
Maikel Linke
1d07327325 Add descriptions to enterprises 2019-02-05 16:23:17 +11:00
Maikel Linke
4b389ba357 Move sample data factories into their own files 2019-02-05 16:23:17 +11:00
Maikel Linke
3ab02d90df Move sample data address module to own file 2019-02-05 16:23:17 +11:00
Maikel Linke
bec9f5eb2e Move sample data logger to own module 2019-02-05 16:23:17 +11:00
Maikel Linke
fae05ff713 Deprecate old sample data task 2019-02-05 16:23:17 +11:00
Maikel Linke
876e73a989 Rewrite task to generate sample data
https://github.com/openfoodfoundation/openfoodnetwork/issues/2072

We need more and better structured sample data for dev testing and to
bootstrap staging data. This new task aims to replace
openfoodnetwork:dev:sample_data.
2019-02-05 16:23:17 +11:00
Maikel
a910468fc7 Merge pull request #3418 from Jefferson-Faseler/change-rake-tasks-namespace
Update Rake task namespace
2019-02-05 16:21:59 +11:00
Maikel Linke
dbfcbc6db9 Apply import defaults to variants of new products
Spree 2 doesn't have `Product#on_hand=` any more. We actually can't save
stock levels without saving the product first which creates a stock
item.

This hacky solution overwrites the attribute in the entry so that it
gets copied to the variant later on. I think a better solution needs
some refactoring as proposed in:
https://github.com/openfoodfoundation/openfoodnetwork/issues/2783#issuecomment-459601530
2019-02-05 15:41:19 +11:00
Luis Ramos
5a4205d151 Merge pull request #3432 from kristinalim/fix/3327-intermittent_spec_failures
3327 [Flaky Spec] Fix shop accidentally becoming order coordinator
2019-02-03 19:32:40 +00:00
Luis Ramos
4b133bbc31 Merge pull request #3412 from kristinalim/fix/3059-race_condition_in_enterprise_image_specs
3059 [Flaky Spec] Fix race condition in enterprise image feature specs
2019-02-03 19:32:11 +00:00
Luis Ramos
a0b5509850 Merge pull request #3430 from kristinalim/fix/3420-intermittent_spec_failures
3420 [Flaky Spec] Fix date format in spec when single-digit day of month
2019-02-03 19:30:22 +00:00
Kristina Lim
3104862739 Fix shop accidentally becoming order coordinator
The original setup of the order calls:

  create(:simple_order_cycle)

Which picks an arbitrary distributor as coordinator:

  coordinator { Enterprise.is_distributor.first || ... }

There is a chance that any of the existing distributor enterprises
becomes coordinator, causing a test to intermittently fail.

This commit makes the relationship between the reference enterprises and
the order consistent.
2019-02-01 20:28:36 +00:00
Kristina Lim
4bff256f6d Match date format in spec with import date filter
This was failing if the current day of month only has one digit. The
test could not find the date in the import date filter.

Before this commit, the resulting string in the test replaced "  " with
" ", so "February  2" was being changed to "February 2". The import date
filter however uses two spaces in this case, even if the browser shows
only one (HTML inline text renders two spaces as just one).
2019-02-02 01:43:52 +08:00
Pau Pérez Fabregat
e1fb005e70 Merge pull request #3387 from kristinalim/fix/3384-product_import_timeout
3384 [Product Import] Process only one batch of rows at a time
2019-02-01 17:29:04 +01:00
Isaac Haseley
09d3cea830 Lazy-load one more translation 2019-02-01 09:22:26 -06:00
Isaac Haseley
73a58435a8 Adopt one/other pluralization 2019-01-31 21:45:57 -06:00
Isaac Haseley
a18c98191a Better accomodate different sentence structures 2019-01-31 21:45:57 -06:00
Isaac Haseley
8543bb7cfb Add missing 'active products' translation on dashboard 2019-01-31 21:45:57 -06:00
Maikel
a9bac2c1af Merge pull request #3411 from openfoodfoundation/transifex
Transifex
2019-01-31 13:42:50 +11:00
Transifex-Openfoodnetwork
32c5c48709 Updating translations for config/locales/en_US.yml 2019-01-31 12:38:44 +11:00
Jefferson Faseler
d4d0489328 Update name spaces for rake tasks to shorter 'ofn'. 2019-01-30 17:14:00 -05:00
Kristina Lim
65438e2619 Refactor checking no preview image in specs 2019-01-31 05:04:18 +08:00
Kristina Lim
a3c808a172 Refactor checking of preview image path in specs 2019-01-31 05:02:57 +08:00
Kristina Lim
777712a0e9 Fix race condition in enterprise image feature specs 2019-01-31 04:52:40 +08:00
Transifex-Openfoodnetwork
24c12897de Updating translations for config/locales/fr_CA.yml 2019-01-31 07:42:29 +11:00
Transifex-Openfoodnetwork
bd43e06605 Updating translations for config/locales/fr_CA.yml 2019-01-31 07:41:40 +11:00
Luis Ramos
cf744bb663 Merge pull request #3407 from openfoodfoundation/transifex
Transifex
2019-01-30 13:58:26 +00:00
Transifex-Openfoodnetwork
2b13516d3d Updating translations for config/locales/nb.yml 2019-01-30 19:20:56 +11:00
Transifex-Openfoodnetwork
1b50ba2729 Updating translations for config/locales/fr.yml 2019-01-30 19:16:54 +11:00
Maikel
e8ac0e4a9f Merge pull request #3402 from openfoodfoundation/transifex
Transifex
2019-01-30 14:45:39 +11:00
Maikel
bef7684505 Merge pull request #3399 from kristinalim/fix/3381-address_failing_tests
3381 [Flaky Spec] Load enterprise users tab before inspecting table
2019-01-30 14:29:16 +11:00
dependabot[bot]
8750310648 Bump dalli from 2.7.2 to 2.7.9
Bumps [dalli](https://github.com/petergoldstein/dalli) from 2.7.2 to 2.7.9.
- [Release notes](https://github.com/petergoldstein/dalli/releases)
- [Changelog](https://github.com/petergoldstein/dalli/blob/master/History.md)
- [Commits](https://github.com/petergoldstein/dalli/compare/v2.7.2...v2.7.9)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2019-01-29 19:14:15 +00:00
Transifex-Openfoodnetwork
f7b7e98fec Updating translations for config/locales/en_GB.yml 2019-01-30 05:12:58 +11:00
luisramos0
c07b90ffb0 Update all locales with the latest Transifex translations 2019-01-29 12:45:28 +00:00
Pau Pérez Fabregat
2b3ffd8c82 Merge pull request #2833 from kristinalim/fix-variant_override_permissions
Add tests for permissions for variant overrides
2019-01-29 09:51:41 +01:00
Pau Pérez Fabregat
a5ed17f0f5 Merge pull request #3390 from openfoodfoundation/dependabot/bundler/oj-3.7.8
Bump oj from 3.7.4 to 3.7.8
2019-01-29 09:50:25 +01:00
Pau Pérez Fabregat
c9a8ec84c0 Merge pull request #3359 from kevinchristianson/ready
Convert sass files to scss
2019-01-28 20:02:37 +01:00
Kristina Lim
2129ab991b Load enterprise users tab before inspecting table 2019-01-26 12:11:41 +08:00
Kristina Lim
5992bba97b Import color variables in new page SCSS partials
"admin/all.css" which imports these SCSS partials already imports the
color variables in "admin/variables", so actually there should be no
need to import the variables again.

However, "application.css" calls "require_tree", which means asset
precompilation through Sprockets would attempt to compile each of the
SCSS partials individually. When compiled individually, the color
variables are not available to these partials.

This is a quick solution to allow precompilation of "application.css" to
complete.
2019-01-26 03:29:19 +08:00
Kristina Lim
4a58aedf09 Use clearer translation for "No Upcoming OC" 2019-01-26 02:03:57 +08:00
Kristina Lim
c33808e8f5 Extract some actions in tests into methods 2019-01-26 02:03:56 +08:00
Kristina Lim
da4d6a092a Add spec helper for choosing today from datepicker 2019-01-26 02:03:56 +08:00
Kristina Lim
9965e95c65 Refactor methods in SubscriptionVariantsService 2019-01-26 02:03:55 +08:00
Kristina Lim
b691d727a7 Move OFN::SubscriptionService to SubscriptionVariantsService 2019-01-26 02:03:55 +08:00
Kristina Lim
c23002102c Add warning for unavailable subscription items 2019-01-26 02:03:55 +08:00
Kristina Lim
929290fc77 Reduce restrictions for creating subscriptions
Allow the following variants:

* Variants of permitted producers
* Variants of hub
* Variants that are in outgoing exchanges where the hub is receiver
2019-01-26 02:03:54 +08:00
Kristina Lim
57f6a7a3b9 Support clicking different text for select2 helper
Interaction with the variant autocomplete is not precise. The specs only
search for the product name, then click the first result that matches
the product name which they see.

This could have been the case because searching using the full variant
name does not match the variant. For example, searching "Some Product -
1kg" would not have results, while searching only "Some Product" (the
product name) would list "Some Product - 1kg".

Clicking the first match does not work in all scenarios.

This allows using a separate text for searching and for clicking.
2019-01-26 02:03:54 +08:00
Kristina Lim
d3f20289f8 Move setup of feature specs for creating subscriptions 2019-01-26 02:03:53 +08:00
Kristina Lim
35c0bcb3df Add tests for eligible variants for a subscription 2019-01-26 02:03:53 +08:00
Kristina Lim
28c70c7719 Fix nesting of specs for editing subscriptions 2019-01-26 02:03:53 +08:00
Kristina Lim
b9492d6483 Fix setup in tests for SubscriptionValidator 2019-01-26 02:03:49 +08:00
Kristina Lim
b6d8611359 Return early in JS if last batch 2019-01-25 09:06:25 +08:00
Kristina Lim
4425b0416d Rename import_data feature test method 2019-01-25 04:42:11 +08:00
Kristina Lim
b0efc3a2fa Add feature spec for large file import 2019-01-25 04:42:06 +08:00
dependabot[bot]
33ee46b224 Bump oj from 3.7.4 to 3.7.8
Bumps [oj](https://github.com/ohler55/oj) from 3.7.4 to 3.7.8.
- [Release notes](https://github.com/ohler55/oj/releases)
- [Changelog](https://github.com/ohler55/oj/blob/master/CHANGELOG.md)
- [Commits](https://github.com/ohler55/oj/compare/v3.7.4...v3.7.8)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2019-01-24 19:16:56 +00:00
dependabot[bot]
5610f64c7a Bump redcarpet from 3.2.3 to 3.4.0
Bumps [redcarpet](https://github.com/vmg/redcarpet) from 3.2.3 to 3.4.0.
- [Release notes](https://github.com/vmg/redcarpet/releases)
- [Changelog](https://github.com/vmg/redcarpet/blob/master/CHANGELOG.md)
- [Commits](https://github.com/vmg/redcarpet/compare/v3.2.3...v3.4.0)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2019-01-24 19:14:52 +00:00
Kristina Lim
b67ba89aca Process batches of the import CSV one after another
Start the HTTP request for processing next batches only after the
previous batch has completed.

A con of this approach is that the user needs to keep their browser open
for later parts of the large CSV to be processed, but this is better
than a higher chance of requests timing out.
2019-01-25 00:33:13 +08:00
Kristina Lim
bf084cd8df Move import batch size outside method 2019-01-25 00:28:56 +08:00
leandroalemao
dfa11834e3 [ISSUE-3348] LC: Fix moment.js deprecation warning 2019-01-24 11:16:31 +00:00
Maikel
4cc6a8c966 Merge pull request #3350 from openfoodfoundation/dependabot/bundler/delayed_job_active_record-4.1.3
Bump delayed_job_active_record from 4.1.2 to 4.1.3
2019-01-24 11:58:32 +11:00
Maikel
66cb0e6a91 Merge pull request #3352 from openfoodfoundation/dependabot/bundler/foundation-rails-5.5.2.1
Bump foundation-rails from 5.5.0.0 to 5.5.2.1
2019-01-24 10:29:17 +11:00
Maikel
a3cd1dc945 Merge pull request #3344 from mkllnk/3279-moment-upgrade
Avoid deprecation warnings of momentjs
2019-01-24 10:28:41 +11:00
Kristina Lim
cf7f8b887f Add tests for permissions for variant overrides 2019-01-24 07:08:54 +11:00
Pau Pérez Fabregat
7881f96cac Merge pull request #3341 from openfoodfoundation/dependabot/bundler/daemons-1.3.1
Bump daemons from 1.2.2 to 1.3.1
2019-01-23 16:09:28 +01:00
Pau Pérez Fabregat
8320dc75e8 Merge pull request #3002 from kevinchristianson/margin-fix
Fix bad spacing on account settings error page
2019-01-23 16:09:14 +01:00
Pau Pérez Fabregat
77fd0b228e Merge pull request #3360 from brases/wording_order_cofirmation
Fix wording in email template for orders confirmation
2019-01-23 13:35:00 +01:00
Maikel
2064ffe548 Merge pull request #3354 from luisramos0/knapsack
New Knapsack report
2019-01-22 10:58:13 +11:00
Maikel
06af79d1b0 Merge pull request #3339 from Matt-Yorkley/headless4
[Headless Chrome] Fix embedded_shopfront_spec unhandled alert
2019-01-22 10:46:42 +11:00
dependabot[bot]
ea7f62123b Bump jwt from 1.5.6 to 2.1.0
Bumps [jwt](https://github.com/jwt/ruby-jwt) from 1.5.6 to 2.1.0.
- [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/v1.5.6...v2.1.0)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2019-01-21 19:14:44 +00:00
Pau Pérez Fabregat
8b1c1881f7 Merge pull request #3351 from openfoodfoundation/dependabot/bundler/diffy-3.3.0
Bump diffy from 3.1.0 to 3.3.0
2019-01-21 15:08:24 +01:00
Kevin Christianson
6b7273f685 Convert sass files to scss 2019-01-19 22:40:41 -06:00
nozakis
972bfd5e62 Fixed bad margins on the account settings error page. 2019-01-19 16:23:13 -06:00
Brases
3437257515 Fix wording in order confirmation email template
Fixes issue #3063 "Repeated translation in Order Confirmation Screen and Email".
Now "Ready for" (collection time) is not repeated in place of "Collection
details" (collection instructions)
2019-01-19 20:37:21 +00:00
luisramos0
d155bb142c Make proxy order spec a bit more resilient by allowing two secs diff in timestamps 2019-01-19 15:53:05 +00:00
luisramos0
6f7a351ffa Update knapsack report to get build jobs more balanced 2019-01-18 23:46:09 +00:00
dependabot[bot]
990b90009e Bump stripe from 3.3.2 to 4.5.0
Bumps [stripe](https://github.com/stripe/stripe-ruby) from 3.3.2 to 4.5.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/v3.3.2...v4.5.0)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2019-01-18 19:17:05 +00:00
Matt-Yorkley
3929689d48 Ensure login via modal is completed 2019-01-18 19:06:42 +00:00
dependabot[bot]
49e3aa5070 Bump daemons from 1.2.2 to 1.3.1
Bumps [daemons](https://github.com/thuehlinger/daemons) from 1.2.2 to 1.3.1.
- [Release notes](https://github.com/thuehlinger/daemons/releases)
- [Changelog](https://github.com/thuehlinger/daemons/blob/master/Releases)
- [Commits](https://github.com/thuehlinger/daemons/compare/v1.2.2...v1.3.1)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2019-01-18 16:52:13 +00:00
dependabot[bot]
1e01cf81ec Bump diffy from 3.1.0 to 3.3.0
Bumps [diffy](https://github.com/samg/diffy) from 3.1.0 to 3.3.0.
- [Release notes](https://github.com/samg/diffy/releases)
- [Changelog](https://github.com/samg/diffy/blob/master/CHANGELOG)
- [Commits](https://github.com/samg/diffy/compare/3.1.0...3.3.0)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2019-01-18 16:51:42 +00:00
Pau Pérez Fabregat
a95dd98ed6 Merge pull request #2869 from Matt-Yorkley/bi/bulk_invoices
[Bulk Invoice Printing] Bulk invoices
2019-01-18 17:49:34 +01:00
Pau Pérez Fabregat
ee28cc5a29 Merge pull request #3323 from openfoodfoundation/dependabot/bundler/paper_trail-5.2.3
Bump paper_trail from 3.0.9 to 5.2.3
2019-01-18 17:48:56 +01:00
dependabot[bot]
2e993542a7 Bump foundation-rails from 5.5.0.0 to 5.5.2.1
Bumps [foundation-rails](http://foundation.zurb.com) from 5.5.0.0 to 5.5.2.1.

Signed-off-by: dependabot[bot] <support@dependabot.com>
2019-01-17 19:20:09 +00:00
dependabot[bot]
560e52a0ce Bump delayed_job_active_record from 4.1.2 to 4.1.3
Bumps [delayed_job_active_record](https://github.com/collectiveidea/delayed_job_active_record) from 4.1.2 to 4.1.3.
- [Release notes](https://github.com/collectiveidea/delayed_job_active_record/releases)
- [Commits](https://github.com/collectiveidea/delayed_job_active_record/compare/v4.1.2...v4.1.3)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2019-01-17 19:17:20 +00:00
dependabot[bot]
adfa6b306c Bump paper_trail from 3.0.9 to 5.2.3
Bumps [paper_trail](https://github.com/airblade/paper_trail) from 3.0.9 to 5.2.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/v3.0.9...v5.2.3)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2019-01-17 19:08:33 +00:00
Pau Pérez Fabregat
c178478a4f Merge pull request #3346 from luisramos0/headless-chrome
Merge Headless Chrome to master
2019-01-17 20:04:27 +01:00
Pau Pérez Fabregat
29990f25c1 Merge pull request #3325 from mkllnk/2469-fix-async-js-requests
2469 Fix async js requests
2019-01-17 20:03:54 +01:00
Pau Pérez Fabregat
e8dd6e9ce7 Merge pull request #3322 from luisramos0/delete_archive_spec
Delete dead code and unused folders
2019-01-17 20:01:49 +01:00
Luis Ramos
a8998fad79 Merge branch 'master' into headless-chrome 2019-01-17 18:22:25 +00:00
Pau Pérez Fabregat
fd00ad4e94 Merge pull request #3342 from openfoodfoundation/dependabot/bundler/letter_opener-1.7.0
Bump letter_opener from 1.6.0 to 1.7.0
2019-01-17 16:55:46 +01:00
Pau Pérez Fabregat
c51aa0f3b8 Merge pull request #3340 from openfoodfoundation/dependabot/bundler/whenever-0.10.0
Bump whenever from 0.9.2 to 0.10.0
2019-01-17 16:52:21 +01:00
Matt-Yorkley
e7e208061f Assign polling numbers to variables and add comments 2019-01-17 09:37:32 +00:00
Matt-Yorkley
a3b9936f37 Improve matching inventory using 'items' unit type 2019-01-17 09:33:39 +00:00
Maikel Linke
4d3aed8467 Avoid deprecation warnings of momentjs 2019-01-17 14:49:43 +11:00
Maikel
9322c3f0c8 Merge pull request #3343 from Matt-Yorkley/headless5
[Headless Chrome] Fix datepicker interactions in bulk_order_management_spec
2019-01-17 14:19:00 +11:00
Maikel Linke
520ec5d047 Fix whenever upgrade by declaring dependency
Whenever doesn't depend on ActiveSupport any more. So we can't rely on
YAML being automatically loaded for us. We have to require it.
2019-01-17 10:41:11 +11:00
Maikel
7272ec8738 Merge pull request #3333 from Matt-Yorkley/headless3
[Headless Chrome] Fix shipping method tests
2019-01-17 09:18:12 +11:00
Matt-Yorkley
b3849778fa Fix datepicker interactions in bulk_order_management_spec 2019-01-16 21:51:15 +00:00
dependabot[bot]
d884be54f9 Bump letter_opener from 1.6.0 to 1.7.0
Bumps [letter_opener](https://github.com/ryanb/letter_opener) from 1.6.0 to 1.7.0.
- [Release notes](https://github.com/ryanb/letter_opener/releases)
- [Changelog](https://github.com/ryanb/letter_opener/blob/master/CHANGELOG.md)
- [Commits](https://github.com/ryanb/letter_opener/compare/v1.6.0...v1.7.0)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2019-01-16 19:22:19 +00:00
dependabot[bot]
483d8893f2 Bump whenever from 0.9.2 to 0.10.0
Bumps [whenever](https://github.com/javan/whenever) from 0.9.2 to 0.10.0.
- [Release notes](https://github.com/javan/whenever/releases)
- [Changelog](https://github.com/javan/whenever/blob/master/CHANGELOG.md)
- [Commits](https://github.com/javan/whenever/compare/v0.9.2...v0.10.0)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2019-01-16 19:18:32 +00:00
Matt-Yorkley
07dff0af7f Check tag js has finished executing before submitting form 2019-01-16 17:46:56 +00:00
Matt-Yorkley
7487a6da3c Fix shipping method tests 2019-01-16 17:17:10 +00:00
Matt-Yorkley
5caa958db0 Merge pull request #3336 from luisramos0/chrome-helper-fix
Fix Gemfile.lock by running bundle install. Adds missing chromedriver-helper.
2019-01-16 17:16:22 +00:00
Pau Pérez Fabregat
e557e06a7b Merge pull request #3324 from openfoodfoundation/dependabot/bundler/spring-1.7.2
Bump spring from 1.1.3 to 1.7.2
2019-01-16 17:50:08 +01:00
luisramos0
41cd8c7ed3 Fix Gemfile.lock by running bundle install. Adds missing chromedriver-helper. 2019-01-16 16:29:55 +00:00
Matt-Yorkley
21bdaf9960 Fix enterprise images spec 2019-01-16 16:24:01 +00:00
Matt-Yorkley
0589516368 Add chromedriver-helper to Gemfile for test and development 2019-01-16 16:24:01 +00:00
Matt-Yorkley
40ccabc2b4 Fix broken product import spec 2019-01-16 16:24:01 +00:00
Maikel Linke
f391eab5b0 Revert "Temporarily move 2 broken specs to pending (shops and producers search by url) due to google maps api changes"
This reverts commit 7dc208fb8c.
2019-01-16 16:24:01 +00:00
Maikel Linke
6a53e5fd3d Avoid alert by waiting until shop loaded 2019-01-16 16:24:01 +00:00
Maikel Linke
dd5bd5b616 Remove js_errors = false from specs because it is not available in Selenium ChromeDriver
If the js errors this line was hidding become a problem we will need to address them
2019-01-16 16:24:01 +00:00
luisramos0
fce56776f6 Make embedded_shopfronts_spec work with selenium 2019-01-16 16:24:01 +00:00
luisramos0
5fb4faac91 Make features/admin/subscriptions_spec and shopworkflow work with selenium
Also, remove a test support method, dead code
2019-01-16 16:24:01 +00:00
Maikel Linke
e49eb42af6 Make Chrome accepting alerts 2019-01-16 16:21:30 +00:00
Maikel Linke
843ec2c08f Wait for table rows before testing them
Unfortunately, the exact table row matcher doesn't wait correctly for
changes on the page. Waiting correctly would mean to assemble a very
complicated xpath similar to this gem:

https://github.com/jnicklas/capybara_table
2019-01-16 16:21:30 +00:00
Maikel Linke
1407ae7778 Make TableMatcher match exactly, not part of row
Reverts dbf3a7aaaf9d458f99e14983ca9db2d4cbe4b564.

The reverted commit tried to avoid a 30 second delay by using
have_selector. While that was successful in reducing test time, it made
the matcher find rows that where not exactly the wanted row, but contained
text of the wanted row. This wasn't a problem until we experimented with
Chrome as test browser returns text on select boxes.

This commit makes the matcher precise again. We still have to deal with
the 30 second delay.
2019-01-16 16:21:30 +00:00
Rob Harrington
ef68bd1b43 Replace unnecessary perform_and_ensure* type helpers with standard actions and expectations 2019-01-16 16:21:30 +00:00
Rob Harrington
98f4ae9b60 Change screen size back to large after authentication_spec 2019-01-16 16:21:30 +00:00
Rob Harrington
a988fad2db Update orders_spec to work with Selenium 2019-01-16 16:21:30 +00:00
Rob Harrington
98a5b40aec Ensure multiligual switcher specs run in large screen 2019-01-16 16:21:30 +00:00
Rob Harrington
3a781049ed Update orders_spec to work with Selenium 2019-01-16 16:21:30 +00:00
Rob Harrington
3b40ede0b8 Fix table row matchers
The matcher was silently failing on the check step (adding ~30 seconds to out specs each time it was used!), so I changed it to fail if the basic step does not succeed
2019-01-16 16:21:30 +00:00
Rob Harrington
56c07aac5c Don't run ticket printing spec 2019-01-16 16:21:30 +00:00
Rob Harrington
4951863e9b Update enterprises_spec to work with Selenium 2019-01-16 16:21:30 +00:00
Rob Harrington
eccf874f03 Update shopping_spec to work with Selenium 2019-01-16 16:21:30 +00:00
Rob Harrington
2b48b4ee18 Update cart_spec to work with Selenium 2019-01-16 16:21:30 +00:00
Rob Harrington
bba8b2020c Replace use of 'trigger' in ui_component helper 2019-01-16 16:21:30 +00:00
Rob Harrington
23fa57ff6d Update multilingual_spec to work with Selenium 2019-01-16 16:21:30 +00:00
Rob Harrington
bbaf6359f3 Update shopping_spec to work with Selenium 2019-01-16 16:21:30 +00:00
Rob Harrington
1923c0dbc6 Update enterprise_fees_spec to work with Selenium 2019-01-16 16:21:30 +00:00
Rob Harrington
c2432fab0b Use all_options_absent method instead of poorly written no_options_present
SAVES 30 SECONDS FOR EVERY SPEC THAT IS IT USED IN!
2019-01-16 16:21:30 +00:00
Rob Harrington
3e90f9aa1d Update customers_spec to work with Selenium 2019-01-16 16:21:30 +00:00
Rob Harrington
189856a92a Reimplement resize helper methods to work with Selenium 2019-01-16 16:21:30 +00:00
Rob Harrington
1bad08c1c0 Update checkout_workflow and spec_helper to work with Selenium 2019-01-16 16:21:30 +00:00
Rob Harrington
3ab7a3d62b Update order_cycles_spec to work with Selenium 2019-01-16 16:21:30 +00:00
Rob Harrington
50a8554b55 Update enterprises_spec to work with Selenium 2019-01-16 16:21:30 +00:00
Rob Harrington
69e44bdeb3 Update enterprise_roles_spec to work with Selenium 2019-01-16 16:21:30 +00:00
Rob Harrington
5ae33747ea Update enterprise_relationships_spec to work with Selenium 2019-01-16 16:21:30 +00:00
Rob Harrington
7dc792b6fe Update enterprise_groups_spec to work with Selenium 2019-01-16 16:21:30 +00:00
Rob Harrington
e97f5e36a6 Update bulk_order_management_spec to work with Selenium 2019-01-16 16:21:30 +00:00
Rob Harrington
2ece6bfb49 Update subscriptions_spec to work with Selenium 2019-01-16 16:21:30 +00:00
Rob Harrington
8416af4995 Update variants_spec to work with Selenium 2019-01-16 16:21:30 +00:00
Rob Harrington
8413c5f60a Update variant_overrides_spec to work with Selenium 2019-01-16 16:21:30 +00:00
Rob Harrington
5c268e9359 Update schedules_spec to work with Selenium 2019-01-16 16:21:30 +00:00
Rob Harrington
708e308b7c Update products_spec to work with Selenium 2019-01-16 16:21:30 +00:00
Rob Harrington
c6a383aafd Update bulk_product_update_spec to work with Selenium 2019-01-16 16:21:30 +00:00
Rob Harrington
cc55f59b00 Update tag_rules_spec to work with Selenium 2019-01-16 16:21:30 +00:00
Rob Harrington
118d26b2ff Add aynchronous select2 search helper
select2_search from spree times out after 1 second, so this new method just waits for a result to be returned before attempting to select it
2019-01-16 16:21:30 +00:00
Rob Harrington
70502a7a32 Switch to using selenium as js driver for capybara specs
PhantomJS is no longer being maintained
2019-01-16 16:21:30 +00:00
Rob Harrington
6608655e9a Use headless chrome for karma specs instead of PhantomJS
PhantomJS is no longer being maintained
2019-01-16 16:21:30 +00:00
Pau Pérez Fabregat
d2325fc7dd Merge pull request #3230 from luisramos0/stock_levels
3222 Improve stock levels calculation code on cart populate and add specs to test handling of variant overrides
2019-01-16 12:54:25 +01:00
Pau Pérez Fabregat
5bb327efbd Merge pull request #3234 from openfoodfoundation/dependabot/bundler/oauth2-1.4.1
Bump oauth2 from 1.2.0 to 1.4.1
2019-01-16 12:33:39 +01:00
Matt-Yorkley
79dce01aef Add spec for new on_demand logic 2019-01-16 01:19:01 +00:00
Matt-Yorkley
7dc7ffe1b7 Update inventory template 2019-01-16 01:18:46 +00:00
Maikel
54311c2d1b Merge pull request #3304 from HugsDaniel/3288-3291-translation-issues
Add I18n keys for order state and order firstname and lastname filters
2019-01-16 09:43:28 +11:00
Maikel
2c197d40bb Merge pull request #3326 from mkllnk/cleanup-specs
Cleanup specs
2019-01-16 09:23:06 +11:00
luisramos0
ea61e415e1 Add bugsnag notifications to detect potential dead code scenarios in variants_stock_levels and cart_service 2019-01-15 13:42:51 +00:00
luisramos0
d926f7c776 Reorganize and improve cart controller spec 2019-01-15 13:42:51 +00:00
luisramos0
aa603c9a84 Make rubocop happy on cart controller, cart service and stock levels service 2019-01-15 13:42:51 +00:00
luisramos0
b0449be302 Add spec to test cart controller handling of variant overrides on cart populate 2019-01-15 13:38:58 +00:00
luisramos0
c0473a4505 Extract variants_stock_levels from cart_controller and refactor some names 2019-01-15 13:38:58 +00:00
Maikel
e56915e65a Merge pull request #3303 from openfoodfoundation/transifex
Transifex
2019-01-15 17:19:21 +11:00
Maikel Linke
5a5db3c458 Fix state of RequestMonitor
`@loading` was set to false when the request with the last id finished.
But another request started earlier (having a lower id) could take
longer. `@loading` was set to false even though these long requests were
still active.
2019-01-15 15:45:49 +11:00
Maikel Linke
ca9673f562 Fix Dereferencer service
It failed when `object[attr]` was `undefined` instead of `null`.
2019-01-15 15:43:00 +11:00
Maikel
8ba0e3b474 Merge pull request #3302 from mkllnk/74-bundler-version
Add script to install required bundler version
2019-01-15 09:36:18 +11:00
dependabot[bot]
22c225968a Bump spring from 1.1.3 to 1.7.2
Bumps [spring](https://github.com/rails/spring) from 1.1.3 to 1.7.2.
- [Release notes](https://github.com/rails/spring/releases)
- [Changelog](https://github.com/rails/spring/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rails/spring/compare/v1.1.3...v1.7.2)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2019-01-14 19:18:25 +00:00
luisramos0
90240f1802 Delete unused folders under /vendor 2019-01-14 14:38:51 +00:00
luisramos0
497974db74 Delete outdated archived version of checkout spec 2019-01-14 14:32:51 +00:00
luisramos0
e2c966244a Delete /doc.
The list of specs is outdated and the images were transfered to the wiki itself

The project docs should be in the wiki
2019-01-14 14:31:31 +00:00
Pau Pérez Fabregat
ccc0a2cf96 Merge pull request #3280 from openfoodfoundation/dependabot/bundler/uglifier-4.1.20
Bump uglifier from 4.1.19 to 4.1.20
2019-01-11 19:46:04 +01:00
Matt-Yorkley
3f62d82afc Add more inventory testing for visibility in the inventory UI 2019-01-11 11:26:38 +00:00
Maikel Linke
4abacb3691 Remove unused spec helpers
They all seem to have been used in the past. People forgot to remove
them after removing the using spec code.
2019-01-11 18:04:24 +11:00
Maikel Linke
e89a836e72 Remove forgotten code from spec
Commit e4ebeb8a29 forgot to remove this
code.
2019-01-11 18:04:24 +11:00
Maikel Linke
223982f571 Prepare spec for Chrome testing 2019-01-11 18:04:24 +11:00
Maikel Linke
cbdda54989 DRY specs with new helper 2019-01-11 18:04:24 +11:00
Maikel
4920782742 Merge pull request #3072 from luisramos0/2-0-calc-line-items-for-take-2
Fix bug on calculator_decorator line_items_for where input is line_item with a nil order
2019-01-11 14:49:25 +11:00
dependabot[bot]
1548c7c25a Bump oauth2 from 1.2.0 to 1.4.1
Bumps [oauth2](https://github.com/oauth-xx/oauth2) from 1.2.0 to 1.4.1.
- [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.2.0...v1.4.1)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2019-01-10 23:46:45 +00:00
dependabot[bot]
7f09112d7b Bump uglifier from 4.1.19 to 4.1.20
Bumps [uglifier](https://github.com/lautis/uglifier) from 4.1.19 to 4.1.20.
- [Release notes](https://github.com/lautis/uglifier/releases)
- [Changelog](https://github.com/lautis/uglifier/blob/master/CHANGELOG.md)
- [Commits](https://github.com/lautis/uglifier/compare/v4.1.19...v4.1.20)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2019-01-10 23:45:22 +00:00
Maikel
ab14b73e17 Merge pull request #3211 from openfoodfoundation/dependabot/bundler/blockenspiel-0.5.0
Bump blockenspiel from 0.4.5 to 0.5.0
2019-01-11 10:42:40 +11:00
Maikel
fff054efc1 Merge pull request #3169 from luisramos0/hubPermissions
Add guard clause on variant overrides filter in case hub id is not present in the hubPermissions
2019-01-11 10:41:57 +11:00
Maikel
6c3d769121 Merge pull request #3229 from mkllnk/3127-tax-rates-report
3127 More robust tax rates report
2019-01-11 10:41:12 +11:00
Maikel
935e233605 Merge pull request #3244 from luisramos0/ruby-racer
Revert to the ruby racer
2019-01-11 10:40:02 +11:00
Hugo Daniel
026fe55f1d Add I18n keys for order state and order firstname and lastname filters 2019-01-10 15:32:23 +01:00
Transifex-Openfoodnetwork
e70b8c03ce Updating translations for config/locales/nb.yml 2019-01-10 22:18:58 +11:00
Matt-Yorkley
e624faaacb Add 'please wait' message to bulk invoice modal 2019-01-10 09:57:06 +00:00
Matt-Yorkley
0e478ff501 Increase polling to 150 seconds maximum before showing error message. 2019-01-10 09:57:06 +00:00
Matt-Yorkley
66ac61f591 Rename background processing method 2019-01-10 09:57:06 +00:00
Matt-Yorkley
4f9f8adcd6 Add Service and remove Job 2019-01-10 09:57:06 +00:00
Matt-Yorkley
003014daf8 Extract invoice methods from ordersCtrl 2019-01-10 09:57:06 +00:00
Matt-Yorkley
bb814f91ef Extract timeout to named function 2019-01-10 09:57:06 +00:00
Matt-Yorkley
6b6a41cfbc Update CSS 2019-01-10 09:57:06 +00:00
Matt-Yorkley
638dc6eada Add polling and show action 2019-01-10 09:57:06 +00:00
Matt-Yorkley
b0f75162ac Add delayed job for create bulk invoice 2019-01-10 09:57:06 +00:00
Matt-Yorkley
7d82020657 Move bulk invoice to new RESTful route 2019-01-10 09:57:06 +00:00
Matt-Yorkley
4a88fb0626 Use simpler array for selected ids 2019-01-10 09:57:06 +00:00
Matt-Yorkley
5279210254 Improve invoice order querying 2019-01-10 09:57:06 +00:00
Matt-Yorkley
f3585befff Fix customer missing from some order records - guest checkout? 2019-01-10 09:57:06 +00:00
Matt-Yorkley
24207053e4 Reset selected orders on filter change 2019-01-10 09:57:06 +00:00
Matt-Yorkley
5cc8bad42b Improve UI layout for select all option 2019-01-10 09:57:06 +00:00
Matt-Yorkley
42cf96e635 Disable button unless orders selected 2019-01-10 09:57:06 +00:00
Matt-Yorkley
4ec0f0ff73 Add bulk invoices printing 2019-01-10 09:57:06 +00:00
Matt-Yorkley
96d530b473 Tidy up invoice template selection 2019-01-10 09:57:06 +00:00
Matt-Yorkley
9a71236abd Add combine_pdf gem 2019-01-10 09:57:06 +00:00
Matt-Yorkley
f263ef7dc0 Add selectable checkboxes 2019-01-10 09:57:06 +00:00
Maikel
4f5bb96484 Merge pull request #3300 from openfoodfoundation/transifex
Transifex
2019-01-10 17:52:28 +11:00
Maikel Linke
199dee3f64 Use install-bundler in setup script 2019-01-10 17:44:13 +11:00
Maikel Linke
dafa433788 Add script to install required bundler version
The newest version of bundler is not compatible with our current version
of Ruby. This script helps to install the bundler version defined in
Gemfile.lock.
2019-01-10 17:44:09 +11:00
Transifex-Openfoodnetwork
15e197b3b0 Updating translations for config/locales/en_GB.yml 2019-01-10 07:31:46 +11:00
Pau Pérez Fabregat
399cc5f796 Merge pull request #3224 from alvaro-chalar/footer-message
Add custom footer message in reports section
2019-01-09 16:01:02 +01:00
Pau Pérez Fabregat
1815a2116d Merge pull request #3257 from coopdevs/refactor-enterprise-controller-shop-injection
Refactor to reveal how we load enterprises in shop
2019-01-09 13:21:56 +01:00
Maikel
abe4f78e5c Merge pull request #2988 from Matt-Yorkley/pi/utf8
Pi/utf8
2019-01-09 15:39:05 +11:00
Pau Pérez Fabregat
57267ab4a4 Merge pull request #3297 from openfoodfoundation/transifex
Transifex
2019-01-08 22:45:55 +01:00
Transifex-Openfoodnetwork
f05f4ce0b1 Updating translations for config/locales/en_GB.yml 2019-01-09 07:06:27 +11:00
Pau Pérez Fabregat
bd10400457 Merge pull request #3295 from coopdevs/pull-translations
Update all locales with the latest Transifex translations
2019-01-08 17:58:51 +01:00
Pau Perez
f1f1ab9daf Update all locales with the latest Transifex translations 2019-01-08 17:17:35 +01:00
luisramos0
364f9f9abd Improve variable names in cart spec 2019-01-07 11:40:42 +00:00
Pau Pérez Fabregat
34876cc255 Merge pull request #3275 from openfoodfoundation/transifex
Transifex
2019-01-07 11:43:06 +01:00
Pau Pérez Fabregat
ed8f719769 Merge pull request #3245 from luisramos0/spring
Add spring, a rails preloader alternative to zeus, to our gemfile
2019-01-07 11:07:34 +01:00
luisramos0
2893f1c141 Add test to cover weight calculation bug #3072 2019-01-07 01:18:40 +00:00
Maikel Linke
d2ba305ce6 Fix context data for tax rate finder spec
The spec was accidentally finding an exact tax rate match. The new test
data provides only close matches to choose from.

The naming of variables has been simplified as well.
2019-01-04 18:31:46 +11:00
Maikel Linke
a8ccb9b818 Explain why we look for the closest tax rate of a fee 2019-01-04 17:24:45 +11:00
Maikel
1024fc1f34 Merge pull request #3273 from coopdevs/fix-fr-BE-link
Fix menu_1_url translation for fr_BE
2019-01-04 09:52:44 +11:00
Transifex-Openfoodnetwork
9da7ff5698 Updating translations for config/locales/fr.yml 2019-01-04 02:15:57 +11:00
Pau Pérez Fabregat
9f0c6a6bac Merge pull request #3251 from openfoodfoundation/dependabot/bundler/webmock-3.5.1
Bump webmock from 3.4.2 to 3.5.1
2019-01-03 11:18:59 +01:00
Pau Perez
edffbd72fe Update rubocop_manual_todo 2019-01-03 11:17:10 +01:00
Pau Perez
ddf916814f Reduce complexity of EnterprisesController#shop
As asked by Rubocop.
2019-01-03 11:17:10 +01:00
Pau Perez
e3edb51d3e Update rubocop_todo 2019-01-03 11:17:10 +01:00
Pau Perez
51da607ab1 Fix too long line 2019-01-03 11:17:10 +01:00
Pau Perez
46760ce28c Do not double-render when there is no stock 2019-01-03 11:17:10 +01:00
Pau Perez
cca15e75a6 Refactor to reveal how we load enterprises in shop
By sticking to Rails conventions we make it more obvious how (badly) we
are loading enterprises in EnterprisesController#shop and shed some
light on the obscure InjectionHelper.

This will also make it easier to improve its performance in the future as
it's among the top offenders. See https://www.skylight.io/app/applications/ibo3NOqCYMnq/1545851520/1d/endpoints/EnterprisesController%23shop?responseType=html
2019-01-03 11:17:10 +01:00
Maikel
ac76580932 Merge pull request #3274 from openfoodfoundation/transifex
Transifex
2019-01-03 11:35:47 +11:00
Transifex-Openfoodnetwork
89bf819b37 Updating translations for config/locales/en_US.yml 2019-01-03 00:33:56 +11:00
Pau Perez
112080d8c6 Fix menu_1_url translation for fr_BE
The first menu item in OFN BE is currently broken.
2019-01-02 13:10:33 +01:00
dependabot[bot]
8170937708 Bump webmock from 3.4.2 to 3.5.1
Bumps [webmock](https://github.com/bblimke/webmock) from 3.4.2 to 3.5.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.4.2...v3.5.1)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-12-27 19:16:35 +00:00
Pau Pérez Fabregat
d88be202a6 Merge pull request #3223 from kristinalim/fix-rubocop_block_length_ignore_rake_routes_dsl
Ignore Rake and routes DSL methods in Rubocop BlockLength
2018-12-27 17:14:57 +01:00
Pau Pérez Fabregat
755eca5abe Merge pull request #3236 from openfoodfoundation/dependabot/bundler/guard-2.15.0
Bump guard from 2.14.1 to 2.15.0
2018-12-27 17:14:32 +01:00
Alvaro Chalar
6dccbeca70 Add custom footer message in reports section 2018-12-27 12:22:48 +01:00
luisramos0
fd21914a15 Add spring, a rails preloader alternative to zeus, to our gemfile
Add /bin to gitignore, bin is used by spring, rails preloader
2018-12-26 13:36:48 +00:00
luisramos0
4eaaeb37c9 Reverting to therubyracer because mini racer is causing trouble to some developers using osx.
We will probably be able to move back to the faster mini racer when we upgrade to newer rails versions
2018-12-26 13:07:52 +00:00
Pau Pérez Fabregat
1ab50798fe Merge pull request #3189 from luisramos0/3043-i18n-emails
Make all mailers use appropriate locale when sending emails
2018-12-24 14:59:04 +01:00
albarnaz
5d515712ed Fix for instagram links (#2849)
* Add new attribute instagram_placeholder to local yml

* Add placeholder to instagram link input

* Add migration to fix wrong instagram links

* Add new attribute facebook_placeholder to local yml

* Add placeholder to facebook link input

* Add new attribute linkedin_placeholder to local yml

* Add placeholder to linkedin link input

* Change each for find_each in migration

* Add new attribute instagram_placeholder to local yml

* Add migration to fix wrong instagram links

* Add new attribute linkedin_placeholder to local yml

* Add placeholder to linkedin link input
2018-12-21 14:42:28 +11:00
Maikel
9557457ec2 Merge pull request #3088 from kristinalim/cleanup-test_scripts
Run RSpec tests in custom engines (and some fixes, cleanup)
2018-12-21 14:32:56 +11:00
dependabot[bot]
e680559169 Bump guard from 2.14.1 to 2.15.0
Bumps [guard](https://github.com/guard/guard) from 2.14.1 to 2.15.0.
- [Release notes](https://github.com/guard/guard/releases)
- [Changelog](https://github.com/guard/guard/blob/master/CHANGELOG.md)
- [Commits](https://github.com/guard/guard/compare/v2.14.1...v2.15.0)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-12-20 19:18:59 +00:00
Pau Pérez Fabregat
e61b7139cc Merge pull request #3212 from openfoodfoundation/dependabot/bundler/wkhtmltopdf-binary-0.12.4
Bump wkhtmltopdf-binary from 0.12.3.1 to 0.12.4
2018-12-20 16:43:24 +01:00
Pau Pérez Fabregat
0876986215 Merge pull request #3227 from openfoodfoundation/dependabot/bundler/momentjs-rails-2.20.1
Bump momentjs-rails from 2.5.1 to 2.20.1
2018-12-20 16:36:40 +01:00
dependabot[bot]
aac8706f9a Bump blockenspiel from 0.4.5 to 0.5.0
Bumps [blockenspiel](https://github.com/dazuma/blockenspiel) from 0.4.5 to 0.5.0.
- [Release notes](https://github.com/dazuma/blockenspiel/releases)
- [Changelog](https://github.com/dazuma/blockenspiel/blob/master/History.rdoc)
- [Commits](https://github.com/dazuma/blockenspiel/commits/v0.5.0)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-12-20 08:35:01 +00:00
Pau Pérez Fabregat
2a759a9c0d Merge pull request #3196 from openfoodfoundation/dependabot/bundler/angularjs-file-upload-rails-2.4.1
Bump angularjs-file-upload-rails from 1.1.6 to 2.4.1
2018-12-20 09:31:49 +01:00
Maikel
073f88b1c2 Merge pull request #3198 from kristinalim/fix-variant_override_stock_settings_validation
Validation and others for keeping variant override "On Demand" and "Count on Hand" compatible
2018-12-20 14:05:20 +11:00
Kristina Lim
4adae0a1e8 Disable Knapsack when running engine RSpec tests 2018-12-19 17:50:52 +08:00
Kristina Lim
a460e9d35f Allow disabling Knapsack when running RSpec tests 2018-12-19 17:50:29 +08:00
Kristina Lim
abcb71f8b3 Document running app engine RSpec tests 2018-12-19 17:11:03 +08:00
Kristina Lim
12780b722e Make Travis CI run RSpec tests in app engines 2018-12-19 17:08:27 +08:00
Kristina Lim
74ea1eee6b Add description for Rake tasks 2018-12-19 17:08:24 +08:00
Kristina Lim
571ad37c3e Add Rake task openfoodnetwork:specs:engines:rspec 2018-12-19 17:06:33 +08:00
Kristina Lim
f7e03ca60e Add Rake tasks openfoodnetwork:specs:engines:NAME:rspec
The task name follows the directory name under engines/. For example,
for the Web engine in engines/web, run:

    bundle exec rake openfoodnetwork:specs:engines:web:rspec
2018-12-19 17:02:19 +08:00
Maikel Linke
a978e992bf Remove tax_rates shortcut from adjustment
Becoming less dependent on Spree, using our own namespace, keeping
decorators small.
2018-12-19 14:42:38 +11:00
Maikel Linke
fc1b182275 Simplify method complexity and comply with rubocop 2018-12-19 14:31:29 +11:00
Maikel Linke
3169a384ba Find approximate tax rate if no other is found
There are several cases in which a tax rate is not associated with an
adjustment. We find the closest one for reporting here. It is not a good
solution, but a workaround introduced for reporting:
https://github.com/openfoodfoundation/openfoodnetwork/pull/1496
2018-12-19 14:31:29 +11:00
Maikel Linke
a341561446 Move tax rate finding into service and spec it
The `#tax_rates` method is actually not present in Spree. We encapsulate
the logic in this commit and enable better unit testing. The new tests
cover a current bug: https://github.com/openfoodfoundation/openfoodnetwork/issues/3127
2018-12-19 14:31:29 +11:00
Maikel
84f2f9af3c Merge pull request #3156 from HugsDaniel/3121-deface-payment-methods-new
[Defacepocalypse] De-deface payment methods new and form
2018-12-19 09:44:57 +11:00
dependabot[bot]
6de1844b7c Bump momentjs-rails from 2.5.1 to 2.20.1
Bumps [momentjs-rails](https://github.com/derekprior/momentjs-rails) from 2.5.1 to 2.20.1.
- [Release notes](https://github.com/derekprior/momentjs-rails/releases)
- [Changelog](https://github.com/derekprior/momentjs-rails/blob/master/news.md)
- [Commits](https://github.com/derekprior/momentjs-rails/compare/v2.5.1...v2.20.1)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-12-18 19:14:54 +00:00
luisramos0
5e960512ac Set user locale on user registrations #create
This is done so that user.locale is used in the first confirmation email. This also stores user.locale in the DB from registration.
2018-12-18 15:30:01 +00:00
luisramos0
a9222665b8 Refactor user registrations controller, early return to reduce indentation 2018-12-18 15:26:49 +00:00
Maikel
f36c045425 Merge pull request #3213 from kristinalim/fix-rubocop_block_length_ignore_it
Ignore `it` in Rubocop BlockLength
2018-12-18 11:42:14 +11:00
Matt-Yorkley
d34b8c52b8 Update all locales with the latest Transifex translations 2018-12-17 11:17:54 +00:00
Pau Pérez Fabregat
54775f6b6a Merge pull request #3221 from zvkemp/skylight-1.7.2
update Skylight to 1.7.2
2018-12-17 10:44:16 +01:00
Pau Pérez Fabregat
1876ec42dc Merge pull request #3201 from kevinchristianson/add-missing-stars
Add missing 'required field' stars in new product form
2018-12-17 10:36:51 +01:00
Pau Pérez Fabregat
554d650b8c Merge pull request #3176 from kevinchristianson/button-translation-fix
Fix untranslated buttons at image step of registration modal
2018-12-17 10:36:07 +01:00
Pau Pérez Fabregat
2deffb9c9f Merge pull request #3076 from Matt-Yorkley/orders_checkboxes
Fix checkbox values on orders page
2018-12-17 10:35:46 +01:00
Kristina Lim
216c598e74 Ignore more methods in Metrics/BlockLength cop
Ignore these additional methods:

* collection
* member
* namespace
* resource
* resources
2018-12-17 05:21:20 +08:00
Kristina Lim
fb5a9356dc Fix spec_helper.rb of web engine
This fixes the tests of the web engine when running the following from
its root: bundle exec rspec

An engine is meant to have some independence from the main application,
and its tests should be run independently.

This should be using the engine's own dummy application, actually, or
the dummy application of a dependency.
2018-12-15 16:11:15 +08:00
Kristina Lim
93940ced3a Remove outdated comment recommending knapsack
We are already using this.
2018-12-15 16:11:12 +08:00
zvkemp
d3d43c8808 update Skylight to 1.7.2 2018-12-14 12:25:41 -08:00
Pau Pérez Fabregat
fe0c56c800 Merge pull request #3174 from kevinchristianson/footer-url-fix
Fix broken registration link in footer
2018-12-14 15:42:08 +01:00
dependabot[bot]
2f19b37b54 Bump angularjs-file-upload-rails from 1.1.6 to 2.4.1
Bumps [angularjs-file-upload-rails](https://github.com/marthyn/angularjs-file-upload-rails) from 1.1.6 to 2.4.1.
- [Release notes](https://github.com/marthyn/angularjs-file-upload-rails/releases)
- [Commits](https://github.com/marthyn/angularjs-file-upload-rails/commits/v2.4.1)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-12-14 14:29:42 +00:00
Pau Pérez Fabregat
34a42cc592 Merge pull request #3181 from luisramos0/roadie-rails-upgrade
Bump roadie-rails from 1.0.3 to 1.1.1
2018-12-14 15:26:25 +01:00
Kristina Lim
d0d10eba4b Ignore it method in Rubocop BlockLength 2018-12-14 17:44:19 +08:00
Kristina Lim
77a6562762 Make DB migration generate summary by distributor 2018-12-14 13:02:43 +08:00
Kristina Lim
a6664d0ac6 Move report generated by migration to subdirectory
This is in preparation of an upcoming change to split the main CSV file
by distributor.
2018-12-14 13:00:42 +08:00
Kristina Lim
91e5a523f0 Add /reports/ to .gitignore but ignore README
Using the first slash to make sure that other reports/ directories are
not ignored.
2018-12-14 10:25:23 +08:00
Kristina Lim
d859939c79 Add README.md to reports/ directory 2018-12-14 10:24:26 +08:00
Kristina Lim
6458127892 Add undo logic for DB migration script 2018-12-14 10:09:09 +08:00
Kristina Lim
5a98acd101 Log changes from DB migration to CSV file 2018-12-14 10:09:09 +08:00
Kristina Lim
842a11b564 Refactor DB migration script 2018-12-14 10:09:08 +08:00
dependabot[bot]
2ecec93514 Bump wkhtmltopdf-binary from 0.12.3.1 to 0.12.4
Bumps [wkhtmltopdf-binary](https://github.com/zakird/wkhtmltopdf_binary_gem) from 0.12.3.1 to 0.12.4.
- [Release notes](https://github.com/zakird/wkhtmltopdf_binary_gem/releases)
- [Changelog](https://github.com/zakird/wkhtmltopdf_binary_gem/blob/master/CHANGELOG)
- [Commits](https://github.com/zakird/wkhtmltopdf_binary_gem/compare/0.12.3.1...0.12.4)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-12-13 19:19:36 +00:00
Pau Pérez Fabregat
2eb6d0a047 Merge pull request #3185 from openfoodfoundation/dependabot/bundler/oj-3.7.4
Bump oj from 3.6.10 to 3.7.4
2018-12-13 18:10:55 +01:00
Kristina Lim
aa92dd8771 Declare VariantOverride in migration for safe use 2018-12-13 23:29:05 +08:00
Kristina Lim
9e3332ba2a Rename DB migration file 2018-12-13 23:25:48 +08:00
Maikel
eb016c0471 Merge pull request #3145 from openfoodfoundation/dependabot/bundler/i18n-js-3.1.0
Bump i18n-js from 3.0.11 to 3.1.0
2018-12-13 10:58:22 +11:00
Pau Pérez Fabregat
d317603872 Merge pull request #3187 from openfoodfoundation/dependabot/bundler/rspec-rails-3.8.1
Bump rspec-rails from 3.7.2 to 3.8.1
2018-12-12 17:14:05 +01:00
Pau Pérez Fabregat
64e41712c6 Merge pull request #3130 from coopdevs/extract-restart-checkout
Extract restart checkout
2018-12-12 17:12:53 +01:00
luisramos0
e274442d77 Cover i18nhelper.valid_locale and user mailer with tests related to localized emails 2018-12-11 11:16:50 +00:00
haseleyi
835617159e Add missing 'required field' stars in new product form 2018-12-10 18:02:39 -08:00
Matt-Yorkley
0c5ac99e0f Fix multiple results with 'inventory_items_shipment_id_null' ransack query
The q['inventory_items_shipment_id_null'] search element was generating duplicates where there were multiple line items on an order that were ready to be shipped, with id = null
2018-12-10 20:48:53 +00:00
Matt-Yorkley
e711c5ed03 Add spec for search filters 2018-12-10 20:48:53 +00:00
Matt-Yorkley
d48774e3a2 Add comment 2018-12-10 20:48:53 +00:00
Matt-Yorkley
997169b974 Fix checkbox values on orders page 2018-12-10 20:48:53 +00:00
luisramos0
38ff99717a Fix bug on calculator_decorator line_items_for where input is line_item with an nil order. Adapted line_items_for so that weight_calculator.line_items_for could be removed. 2018-12-09 19:37:11 +00:00
Kristina Lim
df51d137dc Update some code style for product import 2018-12-10 03:30:52 +08:00
Kristina Lim
cec50e81f5 Make product import set correct VO stock settings 2018-12-10 03:30:46 +08:00
Kristina Lim
0de829017a Refactor finding or initializing VO for product import 2018-12-10 03:30:39 +08:00
Kristina Lim
c873a7b8e3 Move stock settings override validation to concern 2018-12-09 23:29:36 +08:00
Kristina Lim
1bfdb708c1 Add app/models/concerns to autoload path 2018-12-09 23:29:36 +08:00
Kristina Lim
d67b3faf01 Address affected specs from new VO validations 2018-12-09 21:48:08 +08:00
Kristina Lim
34313c94ca Make reset stock settings for VO force limited stock 2018-12-09 21:47:05 +08:00
Kristina Lim
ad35ea1102 Add factory stock traits for variant overrides 2018-12-09 21:47:05 +08:00
Kristina Lim
210a11783c Test that saving invalid variant override provides error 2018-12-09 21:43:57 +08:00
Kristina Lim
4c0c0bbfd0 Simplify stock configuration in existing variant overrides 2018-12-07 14:40:15 +08:00
Kristina Lim
83b6973bc2 Require compatible VO on_demand and count_on_hand 2018-12-07 14:39:36 +08:00
Maikel
046ba14da4 Merge pull request #3191 from openfoodfoundation/dependabot/bundler/knapsack-1.17.1
Bump knapsack from 1.16.0 to 1.17.1
2018-12-07 15:18:25 +11:00
haseleyi
3f6e96dd5d Fix comment 2018-12-06 14:07:45 -08:00
haseleyi
4a0744dd94 Add comment to explain hard-coded link 2018-12-06 11:49:39 -08:00
dependabot[bot]
6ae2df7b92 Bump knapsack from 1.16.0 to 1.17.1
Bumps [knapsack](https://github.com/ArturT/knapsack) from 1.16.0 to 1.17.1.
- [Release notes](https://github.com/ArturT/knapsack/releases)
- [Changelog](https://github.com/ArturT/knapsack/blob/master/CHANGELOG.md)
- [Commits](https://github.com/ArturT/knapsack/compare/v1.16.0...v1.17.1)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-12-06 19:16:09 +00:00
luisramos0
b9b91231ae Fix rubocop issues in mailers 2018-12-06 14:18:24 +00:00
luisramos0
0f442a911e Improve I18nHelper.valid_locale to handle empty objects 2018-12-06 12:48:48 +00:00
luisramos0
feea499298 Make all mailers use appropriate locale when sending emails 2018-12-06 11:45:44 +00:00
Kristina Lim
71db9f5289 Import CSS variables in admin/components/input 2018-12-06 14:08:06 +08:00
luisramos0
c33ca508f7 Add guard clause on variant overrides filter in case hub id is not present in the hubPermissions 2018-12-06 15:35:44 +11:00
Maikel
3a3c9f3847 Merge pull request #3177 from coopdevs/dont-clean-db-twice-in-feature-specs
Do not clean DB twice on feature specs
2018-12-06 12:36:34 +11:00
haseleyi
75277e92e4 Lazy-load the translations for images step of registration 2018-12-05 11:36:27 -08:00
dependabot[bot]
727cc9d578 Bump rspec-rails from 3.7.2 to 3.8.1
Bumps [rspec-rails](https://github.com/rspec/rspec-rails) from 3.7.2 to 3.8.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.7.2...v3.8.1)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-12-05 19:19:50 +00:00
dependabot[bot]
ebff8be996 Bump oj from 3.6.10 to 3.7.4
Bumps [oj](https://github.com/ohler55/oj) from 3.6.10 to 3.7.4.
- [Release notes](https://github.com/ohler55/oj/releases)
- [Changelog](https://github.com/ohler55/oj/blob/master/CHANGELOG.md)
- [Commits](https://github.com/ohler55/oj/compare/v3.6.10...v3.7.4)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-12-05 19:16:55 +00:00
luisramos0
bbc61b4eda Bump roadie-rails to 1.1.1 2018-12-05 15:11:45 +00:00
Pau Pérez Fabregat
1052d98255 Merge pull request #3175 from haseleyi/patch-1
Fix link to Mac setup guide in Getting Started
2018-12-05 12:52:08 +01:00
Kristina Lim
842a8e3654 Move null option for VO use_producer_settings to JS 2018-12-05 17:40:32 +08:00
Kristina Lim
802e3bb447 Refactor choosing VO on_demand in feature specs
We are still using the Rails view I18n scope for :use_producer_settings.
Angular requires this replacement of the default blank option, which we
use for nil on_demand, to be in the template itself.

If we eventually move this template to a JS template, we can move it to
the same I18n scope as the :yes and :no options.
2018-12-05 17:40:31 +08:00
Kristina Lim
d8908bdf4b Remove unused translation keys js.yes and js.no 2018-12-05 17:40:31 +08:00
Kristina Lim
47d51ca525 Prefer guard clause in updateCountOnHand for VOs 2018-12-05 17:40:31 +08:00
Kristina Lim
34c34b94d1 Describe method countOnHandPlaceholder for VOs 2018-12-05 17:40:30 +08:00
Kristina Lim
cff4eb0005 Improve and simplify VO count on hand suggestions
Set variant override count_on_hand in UI to variant count_on_hand value
if on_demand is changed and both specify limited stock.
2018-12-05 17:40:30 +08:00
Kristina Lim
4f2d96d763 Use correct placeholders for VO count_on_hand 2018-12-05 17:40:29 +08:00
Kristina Lim
f5dc03e118 Style disabled text fields in admin pages 2018-12-05 17:40:29 +08:00
Kristina Lim
09b9f968b7 Make VO count on hand readonly unless limited stock 2018-12-05 17:40:29 +08:00
Kristina Lim
cc003c99d5 Ensure in UI compatible VO count and on demand 2018-12-05 17:40:28 +08:00
Kristina Lim
a32bb0445f Change translation for variant override use_producer_settings 2018-12-05 17:40:28 +08:00
Kristina Lim
7ae555cd9c Translate variant override on_demand yes and no 2018-12-05 17:40:27 +08:00
Kristina Lim
4b3198a2b4 Allow reset of "on demand" for variant overrides
Change the UI control for "on demand" in the Inventory page from a
checkbox to a SELECT field with three options: nil, true, and false.

This resolves the following issues:
* There is no way to tell between nil and false - both are represented
by an unticked checkbox.
* There is no way to go back to nil.
2018-12-05 17:40:24 +08:00
Pau Perez
25567d6bd6 Do not clean DB twice on feature specs
It turns out that we were executing `DatabaseCleaner.clean` on two
`after(:each)` blocks. One for all specs and another one for `js: true`
specs. As a result feature specs were hitting both which slows them down
considerably.

On my machine this changes consistently saves 2sec on
`spec/features/consumer/shops_spec.rb` but chances are it has an
accumulative effect when run on the whole test suite.
2018-12-05 09:58:14 +01:00
Pau Pérez Fabregat
3b56212290 Merge pull request #3151 from coopdevs/remove-frontoffice-enterprises-n+1
Remove frontoffice enterprises n+1
2018-12-05 08:12:19 +01:00
Pau Pérez Fabregat
e5a267f4c2 Merge pull request #2735 from luisramos0/cookies_colors
Moved definition of colors in the cookies modal and banner colors to common darkswarm/base/colors
2018-12-05 08:06:58 +01:00
haseleyi
94d12217de Fix untranslated buttons at image step of registration modal 2018-12-04 21:30:42 -08:00
Isaac Haseley
76e5d281bf Fix link for Mac setup guide 2018-12-04 20:37:23 -08:00
Maikel
609a4fde4d Merge pull request #3173 from openfoodfoundation/transifex
Transifex
2018-12-05 11:55:29 +11:00
Transifex-Openfoodnetwork
18a5f53330 Updating translations for config/locales/fr.yml 2018-12-05 09:17:00 +11:00
haseleyi
e863c3dec8 Fix broken link in register call partial 2018-12-04 10:23:46 -08:00
Pau Pérez Fabregat
24415226bf Merge pull request #3168 from luisramos0/google-maps-comment-specs
Temporarily xit 2 broken specs (shops and producers search by url)
2018-12-04 19:13:40 +01:00
Transifex-Openfoodnetwork
9bedc69df8 Updating translations for config/locales/en_GB.yml 2018-12-05 04:52:44 +11:00
luisramos0
7dc208fb8c Temporarily move 2 broken specs to pending (shops and producers search by url) due to google maps api changes 2018-12-04 13:20:20 +00:00
Maikel Linke
66585e93a8 Update all locales with the latest Transifex translations 2018-12-04 14:48:03 +11:00
Hugo Daniel
24dab58de7 Lazy load translations and add keys 2018-11-30 10:49:36 +01:00
luisramos0
1c5d94472f Make colors.css relative reference to branding.css an absolute reference so that colors can be imported in engines 2018-11-29 18:39:58 +00:00
Pau Pérez Fabregat
08297863be Merge pull request #3047 from mllocs/feature/expand-all-steps-in-checkout-page
Expand all steps in the checkout page by default
2018-11-29 16:28:42 +01:00
Pau Pérez Fabregat
9f17acd63c Merge pull request #3136 from kevinchristianson/dashboard-translation
Add missing translation for 'Has Shopfront' in single-enterprise dashboard
2018-11-29 16:27:05 +01:00
Hugo Daniel
aa948552e1 Import payment_methods edit view and apply overrides 2018-11-29 14:58:14 +01:00
Hugo Daniel
34bc79c7f6 Import payment_methods form partial and apply overrides 2018-11-29 14:58:06 +01:00
Hugo Daniel
29bc4c52a5 Import payment_methods#new view and apply overrides 2018-11-29 14:56:28 +01:00
luisramos0
93e1310deb Fixed bug in cookies css, import colors, not branding 2018-11-29 11:47:51 +00:00
luisramos0
cdc5899791 Moved cookies policy modal and cookies banner colors to darkswarm/base/colors.scss 2018-11-29 11:47:51 +00:00
Pau Pérez Fabregat
949efd88ce Merge pull request #3154 from mkllnk/update-db-schema
Update schema for latest migration
2018-11-29 11:34:43 +01:00
Maikel Linke
285346fcda Update schema for latest migration
I feel embarrased that this is the second follow up of my last
migration: https://github.com/openfoodfoundation/openfoodnetwork/pull/3126

The last migration didn't change any database structure, but the schema
still needs the latest migration version. Otherwise it will display
pending migrations when setting up the database.

This commit allows to run `bundle exec rake db:reset` in development
without the following message:

  Run `rake db:migrate` to update your database then try again.
  You have 1 pending migrations:
    20181123012635 AssociateCustomersToUsers

The next pull request with a migration would have solved this problem as
well.
2018-11-29 10:29:56 +11:00
Pau Pérez Fabregat
3ea7fac25f Merge pull request #3095 from luisramos0/admin-users-transl
In admin/users, convert Spree.t calls to t calls and use lazy lookup
2018-11-28 17:37:42 +01:00
Pau Pérez Fabregat
8df781887a Merge pull request #3111 from kevinchristianson/pay-list-translation
Add translation for 'Back to Payments List' button in new payment form
2018-11-28 17:03:29 +01:00
Pau Pérez Fabregat
64c12c7a65 Merge pull request #2955 from HugsDaniel/import-spree-views-for-orders#edit
Import Spree views for orders#edit in our codebase
2018-11-28 17:02:40 +01:00
Pau Perez
96202ab00d Fix Rubocop violations 2018-11-28 16:23:56 +01:00
Pau Perez
e0f43191e2 Make helper methods private
Otherwise next dev might think these are attributes of the resulting
JSON serialized object.

They just made the refactoring a bit easier.
2018-11-28 16:21:40 +01:00
Pau Perez
c330d931ce Eager load product properties to avoid N+1
This totally removes the following N+1 query from the GET /shops request

```sql
SELECT "spree_properties".* FROM "spree_properties"
  INNER JOIN "spree_product_properties"
    ON "spree_product_properties"."property_id" = "spree_properties"."id"
  INNER JOIN "spree_products"
    ON "spree_products"."id" = "spree_product_properties"."product_id"
  INNER JOIN "enterprises"
    ON "enterprises"."id" = "spree_products"."supplier_id"
  WHERE "spree_products"."supplier_id" = 24;
```

The product properties of the corresponding enterprises are now loaded
in a single query fired from the controller.
2018-11-28 16:21:40 +01:00
Pau Perez
4608c434b4 Eager load producer properties to avoid N+1
This totally removes the following N+1 query from the GET /shops request

```sql
SELECT "spree_properties".* FROM "spree_properties"
  INNER JOIN "producer_properties"
    ON "spree_properties"."id" = "producer_properties"."property_id"
  WHERE "producer_properties"."producer_id" = 17
  ORDER BY producer_properties.position;
```

The producer properties of the corresponding enterprises are now loaded
in a single query fired from the controller.
2018-11-28 16:21:40 +01:00
Pau Perez
e40c1c08ca Refactor spec to not stub the class under test
This also relies on ActiveRecord which will come in handy as we move on
the refactor.
2018-11-28 16:21:40 +01:00
Pau Perez
149fc1ac6f Inline PropertyMerge's #merge into serializer
Now that it has become a plain Ruby #uniq, there's no point on having
the abstraction and indirection.
2018-11-28 16:21:40 +01:00
Pau Perez
faac5f4b2d Refactor PropertyMerge to use Ruby's #uniq instead 2018-11-28 16:21:40 +01:00
Pau Perez
1363a2a17d Improve readability of spec 2018-11-28 16:21:40 +01:00
Pau Perez
8e1f9a1ba3 Refactor #product_properties not to fetch ids 2018-11-28 16:21:40 +01:00
Pau Perez
bc7258d43b Test #supplied_properties helper methods 2018-11-28 16:21:40 +01:00
Pau Perez
23f629cfd6 Autofix all Rubocop violations in serializer 2018-11-28 13:54:42 +01:00
Pau Perez
c6ab5feb81 Move cached & uncached serializers to their files 2018-11-28 13:54:42 +01:00
Pau Perez
41d988176c Pass enterprises to inject method from controller 2018-11-28 13:54:42 +01:00
Pau Perez
5a85d7a77b RSpec3-ize controller spec 2018-11-28 13:54:42 +01:00
Pau Pérez Fabregat
b9dfaea274 Merge pull request #3143 from coopdevs/setup-rack-mini-profiler
Enable rack-mini-profiler in development
2018-11-28 13:54:27 +01:00
Pau Pérez Fabregat
438cff6e6d Merge pull request #3080 from Matt-Yorkley/pi/french_issue
Pi/french issue
2018-11-28 13:39:04 +01:00
Hugo Daniel
69e186f482 Define dynamic classes in variables as a turnaround to HAML bug 2018-11-28 10:31:47 +01:00
Hugo Daniel
65dd3eb5b9 Change line items controller HTML response spec to look for form order_edit class 2018-11-28 10:31:47 +01:00
Hugo Daniel
60214b9a90 Fix failing specs 2018-11-28 10:31:47 +01:00
Hugo Daniel
422a68630f Remove data-hook tags 2018-11-28 10:31:47 +01:00
Hugo Daniel
652191a4c5 Fixing missing variable none 2018-11-28 10:31:47 +01:00
Hugo Daniel
c233ea38cf Import Spree views for orders#edit in our codebase and integrate deface modifications 2018-11-28 10:31:47 +01:00
dependabot[bot]
7b95e3a8d7 Bump i18n-js from 3.0.11 to 3.1.0
Bumps [i18n-js](https://github.com/fnando/i18n-js) from 3.0.11 to 3.1.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.0.11...v3.1.0)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-11-27 19:17:57 +00:00
Pau Pérez Fabregat
5c8a638320 Merge pull request #3055 from HugsDaniel/3051-products-edit-views
[Defacepocalypse] Import products#edit and form partial in our codebase and apply overrides
2018-11-27 17:32:25 +01:00
Pau Pérez Fabregat
869f17256d Merge pull request #3011 from HugsDaniel/3000-api-endpoint-enterprise-fee
Add an API endpoint for EnterpriseFeesController#destroy
2018-11-27 17:28:43 +01:00
Pau Pérez Fabregat
ea6f44e78d Merge pull request #3144 from mkllnk/2841-fix-migration-encoding
Encode records with special chars as well
2018-11-27 17:28:13 +01:00
Pau Pérez Fabregat
04d57f8e6e Merge pull request #3135 from openfoodfoundation/dependabot/bundler/unicorn-rails-2.2.1
Bump unicorn-rails from 1.1.0 to 2.2.1
2018-11-27 17:26:12 +01:00
Pau Pérez Fabregat
d073157424 Merge pull request #3134 from coopdevs/update-skylight
Update Skylight from 1.6.1 to 1.7.1
2018-11-27 08:54:39 +01:00
Maikel
2967fdccf7 Merge pull request #3142 from kristinalim/fix-rubocop_block_length_ignore_describe_context
Ignore `describe` and `context` in Rubocop BlockLength
2018-11-27 14:54:46 +11:00
Maikel Linke
9efa45663c Encode records with special chars as well
Using Marshal.dump on the French production database raised an error:

    Encoding::UndefinedConversionError: "\xC3" from ASCII-8BIT to UTF-8

Replacing Marshal with YAML solves the problem. It is also more reliable
and human readable.

This code was run against the French, Australian and UK production
data successfully.
2018-11-27 14:34:03 +11:00
Pau Perez
b365488653 Enable rack-mini-profiler in development
This will run it always in development mode.
2018-11-26 12:10:49 +01:00
Kristina Lim
5c6ec50dea Ignore describe and context in Rubocop BlockLength 2018-11-26 13:55:55 +08:00
Maikel
c152da8122 Merge pull request #3126 from mkllnk/2841-convert-guest-customer
2841  Associate customers with their user records
2018-11-26 13:56:31 +11:00
haseleyi
691de9199f Add missing translation for 'Has Shopfront' in single-enterprise dashboard 2018-11-23 11:23:28 -08:00
dependabot[bot]
4499c38cfe Bump unicorn-rails from 1.1.0 to 2.2.1
Bumps [unicorn-rails](https://github.com/samuelkadolph/unicorn-rails) from 1.1.0 to 2.2.1.
- [Release notes](https://github.com/samuelkadolph/unicorn-rails/releases)
- [Commits](https://github.com/samuelkadolph/unicorn-rails/compare/v1.1.0...v2.2.1)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-11-23 19:14:51 +00:00
Maxim Colls
4b588cbfb0 Removed unused toggle helpers in spec/support 2018-11-23 16:47:55 +00:00
Pau Perez
2abb316bcc Update Skylight from 1.6.1 to 1.7.1
This doesn't bring too many improvements but it's the latest version can
work on our Rails 3.2 version.

You can read the changelog at
https://github.com/skylightio/skylight-ruby/blob/master/CHANGELOG.md#170-april-24-2018.
2018-11-23 17:31:53 +01:00
Pau Perez
453b2a99de Rename redundant #restart_checkout to #call 2018-11-23 12:05:39 +01:00
Pau Perez
88afa70f37 Simplify and speed up service tests 2018-11-23 12:04:42 +01:00
Pau Perez
2c8a1f5e78 Check for value and not object identity in spec 2018-11-23 12:04:42 +01:00
Pau Perez
99463427ce Refactor RestartCheckout service just extracted 2018-11-23 12:04:42 +01:00
Pau Perez
3b681a59ba Move controller tests to service class tests 2018-11-23 12:04:42 +01:00
Pau Perez
a62a2cb52f Extract #restart_checkout to a service 2018-11-23 12:04:42 +01:00
Maikel Linke
f4d5727fb4 Associate customers with their user records
When we introduced the Customer model, we didn't associate any existing
customers with users that have the same email address.
Later we decided to create that association when users sign up. But we didn't
update all the existing customers. We do that now for data consistency and to
solve several bugs.
2018-11-23 15:38:35 +11:00
Maikel Linke
95dbfae757 Use expect syntax 2018-11-22 15:42:56 +11:00
Maikel
be7fea9d14 Merge pull request #3003 from kevinchristianson/getting-started-edits
Getting Started edits
2018-11-22 12:51:16 +11:00
haseleyi
07e246db39 Remove outdated time zone precaution from Getting Started wiki 2018-11-21 15:56:14 -08:00
haseleyi
364a00074b Remove Resources header 2018-11-21 15:56:14 -08:00
Kevin Christianson
7dce6e1180 Remove weird red "for" text in Troubleshooting 2018-11-21 15:56:14 -08:00
Kevin Christianson
1216567be9 Add Troubleshooting section with an alternative database setup 2018-11-21 15:56:13 -08:00
Samuel Nozaki
a7032a8822 Clarify that the time zone should be Melbourne 2018-11-21 15:56:13 -08:00
nozakis
6a73ee86f8 Clarify GETTING_STARTED.md in regards to rspec test failures and time zones 2018-11-21 15:56:13 -08:00
haseleyi
d4b49a662f Add translation for 'Back to Payments List' button in new payment form 2018-11-21 15:33:45 -08:00
Matt-Yorkley
b3a9b502fa Add missing translation key 2018-11-21 19:16:08 +00:00
Matt-Yorkley
a5407d780c Include unexpected validation errors 2018-11-21 19:16:07 +00:00
Pau Pérez Fabregat
ac9cfaa8c3 Merge pull request #3093 from mllocs/fix/factories-ignore-warning
Fixed Factory warning while running tests
2018-11-21 14:44:03 +01:00
Pau Pérez Fabregat
6a1776b84a Merge pull request #3053 from HugsDaniel/3050-products-new-views
[Defacepocalypse] Import products#new view into our codebase and apply overrides
2018-11-21 14:43:22 +01:00
luisramos0
783e0eed3c In admin/users, convert Spree.t calls to t calls using lazy lookup and move translations to ofn's en.yml 2018-11-21 11:46:14 +00:00
luisramos0
0189cefd1c Update all locales with the latest Transifex translations 2018-11-20 22:40:11 +00:00
Maxim Colls
f179bf8c49 Fixed Factory warning while running tests 2018-11-20 18:27:43 +00:00
Pau Pérez Fabregat
398092fa50 Merge pull request #3065 from openfoodfoundation/dependabot/bundler/turbo-sprockets-rails3-0.3.14
Bump turbo-sprockets-rails3 from 0.3.6 to 0.3.14
2018-11-20 12:13:23 +01:00
Pau Pérez Fabregat
4c6dec6203 Merge pull request #3082 from coopdevs/remove-travis-leftovers
Remove all database.travis.yml
2018-11-20 09:35:12 +01:00
Pau Perez
9301c5e1d5 Remove all database.travis.yml
We no longer use this file since we started with Semaphore CI.
2018-11-19 17:16:04 +01:00
Maikel
90e8813ff6 Merge pull request #3054 from coopdevs/fix/incorrect-order-dates
Fix/incorrect order dates
2018-11-19 09:17:11 +11:00
Maxim Colls
884d4d0122 Fixed specs 2018-11-17 19:46:09 +01:00
Maxim Colls
3301b5850a Improved UX in the accordion steps in the checkout page 2018-11-17 18:48:10 +01:00
dependabot[bot]
e655e60b56 Bump turbo-sprockets-rails3 from 0.3.6 to 0.3.14
Bumps [turbo-sprockets-rails3](https://github.com/ndbroadbent/turbo-sprockets-rails3) from 0.3.6 to 0.3.14.
- [Release notes](https://github.com/ndbroadbent/turbo-sprockets-rails3/releases)
- [Commits](https://github.com/ndbroadbent/turbo-sprockets-rails3/compare/v0.3.6...v0.3.14)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-11-16 19:16:27 +00:00
Maikel
f593a70000 Merge pull request #2967 from openfoodfoundation/dependabot/bundler/unicorn-5.4.1
Bump unicorn from 4.9.0 to 5.4.1
2018-11-16 14:05:47 +11:00
dependabot[bot]
0d93705856 Bump unicorn from 4.9.0 to 5.4.1
Bumps [unicorn](https://bogomips.org/unicorn/) from 4.9.0 to 5.4.1.

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-11-16 02:00:48 +00:00
Pau Perez
23bda74ecb Match name of filter and db column for consistency 2018-11-15 19:09:17 +01:00
Pau Perez
a4bbe2b696 Query completed_at filtering orders by date range 2018-11-15 19:09:17 +01:00
Pau Perez
c7a1c4b253 Change order date column translation in BOM
This makes it consistent with the order page. In both cases we use the
`completed_at` column underneath.
2018-11-15 19:09:17 +01:00
Hugo Daniel
a50786be34 Remove old do_not_remove_referenced_fees method 2018-11-15 17:59:06 +01:00
Hugo Daniel
0868404e98 Add specs for new Api::EnterpriseFeesController 2018-11-15 17:58:56 +01:00
Hugo Daniel
1309d80f65 Import products#edit and form partial in our codebase and apply overrides 2018-11-15 17:39:36 +01:00
Pau Pérez Fabregat
ee2ace8023 Merge pull request #3022 from HugsDaniel/2756-duplicate-product-with-image
Add specs for cloning a product with image
2018-11-15 17:35:28 +01:00
Hugo Daniel
094d88d03a Import products#new view into our codebase and apply overrides 2018-11-15 16:35:31 +01:00
Hugo Daniel
d060704e86 Change Spree step-6a commit reference in Gemfile 2018-11-15 15:40:44 +01:00
Pau Perez
52e58a1c31 Remove unused @show_only_completed from view
Now there's no difference in behavior. In both cases we sort by
completed_at in the second column of the orders page.
2018-11-15 15:40:13 +01:00
Pau Perez
b7a3255dbe Replace completed_at in orders table w/ created_at 2018-11-15 15:40:13 +01:00
Pau Perez
b1b04b505e Fetch orders sorted by completion date 2018-11-15 15:40:13 +01:00
Pau Perez
e69d297f86 Wrap long and unreadable lines 2018-11-15 14:26:13 +01:00
Hugo Daniel
a162a2c50b Move product distributions check as a before_destroy in EnterpriseFee model 2018-11-15 14:05:15 +01:00
Hugo Daniel
7b33712f7a Add an API endpoint for EnterpriseFeesController#destroy 2018-11-15 14:05:08 +01:00
Hugo Daniel
4e29589be0 Add specs for cloning a product with image 2018-11-15 13:51:40 +01:00
Pau Pérez Fabregat
605f84d30a Merge pull request #3010 from openfoodfoundation/transifex
Transifex
2018-11-14 11:27:01 +01:00
Pau Pérez Fabregat
8ee193dbcf Merge pull request #2984 from Matt-Yorkley/email_https_links2
Specify only email link protocol setting
2018-11-14 11:26:14 +01:00
Pau Pérez Fabregat
e66f406ea6 Merge pull request #2946 from luisramos0/improve_taxons
Sort Product categories alphabetically by name
2018-11-14 11:23:59 +01:00
Transifex-Openfoodnetwork
f9fae06a7a Updating translations for config/locales/en_BE.yml 2018-11-10 07:09:02 +11:00
Maikel
5c208a68c6 Merge pull request #3007 from openfoodfoundation/revert-2859-instagram_pattern
Revert "Instagram pattern"
2018-11-09 14:23:44 +11:00
Maikel
d8d20429aa Revert "Instagram pattern" 2018-11-09 13:33:11 +11:00
Pau Pérez Fabregat
51a94c8194 Merge pull request #2964 from openfoodfoundation/dependabot/bundler/awesome_print-1.8.0
Bump awesome_print from 1.0.2 to 1.8.0
2018-11-07 18:48:32 +00:00
Matt-Yorkley
9011f5d9a2 Rescue ArgumentError and give user feedback 2018-11-07 18:48:08 +00:00
Pau Pérez Fabregat
72a9d39ee1 Merge pull request #2932 from luisramos0/2931-weight-calculator
2931 Refactor and prepare weight calculator for spree 2
2018-11-07 18:40:38 +00:00
Pau Pérez Fabregat
ecc69c2c58 Merge pull request #2948 from pfac/pfac-config-time-zone
Fix default time zone config
2018-11-07 18:39:25 +00:00
Matt-Yorkley
b5c6ecb45a Explicitly use UTF-8 encoding when opening spreadsheet files 2018-11-07 16:50:24 +00:00
Matt-Yorkley
5b16353938 Specify only link protocol setting 2018-11-07 11:22:24 +00:00
luisramos0
b7ffde795a Add migration to update calculator class name of weight calculators 2018-11-07 09:54:53 +00:00
luisramos0
9490da329a Move Calculator::Weight from models/open_food_network/calculator to models/calculator 2018-11-07 09:54:30 +00:00
luisramos0
bf55f50a7e Fix rubocop warnings on weight and weight_spec 2018-11-07 09:54:30 +00:00
luisramos0
275a192270 Convert specs to RSpec 3.7.1 syntax with Transpec
This conversion is done by Transpec 3.3.0 with the following command:
    transpec spec/models/calculator/weight_spec.rb

* 3 conversions
    from: == expected
      to: eq(expected)

* 3 conversions
    from: obj.should
      to: expect(obj).to

For more details: https://github.com/yujinakayama/transpec#supported-conversions
2018-11-07 09:54:30 +00:00
luisramos0
1ef04354fd Add capacity to weight calculator to calculate based on any object with an order (needed in spree 2 to calculate based on package) 2018-11-07 09:54:30 +00:00
Luis Ramos
0c02e8c15f Merge pull request #2981 from coopdevs/remove-commented-out-code
Remove old commented out code
2018-11-06 16:06:59 +00:00
Luis Ramos
1ceb632b83 Merge pull request #2980 from coopdevs/fix-long-line
Fix long line
2018-11-06 16:05:22 +00:00
Pau Perez
51155bb368 Remove old commented out code
You know, git already keeps old code for us.
2018-11-06 14:23:15 +00:00
Pau Perez
26d95b7250 Fix long lines 2018-11-06 13:59:51 +00:00
Pau Pérez Fabregat
4155f086e0 Merge pull request #2968 from openfoodfoundation/transifex
Transifex
2018-11-05 19:40:33 +01:00
Transifex-Openfoodnetwork
98d79ec939 Updating translations for config/locales/fr_BE.yml 2018-11-05 18:46:40 +11:00
Maikel
4930c9bc06 Merge pull request #2934 from mkllnk/manual-rubocop-todo-config
Add offending files to rubocop config
2018-11-05 10:37:03 +11:00
Maikel Linke
7ad40074a5 Make Code Climate show our real score ans split rubocop config
Our rubocop config hides all current violations. It allows us to have a
passing rubocop run on the current code and improve it gradually. It
detects new violations, but doesn't annoy us with all the existing ones.

Code Climate has its own way of remembering all current violations which
is more sophisticated than ours. The new config for Code Climate doesn't
hide any violations so that Code Climate can give us a realistic score
of code quality and warn us about every new violation.

Splitting the configuration into the main three parts gives a quicker
overview and makes maintaining the parts easier.
2018-11-05 10:19:30 +11:00
Maikel Linke
e798532a2f Add offending files to rubocop config
The file .rubocop_todo.yml is generated automatically and contains a
configuration to make all files pass. For a lot of cops it just lists
the offending files. But for some cops it sets a different metric.

Since we don't want these lax metrics, we override them in our config
file .rubocop.yml. This leads to a lot of offences again. This patch
lists all offending files for each cop to make rubocop pass. We can
improve the code over time and remove items from the list.
2018-11-05 10:11:35 +11:00
Pau Pérez Fabregat
3b85bbe911 Merge pull request #2923 from mkllnk/2882-extract-email-setup-in-specs
Extract email setup in specs for easy upgrade
2018-11-02 15:40:19 +01:00
Maikel
3259b3ecf1 Merge pull request #2912 from Matt-Yorkley/admin_orders_refactor
Admin orders refactor
2018-11-02 16:57:28 +11:00
Maikel
cbfe1b535d Merge pull request #2871 from openfoodfoundation/dependabot/bundler/figaro-1.1.1
Bump figaro from 0.7.0 to 1.1.1
2018-11-02 12:09:53 +11:00
dependabot[bot]
6416d0e1c3 Bump awesome_print from 1.0.2 to 1.8.0
Bumps [awesome_print](https://github.com/awesome-print/awesome_print) from 1.0.2 to 1.8.0.
- [Release notes](https://github.com/awesome-print/awesome_print/releases)
- [Changelog](https://github.com/awesome-print/awesome_print/blob/master/CHANGELOG.md)
- [Commits](https://github.com/awesome-print/awesome_print/compare/v1.0.2...v1.8.0)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-11-01 19:15:40 +00:00
Maikel
931c1207da Merge pull request #2813 from openfoodfoundation/dependabot/bundler/haml-4.0.7
Bump haml from 4.0.4 to 4.0.7
2018-11-01 16:52:07 +11:00
Maikel
7c4370be69 Merge pull request #2963 from luisramos0/2960_migration
Fix variant_overrides permissions for overrides that belong to the supplier herself
2018-11-01 11:41:51 +11:00
luisramos0
079d4e0bf5 Fix variant_overrides permissions for overrides that belong to the supplier herself 2018-10-31 11:26:15 +00:00
Pau Pérez Fabregat
1fbeb43c3a Merge pull request #2958 from coopdevs/pull-translations
Update all locales with the latest Transifex translations
2018-10-31 10:52:02 +01:00
Pau Pérez Fabregat
fc6a2d4a53 Merge pull request #2959 from coopdevs/fix-name-error-on-migrate
Move default_url_options set up to an initializer
2018-10-31 10:51:06 +01:00
Pau Perez
f16897a0b8 Fix DE translations manually
We don't want 🇩🇪 to have a broken menu.
2018-10-31 08:39:25 +01:00
Pedro Costa
1ddbc24a8b Fix default time zone config
Why:

* Starting the environment, even with just `bundle exec rake`, results
  in the following error:
  ```sh
  Value assigned to config.time_zone not recognized.Run "rake -D time"
  for a list of tasks for finding appropriate time zone names.
  ```

This change addresses the issue by:

* Adding the time zone setting to environment specific configurations,
  defaulting to UTC in development, and using Melbourne in tests.
2018-10-30 23:50:23 +00:00
Pau Perez
2e2c7c56cb Move default_url_options set up to an initializer
For some reason running `bundle exec rake db:migrate RAILS_ENV=staging`
fails with:

```
rake aborted!
NameError: uninitialized constant Spree::Config
```

Running `bundle exec rails server` for instance, does not. There must be
a difference on the way a rake task and the rails commands load the app.

Moving this configuration to an initializer, at the end of the
initialization process, fixes it. The constant `Spree::Config` is
already loaded.

**This is preventing the release v1.22.0 from being staged and tested**
2018-10-30 19:45:04 +01:00
luisramos0
3d106d749b Fix rubocop warnings on load_sample_data task 2018-10-30 18:00:52 +00:00
luisramos0
82befd945b Sort Product categories alphabetically by name and fixsample data by fixing taxons taxonomy id 2018-10-30 18:00:48 +00:00
Pau Pérez Fabregat
e4b988c9a2 Merge pull request #2924 from kristinalim/fix-disable_hiding_of_offcanvas_upon_resize
Disable hiding of hamburger menu upon resize <= 1024px width
2018-10-30 19:00:14 +01:00
Pau Pérez Fabregat
b35b24d4ae Merge pull request #2914 from luisramos0/checkout-language-bug
Fix multi lingual issue in cart and checkout: the user language selection was not being used
2018-10-30 17:46:37 +01:00
Pau Pérez Fabregat
7ffa3a2ca1 Merge pull request #2913 from HugsDaniel/2905_password_reset_missing_translations
Add password confirmation, token and expired keys
2018-10-30 17:34:01 +01:00
Pau Pérez Fabregat
3d88199257 Merge pull request #2896 from Matt-Yorkley/email_https_links
Use https on all links in emails in production
2018-10-30 17:33:32 +01:00
Pau Pérez Fabregat
8e602d453b Merge pull request #2876 from luisramos0/subs-states-fix
Fix bug in subscriptions address controller where country states were not correctly returned
2018-10-30 17:32:34 +01:00
Pau Perez
7f177598f2 Update all locales with the latest Transifex translations 2018-10-30 15:13:57 +01:00
Maikel
d63670d675 Merge pull request #2846 from Matt-Yorkley/pi/rename_enterprise_fields
[Product Import] Rename enterprise fields and update template
2018-10-30 15:11:02 +11:00
Maikel
7609496df3 Merge pull request #2859 from albarnaz/instagram_pattern
Instagram pattern
2018-10-30 15:10:27 +11:00
Maikel
ee042f51a4 Merge pull request #2949 from pfac/pfac-fix-new-preferences-migration
Fix new preferences migration
2018-10-30 15:09:35 +11:00
Pau Pérez Fabregat
5fade045f8 Merge pull request #2928 from luisramos0/line_items_controller_spec
Reorganize LineItemsController's destroy line item specs
2018-10-29 16:09:20 +01:00
Pedro Costa
91e4f99c19 Fix new preferences migration
Why:

* In a clean environment, running the new preferences migration fails,
  due to a missing file from Spree core being manually required. This
  file has now been missing since ab707cf.

This change addresses the issue by:

* Copying the missing file from Spree Core 1.3.6.beta into the migration.
  This fixes the issue for now, but also means that a migration merge
  and/or rewrite might be in order for the future.
2018-10-29 14:53:01 +00:00
Matt-Yorkley
443515dae4 Improve comment in index action 2018-10-29 10:34:05 +00:00
Matt-Yorkley
f3124e5472 Explicitly add :host to actionmailer config 2018-10-26 22:42:47 +01:00
Matt-Yorkley
b826beb0d7 Inline hashes in tests 2018-10-26 21:38:57 +01:00
Matt-Yorkley
29492d61f9 Use #allow syntax 2018-10-26 21:38:57 +01:00
Matt-Yorkley
8c19d1afec Move tests from spree/admin/orders_controller_spec to api/orders_controller_spec and tidy up 2018-10-26 21:38:57 +01:00
Matt-Yorkley
033ae4f570 Add basic SearchOrders service spec 2018-10-26 21:38:57 +01:00
Matt-Yorkley
1f8f7b0495 Add new Api::OrdersController spec 2018-10-26 21:38:57 +01:00
Matt-Yorkley
46b1317159 Update orders resource js spec 2018-10-26 21:38:57 +01:00
Matt-Yorkley
334eebeab1 Move json to API and strip index action 2018-10-26 21:38:57 +01:00
Matt-Yorkley
0bd67bd06a Remove unnecessary Spree::Config fallback value 2018-10-26 21:38:57 +01:00
Matt-Yorkley
77251848ee Refactor Spree::Admin::OrdersController 2018-10-26 21:38:57 +01:00
luisramos0
09f8df6340 Reorganize LineItemsController's destroy line item specs to separate contexts with different test orders (completed_with_total and completed_with_fees) 2018-10-25 18:06:48 +01:00
Pau Pérez Fabregat
8a3f621b42 Merge pull request #2893 from luisramos0/deleted_products_break_inventory
Fix bug in inventory management page
2018-10-25 18:20:42 +02:00
Pau Pérez Fabregat
7cac4637fe Merge pull request #2916 from luisramos0/date-transl-fix
Add Portuguese and German to list of momentJS locales
2018-10-25 18:18:53 +02:00
Kristina Lim
2cc594dc98 Proceed to hide off-canvas when resized to >1024px 2018-10-25 20:36:27 +08:00
Kristina Lim
14eaa49204 Disable hiding the off-canvas upon window resize.
In some browsers for mobile devices, the address bar is automatically
hidden when scrolling down the page. This is not workable if the height
of the contents of the off-canvas exceeds the height of the screen,
because the latter portion of the contents stays hidden to the user.

https://github.com/openfoodfoundation/angular-foundation/blob/0.9.0-20180826174721/src/offcanvas/offcanvas.js
2018-10-25 19:29:19 +08:00
Maikel
acb8ec772e Merge pull request #2922 from mkllnk/update-rubocop-todo
Update rubocop todo list
2018-10-25 14:48:51 +11:00
Maikel
3cab3d1798 Merge pull request #2921 from openfoodfoundation/transifex
Transifex
2018-10-25 14:22:10 +11:00
Maikel Linke
cd5c23993a Update rubocop todo list
Since we activated more cops in 0ac16ce096
we had a lot of files missing in the todo list. They are likely from
other pull requests that have been open at the same time. This is a
quick update so that rubocop gives us some useful feedback again.
2018-10-25 14:08:04 +11:00
Maikel Linke
e6adb8a3b9 Extract email setup in specs for easy upgrade
The way we set up email sending completely changes with Spree 2. This
change encapsulates that code in a single method so that it can be
changed easily and doesn't create further merge conflicts while we are
still working on the master branch and the Spree upgrade.
2018-10-25 13:53:22 +11:00
Maikel
51a1787881 Merge pull request #2908 from Matt-Yorkley/bulk_orders_bug
Fix pagination conflict with LineItemsCtrl requests
2018-10-25 13:18:11 +11:00
Maikel Linke
dc5302ca08 Speed up database queries and make them scale
This commit makes use of three ActiveRecord features:

1. Using `select` instead of `all.map` enables ActiveRecord to nest one
select into the other, resulting in one more efficient query instead of
two.

2. Using `find_each` saves memory by loading records in batches.
https://api.rubyonrails.org/classes/ActiveRecord/Batches.html#method-i-find_each

3. Using `pluck` creates only an array, avoiding loading all the other
columns of the records into objects.

Running this on the current Canadian database, fixes the following
variant overrides:

```
[]
[]
[]
[]
[]
[]
[925, 924, 966, 965]
[]
[]
[]
[]
[462,
 863,
 464,
 822,
 949,
 947,
 944,
 939,
 942,
 946,
 945,
 943,
 438,
 937,
 938,
 941,
 940,
 467,
 952,
 875,
 453,
 953,
 454,
 951,
 487,
 460,
 457,
 528,
 527,
 486,
 459,
 458,
 461,
 529,
 530,
 950,
 642,
 384,
 380,
 643,
 385,
 381,
 644,
 386,
 382,
 960,
 959,
 379,
 640,
 377,
 375,
 532,
 639,
 376,
 374,
 646,
 390,
 389,
 637,
 406,
 408,
 647,
 391,
 393,
 633,
 396,
 400,
 398,
 645,
 388,
 387,
 648,
 394,
 392,
 536,
 632,
 399,
 397,
 395,
 634,
 403,
 401,
 635,
 404,
 402,
 636,
 407,
 405,
 535,
 534,
 638,
 410,
 409,
 948,
 533,
 537,
 531,
 877,
 880,
 894,
 893,
 672,
 671,
 673,
 674,
 703,
 714,
 715,
 716,
 717,
 862,
 864,
 879,
 876,
 865,
 881,
 878,
 463,
 954,
 866,
 823,
 957,
 958,
 955,
 956,
 899,
 897]
[]
[969]
```
2018-10-25 11:33:14 +11:00
Transifex-Openfoodnetwork
c17939631f Updating translations for config/locales/en_US.yml 2018-10-25 09:31:36 +11:00
Pau Pérez Fabregat
ce93c52dfe Merge pull request #2850 from Matt-Yorkley/password_change_logout
Password change logout
2018-10-24 11:43:09 +02:00
Pau Pérez Fabregat
9ef4852bd4 Merge pull request #2818 from nikobozi/refactor-variant-overrides-query
Move query from variant_overrides_controller to its model scope
2018-10-24 11:42:22 +02:00
Pau Pérez Fabregat
7651ee0909 Merge pull request #2798 from as1729/as1729-update-docs-Stripe-publishable_key-for-pr
Better docs for Stripe.publishable_key and Stripe.endpoint_secret.
2018-10-24 11:23:21 +02:00
luisramos0
c9784a5eda Add Portuguese and German to list of moment locales. The main usage is in the order cycle closure time in the shopfront 2018-10-23 17:53:08 +01:00
luisramos0
034d9ef72a Refactor multilingual spec: extract method with repeated assertion 2018-10-23 14:10:52 +01:00
luisramos0
9d9f5d38d7 Fix multi lingual issue in cart and checkout: the user language selection was not being used 2018-10-23 14:10:48 +01:00
Hugo Daniel
c5f6af95c7 Add password confirmation, token and expired keys 2018-10-23 10:40:20 +02:00
Maikel
6f5289c730 Merge pull request #2894 from openfoodfoundation/transifex
Transifex
2018-10-23 16:21:20 +11:00
Matt-Yorkley
42c1584e6f Fix pagination conflict with LineItemsCtrl requests 2018-10-22 18:13:56 +01:00
Pau Pérez Fabregat
a1bbf5328e Merge pull request #2872 from mkllnk/2765-fix-geocoding
2765 Fix geocoding to display enterprises on map
2018-10-22 16:44:30 +02:00
luisramos0
d375bb8c55 Migration: Revoke variant overrides without permissions 2018-10-20 12:32:55 +01:00
luisramos0
9079437284 Add before_destroy to enterprise_relationship so that variant overrides are revoked when permission is deleted 2018-10-20 12:32:51 +01:00
luisramos0
5ae0ad87a7 Refactor EnterpriseRelationship before save hook: some renames and extract methods 2018-10-20 11:52:11 +01:00
Matt-Yorkley
c3cef699ca Use https on all links in emails in production 2018-10-19 17:03:51 +01:00
Transifex-Openfoodnetwork
c911462737 Updating translations for config/locales/en_GB.yml 2018-10-20 02:04:33 +11:00
Maikel Linke
9698fd3c5a Style spec 2018-10-18 11:07:16 +11:00
Maikel Linke
d197c8587f Test address deletion 2018-10-18 11:06:32 +11:00
Maikel Linke
e96cab957a Convert specs to RSpec 3.7.1 syntax with Transpec
This conversion is done by Transpec 3.3.0 with the following command:
    transpec spec/models/spree/addresses_spec.rb

* 13 conversions
    from: obj.should
      to: expect(obj).to

* 2 conversions
    from: it { should ... }
      to: it { is_expected.to ... }

* 1 conversion
    from: obj.should_not
      to: expect(obj).not_to

For more details: https://github.com/yujinakayama/transpec#supported-conversions
2018-10-18 10:52:46 +11:00
luisramos0
fe9f4a1c95 Move countryStates service from ofn.admin to admin.utils to remove bad dependency from admin modules (customers and subscriptions) to main ofn.admin module. Now the dependency admin.utils is used instead 2018-10-17 12:16:33 +01:00
luisramos0
c281927372 Fix subscription address form. It now clears the state selection when a different country is selected 2018-10-16 23:02:26 +01:00
luisramos0
1804bf5a2b Extract countryStates logic from customer_address modal and re-use new CountryStates service 2018-10-16 22:45:38 +01:00
luisramos0
5c5a2194d6 Extract country states logic out of subscriptions address controller into new service CountryStates 2018-10-16 21:58:27 +01:00
luisramos0
feaf16d878 Fix bug in subscriptions address controller where the country id lookup was not exact and states returned were incorrect. Add unit tests to cover different cases 2018-10-16 20:59:34 +01:00
fabricio.albarnaz
419493f153 Move instagram regex to an method to fix codeclimate 2018-10-16 16:09:15 -03:00
fabricio.albarnaz
8e4adbd23a Add more test cases 2018-10-16 15:34:46 -03:00
fabricio.albarnaz
93a051bf5a Regex ajust 2018-10-16 15:33:10 -03:00
Pau Pérez Fabregat
590091c42a Merge pull request #2842 from Matt-Yorkley/pi/missing_variable
Fix missing local variable in EntryProcessor
2018-10-16 13:19:23 +02:00
Maikel Linke
8fb81bb6a7 Configure Geocoder with API key as required by Google 2018-10-16 16:49:52 +11:00
Maikel Linke
61797fff56 Restrict deletion of address explicitely
Enterprises have an `address_id` which must point to a valid
`Spree::Address`. As Rubocop suggested, I restricted the deletion of
addresses when they are still associated to an enterprise.

Without declaring `dependent: :restrict`, trying to delete the address
would raise `ActiveRecord::InvalidForeignKey`. Now it is more specific
and raises `ActiveRecord::DeleteRestrictionError`.

I didn't find code rescuing the InvalidForeignKey when deleting addresses. I
actually think that we never delete addresses. So this change should not
have any impact on the execution.
2018-10-16 15:18:44 +11:00
Maikel Linke
a8705ca179 Simplify address methods 2018-10-16 14:49:36 +11:00
Maikel Linke
5021ed9c69 Simplify by using Rails tools 2018-10-16 14:49:35 +11:00
Maikel Linke
34849c441a Reduce complexity and duplication 2018-10-16 14:48:12 +11:00
Maikel Linke
c4437a6437 Style address decorator 2018-10-16 14:48:12 +11:00
Maikel Linke
b109f6d78c Remove temporary reporting code 2018-10-16 14:48:12 +11:00
fabricio.albarnaz
02bc134c59 Change befor save check to format validation 2018-10-15 17:51:33 -03:00
dependabot[bot]
dc6c8ec455 Bump figaro from 0.7.0 to 1.1.1
Bumps [figaro](https://github.com/laserlemon/figaro) from 0.7.0 to 1.1.1.
- [Release notes](https://github.com/laserlemon/figaro/releases)
- [Changelog](https://github.com/laserlemon/figaro/blob/master/CHANGELOG.md)
- [Commits](https://github.com/laserlemon/figaro/compare/v0.7.0...v1.1.1)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-10-15 19:14:26 +00:00
Pau Pérez Fabregat
f8bccda6ab Merge pull request #2847 from Matt-Yorkley/emails/validation
Emails/validation
2018-10-15 15:54:41 +02:00
Pau Pérez Fabregat
8946fe3ce8 Merge pull request #2829 from Matt-Yorkley/bi/results_per_page
Add per_page controls to admin orders index
2018-10-15 12:17:39 +02:00
Pau Pérez Fabregat
0e4a3dbc26 Merge pull request #2845 from coopdevs/fix-invalid-variant-creation
Fix invalid variant creation
2018-10-15 12:16:39 +02:00
Pau Pérez Fabregat
fe149967e4 Merge pull request #2521 from luisramos0/cookies_in_engine
[OFN Domains] Breaking OFN into domains - POC cookies inside an engine
2018-10-15 10:03:30 +02:00
Matt-Yorkley
fcff835922 Update results on dropdown select 2018-10-12 17:06:42 +01:00
Matt-Yorkley
a2828ea305 Use :for_hubs scope 2018-10-12 17:00:19 +01:00
Matt-Yorkley
123d1963ad Remove duplicate method 2018-10-12 17:00:19 +01:00
Matt-Yorkley
3cb43121d5 Refactor long lines for new character limit 2018-10-12 17:00:18 +01:00
Matt-Yorkley
8fcaa54de7 Update CSV templates 2018-10-12 16:57:13 +01:00
Matt-Yorkley
bd4f0507ce Adjustments for new Settings and ResetAbsent classes 2018-10-12 16:57:13 +01:00
Matt-Yorkley
1c85de6f58 Use producer and distributor for field names 2018-10-12 16:57:13 +01:00
Matt-Yorkley
2c9dc8899a Update fields in specs 2018-10-12 16:57:13 +01:00
Matt-Yorkley
5c2b5377bc Assign supplier_id when saving new product to products list 2018-10-12 16:57:13 +01:00
Matt-Yorkley
e7a909e828 Rename supplier to enterprise 2018-10-12 16:57:13 +01:00
Matt-Yorkley
8a0a33deec Merge pull request #2858 from Matt-Yorkley/rubocop_line_limit
Increase rubocop line limit to 100
2018-10-12 16:52:37 +01:00
fabricio.albarnaz
6ad32fb66d Add check for instagram.com 2018-10-11 18:05:18 -03:00
fabricio.albarnaz
e46b3566c3 Remove the check for www.instagram.com 2018-10-11 16:51:43 -03:00
fabricio.albarnaz
48720c835c Add spec to instagram pattern 2018-10-11 16:30:17 -03:00
fabricio.albarnaz
e87075aed7 Add before save to check the instagram link pattern 2018-10-11 15:27:46 -03:00
Matt-Yorkley
57c6530e46 DRY code and use more flexible I18n 2018-10-11 16:38:14 +01:00
Matt-Yorkley
ebb03906cf Increase rubocop line limit to 100 2018-10-11 15:37:38 +01:00
Pau Perez
60d05a941c Fix variants with 'weight' and missing unit_value
This adds a data migration to fix those cases. It defaults to showing
1 unit of the specified weight. That is, if the user chose Kg, it'll
display 1 as unit.

Note that migration logs the process in a log/migrate.log file separate
from the regular Rails log/production.log file.

When you run the migration you'll see something like:

  Fixing variants missing unit_value...

  Processing variant 12...
  Succesfully fixed variant 12

  Done!

This helps auditing the changes applied and debug any possible failure
scenarios. You can delete it once all is ok.
2018-10-11 15:52:40 +02:00
Pau Perez
5bd375d422 Favor early return over dumb else branch 2018-10-11 15:52:40 +02:00
Pau Perez
c8c16f0e8a Use Rails 3.2 validates syntax 2018-10-11 15:52:40 +02:00
Pau Perez
cbac916e66 Validate unit value when updating variant_unit
Variants whose product's variant_unit is weight or volume require
a unit_value.
2018-10-11 15:52:40 +02:00
Pau Perez
a2228d4131 Make ProductSet parseable by humans
Now it's imposible to understand what is really going on. Feels more
like assembler than Ruby.
2018-10-11 15:52:40 +02:00
Pau Perez
575d76e23e Cover variant creation and update with basic tests 2018-10-11 15:52:40 +02:00
Pau Perez
d43726504b Make #update_attributes parseable by humans
As it is this is impossible to follow.
2018-10-11 15:52:40 +02:00
Pau Perez
f54c69cbba Add first test case for ProductSet
This covers creation and update of a product.
2018-10-11 15:52:40 +02:00
Pau Perez
2d60b3180e Wrap and improve comment block readability 2018-10-11 15:52:40 +02:00
Matt-Yorkley
4760ebb80c Use global config 2018-10-11 09:04:37 +01:00
Matt-Yorkley
dafcd0ddc2 Add per_page controls to admin orders index 2018-10-10 18:32:12 +01:00
Pau Pérez Fabregat
1bafa0cb7d Merge pull request #2853 from mkllnk/remove-parallel-tests
Remove parallel tests
2018-10-10 16:01:44 +02:00
Pau Pérez Fabregat
227dd3e399 Merge pull request #2831 from kristinalim/fix-product_import_date_error
Fix product import date error when some but not all variants have import date
2018-10-09 16:37:25 +02:00
Pau Pérez Fabregat
85962158b8 Merge pull request #2821 from nikobozi/oc-clear-filter
Make 'Clear All' button work on order cycle page
2018-10-09 16:35:57 +02:00
Matt-Yorkley
900c65e0fc Merge pull request #2855 from openfoodfoundation/transifex
Transifex
2018-10-09 14:21:14 +01:00
Matt-Yorkley
edca209f67 Merge pull request #2844 from Matt-Yorkley/bi/angular_orders_changing_page
Fix bindings on angular orders data
2018-10-09 14:15:38 +01:00
Transifex-Openfoodnetwork
c2c492cd6b Updating translations for config/locales/es.yml 2018-10-09 21:57:06 +11:00
Matt-Yorkley
55411af3fa Improve user account spec 2018-10-09 10:07:41 +01:00
Maikel Linke
245d900b58 Remove unused CI scripts
We used to have our own CI server, but now we are using Travis and
Semaphore. We don't need these scripts any more. And since
parallel_tests was removed in the previous commit, they are broken
anyway.
2018-10-09 17:06:59 +11:00
Maikel Linke
4cbc449a51 Remove unused parallel_tests gem
Reverts db47c01784
2018-10-09 16:54:08 +11:00
Pau Pérez Fabregat
5606550cd2 Merge pull request #2815 from openfoodfoundation/dependabot/bundler/rspec-retry-0.6.1
Bump rspec-retry from 0.5.6 to 0.6.1
2018-10-09 07:30:25 +02:00
Maikel
68c58dcb68 Merge pull request #2770 from openfoodfoundation/transifex
Transifex
2018-10-09 15:18:17 +11:00
Matt-Yorkley
3e39f3e749 Disable logout on password change 2018-10-08 23:06:54 +01:00
Matt-Yorkley
8f5fd41c8b Update email confirmation address 2018-10-08 21:38:47 +01:00
Matt-Yorkley
3ec8c12899 Update account setting spec for updating email address 2018-10-08 20:41:59 +01:00
Pau Pérez Fabregat
ea6e522775 Merge pull request #2826 from 73VW/master
[README] Updated build status badge
2018-10-08 17:47:52 +02:00
Pau Pérez Fabregat
f5573f419b Merge pull request #2778 from coopdevs/refactor-entry-processor
Refactor entry processor
2018-10-08 17:11:23 +02:00
Matt-Yorkley
37a7cceead Fix bindings on angular orders data 2018-10-08 15:42:46 +01:00
Matt-Yorkley
b78716c283 Fix missing local variable 2018-10-08 14:49:29 +01:00
Transifex-Openfoodnetwork
8b59943256 Updating translations for config/locales/de_DE.yml 2018-10-08 16:58:01 +11:00
luisramos0
574f031020 Fix typo in matomo optout iframe url in cookies_policy_helper 2018-10-05 21:36:03 +01:00
Kristina Lim
da904c908d Fix product import date when not all variants have it 2018-10-06 03:03:22 +08:00
Pau Pérez Fabregat
58a99a7f89 Merge pull request #2692 from Matt-Yorkley/bi/angular_orders
Angularise orders page
2018-10-04 21:10:48 +02:00
73VW
7a1cffb4b5 Updated build status badge 2018-10-04 18:43:30 +02:00
Pau Pérez Fabregat
b139f3839a Merge pull request #2806 from luisramos0/rep
Delete representative_view dependency, not used
2018-10-04 13:02:35 +02:00
niko
f99ed81863 Make 'Clear All' button work on order cycle page 2018-10-04 11:46:38 +02:00
niko
f65d3c2815 fix rubocop issue 2018-10-04 03:30:32 +02:00
niko
3ae38178a3 Move query from variant_overrides_controller to its model scope 2018-10-04 02:43:02 +02:00
dependabot[bot]
8a6da745a3 Bump rspec-retry from 0.5.6 to 0.6.1
Bumps [rspec-retry](https://github.com/noredink/rspec-retry) from 0.5.6 to 0.6.1.
- [Release notes](https://github.com/noredink/rspec-retry/releases)
- [Changelog](https://github.com/NoRedInk/rspec-retry/blob/master/changelog.md)
- [Commits](https://github.com/noredink/rspec-retry/compare/v0.5.6...v0.6.1)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-10-02 19:15:12 +00:00
dependabot[bot]
4e1521fd6a Bump haml from 4.0.4 to 4.0.7
Bumps [haml](https://github.com/haml/haml) from 4.0.4 to 4.0.7.
- [Release notes](https://github.com/haml/haml/releases)
- [Changelog](https://github.com/haml/haml/blob/master/CHANGELOG.md)
- [Commits](https://github.com/haml/haml/compare/4.0.4...4.0.7)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-10-02 19:13:34 +00:00
luisramos0
daafe73d81 Delete representative_view dependency, not used 2018-10-02 15:11:13 +01:00
Pau Pérez Fabregat
aa78b9e54c Merge pull request #2777 from coopdevs/setup-simplecov
Setup simplecov
2018-10-02 14:39:43 +02:00
Pau Pérez Fabregat
6ddcb01b7c Merge pull request #2736 from openfoodfoundation/dependabot/bundler/oj-3.6.10
Bump oj from 2.1.2 to 3.6.10
2018-10-02 14:38:26 +02:00
Matt-Yorkley
55d7d5d1e4 Rename #capture_path to #payment_capture_path 2018-10-02 11:10:51 +01:00
Matt-Yorkley
017e3d14df Use variable colour assignment 2018-10-02 11:10:21 +01:00
Pau Perez
6a7359a3c5 Pass supplier_ids in strategy #reset instead
This removes the need to expose supplier_ids through #<< and makes both
ResetAbsent and its strategies simpler.

This could be made even simpler if the strategies just implemented
`#relation` as public method and ResetAbsent called `#update_all` on
them. The data to be fetched is the only thing that changes but the
update is the same.
2018-10-01 17:37:49 +02:00
Pau Perez
82654cd1ee Turn delegation to a reader to make it simpler
This makes the solution less smart and as a result ResetAbsent improves
it's consistency and returns always an integer.
2018-10-01 16:40:34 +02:00
Pau Perez
148321f7b7 Make strategies class names more explicit 2018-10-01 16:40:34 +02:00
Pau Perez
af93af1a64 Replace strategy with a more explicit name 2018-10-01 16:40:34 +02:00
Pau Perez
8715fce295 Remove @import_settings in favor of Settings 2018-10-01 13:12:06 +02:00
Pau Perez
fd69c7672d Add specs for ResetAbsent strategies
This also fixes the case where there are no overrides to exclude.
2018-10-01 13:12:06 +02:00
Pau Perez
d527f6265a Remove pointless sum 2018-10-01 13:12:06 +02:00
Pau Perez
5eb10edbfd Inject #updated_ids to strategy
Their values are known beforehand.
2018-10-01 13:12:06 +02:00
Pau Perez
186801a1e2 Remove unused supplier_ids argument 2018-10-01 13:12:06 +02:00
Pau Perez
718f529ede Use nested module in test to improve readability 2018-10-01 13:12:06 +02:00
Pau Perez
f04fa4ed63 Do not treat ResetAbsent as a decorator anymore
This fully encapsulates it's logic and reduces its tight coupling with
EntryProcessor.
2018-10-01 13:12:06 +02:00
Pau Perez
95ae18a1ba Remove method delegation 2018-10-01 13:12:06 +02:00
Pau Perez
54d6bc5443 Don't use importing_into_inventory? in ResetAbsent
This completely decouples ResetAbsent from the particular strategy used.
2018-10-01 13:12:06 +02:00
Pau Perez
a10e58e20a Inject strategy_factory into ResetAbsent 2018-10-01 13:12:06 +02:00
Pau Perez
a9444b8909 Extract InventoryReset and Products strategies
Extract this strategy classes from ResetAbsent and move #reset there.
2018-10-01 13:12:06 +02:00
Pau Perez
8d7a11b0ac Make all steps of the algorithm have 2 branches 2018-10-01 13:12:06 +02:00
Pau Perez
23471346b6 Do not call ResetAbsent when preconditions not met 2018-10-01 13:12:06 +02:00
Pau Perez
a409353d37 Move import_settings query methods to Settings 2018-10-01 13:12:06 +02:00
Pau Perez
fd84bea463 Test that variants or overrides are actually reset 2018-10-01 13:12:06 +02:00
Pau Perez
b940f06238 Return early if reset_all_absent is not set
No need to go through half of the algorithm if the setting is not
enabled. It does not change per enterprise.

This also assumes "Previously we were updating both (products and inventory)
at the same time during one import, but now it's one or the other" in
Matt's words.
2018-10-01 13:12:06 +02:00
Pau Perez
c955e151b7 Pass enterprise ids as strs as current code does 2018-10-01 13:12:06 +02:00
Pau Perez
e04162415a Move code comment to be the method's doc 2018-10-01 13:12:06 +02:00
Pau Perez
5ac3598550 Inject Settings object in ResetAbsent 2018-10-01 13:12:06 +02:00
Pau Perez
b5766a2dd9 Extract common conditional clauses
This also turns local vars into ivars so that the behaviour can be
thoroughly tested. These ivars are meant to be removed once this class
is refactored further. Now there's no other way to ensure its state.
2018-10-01 13:12:06 +02:00
Pau Perez
ed073e9750 Rely on Settings and don't access internal struct. 2018-10-01 13:12:06 +02:00
Aditya Sridhar
372ae8e4aa updated the spacing to be consistent. 2018-09-30 16:10:57 -04:00
Aditya Sridhar
06b28c1ab4 Better docs for Stripe.publishable_key and Stripe.endpoint_secret. 2018-09-30 15:50:33 -04:00
Pau Perez
663db47433 Move products_reset_count to ResetAbsent 2018-09-29 10:57:23 +02:00
Pau Perez
3150741849 Extract ResetAbsent class from EntryProcessor 2018-09-29 10:57:18 +02:00
luisramos0
3cf10020bf Fix bug on slow page loads where banner and policy modal were both loaded
This solution makes the banner aware of the policy modal: the banner doesnt open if the policy modal is enabled
2018-09-27 17:47:36 +01:00
Pau Perez
16badcd1b5 Setup Simplecov to have code coverage analysis
This enables code coverage analysis when running specs in your dev
environment. Simply run them as usual and you'll see a line like the
following at the end of the output:

  Coverage report generated for RSpec to /home/pau/dev/openfoodnetwork/coverage

Simply browse to coverage/index.html and the results in a web UI.

This is a useful tool that helps you decide if the tests you added are
enough or not.
2018-09-27 15:57:02 +02:00
Matt-Yorkley
54b17ac701 Use Spree::Order.pending_payments and remove service 2018-09-27 13:04:56 +01:00
Maikel
d488ae3f44 Merge pull request #2725 from mkllnk/2699-email-confirm-jobs
2699 email confirm jobs
2018-09-27 14:27:43 +10:00
Maikel Linke
f0021be53c Style I18n call 2018-09-27 13:33:09 +10:00
Maikel Linke
af1ac333df Create MailMethod before User when seeding 2018-09-27 13:33:09 +10:00
Maikel Linke
9dcc683dc0 Notify Bugsnag on sign-up errors
This may lead to more error reports than we want to see. A not existing
email address may cause Bugsnag to be notified. If this happens, we can
rescue form these specific errors and only report the rest.
2018-09-27 13:33:09 +10:00
Maikel Linke
17d951f99d Rescue from any sign-up errors
The most common failure would happen when sending the confirmation email
triggered by `user.save`. We rescue any errors here and give feedback to
the user.

This allows for immediate feedback when the user types an email address
that is not accepted by our mail server or the email setup is not
configured properly.
2018-09-27 13:33:08 +10:00
Maikel Linke
3ae073dce5 Convert specs to RSpec 3.7.1 syntax with Transpec
This conversion is done by Transpec 3.3.0 with the following command:
    transpec spec/controllers/user_registrations_controller_spec.rb

* 10 conversions
    from: obj.should
      to: expect(obj).to

* 7 conversions
    from: == expected
      to: eq(expected)

For more details: https://github.com/yujinakayama/transpec#supported-conversions
2018-09-27 13:33:08 +10:00
Maikel Linke
600c8fcd4c Send confirmation emails immediately
Using deferred methods on the user model breaks delayed jobs when the
user is deleted while the job still exists. We could create a proper job
referencing a user id for sending these emails instead. But since the
user has to wait for the confirmation email anyway, we can send it
within the current request. This should be revised if performance
becomes an issue.

Sending the email directly also has the advantage that we can tell the
user if emailing failed. See the following commits.

This change impacts a bunch of specs as we now need a working email
setup to create unconfirmed users. This commit introduces a custom
matcher to unify testing for confirmation emails.
2018-09-27 13:33:08 +10:00
luisramos0
921105301c Move angular-templates route and controller into Web engine
The route and controller were in the main app and the views in the engine, with this commit they stay all inside the engine
This is done to keep it simple and remove the unnecessary dependency between main app and engine
If we use this mechanism in the future for other things in the main app or other engines, we can find a way to extract/abstract this
2018-09-26 12:39:51 +01:00
luisramos0
b1c7e6c091 Fix assets precompilation by including web/all.js and web/all.css in the assets precompilation list in application.rb 2018-09-26 12:30:45 +01:00
luisramos0
a23b1b980d Make Web engine an isolated namespace engine mounted on / (without /web prefix)
This approach is better to separate concerns, see “Isolated Engine” here: https://api.rubyonrails.org/v3.2/classes/Rails/Engine.html
2018-09-26 12:30:06 +01:00
Matt-Yorkley
2dcc8ea4bb Add spec for pending payments service 2018-09-25 10:05:32 +01:00
Matt-Yorkley
e93d46e75a Use .find instead of .select().first 2018-09-25 09:35:05 +01:00
Maikel
51f9a0afa1 Merge pull request #2562 from Matt-Yorkley/pi/product_attributes
[Product Import] Product attributes
2018-09-25 11:36:03 +10:00
Maikel
bf1f2b93c6 Merge pull request #2768 from coopdevs/fire-unused-users-task
Remove no longer used rake task
2018-09-25 11:30:04 +10:00
Transifex-Openfoodnetwork
97775c0bc1 Updating translations for config/locales/fr_CA.yml 2018-09-25 06:12:48 +10:00
Matt-Yorkley
1d9243af19 DRY and clarify serializer and service 2018-09-24 16:58:43 +01:00
Pau Perez
4a7ee9b91e Remove no longer used rake task 2018-09-24 17:17:10 +02:00
Matt-Yorkley
6f2760cf92 Move translations into their namespace and use '.key' format 2018-09-24 15:54:05 +01:00
Pau Perez
f743b5f02f Extract Settings from Product Import processor
This encapsulates the data structure used by the entry processor to
check various settings. It still requires a lot of work to move more
logic to this new class.
2018-09-24 13:55:33 +02:00
Pau Pérez Fabregat
b8417058b4 Merge pull request #2741 from coopdevs/refactor-checkout-process-bits
Refactor checkout process bits
2018-09-24 12:08:19 +02:00
Maikel
9d48ea7b62 Merge pull request #2759 from luisramos0/del_old_spec_helper
Removed deprecated spec helper have_select2_option and fixed its last usage
2018-09-24 11:25:51 +10:00
Matt-Yorkley
9f57b43a13 Move sortble header elements to a partial 2018-09-23 22:14:12 +01:00
Maikel
f0bb927020 Merge pull request #2734 from coopdevs/make-rubocop-useful
Get useful feedback from Rubocop Metrics cops
2018-09-23 19:48:05 +10:00
Maikel
89be54f79e Merge pull request #2750 from openfoodfoundation/transifex
Transifex
2018-09-22 16:05:04 +10:00
Transifex-Openfoodnetwork
7175434910 Updating translations for config/locales/en_US.yml 2018-09-22 01:25:48 +10:00
Maikel
e2fd5a36d8 Merge pull request #2757 from luisramos0/delete_dead_specs
Deleted sample specs and one pending spec
2018-09-21 15:41:49 +10:00
luisramos0
33d2b65d65 Removed deprecated spec helper have_select2_option and fixed its last usage 2018-09-20 23:01:23 +01:00
luisramos0
2a68184c01 Deleted unused test helper for rabl views 2018-09-20 20:09:14 +01:00
Pau Pérez Fabregat
20077c99b5 Merge pull request #2618 from coopdevs/enable-style-send-cop
Favor #public_send over #send using Rubocop's cop
2018-09-20 19:03:40 +02:00
Pau Pérez Fabregat
3dd1fcbc72 Merge pull request #2749 from luisramos0/delete-li-ship-method-name
Drop unused db column line_items.shipping_method_name
2018-09-20 13:26:26 +02:00
Matt-Yorkley
897e43fe0b Remove Spree's Deface data-hooks from new view 2018-09-20 11:33:22 +01:00
Maikel Linke
5763bf0518 Update all translations 2018-09-20 10:33:02 +10:00
luisramos0
0e6b0aa248 Deleted sample specs and one pending spec 2018-09-19 23:45:00 +01:00
Matt-Yorkley
fc68e28e4d Add :description to non-updatable attributes list 2018-09-19 22:30:10 +01:00
Matt-Yorkley
ebb18e9394 Remove unneccesary method 2018-09-19 21:12:30 +01:00
Matt-Yorkley
cc98cc832c Prefer #public_send over #send 2018-09-19 21:12:30 +01:00
Matt-Yorkley
b57c6cf9ac Add errors when attempting to update non-updatable fields 2018-09-19 21:12:29 +01:00
Pau Perez
0ac16ce096 Get useful feedback from Rubocop Metrics cops
One of the biggest pros of linters like Rubocop is to get valuable feedback to
help write better code. The way we have Rubocop configured now we don't prevent
new code from adhere improved code quality and this is specially important when
touching code that already suffers from complexity.

Without all Rubocop's Metrics cops enabled there's no way to get this insights
and write better code. This enables them while regenerating the
`.rubocop_todo.yml` to hide the current violations.

So, next time we touch existing code that we think could be simpler, we should
go to `.rubocop_todo.yml` and remove any occurrences of the file in question.
This way we could Rubocop's feedback right in the editor. This is tremendously
helpful when refactoring. It shows you where to start.
2018-09-19 19:27:40 +02:00
Pau Pérez Fabregat
62bebdb15e Merge pull request #2698 from openfoodfoundation/dependabot/bundler/uglifier-4.1.19
[Security] Bump uglifier from 2.7.1 to 4.1.19
2018-09-19 18:02:06 +02:00
Pau Perez
a2b3d8372e Reduce complexity of OrderUpdater decorator 2018-09-19 16:03:33 +02:00
Transifex-Openfoodnetwork
454cd8bfbf Updating translations for config/locales/nb.yml 2018-09-19 22:30:06 +10:00
HugsDaniel
c4d4b52668 Merge pull request #2742 from openfoodfoundation/transifex
Transifex
2018-09-19 14:18:03 +02:00
Matt-Yorkley
3cbb576b4f Move payment object logic out of order serializer and delete code 2018-09-19 13:00:30 +01:00
Matt-Yorkley
ba254802f8 Move angular_pagination to /views/admin/shared/ 2018-09-19 13:00:30 +01:00
Matt-Yorkley
9ce32e3c14 Add new ordersCtrl spec 2018-09-19 13:00:30 +01:00
Matt-Yorkley
64620c2797 Tidy up response formats for easier testing 2018-09-19 13:00:30 +01:00
Matt-Yorkley
6768055b4d Split orders into 2 angular controllers 2018-09-19 13:00:30 +01:00
Matt-Yorkley
b2551b4e0b Rewrite existing specs 2018-09-19 13:00:30 +01:00
Matt-Yorkley
68f0c80016 Add loading message and spinner 2018-09-19 13:00:30 +01:00
Matt-Yorkley
9da6a5a9b3 Add column sorting to table 2018-09-19 13:00:30 +01:00
Matt-Yorkley
2112f296e4 Angularise filters 2018-09-19 13:00:30 +01:00
Matt-Yorkley
3b9d9db16b Add pagination 2018-09-19 13:00:29 +01:00
luisramos0
524f9af148 Drop unused db column line_items.shipping_method_name 2018-09-19 11:38:19 +01:00
Matt-Yorkley
93d273f94a Convert orders index table to use angular ng-repeat 2018-09-19 09:33:25 +01:00
Transifex-Openfoodnetwork
f0d015be0d Updating translations for config/locales/de_DE.yml 2018-09-19 08:34:42 +10:00
Transifex-Openfoodnetwork
258347bc63 Updating translations for config/locales/fr.yml 2018-09-19 01:45:12 +10:00
Pau Pérez Fabregat
9f7d24934d Merge pull request #2671 from kristinalim/translations-any_enterprise_in_oc_filters
Translate "Any Enterprise" and "Any Schedule" in OC filters
2018-09-18 11:42:19 +02:00
Pau Perez
2a0e0eed73 Move state_machine's additions inside class_eval
And also cover them with tests.
2018-09-18 11:20:32 +02:00
Pau Perez
1fdc578901 Increase readability (a bit) of OrderUpdater 2018-09-18 11:20:32 +02:00
Pau Perez
99cdeca0b1 Remove useless RSpec context block 2018-09-18 11:20:32 +02:00
Pau Perez
13f73b4512 Test :restart_checkout state machine event 2018-09-18 11:20:32 +02:00
Maikel
19df4ff640 Merge pull request #2701 from mkllnk/2700-improve-product-refresh-scheduling
2700 improve product refresh scheduling
2018-09-18 12:09:24 +10:00
dependabot[bot]
ccf7d91487 Bump oj from 2.1.2 to 3.6.10
Bumps [oj](https://github.com/ohler55/oj) from 2.1.2 to 3.6.10.
- [Release notes](https://github.com/ohler55/oj/releases)
- [Changelog](https://github.com/ohler55/oj/blob/master/CHANGELOG.md)
- [Commits](https://github.com/ohler55/oj/commits/v3.6.10)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-09-17 19:16:27 +00:00
luisramos0
c22ac0086b Moved cookies_policy_helper to Web engine and respective spec 2018-09-17 16:05:38 +01:00
luisramos0
95f2f92cf3 Extracted cookies footer links from view to footer links helper 2018-09-17 16:05:38 +01:00
luisramos0
bded530137 Moved web api endpoint from /api to /web/api 2018-09-17 16:05:38 +01:00
luisramos0
dc5eb6448e Change web/all.css from sprockets to SASS and include web/all.css through darkswarm/all.css 2018-09-17 16:05:38 +01:00
luisramos0
d170a4d489 New domain Web (rails engine) with the following features extracted from the main app:
- cookies banner
- cookies policy page
- cookies policy and privacy policy links in the footer
2018-09-17 16:05:32 +01:00
Matt-Yorkley
e577bcb46f Prepare angular controller and serialized data 2018-09-17 14:18:23 +01:00
Pau Pérez Fabregat
0f627cdf39 Merge pull request #2661 from kristinalim/translations-copy_of_order_cycle
Translate "COPY OF" when cloning an OC
2018-09-17 12:38:29 +02:00
Pau Pérez Fabregat
0520f2187c Merge pull request #2540 from luisramos0/delete_dead_store
removed assets related to spree store: dead code
2018-09-17 11:33:56 +02:00
Kristina Lim
798a6ed391 Translate more text in OC filters 2018-09-17 10:09:17 +10:00
Maikel Linke
ac85b90315 Clarify private class method declaration 2018-09-15 10:18:54 +10:00
Maikel
ce7be68fac Merge pull request #2660 from kristinalim/translations-failed_oc_creation
Translate and fix fallback errors when creating or updating OC
2018-09-14 16:58:39 +10:00
dependabot[bot]
05225aaba7 [Security] Bump uglifier from 2.7.1 to 4.1.19
Bumps [uglifier](https://github.com/lautis/uglifier) from 2.7.1 to 4.1.19. **This update includes security fixes.**
- [Release notes](https://github.com/lautis/uglifier/releases)
- [Changelog](https://github.com/lautis/uglifier/blob/master/CHANGELOG.md)
- [Commits](https://github.com/lautis/uglifier/compare/v2.7.1...v4.1.19)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-09-14 06:29:22 +00:00
Maikel
c3f461ad6e Merge pull request #2622 from openfoodfoundation/dependabot/bundler/db2fog-0.9.0
Bump db2fog from 0.8.0 to 0.9.0
2018-09-14 16:26:54 +10:00
Maikel
e836ac0234 Merge pull request #2686 from HugsDaniel/2593_customize_user_guide_link
Enable setting a customized user guide link in general settings
2018-09-14 15:46:05 +10:00
Maikel
beedd933e9 Merge pull request #2512 from kristinalim/feature-remove_enterprise_images
Support removal of enterprise logo and promo image
2018-09-14 15:07:24 +10:00
Maikel
eabb9f4574 Merge pull request #2659 from kristinalim/translations-admin_area_fixes
Simple translation fixes for admin area and profile page
2018-09-14 14:38:25 +10:00
Maikel
da2f278060 Merge pull request #2649 from kristinalim/translations-fix_store_link_in_admin_header
Fix i18n translation for Store link in admin header for `fr`
2018-09-14 14:24:29 +10:00
Maikel
43a3ecff06 Merge pull request #2612 from openfoodfoundation/dependabot/bundler/jwt-1.5.6
Bump jwt from 1.5.4 to 1.5.6
2018-09-14 14:13:02 +10:00
Maikel
514f64c8d0 Merge pull request #2650 from kristinalim/translations-more_admin_header
Add "more" translation key
2018-09-14 13:31:13 +10:00
Maikel
6b56def649 Merge pull request #2697 from mkllnk/2655-fix-admin-payments
2655 fix admin payments
2018-09-14 11:26:20 +10:00
Maikel
1000bd4d24 Merge pull request #2658 from kristinalim/translations-order_and_shipment_emails
Allow fixing and customizing translations for order cancellation and shipment emails
2018-09-14 10:11:56 +10:00
Hugo Daniel
8dd0e01b8e Use explicit syntax for section objects in preference_sections definition 2018-09-13 12:34:06 +02:00
Maikel Linke
ec953e1db0 Style cache refreshment class 2018-09-13 17:22:01 +10:00
Maikel Linke
2e635f94f6 Make job queuing more robust and efficient 2018-09-13 17:20:11 +10:00
dependabot[bot]
b676bfdcc8 Bump jwt from 1.5.4 to 1.5.6
Bumps [jwt](https://github.com/jwt/ruby-jwt) from 1.5.4 to 1.5.6.
- [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/v1.5.4...v1.5.6)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-09-13 02:34:11 +00:00
Maikel
065df96872 Merge pull request #2675 from Matt-Yorkley/bi/remake_views
Remake orders index view
2018-09-13 12:29:54 +10:00
Maikel
5e722bf57d Merge pull request #2634 from luisramos0/cookies_matomo_optout
[Cookies] Adds matomo optout iframe to cookies policy page
2018-09-13 12:29:09 +10:00
Maikel
f46c1e8414 Merge pull request #2424 from frank-west-iii/issue-2100-mini-racer
Replace therubyracer with mini_racer
2018-09-13 12:28:03 +10:00
Maikel Linke
81f60aab46 Make PaymentMethod serialisable with fees
https://github.com/openfoodfoundation/openfoodnetwork/issues/2655
2018-09-13 12:01:17 +10:00
Maikel Linke
d7b19750e5 Add spec for GH issue #2655 2018-09-13 12:01:16 +10:00
Maikel Linke
a447fe4f40 Require lib file where needed
We can't always rely on other parts of the code been loaded first. We
need to declare dependencies so that they are always present.

I just ran into this problem in my dev environment.
2018-09-13 12:01:16 +10:00
luisramos0
478dd68072 In cookies policy helper, added string interpolation to variable to avoid variable (Spree::Config entry) to break the concatenation. Added unit test to validate the error case 2018-09-12 18:30:24 +01:00
luisramos0
409f084bd4 Added matomo opt out iframe to cookies policy page 2018-09-12 18:30:24 +01:00
Pau Pérez Fabregat
3f5c799166 Merge pull request #2648 from kristinalim/fix-ask_anonymous_users_to_login_for_order_page
Fix ask anonymous users to login for order page
2018-09-12 16:17:34 +02:00
Hugo Daniel
cc43d789e2 Refacto edit method for content controller and enable custom user guide link 2018-09-12 14:51:53 +02:00
dependabot[bot]
91c0de3f2a Bump db2fog from 0.8.0 to 0.9.0
Bumps [db2fog](https://github.com/itbeaver/db2fog) from 0.8.0 to 0.9.0.
- [Release notes](https://github.com/itbeaver/db2fog/releases)
- [Changelog](https://github.com/itbeaver/db2fog/blob/master/CHANGELOG.md)
- [Commits](https://github.com/itbeaver/db2fog/commits/v0.9.0)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-09-12 11:09:57 +00:00
Pau Pérez Fabregat
e474271698 Merge pull request #2637 from Vadlusk/remove_css_splitter
Remove duplicate css_splitter references, delete split css file.
2018-09-12 13:07:15 +02:00
Pau Pérez Fabregat
64e71a1ee7 Merge pull request #2544 from kristinalim/fix-scrolling_in_modals
Fix top position, height, and scrolling with modals
2018-09-12 13:05:20 +02:00
Matt-Yorkley
4d9ebf0550 Apply submenu override 2018-09-11 12:17:28 +01:00
Matt-Yorkley
f08d6389d8 Apply capture order override 2018-09-11 12:06:58 +01:00
Matt-Yorkley
507f4d0878 OCD tidy up of visually misaligned filter 2018-09-11 11:53:37 +01:00
Matt-Yorkley
afedaea2b5 Apply special instructions override 2018-09-11 11:49:28 +01:00
Matt-Yorkley
8f174b1308 Apply ship shortcut override 2018-09-11 11:43:38 +01:00
Matt-Yorkley
ba0701457e Apply distributor td override 2018-09-11 11:42:08 +01:00
Matt-Yorkley
6389c552ca Apply distributor th override 2018-09-11 11:41:25 +01:00
Matt-Yorkley
1958ac9932 Apply distributor filter inputs override 2018-09-11 11:39:05 +01:00
Matt-Yorkley
c7e2f817ed Apply colgroup override 2018-09-11 11:34:34 +01:00
Matt-Yorkley
5a2491cb47 Apply ng-app override 2018-09-11 11:30:14 +01:00
Matt-Yorkley
980c46c63f Convert Spree view to HAML 2018-09-11 11:22:54 +01:00
Kristina Lim
02a909c1b1 Do not use image_tag for enterprise image previews
If Rails config.assets.compile is false and config.assets.digest is
true, which is the case for staging and production, image_tag fails when
the image file is not found.

We do not need sprockets to ensure presence of the image file for these
tags, because the correct SRC values are assigned through the JS.
Inserting HTML should be sufficient.
2018-09-08 23:23:49 +08:00
Maikel
5e0997d03e Merge pull request #2635 from apoc64/timezone_comments
Adds comments for setting up timezone in application.yml
2018-09-08 15:55:16 +10:00
Kristina Lim
003e65fbed Translate error when failing to create order cycle 2018-09-08 02:15:52 +08:00
Kristina Lim
2c2dd62f6a Translate "COPY OF" when cloning an OC 2018-09-08 02:06:52 +08:00
Kristina Lim
9dcdb67352 Translate inherits_properties label in product form 2018-09-08 01:37:57 +08:00
Kristina Lim
fc79aae17c Translate authorized shops headers in account page 2018-09-08 00:34:47 +08:00
Kristina Lim
c64acf47ab Fix translation key for "involving" in OC filters 2018-09-07 21:38:44 +08:00
Kristina Lim
86f4a118dd Translate placeholder for order cycle name filter 2018-09-07 17:58:34 +08:00
Kristina Lim
40443b19f1 Add translations for headers in enterprise index
This is for the view when logged in as enterprise manager.

The translations added are:

* Producer?
* Package
* Status
2018-09-07 17:51:08 +08:00
Kristina Lim
2cf608ffdf Add translations for shipment emails 2018-09-07 17:08:12 +08:00
Kristina Lim
f1d5088aaa Add translations for order cancellation emails 2018-09-07 17:01:43 +08:00
Maikel Linke
d6c2a36451 Blacklist libv8 version that breaks mini_racer 2018-09-07 14:11:33 +10:00
Frank West
b9fe1ced16 Replace therubyracer with mini_racer
This is being replaced to increase the reliability and speed of asset
compilation.
2018-09-07 14:11:30 +10:00
Kristina Lim
d06bccb832 Change i18n key for Store link in admin header
spree_i18n translates the "store" key in different ways, sometimes like
"shop" and sometimes like "save". This could be because of a clash in
usage between Spree add-ons.

To be more specific, the "Store" link in the admin section now uses the
"admin.header.store" translation key.
2018-09-06 22:03:39 +08:00
Kristina Lim
6d5f8553ef Add "more" translation key
This is used in places such as the adaptive menu in the admin section.

This is actually included in spree_i18n but not correctly translated for
fr.
2018-09-06 18:10:27 +08:00
Kristina Lim
f9533f8fb8 Refactor redirecting back after requiring login 2018-09-06 19:46:17 +10:00
Kristina Lim
cd41498da9 Ask to login when not authenticated for order page
Redirect the user to the login page, instead of responding with HTTP
401.
2018-09-06 16:26:48 +08:00
Kristina Lim
3bf9e95511 Add specs for existing behaviour in order page 2018-09-06 16:26:45 +08:00
Kristina Lim
28d2bb3d47 Wrap controller specs for viewing cart 2018-09-06 15:04:11 +08:00
Kristina Lim
339ea6fa91 Clean up SCSS as suggested by scss-lint 2018-09-06 04:21:35 +10:00
Kristina Lim
9258e8c464 Remove height limit for modals in small screens 2018-09-05 23:58:26 +08:00
Kristina Lim
169aa752d8 Enlarge potential size of modals for large screens
Change modals for large screens from 10% position from top and 80% max
height, to 5% position from top and 90% max height.

This is to accommodate the taller cookies policy modal.

It seems that it is not easy to apply a custom position and height to a
specific modal only. This doesn't seem to be supported by the modal
library currently being used.

Before the recent changes, most modals were rendering at 10px top
position (not the originally planned 10%), so changing this to 5%
doesn't seem to be much of a compromise.
2018-09-05 23:58:26 +08:00
Kristina Lim
f4725198e8 Move some CSS to pages/ subdirectory. 2018-09-05 23:58:26 +08:00
Kristina Lim
f03eb02269 Keep height of modal, dialog within screen height 2018-09-05 23:58:25 +08:00
Kristina Lim
a37e9f1b87 Use v0.9.0-20180826174721 in kristinalim fork of angular-foundation
There is a bug in the handling of % values for the "top" CSS property of
the modals. See details here:

https://github.com/kristinalim/angular-foundation/pull/1

A PR to the original repository has also been submitted, but the project
doesn't seem to be active anymore:

https://github.com/yalabot/angular-foundation/pull/319

And to another fork of the repository:

https://github.com/cwadrupldijjit/angular-foundation/pull/1

The bug was causing the 10% "top" CSS property for the modal to be
treated as 10px.
2018-09-05 23:58:25 +08:00
Kristina Lim
34adf7cf6c Lower the start point for sliding of modals
Occasionally, the page scrolls up while the modal is being opened. This
was causing the final position of the modal to be at the wrong location
relative to the viewport.

This was happening because of a race condition between the animation
that slides the modal from above the viewport to the middle, and focus()
which the modal does:

https://github.com/yalabot/angular-foundation/blob/0.8.0/src/modal/modal.js#L109

The final vertical position of the modal is at 10%, so the animation
which translates the modal -25% vertically was starting -15% above the
viewport. The focus() was then causing vertical scroll.

This lowers the starting point of the animation, so there will no longer
be scrolling.

Additionally, the animation would only happen on large screens. The CSS
property "top" is 0 for smaller screens.
2018-09-05 23:58:25 +08:00
Kristina Lim
6e55e5b1c7 Use maximum of 80% for modals in large screens
When there is enough content in the modal, the height of the modal plus
its top margin could exceed the height of the viewport.

Considering a top position of 10%, a max height of 80% renders a tall
modal vertically centered, with 10% remaining space at the bottom.
2018-09-05 23:58:22 +08:00
Pau Perez
b23cb55525 Fix current violations of Style/Send cop 2018-09-05 12:05:05 +02:00
Kristina Lim
ce0758d420 Add confirm dialog for enterprise image removal 2018-09-04 02:08:26 +08:00
Kristina Lim
368612cad6 Allow removal of enterprise logo and promo image 2018-09-04 02:08:25 +08:00
Kristina Lim
c9370672c6 Add JS support for removal of enterprise images 2018-09-04 02:08:12 +08:00
Kristina Lim
9c3bb863da Add endpoints for removing enterprise images 2018-09-04 01:32:39 +08:00
Kristina Lim
01d4b8fb10 Allow custom resource permission for admin controllers 2018-09-04 01:18:48 +08:00
Kristina Lim
f30032eee7 Include image URLs in serialized enterprise for admin 2018-09-04 01:18:45 +08:00
VadLusk
8efbe0e6d2 Delete _split2.css from application.rb assets precompile array. 2018-09-03 11:08:38 -06:00
apoc64
fbce828305 Breaks comment into multiple lines 2018-09-03 08:56:42 -06:00
luisramos0
14d526efc2 removed assets related to spree store: dead code 2018-09-03 09:50:42 +01:00
VadLusk
f74a6e47d5 Remove css_splitter references, delete all_split2.css. #1361 #2633 2018-09-03 09:20:26 +10:00
apoc64
e62a755ddb Adds comments for setting up timezone in application.yml 2018-09-02 11:08:27 -06:00
Pau Perez
1de13a5049 Favor #public_send over #send using Rubocop's cop
Devs keep using `#send` although that method does not preserve
private/protected visibility. Watching after this turned out to be quite
time-consuming while doing code review.

Currently, the Style/Send cop doesn't enforce `#public_send` however
(that's what we want). It simply discourages the use of #send. See
https://github.com/rubocop-hq/rubocop/pull/2081#issuecomment-292251650
for details. So a new entry on the Code Conventions doc has been added
to overcome this limitation:
https://github.com/openfoodfoundation/openfoodnetwork/wiki/Code-Conventions#prefer-public_send-over-send
2018-08-30 18:48:45 +02:00
Kristina Lim
28792fc895 Add tests for adding/updating enterprise images 2018-08-26 03:58:19 +08:00
758 changed files with 45395 additions and 12396 deletions

View File

@@ -2,7 +2,9 @@ version: "2"
plugins:
rubocop:
enabled: true
channel: "rubocop-0-55"
channel: "rubocop-0-57"
config:
file: ".rubocop_styleguide.yml"
scss-lint:
enabled: true
checks:
@@ -19,23 +21,23 @@ checks:
argument-count:
enabled: false
complex-logic:
enabled: true
enabled: false
file-lines:
enabled: true
enabled: false
method-complexity:
enabled: true
enabled: false
method-count:
enabled: false
method-lines:
enabled: false
nested-control-flow:
enabled: true
enabled: false
return-statements:
enabled: true
enabled: false
similar-code:
enabled: true
enabled: false
identical-code:
enabled: true
enabled: false
exclude_patterns:
- "spec/**/*"
- "vendor/**/*"

61
.github/ISSUE_TEMPLATE/bug_report.md vendored Normal file
View File

@@ -0,0 +1,61 @@
---
name: Bug report
about: Create a report to help us improve
title: ''
labels: ''
assignees: ''
---
## Description
<!-- Provide a more detailed introduction to the issue itself, and why you consider it to be a bug -->
## Expected Behavior
<!-- Tell us what should happen -->
## Actual Behaviour
<!-- Tell us what happens instead -->
## Steps to Reproduce
<!-- Provide an unambiguous set of steps to reproduce this bug -->
<!-- Include code to reproduce if relevant -->
1.
2.
3.
4.
## Animated Gif/Screenshot
<!-- Provide a screenshot or brief animated gif reproducing the bug. Linux users can use
[Peek](https://github.com/phw/peek#ubuntu) while Mac users can use [Recordit](http://recordit.co/) -->
## Context
<!-- How has this bug affected you? What were you trying to accomplish? -->
## Severity
<!-- Assign a label and explain the impact.
bug-s1: a critical feature is broken: checkout, payments, signup, login
bug-s2: a non-critical feature is broken, no workaround
bug-s3: a feature is broken but there is a workaround
bug-s4: it's annoying, but you can use it
bug-s5: we can live with it, only a few users impacted
https://github.com/openfoodfoundation/openfoodnetwork/wiki/Bug-severity
-->
## Your Environment
<!-- Include relevant details about the environment you experienced the bug in -->
* Version used:
* Browser name and version:
* Operating System and version (desktop or mobile):
* OFN Platform instance where you discovered the bug, and which version of the software they are using.
## Possible Fix
<!-- Not obligatory, but suggest a fix or reason for the bug -->

View File

@@ -0,0 +1,35 @@
---
name: Feature template
about: Create feature epics that detail the larger feature or functionality to be
delivered.
title: ''
labels: ''
assignees: ''
---
## What is the problem we are solving
<!-- Describe the problem this feature is supposed to solve. Should be described in the icebox item (in Discourse). -->
## Success factors = expected outcome
<!-- Describe what is the expected outcome: when the feature is released, what would it look like? What will make you say "the problem is solved"? Can be metrics like "Platform has less than 1% service interruption", or yes/no statements like "People can checkout on mobiles. -->
## Useful information for inception
<!-- List here any information that can be useful for the inception stage. -->
## Link to the "Product Development - Backlog" item in Discourse
<!-- Put the link here, and put this epic link in the Discourse item as well for cross-referencing. -->
Add a custom footer
Pages 70
Home
Development environment setup
macOS (Sierra, HighSierra and Mojave)
OS X (El Capitan)
OS X (Mavericks)
Ubuntu
On Heroku
Rubocop
General guidelines
Spree Commerce customisation

View File

@@ -0,0 +1,18 @@
---
name: Story template
about: Create stories that are small chunks of work that devs will pick up and deliver
title: ''
labels: ''
assignees: ''
---
## Description
<!-- Describe the story in detail:
**- As a:** (enterprise user, super admin, user...)
**- On page:** (provide url of the page you want to modify. If not provide where will be created the new url and the name we want to give it)
**- I want to be able to do:** (specify the desired behavior)
(Link to others issues or resources to provide context > only if really necessary). -->
## Acceptance Criteria
<!-- Document the outcomes that need to be achieved before this component can be considered complete. -->

View File

@@ -0,0 +1,21 @@
---
name: Tech debt template
about: File a refactoring task that aids future development
title: ''
labels: tech debt
assignees: ''
---
### What we should change and why (this is tech debt)
<!-- The use of X changed and part y is now redundant. We can remove it and... -->
### Context
<!-- This came up in PR #3451#issuecomment-461616636. -->
### Impact and timeline
<!-- Example: This simplifies the upgrade to Spree 3 and should be done after upgrading to Spree 2. -->

5
.gitignore vendored
View File

@@ -33,10 +33,13 @@ public/images
public/spree
config/abr.yml
config/initializers/feature_toggle.rb
config/initializers/db2fog.rb
NERD_tree*
coverage
libpeerconnection.log
/config/application.yml
node_modules
vendor/bundle/
coverage
/reports/
!/reports/README.md
bin/

View File

@@ -1,4 +0,0 @@
--format Fuubar
--format ParallelTests::RSpec::SummaryLogger --out tmp/spec_summary.log
--format ParallelTests::RSpec::RuntimeLogger --out tmp/parallel_runtime_rspec.log
--tag ~performance

View File

@@ -1,201 +1,20 @@
# This is our main Rubocop configuration for developers. It is used when you run:
#
# bundle exec rubocop
#
# The configuration is split into three files. Look into those files for more details.
#
inherit_from:
# The automatically generated todo list to ignore all current violations.
- .rubocop_todo.yml
AllCops:
TargetRubyVersion: 2.1
TargetRailsVersion: 3.2
Include:
- '**/Rakefile'
- '**/config.ru'
Exclude:
- 'db/**/*'
- 'config/**/*'
- 'script/**/*'
- 'vendor/**/*'
- 'node_modules/**/*'
- !ruby/regexp /old_and_unused\.rb$/
# The parser gem fails to parse this file with out current Ruby version.
- 'spec/factories.rb'
# Our Open Food Network style guide. It's used by Code Climate. If you want to see all violations,
# then use only that configuration (like Code Climate):
#
# bundle exec rubocop -c .rubocop_styleguide.yml
#
- .rubocop_styleguide.yml
# OFN SETTINGS
# Cop settings that have been agreed upon by the OFN community
Rails:
Enabled: true
Style/Documentation:
Enabled: false
Style/StringLiterals:
Enabled: false
Style/HashSyntax:
Enabled: true
EnforcedStyle: ruby19_no_mixed_keys
Layout/MultilineMethodCallIndentation:
Enabled: true
EnforcedStyle: indented
# TEMPORARY/CONTESTED SETTINGS
# These are still to be decided upon, but recommended for inclusion by
# oeoeaio after scrutinising offenses the codebase
# Don't think this is a big issue, mostly picking up RPSEC scope definitions
# with lamdas and RSpec '.to change{}' blocks
Lint/AmbiguousBlockAssociation:
Enabled: false
# Heaps of offences (> 100) in specs, mostly in situations where two or more
# instances of a model are required, but only one is referenced. Difficult to
# fix without making the spec look messy or rewriting it.
# Should definitely fix at some point.
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
# They should be removed or tweaked and moved above as decisions are made
# NOTE: Cops which did not fail at the time of writing were removed
Layout/DotPosition:
Enabled: false
StyleGuide: http://relaxed.ruby.style/#styledotposition
Layout/SpaceBeforeBlockBraces:
Enabled: false
StyleGuide: http://relaxed.ruby.style/#stylespacebeforeblockbraces
Layout/SpaceInsideParens:
Enabled: false
StyleGuide: http://relaxed.ruby.style/#stylespaceinsideparens
Style/Alias:
Enabled: false
StyleGuide: http://relaxed.ruby.style/#stylealias
Style/BlockDelimiters:
Enabled: false
StyleGuide: http://relaxed.ruby.style/#styleblockdelimiters
Style/CommentAnnotation:
Enabled: false
StyleGuide: http://relaxed.ruby.style/#stylecommentannotation
Style/DoubleNegation:
Enabled: false
StyleGuide: http://relaxed.ruby.style/#styledoublenegation
Style/FormatString:
Enabled: false
StyleGuide: http://relaxed.ruby.style/#styleformatstring
Style/IfUnlessModifier:
Enabled: false
StyleGuide: http://relaxed.ruby.style/#styleifunlessmodifier
Style/Lambda:
Enabled: false
StyleGuide: http://relaxed.ruby.style/#stylelambda
Style/MultilineBlockChain:
Enabled: false
StyleGuide: http://relaxed.ruby.style/#stylemultilineblockchain
Style/NegatedIf:
Enabled: false
StyleGuide: http://relaxed.ruby.style/#stylenegatedif
Style/NegatedWhile:
Enabled: false
StyleGuide: http://relaxed.ruby.style/#stylenegatedwhile
Style/ParallelAssignment:
Enabled: false
StyleGuide: http://relaxed.ruby.style/#styleparallelassignment
Style/PercentLiteralDelimiters:
Enabled: false
StyleGuide: http://relaxed.ruby.style/#stylepercentliteraldelimiters
Style/Semicolon:
Enabled: false
StyleGuide: http://relaxed.ruby.style/#stylesemicolon
Style/SingleLineMethods:
Enabled: false
StyleGuide: http://relaxed.ruby.style/#stylesinglelinemethods
Style/TrailingCommaInArguments:
Enabled: false
StyleGuide: http://relaxed.ruby.style/#styletrailingcommainarguments
Style/TrailingCommaInArrayLiteral:
Enabled: false
StyleGuide: http://relaxed.ruby.style/#styletrailingcommainliteral
Style/TrailingCommaInHashLiteral:
Enabled: false
StyleGuide: http://relaxed.ruby.style/#styletrailingcommainliteral
Style/WordArray:
Enabled: false
StyleGuide: http://relaxed.ruby.style/#stylewordarray
Style/SymbolArray:
Enabled: false
StyleGuide: https://rubocop.readthedocs.io/en/latest/cops_style/#stylesymbolarray
Lint/AmbiguousRegexpLiteral:
Enabled: false
StyleGuide: http://relaxed.ruby.style/#lintambiguousregexpliteral
Lint/AssignmentInCondition:
Enabled: false
StyleGuide: http://relaxed.ruby.style/#lintassignmentincondition
Metrics/AbcSize:
Enabled: false
Metrics/BlockNesting:
Enabled: false
Metrics/ClassLength:
Enabled: false
Metrics/ModuleLength:
Enabled: false
Metrics/CyclomaticComplexity:
Enabled: false
Metrics/LineLength:
Enabled: false
Metrics/MethodLength:
Enabled: false
Metrics/ParameterLists:
Enabled: false
Metrics/PerceivedComplexity:
Enabled: false
# A manually compiled todo list to ignore metrics violations on a file-by-file basis.
- .rubocop_manual_todo.yml

756
.rubocop_manual_todo.yml Normal file
View File

@@ -0,0 +1,756 @@
# A manually compiled todo list to ignore metrics violations on a file-by-file basis.
#
# The file .rubocop_todo.yml is generated automatically and contains a
# configuration to make all files pass. For a lot of cops it just lists
# the offending files. But for metrics cops it sets a different metric.
#
# Since we don't want these lax metrics, we override them in our config
# file .rubocop.yml which results in a lot of offences again. This file
# lists all offending files for each cop to make rubocop pass. We can
# improve the code over time and remove items from the list.
#
# This file was manually created by using the following tools:
#
# rubocop > rubo.log
# # inspect log file to see which cops are failing
# # copy cop configurations and add Exclude parameter
# grep ExampleCop rubo.log | cut -d ":" -f 1 | sort -u >> .rubocop.yml
# # use vim to add `- ` before each line
#
# This process probably doesn't need repeating. Otherwise there is plenty
# of room for improvements and automation.
Metrics/LineLength:
Max: 100
Exclude:
- app/controllers/admin/accounts_and_billing_settings_controller.rb
- app/controllers/admin/bulk_line_items_controller.rb
- app/controllers/admin/business_model_configuration_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/enterprises_controller.rb
- app/controllers/admin/inventory_items_controller.rb
- app/controllers/admin/manager_invitations_controller.rb
- app/controllers/admin/order_cycles_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/subscription_line_items_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/base_controller.rb
- app/controllers/cart_controller.rb
- app/controllers/checkout_controller.rb
- app/controllers/shop_controller.rb
- app/controllers/spree/admin/adjustments_controller_decorator.rb
- app/controllers/spree/admin/base_controller_decorator.rb
- app/controllers/spree/admin/line_items_controller_decorator.rb
- app/controllers/spree/admin/orders_controller_decorator.rb
- app/controllers/spree/admin/payment_methods_controller_decorator.rb
- app/controllers/spree/admin/products_controller_decorator.rb
- app/controllers/spree/admin/reports_controller_decorator.rb
- app/controllers/spree/admin/shipping_methods_controller_decorator.rb
- app/controllers/spree/api/products_controller_decorator.rb
- app/controllers/spree/credit_cards_controller.rb
- app/controllers/spree/orders_controller_decorator.rb
- app/controllers/spree/paypal_controller_decorator.rb
- app/controllers/stripe/callbacks_controller.rb
- app/controllers/user_confirmations_controller.rb
- app/helpers/admin/account_helper.rb
- app/helpers/admin/business_model_configuration_helper.rb
- app/helpers/admin/injection_helper.rb
- app/helpers/angular_form_builder.rb
- app/helpers/angular_form_helper.rb
- app/helpers/application_helper.rb
- app/helpers/checkout_helper.rb
- app/helpers/enterprises_helper.rb
- app/helpers/footer_links_helper.rb
- 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/admin/orders_helper_decorator.rb
- app/helpers/spree/orders_helper.rb
- app/jobs/finalize_account_invoices.rb
- app/jobs/products_cache_integrity_checker_job.rb
- app/jobs/subscription_confirm_job.rb
- app/jobs/subscription_placement_job.rb
- app/jobs/update_account_invoices.rb
- app/jobs/update_billable_periods.rb
- app/mailers/producer_mailer.rb
- app/mailers/spree/order_mailer_decorator.rb
- app/mailers/subscription_mailer.rb
- app/models/billable_period.rb
- app/models/column_preference.rb
- app/models/content_configuration.rb
- app/models/customer.rb
- app/models/enterprise_fee.rb
- app/models/enterprise.rb
- app/models/enterprise_relationship.rb
- app/models/enterprise_role.rb
- app/models/exchange.rb
- app/models/inventory_item.rb
- app/models/order_cycle.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
- app/models/schedule.rb
- app/models/spree/ability_decorator.rb
- app/models/spree/adjustment_decorator.rb
- app/models/spree/calculator/default_tax_decorator.rb
- app/models/spree/calculator/flexi_rate_decorator.rb
- app/models/spree/classification_decorator.rb
- app/models/spree/gateway/stripe_connect.rb
- app/models/spree/line_item_decorator.rb
- app/models/spree/order_decorator.rb
- app/models/spree/payment_decorator.rb
- app/models/spree/payment_method_decorator.rb
- app/models/spree/product_decorator.rb
- app/models/spree/shipment_decorator.rb
- app/models/spree/shipping_method_decorator.rb
- app/models/spree/taxon_decorator.rb
- app/models/spree/user_decorator.rb
- app/models/spree/variant_decorator.rb
- app/models/subscription.rb
- app/models/variant_override.rb
- app/models/variant_override_set.rb
- app/overrides/add_distributor_details_js_to_product.rb
- app/overrides/add_enterprise_fees_to_admin_configurations_menu.rb
- app/overrides/replace_checkout_payment_button.rb
- app/overrides/replace_payment_name_with_description.rb
- app/serializers/api/admin/basic_enterprise_serializer.rb
- app/serializers/api/admin/enterprise_fee_serializer.rb
- app/serializers/api/admin/enterprise_serializer.rb
- app/serializers/api/admin/exchange_serializer.rb
- app/serializers/api/admin/for_order_cycle/enterprise_serializer.rb
- app/serializers/api/admin/index_enterprise_serializer.rb
- app/serializers/api/admin/index_order_cycle_serializer.rb
- app/serializers/api/admin/line_item_serializer.rb
- app/serializers/api/admin/order_cycle_serializer.rb
- app/serializers/api/admin/product_serializer.rb
- app/serializers/api/admin/subscription_serializer.rb
- app/serializers/api/admin/tag_rule_serializer.rb
- app/serializers/api/admin/variant_override_serializer.rb
- app/serializers/api/admin/variant_serializer.rb
- app/services/cart_service.rb
- app/services/embedded_page_service.rb
- app/services/line_item_syncer.rb
- app/services/order_cycle_form.rb
- app/services/order_factory.rb
- app/services/order_syncer.rb
- app/services/subscriptions_count.rb
- app/views/json/_groups.rabl
- app/views/json/partials/_enterprise.rabl
- app/views/json/_producer.rabl
- app/views/spree/api/products/bulk_show.v1.rabl
- app/views/spree/api/variants/bulk_show.v1.rabl
- engines/web/app/helpers/web/cookies_policy_helper.rb
- Gemfile
- lib/discourse/single_sign_on.rb
- lib/open_food_network/accounts_and_billing_settings_validator.rb
- lib/open_food_network/available_payment_method_filter.rb
- lib/open_food_network/bill_calculator.rb
- lib/open_food_network/bulk_coop_report.rb
- lib/open_food_network/business_model_configuration_validator.rb
- lib/open_food_network/customers_report.rb
- lib/open_food_network/distribution_change_validator.rb
- lib/open_food_network/enterprise_fee_applicator.rb
- lib/open_food_network/enterprise_fee_calculator.rb
- 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/locking.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/order_cycle_permissions.rb
- lib/open_food_network/order_grouper.rb
- lib/open_food_network/orders_and_fulfillments_report.rb
- lib/open_food_network/payments_report.rb
- lib/open_food_network/permalink_generator.rb
- lib/open_food_network/permissions.rb
- lib/open_food_network/products_and_inventory_report_base.rb
- lib/open_food_network/products_cache.rb
- lib/open_food_network/proxy_order_syncer.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/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/core/calculated_adjustments_decorator.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/cache.rake
- lib/tasks/data.rake
- lib/tasks/dev.rake
- lib/tasks/enterprises.rake
- spec/archive/features/consumer/checkout_spec.rb
- spec/controllers/admin/accounts_and_billing_settings_controller_spec.rb
- spec/controllers/admin/bulk_line_items_controller_spec.rb
- spec/controllers/admin/column_preferences_controller_spec.rb
- spec/controllers/admin/customers_controller_spec.rb
- spec/controllers/admin/enterprises_controller_spec.rb
- spec/controllers/admin/inventory_items_controller_spec.rb
- spec/controllers/admin/manager_invitations_controller_spec.rb
- spec/controllers/admin/order_cycles_controller_spec.rb
- spec/controllers/admin/proxy_orders_controller_spec.rb
- spec/controllers/admin/schedules_controller_spec.rb
- spec/controllers/admin/stripe_accounts_controller_spec.rb
- spec/controllers/admin/stripe_connect_settings_controller_spec.rb
- spec/controllers/admin/subscription_line_items_controller_spec.rb
- spec/controllers/admin/subscriptions_controller_spec.rb
- spec/controllers/admin/variant_overrides_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/promo_images_controller_spec.rb
- spec/controllers/cart_controller_spec.rb
- spec/controllers/checkout_controller_spec.rb
- spec/controllers/enterprises_controller_spec.rb
- spec/controllers/line_items_controller_spec.rb
- spec/controllers/shop_controller_spec.rb
- 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/line_items_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/reports_controller_spec.rb
- spec/controllers/spree/api/products_controller_spec.rb
- spec/controllers/spree/api/variants_controller_spec.rb
- spec/controllers/spree/credit_cards_controller_spec.rb
- spec/controllers/spree/orders_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/controllers/user_registrations_controller_spec.rb
- spec/features/admin/accounts_and_billing_settings_spec.rb
- spec/features/admin/adjustments_spec.rb
- spec/features/admin/bulk_order_management_spec.rb
- spec/features/admin/bulk_product_update_spec.rb
- spec/features/admin/customers_spec.rb
- spec/features/admin/enterprise_fees_spec.rb
- spec/features/admin/enterprise_relationships_spec.rb
- spec/features/admin/enterprise_roles_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/overview_spec.rb
- spec/features/admin/payment_method_spec.rb
- spec/features/admin/product_import_spec.rb
- spec/features/admin/products_spec.rb
- spec/features/admin/reports_spec.rb
- spec/features/admin/schedules_spec.rb
- spec/features/admin/shipping_methods_spec.rb
- spec/features/admin/subscriptions_spec.rb
- spec/features/admin/tag_rules_spec.rb
- spec/features/admin/variant_overrides_spec.rb
- spec/features/consumer/account/cards_spec.rb
- 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/groups_spec.rb
- spec/features/consumer/multilingual_spec.rb
- spec/features/consumer/registration_spec.rb
- spec/features/consumer/shopping/cart_spec.rb
- spec/features/consumer/shopping/checkout_auth_spec.rb
- spec/features/consumer/shopping/checkout_spec.rb
- spec/features/consumer/shopping/embedded_groups_spec.rb
- spec/features/consumer/shopping/embedded_shopfronts_spec.rb
- spec/features/consumer/shopping/orders_spec.rb
- spec/features/consumer/shopping/products_spec.rb
- spec/features/consumer/shopping/shopping_spec.rb
- spec/features/consumer/shopping/variant_overrides_spec.rb
- spec/features/consumer/shops_spec.rb
- spec/helpers/admin/business_model_configuration_helper_spec.rb
- spec/helpers/admin/subscriptions_helper_spec.rb
- spec/helpers/checkout_helper_spec.rb
- spec/helpers/enterprises_helper_spec.rb
- spec/helpers/groups_helper_spec.rb
- spec/helpers/injection_helper_spec.rb
- spec/helpers/order_cycles_helper_spec.rb
- spec/helpers/spree/admin/base_helper_spec.rb
- spec/jobs/confirm_order_job_spec.rb
- spec/jobs/finalize_account_invoices_spec.rb
- spec/jobs/refresh_products_cache_job_spec.rb
- spec/jobs/subscription_confirm_job_spec.rb
- spec/jobs/subscription_placement_job_spec.rb
- spec/jobs/update_account_invoices_spec.rb
- spec/jobs/update_billable_periods_spec.rb
- spec/lib/open_food_network/address_finder_spec.rb
- spec/lib/open_food_network/bulk_coop_report_spec.rb
- spec/lib/open_food_network/cached_products_renderer_spec.rb
- spec/lib/open_food_network/customers_report_spec.rb
- spec/lib/open_food_network/distribution_change_validator_spec.rb
- spec/lib/open_food_network/enterprise_fee_applicator_spec.rb
- spec/lib/open_food_network/enterprise_fee_calculator_spec.rb
- spec/lib/open_food_network/enterprise_injection_data_spec.rb
- 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
- 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/products_cache_spec.rb
- spec/lib/open_food_network/products_renderer_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/users_and_enterprises_report_spec.rb
- spec/lib/open_food_network/xero_invoices_report_spec.rb
- spec/lib/stripe/account_connector_spec.rb
- spec/lib/stripe/webhook_handler_spec.rb
- spec/mailers/order_mailer_spec.rb
- spec/mailers/producer_mailer_spec.rb
- spec/mailers/subscription_mailer_spec.rb
- spec/models/billable_period_spec.rb
- spec/models/column_preference_spec.rb
- spec/models/customer_spec.rb
- spec/models/enterprise_caching_spec.rb
- spec/models/enterprise_fee_spec.rb
- spec/models/enterprise_group_spec.rb
- spec/models/enterprise_relationship_spec.rb
- spec/models/enterprise_spec.rb
- 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/proxy_order_spec.rb
- spec/models/spree/ability_spec.rb
- spec/models/spree/adjustment_spec.rb
- spec/models/spree/calculator/flexi_rate_spec.rb
- spec/models/spree/calculator/price_sack_spec.rb
- spec/models/spree/classification_spec.rb
- spec/models/spree/gateway/stripe_connect_spec.rb
- spec/models/spree/image_spec.rb
- spec/models/spree/line_item_spec.rb
- spec/models/spree/order_spec.rb
- spec/models/spree/payment_method_spec.rb
- spec/models/spree/payment_spec.rb
- spec/models/spree/product_spec.rb
- spec/models/spree/property_spec.rb
- spec/models/spree/shipping_method_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
- spec/models/tag_rule/discount_order_spec.rb
- spec/models/tag_rule/filter_order_cycles_spec.rb
- spec/models/tag_rule/filter_payment_methods_spec.rb
- spec/models/tag_rule/filter_products_spec.rb
- spec/models/tag_rule/filter_shipping_methods_spec.rb
- spec/models/variant_override_spec.rb
- spec/performance/orders_controller_spec.rb
- spec/performance/proxy_order_syncer_spec.rb
- spec/performance/shop_controller_spec.rb
- spec/requests/checkout/failed_checkout_spec.rb
- spec/requests/checkout/paypal_spec.rb
- spec/requests/checkout/stripe_connect_spec.rb
- spec/requests/embedded_shopfronts_headers_spec.rb
- spec/requests/shop_spec.rb
- spec/serializers/admin/customer_serializer_spec.rb
- spec/serializers/admin/exchange_serializer_spec.rb
- spec/serializers/admin/for_order_cycle/enterprise_serializer_spec.rb
- spec/serializers/admin/for_order_cycle/supplied_product_serializer_spec.rb
- spec/serializers/admin/subscription_customer_serializer_spec.rb
- spec/serializers/admin/variant_override_serializer_spec.rb
- spec/serializers/current_order_serializer.rb
- spec/serializers/enterprise_serializer_spec.rb
- spec/serializers/order_serializer_spec.rb
- spec/services/cart_service_spec.rb
- spec/services/embedded_page_service_spec.rb
- spec/services/order_cycle_form_spec.rb
- spec/services/order_factory_spec.rb
- spec/services/order_syncer_spec.rb
- spec/services/subscription_estimator_spec.rb
- spec/services/subscription_form_spec.rb
- spec/services/subscription_validator_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
Metrics/AbcSize:
Max: 15
Exclude:
- app/controllers/admin/bulk_line_items_controller.rb
- app/controllers/admin/customers_controller.rb
- app/controllers/admin/enterprise_fees_controller.rb
- 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
- app/controllers/api/enterprises_controller.rb
- app/controllers/api/order_cycles_controller.rb
- app/controllers/api/product_images_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/spree/admin/adjustments_controller_decorator.rb
- app/controllers/spree/admin/line_items_controller_decorator.rb
- app/controllers/spree/admin/orders_controller_decorator.rb
- app/controllers/spree/admin/overview_controller_decorator.rb
- app/controllers/spree/admin/payment_methods_controller_decorator.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/shipping_methods_controller_decorator.rb
- app/controllers/spree/api/products_controller_decorator.rb
- app/controllers/spree/credit_cards_controller.rb
- app/controllers/spree/orders_controller_decorator.rb
- app/controllers/spree/user_sessions_controller_decorator.rb
- app/controllers/stripe/callbacks_controller.rb
- app/controllers/user_confirmations_controller.rb
- app/controllers/user_passwords_controller.rb
- app/controllers/user_registrations_controller.rb
- app/helpers/admin/business_model_configuration_helper.rb
- app/helpers/checkout_helper.rb
- app/helpers/i18n_helper.rb
- app/helpers/order_cycles_helper.rb
- app/helpers/spree/admin/orders_helper_decorator.rb
- app/helpers/spree/orders_helper.rb
- app/jobs/finalize_account_invoices.rb
- app/jobs/subscription_placement_job.rb
- app/jobs/update_account_invoices.rb
- app/jobs/update_billable_periods.rb
- app/mailers/producer_mailer.rb
- app/models/billable_period.rb
- app/models/calculator/flat_percent_per_item.rb
- app/models/column_preference.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/proxy_order.rb
- app/models/spree/ability_decorator.rb
- app/models/spree/adjustment_decorator.rb
- app/models/spree/calculator/default_tax_decorator.rb
- app/models/spree/calculator/flexi_rate_decorator.rb
- app/models/spree/line_item_decorator.rb
- app/models/spree/order_decorator.rb
- app/models/spree/payment_decorator.rb
- app/models/spree/product_decorator.rb
- app/models/spree/product_set.rb
- app/models/spree/taxon_decorator.rb
- app/serializers/api/admin/enterprise_serializer.rb
- app/serializers/api/enterprise_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_syncer.rb
- app/services/subscription_validator.rb
- lib/discourse/single_sign_on.rb
- lib/open_food_network/bill_calculator.rb
- lib/open_food_network/bulk_coop_report.rb
- lib/open_food_network/customers_report.rb
- 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/option_value_namer.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/order_cycle_permissions.rb
- lib/open_food_network/orders_and_fulfillments_report.rb
- lib/open_food_network/packing_report.rb
- 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/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/core/controller_helpers/respond_with_decorator.rb
- lib/spree/localized_number.rb
- lib/stripe/account_connector.rb
- lib/tasks/enterprises.rake
- spec/archive/features/consumer/checkout_spec.rb
- spec/controllers/spree/admin/orders_controller_spec.rb
- spec/features/admin/reports_spec.rb
- spec/features/consumer/shopping/checkout_spec.rb
- spec/features/consumer/shopping/variant_overrides_spec.rb
- spec/models/enterprise_spec.rb
- spec/models/product_importer_spec.rb
- spec/support/performance_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/orders_controller_decorator.rb
- app/controllers/spree/orders_controller_decorator.rb
- app/helpers/admin/business_model_configuration_helper.rb
- app/helpers/checkout_helper.rb
- app/helpers/i18n_helper.rb
- app/helpers/order_cycles_helper.rb
- app/helpers/spree/admin/orders_helper_decorator.rb
- app/jobs/update_account_invoices.rb
- app/jobs/update_billable_periods.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/adjustment_decorator.rb
- app/models/spree/payment_decorator.rb
- app/models/spree/product_decorator.rb
- app/models/spree/product_set.rb
- app/models/variant_override_set.rb
- app/services/cart_service.rb
- lib/discourse/single_sign_on.rb
- lib/open_food_network/bill_calculator.rb
- lib/open_food_network/bulk_coop_report.rb
- lib/open_food_network/enterprise_issue_validator.rb
- lib/open_food_network/orders_and_fulfillments_report.rb
- lib/spree/core/controller_helpers/order_decorator.rb
- lib/spree/core/controller_helpers/respond_with_decorator.rb
- lib/spree/localized_number.rb
- spec/models/product_importer_spec.rb
Metrics/PerceivedComplexity:
Max: 7
Exclude:
- app/controllers/admin/enterprises_controller.rb
- app/controllers/checkout_controller.rb
- app/controllers/spree/admin/orders_controller_decorator.rb
- app/controllers/spree/orders_controller_decorator.rb
- app/helpers/admin/business_model_configuration_helper.rb
- app/helpers/checkout_helper.rb
- app/helpers/i18n_helper.rb
- app/helpers/order_cycles_helper.rb
- app/helpers/spree/admin/orders_helper_decorator.rb
- app/jobs/update_account_invoices.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/line_item_decorator.rb
- app/models/spree/order_decorator.rb
- app/models/spree/product_decorator.rb
- app/models/spree/product_set.rb
- lib/discourse/single_sign_on.rb
- lib/open_food_network/bulk_coop_report.rb
- lib/open_food_network/enterprise_issue_validator.rb
- lib/open_food_network/orders_and_fulfillments_report.rb
- lib/spree/core/controller_helpers/order_decorator.rb
- lib/spree/core/controller_helpers/respond_with_decorator.rb
- lib/spree/localized_number.rb
- spec/models/product_importer_spec.rb
Metrics/MethodLength:
Max: 10
Exclude:
- app/controllers/admin/customers_controller.rb
- app/controllers/admin/enterprise_fees_controller.rb
- app/controllers/admin/enterprises_controller.rb
- app/controllers/admin/manager_invitations_controller.rb
- app/controllers/admin/order_cycles_controller.rb
- app/controllers/admin/stripe_accounts_controller.rb
- app/controllers/admin/subscriptions_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/line_items_controller_decorator.rb
- app/controllers/spree/admin/orders_controller_decorator.rb
- app/controllers/spree/admin/payment_methods_controller_decorator.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/shipping_methods_controller_decorator.rb
- app/controllers/spree/credit_cards_controller.rb
- app/controllers/spree/orders_controller_decorator.rb
- app/controllers/spree/user_sessions_controller_decorator.rb
- app/controllers/stripe/callbacks_controller.rb
- app/controllers/user_confirmations_controller.rb
- app/controllers/user_passwords_controller.rb
- app/controllers/user_registrations_controller.rb
- app/helpers/checkout_helper.rb
- app/helpers/order_cycles_helper.rb
- app/helpers/spree/admin/orders_helper_decorator.rb
- app/jobs/finalize_account_invoices.rb
- app/jobs/subscription_placement_job.rb
- app/jobs/update_account_invoices.rb
- app/jobs/update_billable_periods.rb
- app/mailers/producer_mailer.rb
- app/models/billable_period.rb
- app/models/column_preference.rb
- app/models/enterprise.rb
- app/models/enterprise_relationship.rb
- app/models/preference_sections/footer_and_external_links_section.rb
- app/models/preference_sections/main_links_section.rb
- app/models/product_import/entry_processor.rb
- app/models/product_import/entry_validator.rb
- app/models/product_import/product_importer.rb
- app/models/spree/ability_decorator.rb
- app/models/spree/adjustment_decorator.rb
- app/models/spree/calculator/default_tax_decorator.rb
- app/models/spree/calculator/flexi_rate_decorator.rb
- app/models/spree/line_item_decorator.rb
- app/models/spree/order_decorator.rb
- app/models/spree/payment_decorator.rb
- app/models/spree/payment_method_decorator.rb
- app/models/spree/product_set.rb
- app/models/spree/taxon_decorator.rb
- app/serializers/api/admin/order_cycle_serializer.rb
- app/services/cart_service.rb
- app/services/order_cycle_form.rb
- lib/discourse/single_sign_on.rb
- lib/open_food_network/bulk_coop_report.rb
- lib/open_food_network/cached_products_renderer.rb
- lib/open_food_network/column_preference_defaults.rb
- lib/open_food_network/customers_report.rb
- lib/open_food_network/enterprise_fee_calculator.rb
- lib/open_food_network/group_buy_report.rb
- lib/open_food_network/lettuce_share_report.rb
- lib/open_food_network/option_value_namer.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/order_cycle_permissions.rb
- lib/open_food_network/order_grouper.rb
- lib/open_food_network/orders_and_fulfillments_report.rb
- lib/open_food_network/packing_report.rb
- 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/products_renderer.rb
- lib/open_food_network/rack_request_blocker.rb
- lib/open_food_network/reports/bulk_coop_allocation_report.rb
- lib/open_food_network/reports/bulk_coop_supplier_report.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/xero_invoices_report.rb
- lib/spree/core/controller_helpers/respond_with_decorator.rb
- lib/spree/localized_number.rb
- lib/stripe/profile_storer.rb
- spec/archive/features/consumer/checkout_spec.rb
- spec/features/consumer/shopping/checkout_spec.rb
- spec/features/consumer/shopping/variant_overrides_spec.rb
- spec/models/product_importer_spec.rb
- spec/support/request/authentication_workflow.rb
Metrics/ClassLength:
Max: 100
Exclude:
- app/controllers/admin/enterprises_controller.rb
- app/controllers/admin/order_cycles_controller.rb
- app/controllers/admin/subscriptions_controller.rb
- app/controllers/checkout_controller.rb
- app/models/enterprise.rb
- app/models/order_cycle.rb
- app/models/product_import/entry_processor.rb
- app/models/product_import/entry_validator.rb
- app/models/product_import/product_importer.rb
- app/models/spree/ability_decorator.rb
- app/serializers/api/enterprise_serializer.rb
- app/services/cart_service.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
- lib/open_food_network/order_cycle_management_report.rb
- lib/open_food_network/order_cycle_permissions.rb
- lib/open_food_network/orders_and_fulfillments_report.rb
- lib/open_food_network/packing_report.rb
- lib/open_food_network/payments_report.rb
- lib/open_food_network/permissions.rb
- lib/open_food_network/products_cache.rb
- lib/open_food_network/xero_invoices_report.rb
Metrics/ModuleLength:
Max: 100
Exclude:
- lib/open_food_network/column_preference_defaults.rb
- spec/controllers/admin/enterprises_controller_spec.rb
- spec/controllers/admin/order_cycles_controller_spec.rb
- spec/controllers/api/order_cycles_controller_spec.rb
- spec/controllers/api/orders_controller_spec.rb
- spec/controllers/spree/api/products_controller_spec.rb
- spec/lib/open_food_network/address_finder_spec.rb
- spec/lib/open_food_network/customers_report_spec.rb
- spec/lib/open_food_network/enterprise_fee_calculator_spec.rb
- spec/lib/open_food_network/option_value_namer_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
- spec/lib/open_food_network/permissions_spec.rb
- spec/lib/open_food_network/products_and_inventory_report_spec.rb
- spec/lib/open_food_network/products_cache_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/users_and_enterprises_report_spec.rb
- spec/models/spree/ability_spec.rb
- spec/models/spree/adjustment_spec.rb
- spec/models/spree/line_item_spec.rb
- spec/models/spree/payment_spec.rb
- spec/models/spree/product_spec.rb
- spec/models/spree/variant_spec.rb
- spec/support/request/web_helper.rb
Metrics/ParameterLists:
Max: 5
Exclude:
- app/helpers/angular_form_builder.rb
- app/models/product_import/entry_processor.rb
- app/models/product_import/entry_validator.rb
- lib/open_food_network/xero_invoices_report.rb
- spec/features/admin/reports_spec.rb
Metrics/BlockNesting:
Max: 3
Exclude:
- app/controllers/checkout_controller.rb

215
.rubocop_styleguide.yml Normal file
View File

@@ -0,0 +1,215 @@
# Our Open Food Network style guide.
#
# These are the rules we agreed upon and we work towards. Code Climate uses
# these rules to rate our code and detect new violations. But when you run
# rubocop locally, the default configuration file `.rubocop.yml` loads
# our "todo lists" to ignore all current violations.
AllCops:
TargetRubyVersion: 2.1
TargetRailsVersion: 3.2
Exclude:
- 'db/**/*'
- 'config/**/*'
- 'script/**/*'
- 'vendor/**/*'
- 'node_modules/**/*'
# The parser gem fails to parse this file with out current Ruby version.
- 'spec/factories.rb'
# Excluding: inadequate Naming/FileName rule rejects GemFile name with camelcase
- 'engines/web/Gemfile'
## OFN SETTINGS
#
# Cop settings that have been agreed upon by the OFN community
Rails:
Enabled: true
Style/Documentation:
Enabled: false
Style/StringLiterals:
Enabled: false
Style/HashSyntax:
Enabled: true
EnforcedStyle: ruby19_no_mixed_keys
Style/Send:
Enabled: true
Layout/MultilineMethodCallIndentation:
Enabled: true
EnforcedStyle: indented
Metrics/LineLength:
Max: 100
## TEMPORARY/CONTESTED SETTINGS
#
# These are still to be decided upon, but recommended for inclusion by
# oeoeaio after scrutinising offenses the codebase
# Don't think this is a big issue, mostly picking up RPSEC scope definitions
# with lamdas and RSpec '.to change{}' blocks
Lint/AmbiguousBlockAssociation:
Enabled: false
# Heaps of offences (> 100) in specs, mostly in situations where two or more
# instances of a model are required, but only one is referenced. Difficult to
# fix without making the spec look messy or rewriting it.
# Should definitely fix at some point.
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
# They should be removed or tweaked and moved above as decisions are made
# NOTE: Cops which did not fail at the time of writing were removed
Layout/DotPosition:
Enabled: false
StyleGuide: http://relaxed.ruby.style/#styledotposition
Layout/SpaceBeforeBlockBraces:
Enabled: false
StyleGuide: http://relaxed.ruby.style/#stylespacebeforeblockbraces
Layout/SpaceInsideParens:
Enabled: false
StyleGuide: http://relaxed.ruby.style/#stylespaceinsideparens
Style/Alias:
Enabled: false
StyleGuide: http://relaxed.ruby.style/#stylealias
Style/BlockDelimiters:
Enabled: false
StyleGuide: http://relaxed.ruby.style/#styleblockdelimiters
Style/CommentAnnotation:
Enabled: false
StyleGuide: http://relaxed.ruby.style/#stylecommentannotation
Style/DoubleNegation:
Enabled: false
StyleGuide: http://relaxed.ruby.style/#styledoublenegation
Style/FormatString:
Enabled: false
StyleGuide: http://relaxed.ruby.style/#styleformatstring
Style/IfUnlessModifier:
Enabled: false
StyleGuide: http://relaxed.ruby.style/#styleifunlessmodifier
Style/Lambda:
Enabled: false
StyleGuide: http://relaxed.ruby.style/#stylelambda
Style/MultilineBlockChain:
Enabled: false
StyleGuide: http://relaxed.ruby.style/#stylemultilineblockchain
Style/NegatedIf:
Enabled: false
StyleGuide: http://relaxed.ruby.style/#stylenegatedif
Style/NegatedWhile:
Enabled: false
StyleGuide: http://relaxed.ruby.style/#stylenegatedwhile
Style/ParallelAssignment:
Enabled: false
StyleGuide: http://relaxed.ruby.style/#styleparallelassignment
Style/PercentLiteralDelimiters:
Enabled: false
StyleGuide: http://relaxed.ruby.style/#stylepercentliteraldelimiters
Style/Semicolon:
Enabled: false
StyleGuide: http://relaxed.ruby.style/#stylesemicolon
Style/SingleLineMethods:
Enabled: false
StyleGuide: http://relaxed.ruby.style/#stylesinglelinemethods
Style/TrailingCommaInArguments:
Enabled: false
StyleGuide: http://relaxed.ruby.style/#styletrailingcommainarguments
Style/TrailingCommaInArrayLiteral:
Enabled: false
StyleGuide: http://relaxed.ruby.style/#styletrailingcommainliteral
Style/TrailingCommaInHashLiteral:
Enabled: false
StyleGuide: http://relaxed.ruby.style/#styletrailingcommainliteral
Style/WordArray:
Enabled: false
StyleGuide: http://relaxed.ruby.style/#stylewordarray
Style/SymbolArray:
Enabled: false
StyleGuide: https://rubocop.readthedocs.io/en/latest/cops_style/#stylesymbolarray
Lint/AmbiguousRegexpLiteral:
Enabled: false
StyleGuide: http://relaxed.ruby.style/#lintambiguousregexpliteral
Lint/AssignmentInCondition:
Enabled: false
StyleGuide: http://relaxed.ruby.style/#lintassignmentincondition
Metrics/AbcSize:
Max: 15
Metrics/BlockLength:
ExcludedMethods: ["collection", "context", "describe", "it", "member", "namespace", "resource", "resources"]
Metrics/BlockNesting:
Max: 3
Metrics/ClassLength:
Max: 100
Exclude:
- engines/order_management/app/services/order_management/reports/enterprise_fee_summary/scope.rb
Metrics/ModuleLength:
Max: 100
Metrics/CyclomaticComplexity:
Max: 6
Metrics/MethodLength:
Max: 10
Exclude:
- engines/order_management/app/services/order_management/reports/enterprise_fee_summary/scope.rb
Metrics/ParameterLists:
Max: 5
Metrics/PerceivedComplexity:
Max: 7

File diff suppressed because it is too large Load Diff

View File

@@ -9,9 +9,6 @@ addons:
# Set the timezone for phantomjs with TZ
# Set the timezone for karma with TIMEZONE
#
# The test cases are roughly split according to their test times.
# It would be better to use https://github.com/ArturT/knapsack.
env:
global:
- TZ="Australia/Melbourne"
@@ -21,7 +18,7 @@ env:
- CI_NODE_INDEX=0
- CI_NODE_INDEX=1
- CI_NODE_INDEX=2
- CI_NODE_INDEX=3
- CI_NODE_INDEX=3 RSPEC_ENGINES="true"
- CI_NODE_INDEX=4 KARMA="true" GITHUB_DEPLOY="true"
before_script:
@@ -42,6 +39,7 @@ before_script:
script:
- 'if [ "$KARMA" = "true" ]; then bundle exec rake karma:run; else echo "Skipping karma run"; fi'
- 'if [ "$RSPEC_ENGINES" = "true" ]; then bundle exec rake ofn:specs:engines:rspec; else echo "Skipping RSpec run in engines"; fi'
- "bundle exec rake 'knapsack:rspec[--format progress --tag ~performance]'"
after_success:

View File

@@ -46,7 +46,7 @@ First, you need to create the database user the app will use by manually typing
$ sudo -u postgres psql -c "CREATE USER ofn WITH SUPERUSER CREATEDB PASSWORD 'f00d'"
```
This will create the "ofn" user as superuser and allowing it to create databases.
This will create the "ofn" user as superuser and allowing it to create databases. If this command fails, check the [troubleshooting section](#creating-the-database) for an alternative.
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.
@@ -69,10 +69,18 @@ Tests, both unit and integration, are based on RSpec. To run the test suite, fir
bundle exec rake db:test:prepare
Then the tests can be run with:
Then the main application tests can be run with:
bundle exec rspec spec
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: The time zone on your machine should match the one defined in `config/application.yml`.
The project is configured to use [Zeus][zeus] to reduce the pre-test startup time while Rails loads. See the [Zeus GitHub page][zeus] for usage instructions.
Once [npm dependencies are installed][karma], AngularJS tests can be run with:
@@ -93,12 +101,28 @@ You can run rubocop against your changes using:
rubocop
### Troubleshooting
Below are fixes to potential issues that can happen during the installation process. If these don't solve the problem, or it's not listed, feel free to reach out to the [Developer Community][slack-dev] on slack. We usually respond pretty quickly.
#### Creating the database
If the ```$ sudo -u postgres psql -c "CREATE USER ofn WITH SUPERUSER CREATEDB PASSWORD 'f00d'"``` command doesn't work, you can run the following commands instead:
```
$ createuser --superuser --pwprompt ofn
Enter password for new role: f00d
Enter it again: f00d
$ createdb open_food_network_dev --owner=ofn
$ 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:-macOS-(Sierra)
[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)
[ubuntu]: https://github.com/openfoodfoundation/openfoodnetwork/wiki/Development-Environment-Setup:-Ubuntu
[wiki]: https://github.com/openfoodfoundation/openfoodnetwork/wiki
[zeus]: https://github.com/burke/zeus
[rubocop]: https://rubocop.readthedocs.io/en/latest/
[karma]: https://github.com/openfoodfoundation/openfoodnetwork/wiki/Karma
[slack-dev]: https://openfoodnetwork.slack.com/messages/C2GQ45KNU

35
Gemfile
View File

@@ -5,13 +5,16 @@ git_source(:github) { |repo_name| "https://github.com/#{repo_name}.git" }
gem 'rails', '~> 3.2.22'
gem 'rails-i18n', '~> 3.0.0'
gem 'i18n', '~> 0.6.11'
gem 'i18n-js', '~> 3.0.0'
gem 'i18n-js', '~> 3.2.1'
# Patched version. See http://rubysec.com/advisories/CVE-2015-5312/.
gem 'nokogiri', '>= 1.6.7.1'
gem "order_management", path: "./engines/order_management"
gem 'web', path: './engines/web'
gem 'pg'
gem 'spree', github: 'openfoodfoundation/spree', branch: 'step-6a', ref: '69db1c090f3711088d84b524f1b94d25e6d21616'
gem 'spree', github: 'openfoodfoundation/spree', branch: 'step-6a', ref: '41906362d931695e0616194341a68d2c4c85aaaf'
gem 'spree_i18n', github: 'spree/spree_i18n', branch: '1-3-stable'
gem 'spree_auth_devise', github: 'openfoodfoundation/spree_auth_devise', branch: 'spree-upgrade-intermediate'
@@ -20,16 +23,17 @@ gem 'spree_auth_devise', github: 'openfoodfoundation/spree_auth_devise', branch:
# - 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: "spree-upgrade-intermediate"
#gem 'spree_paypal_express', github: "spree-contrib/better_spree_paypal_express", branch: "1-3-stable"
gem 'stripe', '~> 3.3.2'
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 'oauth2', '~> 1.2.0' # Used for Stripe Connect
gem 'jwt', '~> 1.5'
gem 'oauth2', '~> 1.4.1' # Used for Stripe Connect
gem 'jwt', '~> 2.1'
gem 'delayed_job_active_record'
gem 'daemons'
gem 'delayed_job_web'
# Fix bug in simple_form preventing collection_check_boxes usage within form_for block
# When merged, revert to upstream gem
@@ -46,7 +50,6 @@ gem 'aws-sdk'
gem 'db2fog'
gem 'andand'
gem 'truncate_html'
gem 'representative_view'
gem 'rabl'
# AMS is pinned to 0.8.4 because 0.9.x is a complete re-write, as is 0.10.x
@@ -62,15 +65,16 @@ gem 'spinjs-rails'
gem 'rack-ssl', require: 'rack/ssl'
gem 'rack-rewrite'
gem 'custom_error_message', github: 'jeremydurham/custom-err-msg'
gem 'angularjs-file-upload-rails', '~> 1.1.6'
gem 'roadie-rails', '~> 1.0.3'
gem 'angularjs-file-upload-rails', '~> 2.4.1'
gem 'roadie-rails', '~> 1.1.1'
gem 'figaro'
gem 'blockenspiel'
gem 'acts-as-taggable-on', '~> 3.4'
gem 'paper_trail', '~> 3.0.8'
gem 'paper_trail', '~> 5.2.3'
gem 'diffy'
gem 'skylight', '< 2.0'
gem 'combine_pdf'
gem 'wicked_pdf'
gem 'wkhtmltopdf-binary'
@@ -87,8 +91,7 @@ group :assets do
gem 'compass-rails'
gem 'coffee-rails', '~> 3.2.1'
# See https://github.com/sstephenson/execjs#readme for more supported runtimes
gem 'therubyracer'
gem 'therubyracer', '=0.12.0'
gem 'uglifier', '>= 1.0.3'
@@ -103,7 +106,6 @@ gem 'foundation_rails_helper', github: 'willrjmarshall/foundation_rails_helper',
gem 'jquery-rails'
gem 'jquery-migrate-rails'
gem 'css_splitter'
gem 'ofn-qz', github: 'openfoodfoundation/ofn-qz', ref: '60da2ae4c44cbb4c8d602f59fb5fff8d0f21db3c'
@@ -118,7 +120,8 @@ group :test, :development do
gem 'awesome_print'
gem 'letter_opener', '>= 1.4.1'
gem 'timecop'
gem 'poltergeist', '>= 1.16.0'
gem 'selenium-webdriver'
gem 'chromedriver-helper'
gem 'rspec-retry'
gem 'json_spec', '~> 1.1.4'
gem 'unicorn-rails'
@@ -128,6 +131,7 @@ end
group :test do
gem 'webmock'
gem 'simplecov', require: false
# See spec/spec_helper.rb for instructions
#gem 'perftools.rb'
end
@@ -141,11 +145,14 @@ group :development do
gem 'guard-livereload'
gem 'guard-rails'
gem 'guard-rspec', '~> 4.7.3'
gem 'parallel_tests'
gem 'rubocop', '>= 0.49.1'
gem 'spring', '1.7.2'
gem 'spring-commands-rspec'
# 1.0.9 fixed openssl issues on macOS https://github.com/eventmachine/eventmachine/issues/602
# While we don't require this gem directly, no dependents forced the upgrade to a version
# greater than 1.0.9, so we just required the latest available version here.
gem 'eventmachine', '>= 1.2.3'
gem 'rack-mini-profiler', '< 1.0.0'
end

View File

@@ -31,8 +31,8 @@ GIT
GIT
remote: https://github.com/openfoodfoundation/spree.git
revision: 69db1c090f3711088d84b524f1b94d25e6d21616
ref: 69db1c090f3711088d84b524f1b94d25e6d21616
revision: 41906362d931695e0616194341a68d2c4c85aaaf
ref: 41906362d931695e0616194341a68d2c4c85aaaf
branch: step-6a
specs:
spree (1.3.99)
@@ -133,10 +133,20 @@ GIT
activemodel (>= 3.0)
railties (>= 3.0)
PATH
remote: engines/order_management
specs:
order_management (0.0.1)
PATH
remote: engines/web
specs:
web (0.0.1)
GEM
remote: https://rubygems.org/
specs:
CFPropertyList (2.3.2)
CFPropertyList (2.3.6)
actionmailer (3.2.22.5)
actionpack (= 3.2.22.5)
mail (~> 2.5.4)
@@ -181,14 +191,16 @@ GEM
railties (>= 3.1)
sprockets (~> 2.0)
tilt
angularjs-file-upload-rails (1.1.6)
angularjs-file-upload-rails (2.4.1)
angularjs-rails (1.5.5)
archive-zip (0.7.0)
io-like (~> 0.3.0)
arel (3.0.3)
ast (2.4.0)
atomic (1.1.101)
awesome_nested_set (2.1.5)
activerecord (>= 3.0.0)
awesome_print (1.0.2)
awesome_print (1.8.0)
aws-sdk (1.11.1)
json (~> 1.4)
nokogiri (>= 1.4.4)
@@ -196,8 +208,9 @@ GEM
bcrypt (3.1.11)
bcrypt-ruby (3.1.5)
bcrypt (>= 3.1.3)
blockenspiel (0.4.5)
bugsnag (4.1.0)
blockenspiel (0.5.0)
bugsnag (6.11.1)
concurrent-ruby (~> 1.0)
builder (3.0.4)
byebug (9.0.6)
cancan (1.6.8)
@@ -208,10 +221,14 @@ 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)
chromedriver-helper (1.1.0)
archive-zip (~> 0.7.0)
nokogiri (~> 1.6)
chronic (0.10.2)
chunky_png (1.3.10)
climate_control (0.1.0)
cliver (0.3.2)
climate_control (0.2.0)
cocaine (0.5.8)
climate_control (>= 0.0.3, < 1.0)
coderay (1.1.2)
@@ -223,6 +240,8 @@ GEM
execjs
coffee-script-source (1.10.0)
colorize (0.8.1)
combine_pdf (1.0.16)
ruby-rc4 (>= 0.1.5)
compass (1.0.3)
chunky_png (~> 1.2)
compass-core (~> 1.0.2)
@@ -239,25 +258,30 @@ GEM
compass (~> 1.0.0)
sass-rails (< 5.1)
sprockets (< 4.0)
concurrent-ruby (1.1.4)
connection_pool (2.2.2)
crack (0.4.3)
safe_yaml (~> 1.0.0)
css_parser (1.3.5)
css_parser (1.6.0)
addressable
css_splitter (0.4.5)
sprockets (>= 2.0.0)
daemons (1.2.6)
dalli (2.7.2)
daemons (1.3.1)
dalli (2.7.10)
database_cleaner (0.7.1)
db2fog (0.8.0)
activerecord (~> 3.0)
db2fog (0.9.0)
activerecord (>= 3.2.0, < 5.0)
fog (~> 1.0)
rails (~> 3.0)
rails (>= 3.2.0, < 5.0)
debugger-linecache (1.2.0)
delayed_job (4.1.4)
activesupport (>= 3.0, < 5.2)
delayed_job_active_record (4.1.2)
activerecord (>= 3.0, < 5.2)
delayed_job (4.1.5)
activesupport (>= 3.0, < 5.3)
delayed_job_active_record (4.1.3)
activerecord (>= 3.0, < 5.3)
delayed_job (>= 3.0, < 5)
delayed_job_web (1.4.3)
activerecord (> 3.0.0)
delayed_job (> 2.0.3)
rack-protection (>= 1.5.5)
sinatra (>= 1.4.4)
devise (2.2.8)
bcrypt-ruby (~> 3.0)
orm_adapter (~> 0.1)
@@ -266,41 +290,49 @@ GEM
devise-encryptable (0.1.2)
devise (>= 2.1.0)
diff-lcs (1.3)
diffy (3.1.0)
diffy (3.3.0)
docile (1.3.1)
dry-inflector (0.1.2)
em-websocket (0.5.1)
eventmachine (>= 0.12.9)
http_parser.rb (~> 0.6.0)
erubis (2.7.0)
eventmachine (1.2.7)
excon (0.45.4)
execjs (2.6.0)
excon (0.62.0)
execjs (2.7.0)
factory_bot (4.8.2)
activesupport (>= 3.0.0)
factory_bot_rails (4.8.2)
factory_bot (~> 4.8.2)
railties (>= 3.0.0)
faraday (0.9.2)
faraday (0.15.4)
multipart-post (>= 1.2, < 3)
ffaker (1.15.0)
ffi (1.9.25)
figaro (0.7.0)
bundler (~> 1.0)
rails (>= 3, < 5)
ffi (1.10.0)
figaro (1.1.1)
thor (~> 0.14)
fission (0.5.0)
CFPropertyList (~> 2.2)
fog (1.36.0)
fog (1.41.0)
fog-aliyun (>= 0.1.0)
fog-atmos
fog-aws (>= 0.6.0)
fog-brightbox (~> 0.4)
fog-core (~> 1.32)
fog-cloudatcost (~> 0.1.0)
fog-core (~> 1.45)
fog-digitalocean (>= 0.3.0)
fog-dnsimple (~> 1.0)
fog-dynect (~> 0.0.2)
fog-ecloud (~> 0.1)
fog-google (<= 0.1.0)
fog-internet-archive
fog-joyent
fog-json
fog-local
fog-openstack
fog-powerdns (>= 0.1.1)
fog-profitbricks
fog-rackspace
fog-radosgw (>= 0.0.2)
fog-riakcs
fog-sakuracloud (>= 0.0.4)
@@ -310,32 +342,47 @@ GEM
fog-terremark
fog-vmfusion
fog-voxel
fog-vsphere (>= 0.4.0)
fog-xenserver
fog-xml (~> 0.1.1)
ipaddress (~> 0.5)
nokogiri (~> 1.5, >= 1.5.11)
fog-aliyun (0.1.0)
fog-core (~> 1.27)
fog-json (~> 1.0)
json (>= 1.8, < 2.0)
fog-aliyun (0.3.2)
fog-core
fog-json
ipaddress (~> 0.8)
xml-simple (~> 1.1)
fog-atmos (0.1.0)
fog-core
fog-xml
fog-aws (0.7.6)
fog-core (~> 1.27)
fog-aws (2.0.1)
fog-core (~> 1.38)
fog-json (~> 1.0)
fog-xml (~> 0.1)
ipaddress (~> 0.8)
fog-brightbox (0.9.0)
fog-core (~> 1.22)
fog-brightbox (0.16.1)
dry-inflector
fog-core
fog-json
inflecto (~> 0.0.2)
fog-core (1.35.0)
mime-types
fog-cloudatcost (0.1.2)
fog-core (~> 1.36)
fog-json (~> 1.0)
fog-xml (~> 0.1)
ipaddress (~> 0.8)
fog-core (1.45.0)
builder
excon (~> 0.45)
excon (~> 0.58)
formatador (~> 0.2)
fog-dynect (0.0.2)
fog-digitalocean (0.4.0)
fog-core
fog-json
fog-xml
ipaddress (>= 0.5)
fog-dnsimple (1.0.0)
fog-core (~> 1.38)
fog-json (~> 1.0)
fog-dynect (0.0.3)
fog-core
fog-json
fog-xml
@@ -346,20 +393,35 @@ GEM
fog-core
fog-json
fog-xml
fog-json (1.0.2)
fog-core (~> 1.0)
multi_json (~> 1.10)
fog-local (0.2.1)
fog-core (~> 1.27)
fog-powerdns (0.1.1)
fog-core (~> 1.27)
fog-json (~> 1.0)
fog-xml (~> 0.1)
fog-profitbricks (0.0.5)
fog-internet-archive (0.0.1)
fog-core
fog-json
fog-xml
nokogiri
fog-radosgw (0.0.4)
fog-joyent (0.0.1)
fog-core (~> 1.42)
fog-json (>= 1.0)
fog-json (1.2.0)
fog-core
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-json (>= 1.0)
ipaddress (>= 0.8)
fog-powerdns (0.2.0)
fog-core
fog-json
fog-xml
fog-profitbricks (4.1.1)
fog-core (~> 1.42)
fog-json (~> 1.0)
fog-rackspace (0.1.6)
fog-core (>= 1.35)
fog-json (>= 1.0)
fog-xml (>= 0.1)
ipaddress (>= 0.8)
fog-radosgw (0.0.5)
fog-core (>= 1.21.0)
fog-json
fog-xml (>= 0.0.1)
@@ -367,13 +429,13 @@ GEM
fog-core
fog-json
fog-xml
fog-sakuracloud (1.4.0)
fog-sakuracloud (1.7.5)
fog-core
fog-json
fog-serverlove (0.1.2)
fog-core
fog-json
fog-softlayer (1.0.2)
fog-softlayer (1.1.4)
fog-core
fog-json
fog-storm_on_demand (0.1.1)
@@ -388,30 +450,33 @@ GEM
fog-voxel (0.1.0)
fog-core
fog-xml
fog-xenserver (0.2.2)
fog-vsphere (2.3.0)
fog-core
rbvmomi (~> 1.9)
fog-xenserver (0.3.0)
fog-core
fog-xml
fog-xml (0.1.2)
fog-xml (0.1.3)
fog-core
nokogiri (~> 1.5, >= 1.5.11)
nokogiri (>= 1.5.11, < 2.0.0)
foreigner (1.7.4)
activerecord (>= 3.0.0)
formatador (0.2.5)
foundation-icons-sass-rails (3.0.0)
railties (>= 3.1.1)
sass-rails (>= 3.1.1)
foundation-rails (5.5.0.0)
foundation-rails (5.5.2.1)
railties (>= 3.1.0)
sass (>= 3.2.0, < 3.4)
sass (>= 3.3.0, < 3.5)
fuubar (2.3.2)
rspec-core (~> 3.0)
ruby-progressbar (~> 1.4)
geocoder (1.1.8)
gmaps4rails (1.5.6)
guard (2.14.1)
guard (2.15.0)
formatador (>= 0.2.4)
listen (>= 2.7, < 4.0)
lumberjack (~> 1.0)
lumberjack (>= 1.0.12, < 2.0)
nenv (~> 0.1)
notiffany (~> 0.0)
pry (>= 0.9.12)
@@ -430,7 +495,7 @@ GEM
guard (~> 2.1)
guard-compat (~> 1.1)
rspec (>= 2.99.0, < 4.0)
haml (4.0.4)
haml (4.0.7)
tilt
hashdiff (0.3.7)
highline (1.6.15)
@@ -440,12 +505,13 @@ GEM
multi_json (~> 1.0)
multi_xml
i18n (0.6.11)
i18n-js (3.0.11)
i18n (>= 0.6.6, < 2)
i18n-js (3.2.1)
i18n (>= 0.6.6)
immigrant (0.3.6)
activerecord (>= 3.0)
inflecto (0.0.2)
ipaddress (0.8.0)
io-like (0.3.0)
ipaddress (0.8.3)
jaro_winkler (1.5.1)
journey (1.0.4)
jquery-migrate-rails (1.2.1)
jquery-rails (2.2.2)
@@ -455,31 +521,31 @@ GEM
json_spec (1.1.5)
multi_json (~> 1.0)
rspec (>= 2.0, < 4.0)
jwt (1.5.4)
jwt (2.1.0)
kaminari (0.13.0)
actionpack (>= 3.0.0)
activesupport (>= 3.0.0)
railties (>= 3.0.0)
kgio (2.9.3)
knapsack (1.16.0)
kgio (2.11.2)
knapsack (1.17.1)
rake
launchy (2.4.3)
addressable (~> 2.3)
letter_opener (1.6.0)
letter_opener (1.7.0)
launchy (~> 2.2)
libv8 (3.16.14.19)
listen (3.0.8)
rb-fsevent (~> 0.9, >= 0.9.4)
rb-inotify (~> 0.9, >= 0.9.7)
lumberjack (1.0.12)
lumberjack (1.0.13)
mail (2.5.5)
mime-types (~> 1.16)
treetop (~> 1.4.8)
method_source (0.9.0)
method_source (0.9.2)
mime-types (1.25.1)
mini_mime (1.0.1)
mini_portile2 (2.1.0)
momentjs-rails (2.5.1)
momentjs-rails (2.20.1)
railties (>= 3.1)
money (5.1.0)
i18n (~> 0.6.0)
@@ -487,30 +553,30 @@ GEM
multi_xml (0.6.0)
multipart-post (2.0.0)
nenv (0.3.0)
net-http-persistent (3.0.0)
connection_pool (~> 2.2)
nokogiri (1.6.8.1)
mini_portile2 (~> 2.1.0)
notiffany (0.1.1)
nenv (~> 0.1)
shellany (~> 0.0)
oauth2 (1.2.0)
faraday (>= 0.8, < 0.10)
jwt (~> 1.0)
oauth2 (1.4.1)
faraday (>= 0.8, < 0.16.0)
jwt (>= 1.0, < 3.0)
multi_json (~> 1.3)
multi_xml (~> 0.5)
rack (>= 1.2, < 3)
oj (2.1.2)
oj (3.7.12)
orm_adapter (0.5.0)
paper_trail (3.0.9)
activerecord (>= 3.0, < 5.0)
activesupport (>= 3.0, < 5.0)
paper_trail (5.2.3)
activerecord (>= 3.0, < 6.0)
request_store (~> 1.1)
paperclip (3.5.4)
activemodel (>= 3.0.0)
activesupport (>= 3.0.0)
cocaine (~> 0.5.3)
mime-types
parallel (1.11.2)
parallel_tests (2.14.1)
parallel
parser (2.5.1.0)
ast (~> 2.4.0)
paypal-sdk-core (0.2.10)
@@ -519,15 +585,11 @@ GEM
paypal-sdk-merchant (1.106.1)
paypal-sdk-core (~> 0.2.3)
pg (0.21.0)
poltergeist (1.18.1)
capybara (>= 2.1, < 4)
cliver (~> 0.3.1)
websocket-driver (>= 0.2.0)
polyamorous (0.5.0)
activerecord (~> 3.0)
polyglot (0.3.5)
powerpack (0.1.1)
pry (0.11.2)
pry (0.12.2)
coderay (~> 1.1.0)
method_source (~> 0.9.0)
pry-byebug (3.4.3)
@@ -540,6 +602,10 @@ GEM
rack (1.4.7)
rack-cache (1.8.0)
rack (>= 0.4)
rack-mini-profiler (0.10.7)
rack (>= 1.2.0)
rack-protection (1.5.5)
rack
rack-rewrite (1.5.1)
rack-ssl (1.3.4)
rack
@@ -564,8 +630,8 @@ GEM
rdoc (~> 3.4)
thor (>= 0.14.6, < 2.0)
rainbow (3.0.0)
raindrops (0.13.0)
rake (12.3.1)
raindrops (0.19.0)
rake (12.3.2)
ransack (0.7.2)
actionpack (~> 3.0)
activerecord (~> 3.0)
@@ -573,24 +639,23 @@ GEM
rb-fsevent (0.10.3)
rb-inotify (0.9.10)
ffi (>= 0.5.0, < 2)
rbvmomi (1.13.0)
builder (~> 3.0)
json (>= 1.8)
nokogiri (~> 1.5)
trollop (~> 2.1)
rdoc (3.12.2)
json (~> 1.4)
redcarpet (3.2.3)
redcarpet (3.4.0)
ref (2.0.0)
representative (1.0.5)
activesupport (>= 2.2.2)
builder (>= 2.1.2)
i18n (>= 0.4.1)
nokogiri (>= 1.4.2)
representative_view (1.2.2)
actionpack (> 2.3.0, < 4.0.0)
representative (~> 1.0.2)
roadie (3.0.1)
css_parser (~> 1.3.4)
nokogiri (~> 1.6.0)
roadie-rails (1.0.3)
rails (>= 3.0, < 4.2)
roadie (~> 3.0)
request_store (1.4.1)
rack (>= 1.4)
roadie (3.4.0)
css_parser (~> 1.4)
nokogiri (~> 1.5)
roadie-rails (1.1.1)
railties (>= 3.0, < 5.1)
roadie (~> 3.1)
roo (2.7.1)
nokogiri (~> 1)
rubyzip (~> 1.1, < 2.0.0)
@@ -598,30 +663,31 @@ GEM
nokogiri
roo (>= 2.0.0beta1, < 3)
spreadsheet (> 0.9.0)
rspec (3.7.0)
rspec-core (~> 3.7.0)
rspec-expectations (~> 3.7.0)
rspec-mocks (~> 3.7.0)
rspec-core (3.7.1)
rspec-support (~> 3.7.0)
rspec-expectations (3.7.0)
rspec (3.8.0)
rspec-core (~> 3.8.0)
rspec-expectations (~> 3.8.0)
rspec-mocks (~> 3.8.0)
rspec-core (3.8.0)
rspec-support (~> 3.8.0)
rspec-expectations (3.8.2)
diff-lcs (>= 1.2.0, < 2.0)
rspec-support (~> 3.7.0)
rspec-mocks (3.7.0)
rspec-support (~> 3.8.0)
rspec-mocks (3.8.0)
diff-lcs (>= 1.2.0, < 2.0)
rspec-support (~> 3.7.0)
rspec-rails (3.7.2)
rspec-support (~> 3.8.0)
rspec-rails (3.8.2)
actionpack (>= 3.0)
activesupport (>= 3.0)
railties (>= 3.0)
rspec-core (~> 3.7.0)
rspec-expectations (~> 3.7.0)
rspec-mocks (~> 3.7.0)
rspec-support (~> 3.7.0)
rspec-retry (0.5.6)
rspec-core (> 3.3, < 3.8)
rspec-support (3.7.1)
rubocop (0.55.0)
rspec-core (~> 3.8.0)
rspec-expectations (~> 3.8.0)
rspec-mocks (~> 3.8.0)
rspec-support (~> 3.8.0)
rspec-retry (0.6.1)
rspec-core (> 3.3)
rspec-support (3.8.0)
rubocop (0.57.2)
jaro_winkler (~> 1.5.1)
parallel (~> 1.10)
parser (>= 2.5)
powerpack (~> 0.1)
@@ -630,6 +696,7 @@ GEM
unicode-display_width (~> 1.0, >= 1.0.1)
ruby-ole (1.2.12.1)
ruby-progressbar (1.10.0)
ruby-rc4 (0.1.5)
rubyzip (1.2.2)
safe_yaml (1.0.4)
sass (3.3.14)
@@ -639,15 +706,30 @@ GEM
tilt (~> 1.3)
select2-rails (3.5.10)
thor (~> 0.14)
selenium-webdriver (3.141.0)
childprocess (~> 0.5)
rubyzip (~> 1.2, >= 1.2.2)
shellany (0.0.1)
shoulda-matchers (2.8.0)
activesupport (>= 3.0.0)
skylight (1.6.1)
simplecov (0.16.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)
rack-protection (~> 1.4)
tilt (>= 1.3, < 3)
skylight (1.7.2)
activesupport (>= 3.0.0)
spinjs-rails (1.3)
spinjs-rails (1.4)
rails (>= 3.1)
spreadsheet (1.1.4)
ruby-ole (>= 1.0)
spring (1.7.2)
spring-commands-rspec (1.0.4)
spring (>= 0.9.1)
sprockets (2.2.3)
hike (~> 1.2)
multi_json (~> 1.0)
@@ -655,31 +737,31 @@ GEM
tilt (~> 1.1, != 1.3.0)
state_machine (1.2.0)
stringex (1.3.3)
stripe (3.3.2)
faraday (~> 0.9)
therubyracer (0.12.3)
libv8 (~> 3.16.14.15)
stripe (4.11.0)
faraday (~> 0.13)
net-http-persistent (~> 3.0)
therubyracer (0.12.0)
libv8 (~> 3.16.14.0)
ref
thor (0.20.0)
thor (0.20.3)
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.6)
turbo-sprockets-rails3 (0.3.14)
railties (> 3.2.8, < 4.0.0)
sprockets (>= 2.0.0)
tzinfo (0.3.54)
uglifier (2.7.1)
execjs (>= 0.3.0)
json (>= 1.8.0)
sprockets (>= 2.2.0)
tzinfo (0.3.55)
uglifier (4.1.20)
execjs (>= 0.3.0, < 3)
unicode-display_width (1.3.2)
unicorn (4.9.0)
unicorn (5.5.0)
kgio (~> 2.6)
rack
raindrops (~> 0.7)
unicorn-rails (1.1.0)
unicorn-rails (2.2.1)
rack
unicorn
uuidtools (2.1.5)
@@ -689,18 +771,14 @@ GEM
railties (>= 3.0)
warden (1.2.7)
rack (>= 1.0)
webmock (3.4.2)
webmock (3.5.1)
addressable (>= 2.3.6)
crack (>= 0.3.2)
hashdiff
websocket-driver (0.7.0)
websocket-extensions (>= 0.1.0)
websocket-extensions (0.1.3)
whenever (0.9.2)
activesupport (>= 2.3.4)
whenever (0.11.0)
chronic (>= 0.6.3)
wicked_pdf (1.1.0)
wkhtmltopdf-binary (0.12.3.1)
wkhtmltopdf-binary (0.12.4)
xml-simple (1.1.5)
xpath (2.1.0)
nokogiri (~> 1.3)
@@ -714,7 +792,7 @@ DEPENDENCIES
acts-as-taggable-on (~> 3.4)
andand
angular-rails-templates (~> 0.3.0)
angularjs-file-upload-rails (~> 1.1.6)
angularjs-file-upload-rails (~> 2.4.1)
angularjs-rails (= 1.5.5)
atomic
awesome_print
@@ -723,9 +801,10 @@ DEPENDENCIES
bugsnag
byebug (~> 9.0.0)
capybara (>= 2.15.4)
chromedriver-helper
coffee-rails (~> 3.2.1)
combine_pdf
compass-rails
css_splitter
custom_error_message!
daemons
dalli
@@ -734,6 +813,7 @@ DEPENDENCIES
debugger-linecache
deface!
delayed_job_active_record
delayed_job_web
diffy
eventmachine (>= 1.2.3)
factory_bot_rails
@@ -751,34 +831,33 @@ DEPENDENCIES
guard-rspec (~> 4.7.3)
haml
i18n (~> 0.6.11)
i18n-js (~> 3.0.0)
i18n-js (~> 3.2.1)
immigrant
jquery-migrate-rails
jquery-rails
json_spec (~> 1.1.4)
jwt (~> 1.5)
jwt (~> 2.1)
knapsack
letter_opener (>= 1.4.1)
listen (= 3.0.8)
momentjs-rails
nokogiri (>= 1.6.7.1)
oauth2 (~> 1.2.0)
oauth2 (~> 1.4.1)
ofn-qz!
oj
paper_trail (~> 3.0.8)
order_management!
paper_trail (~> 5.2.3)
paperclip
parallel_tests
pg
poltergeist (>= 1.16.0)
pry-byebug (>= 3.4.3)
rabl
rack-mini-profiler (< 1.0.0)
rack-rewrite
rack-ssl
rails (~> 3.2.22)
rails-i18n (~> 3.0.0)
redcarpet
representative_view
roadie-rails (~> 1.0.3)
roadie-rails (~> 1.1.1)
roo (~> 2.7.0)
roo-xls (~> 1.1.0)
rspec-rails (>= 3.5.2)
@@ -786,22 +865,27 @@ DEPENDENCIES
rubocop (>= 0.49.1)
sass (~> 3.3)
sass-rails (~> 3.2.3)
selenium-webdriver
shoulda-matchers
simple_form!
simplecov
skylight (< 2.0)
spinjs-rails
spree!
spree_auth_devise!
spree_i18n!
spree_paypal_express!
stripe (~> 3.3.2)
therubyracer
spring (= 1.7.2)
spring-commands-rspec
stripe
therubyracer (= 0.12.0)
timecop
truncate_html
turbo-sprockets-rails3
uglifier (>= 1.0.3)
unicorn
unicorn-rails
web!
webmock
whenever
wicked_pdf
@@ -811,4 +895,4 @@ RUBY VERSION
ruby 2.1.5p273
BUNDLED WITH
1.16.4
1.17.2

View File

@@ -1,4 +1,4 @@
[![Build Status](https://travis-ci.org/openfoodfoundation/openfoodnetwork.svg?branch=master)](https://travis-ci.org/openfoodfoundation/openfoodnetwork)
[![Build Status](https://semaphoreci.com/api/v1/openfoodfoundation/openfoodnetwork-2/branches/master/badge.svg)](https://semaphoreci.com/openfoodfoundation/openfoodnetwork-2)
[![Code Climate](https://codeclimate.com/github/openfoodfoundation/openfoodnetwork.png)](https://codeclimate.com/github/openfoodfoundation/openfoodnetwork)
[![View performance data on Skylight](https://badges.skylight.io/status/EiXQ6sSKij8y.svg)](https://oss.skylight.io/app/applications/EiXQ6sSKij8y)

View File

@@ -9,7 +9,7 @@
//= require jquery-migrate-min
//= require jquery_ujs
//= require jquery-ui
//= require shared/jquery-ui-timepicker-addon
//= require jquery-ui-timepicker-addon
//= require angular
//= require angular-resource
//= require angular-animate
@@ -54,14 +54,16 @@
//= require i18n/translations
//= require darkswarm/i18n.translate.js
//= require moment
//= require moment/de.js
//= require moment/en-gb.js
//= require moment/es.js
//= require moment/fr.js
//= require moment/it.js
//= require moment/nb.js
//= require moment/pt-br.js
//= require moment/pt.js
//= require moment/sv.js
//= require ../shared/mm-foundation-tpls-0.8.0.min.js
//= require ../shared/mm-foundation-tpls-0.9.0-20180826174721.min.js
//= require angularjs-file-upload
//= require_tree .

View File

@@ -65,13 +65,6 @@ angular.module("ofn.admin").controller "AdminProductEditCtrl", ($scope, $timeout
DirtyProducts.clear()
StatusMessage.clear()
# $scope.matchProducer = (product) ->
# for producer in $scope.producers
# if angular.equals(producer.id, product.producer)
# product.producer = producer
# break
$scope.updateOnHand = (product) ->
on_demand_variants = []
if product.variants

View File

@@ -1,4 +1,4 @@
angular.module("admin.customers").directive 'editAddressDialog', ($compile, $templateCache, $filter, DialogDefaults, Customers, StatusMessage) ->
angular.module("admin.customers").directive 'editAddressDialog', ($compile, $templateCache, DialogDefaults, Customers, StatusMessage, CountryStates) ->
restrict: 'A'
scope: true
link: (scope, element, attr) ->
@@ -6,9 +6,10 @@ angular.module("admin.customers").directive 'editAddressDialog', ($compile, $tem
scope.errors = []
scope.$watch 'address.country_id', (newCountryID) ->
if newCountryID
scope.states = scope.filterStates(newCountryID)
scope.clearState() unless scope.addressStateMatchesCountry()
return unless newCountryID
scope.states = CountryStates.statesFor(scope.availableCountries, newCountryID)
unless CountryStates.addressStateMatchesCountryStates(scope.states, scope.address.state_id)
scope.address.state_id = ""
scope.updateAddress = ->
scope.edit_address_form.$setPristine()
@@ -27,19 +28,9 @@ angular.module("admin.customers").directive 'editAddressDialog', ($compile, $tem
else
scope.addressType = 'ship_address'
scope.address = scope.customer[scope.addressType]
scope.states = scope.filterStates(scope.address?.country_id)
scope.states = CountryStates.statesFor(scope.availableCountries, scope.address?.country_id)
template = $compile($templateCache.get('admin/edit_address_dialog.html'))(scope)
template.dialog(DialogDefaults)
template.dialog('open')
scope.$apply()
scope.filterStates = (countryID) ->
return [] unless countryID
$filter('filter')(scope.availableCountries, {id: parseInt(countryID)}, true)[0].states
scope.clearState = ->
scope.address.state_id = ""
scope.addressStateMatchesCountry = ->
scope.states.some (state) -> state.id == scope.address.state_id

View File

@@ -1,6 +1,6 @@
angular.module('admin.enterpriseFees').controller 'enterpriseFeesCtrl', ($scope, $http, $window, enterprises, tax_categories, calculators) ->
$scope.enterprises = enterprises
$scope.tax_categories = [{id: -1, name: "Inherit From Product"}].concat tax_categories
$scope.tax_categories = [{id: -1, name: t('js.admin.enterprise_fees.inherit_from_product') }].concat tax_categories
$scope.calculators = calculators
$scope.enterpriseFeesUrl = ->

View File

@@ -1,7 +1,7 @@
angular.module('admin.enterpriseFees').directive 'spreeDeleteResource', ->
(scope, element, attrs) ->
if scope.enterprise_fee.id
url = '/admin/enterprise_fees/' + scope.enterprise_fee.id
url = '/api/enterprise_fees/' + scope.enterprise_fee.id
html = '<a href="' + url + '" class="delete-resource icon_link icon-trash no-text" data-action="remove" data-confirm="' + t('are_you_sure') + '" url="' + url + '"></a>'
#var html = '<a href="'+url+'" class="delete-resource" data-confirm="Are you sure?"><img alt="Delete" src="/assets/admin/icons/delete.png" /> Delete</a>';
element.append html

View File

@@ -1,5 +1,5 @@
angular.module("admin.enterprises")
.controller "enterpriseCtrl", ($scope, $http, $window, NavigationCheck, enterprise, EnterprisePaymentMethods, EnterpriseShippingMethods, SideMenu, StatusMessage) ->
.controller "enterpriseCtrl", ($scope, $http, $window, NavigationCheck, enterprise, Enterprises, EnterprisePaymentMethods, EnterpriseShippingMethods, SideMenu, StatusMessage) ->
$scope.Enterprise = enterprise
$scope.PaymentMethods = EnterprisePaymentMethods.paymentMethods
$scope.ShippingMethods = EnterpriseShippingMethods.shippingMethods
@@ -67,3 +67,27 @@ angular.module("admin.enterprises")
$scope.resetModal = ->
$scope.newUser = $scope.invite_errors = $scope.invite_success = null
$scope.removeLogo = ->
return unless confirm(t("admin.enterprises.remove_logo.immediate_removal_warning"))
Enterprises.removeLogo($scope.Enterprise).then (data) ->
$scope.Enterprise = angular.copy(data)
$scope.$emit("enterprise:updated", $scope.Enterprise)
StatusMessage.display("success", t("admin.enterprises.remove_logo.removed_successfully"))
, (response) ->
if response.data.error?
StatusMessage.display("failure", response.data.error)
$scope.removePromoImage = ->
return unless confirm(t("admin.enterprises.remove_promo_image.immediate_removal_warning"))
Enterprises.removePromoImage($scope.Enterprise).then (data) ->
$scope.Enterprise = angular.copy(data)
$scope.$emit("enterprise:updated", $scope.Enterprise)
StatusMessage.display("success", t("admin.enterprises.remove_promo_image.removed_successfully"))
, (response) ->
if response.data.error?
StatusMessage.display("failure", response.data.error)

View File

@@ -9,4 +9,4 @@ angular.module("admin.indexUtils").factory 'Dereferencer', ->
dereferenceAttr: (array, attr, data)->
if array
for object in array
object[attr] = data[object[attr].id] unless object[attr] == null
object[attr] = data[object[attr].id] if object[attr]

View File

@@ -1,11 +1,12 @@
angular.module("admin.indexUtils").factory 'RequestMonitor', ($q) ->
new class RequestMonitor
loadQueue: $q.when([])
loadId: 0
requestCount: 0
loading: false
load: (promise) ->
loadId = (@loadId += 1)
@requestCount += 1
@loading = true
@loadQueue = $q.all([@loadQueue, promise]).then =>
@loading = false if @loadId == loadId
@requestCount -= 1
@loading = false if @requestCount == 0

View File

@@ -26,19 +26,31 @@ angular.module("admin.lineItems").controller 'LineItemsCtrl', ($scope, $timeout,
$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')
RequestMonitor.load $scope.orders = Orders.index("q[state_not_eq]": "canceled", "q[completed_at_not_null]": "true", "q[completed_at_gteq]": "#{moment($scope.startDate).format()}", "q[completed_at_lt]": "#{moment($scope.endDate).add(1,'day').format()}")
RequestMonitor.load $scope.lineItems = LineItems.index("q[order][state_not_eq]": "canceled", "q[order][completed_at_not_null]": "true", "q[order][completed_at_gteq]": "#{moment($scope.startDate).format()}", "q[order][completed_at_lt]": "#{moment($scope.endDate).add(1,'day').format()}")
formatted_start_date = moment($scope.startDate).format()
formatted_end_date = moment($scope.endDate).add(1,'day').format()
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
)
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
)
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")
RequestMonitor.load $q.all([$scope.orders.$promise, $scope.distributors.$promise, $scope.orderCycles.$promise]).then ->
RequestMonitor.load $q.all([$scope.orders.$promise, $scope.distributors.$promise, $scope.orderCycles.$promise, $scope.suppliers.$promise, $scope.lineItems.$promise]).then ->
Dereferencer.dereferenceAttr $scope.orders, "distributor", Enterprises.byID
Dereferencer.dereferenceAttr $scope.orders, "order_cycle", OrderCycles.byID
RequestMonitor.load $q.all([$scope.orders.$promise, $scope.suppliers.$promise, $scope.lineItems.$promise]).then ->
Dereferencer.dereferenceAttr $scope.lineItems, "supplier", Enterprises.byID
Dereferencer.dereferenceAttr $scope.lineItems, "order", Orders.byID
$scope.bulk_order_form.$setPristine()
@@ -48,8 +60,6 @@ angular.module("admin.lineItems").controller 'LineItemsCtrl', ($scope, $timeout,
$timeout ->
$scope.resetSelectFilters()
$scope.refreshData()
$scope.$watch 'bulk_order_form.$dirty', (newVal, oldVal) ->
if newVal == true
StatusMessage.display 'notice', t('js.unsaved_changes')
@@ -143,3 +153,5 @@ angular.module("admin.lineItems").controller 'LineItemsCtrl', ($scope, $timeout,
if lineItem.quantity > 0
lineItem.final_weight_volume = LineItems.pristineByID[lineItem.id].final_weight_volume * lineItem.quantity / LineItems.pristineByID[lineItem.id].quantity
$scope.weightAdjustedPrice(lineItem)
$scope.refreshData()

View File

@@ -3,8 +3,12 @@ angular.module("admin.orderCycles").controller "OrderCyclesCtrl", ($scope, $q, C
$scope.columns = Columns.columns
$scope.saveAll = -> OrderCycles.saveChanges($scope.order_cycles_form)
$scope.ordersCloseAtLimit = -31 # days
$scope.involvingFilter = 0
$scope.scheduleFilter = 0
$scope.resetSelectFilters = ->
$scope.scheduleFilter = 0
$scope.involvingFilter = 0
$scope.query = ''
$scope.resetSelectFilters()
compileData = ->
for schedule in $scope.schedules

View File

@@ -10,17 +10,19 @@ angular.module('admin.orderCycles', ['ngTagsInput', 'admin.indexUtils', 'admin.e
# using $parse instead of scope[attrs.datetimepicker] for cases
# where attrs.datetimepicker is 'foo.bar.lol'
$(element).datetimepicker
dateFormat: 'yy-mm-dd'
timeFormat: 'HH:mm:ss'
showOn: "button"
buttonImage: "<%= asset_path 'datepicker/cal.gif' %>"
buttonImageOnly: true
stepMinute: 15
onSelect: (dateText, inst) ->
scope.$apply(->
dateFormat: 'yy-mm-dd'
timeFormat: 'HH:mm'
showOn: 'button'
controlType: 'select'
oneLine: true
buttonImage: "<%= asset_path 'datepicker/cal.gif' %>"
buttonImageOnly: true
stepMinute: 15
onSelect: (dateText, inst) ->
scope.$apply(->
element.val(dateText)
parsed = $parse(attrs.datetimepicker)
parsed.assign(scope, dateText)
parsed = $parse(attrs.datetimepicker)
parsed.assign(scope, dateText)
)

View File

@@ -156,7 +156,7 @@ angular.module('admin.orderCycles').factory 'OrderCycle', ($resource, $window, S
if response.data.errors?
StatusMessage.display('failure', response.data.errors[0])
else
StatusMessage.display('failure', 'Failed to create order cycle')
StatusMessage.display('failure', t('js.order_cycles.create_failure'))
update: (destination, form) ->
return unless @confirmNoDistributors()
@@ -171,7 +171,7 @@ angular.module('admin.orderCycles').factory 'OrderCycle', ($resource, $window, S
if response.data.errors?
StatusMessage.display('failure', response.data.errors[0])
else
StatusMessage.display('failure', 'Failed to create order cycle')
StatusMessage.display('failure', t('js.order_cycles.update_failure'))
confirmNoDistributors: ->

View File

@@ -0,0 +1,32 @@
angular.module("admin.orders").controller "bulkInvoiceCtrl", ($scope, $http, $timeout) ->
$scope.createBulkInvoice = ->
$scope.invoice_id = null
$scope.poll = 1
$scope.loading = true
$scope.message = null
$scope.error = null
$scope.poll_wait = 5 # 5 Seconds between each check
$scope.poll_retries = 80 # Maximum checks before stopping
$http.post('/admin/orders/invoices', {order_ids: $scope.selected_orders}).success (data) ->
$scope.invoice_id = data
$scope.pollBulkInvoice()
$scope.pollBulkInvoice = ->
$timeout($scope.nextPoll, $scope.poll_wait * 1000)
$scope.nextPoll = ->
$http.get('/admin/orders/invoices/'+$scope.invoice_id+'/poll').success (data) ->
$scope.loading = false
$scope.message = t('js.admin.orders.index.bulk_invoice_created')
.error (data) ->
$scope.poll++
if $scope.poll > $scope.poll_retries
$scope.loading = false
$scope.error = t('js.admin.orders.index.bulk_invoice_failed')
return
$scope.pollBulkInvoice()

View File

@@ -0,0 +1,26 @@
angular.module("admin.orders").controller "orderCtrl", ($scope, shops, orderCycles, $compile, $attrs, Orders) ->
$scope.$compile = $compile
$scope.shops = shops
$scope.orderCycles = orderCycles
$scope.distributor_id = parseInt($attrs.ofnDistributorId)
$scope.order_cycle_id = parseInt($attrs.ofnOrderCycleId)
$scope.validOrderCycle = (oc) ->
$scope.orderCycleHasDistributor oc, parseInt($scope.distributor_id)
$scope.distributorHasOrderCycles = (distributor) ->
(oc for oc in $scope.orderCycles when @orderCycleHasDistributor(oc, distributor.id)).length > 0
$scope.orderCycleHasDistributor = (oc, distributor_id) ->
distributor_ids = (d.id for d in oc.distributors)
distributor_ids.indexOf(distributor_id) != -1
$scope.distributionChosen = ->
$scope.distributor_id && $scope.order_cycle_id
for oc in $scope.orderCycles
oc.name_and_status = "#{oc.name} (#{oc.status})"
for shop in $scope.shops
shop.disabled = !$scope.distributorHasOrderCycles(shop)

View File

@@ -1,26 +1,74 @@
angular.module("admin.orders").controller "ordersCtrl", ($scope, $compile, $attrs, shops, orderCycles) ->
$scope.$compile = $compile
$scope.shops = shops
$scope.orderCycles = orderCycles
angular.module("admin.orders").controller "ordersCtrl", ($scope, RequestMonitor, Orders, SortOptions, $window, $filter) ->
$scope.RequestMonitor = RequestMonitor
$scope.pagination = Orders.pagination
$scope.orders = Orders.all
$scope.sortOptions = SortOptions
$scope.per_page_options = [
{id: 15, name: t('js.admin.orders.index.per_page', results: 15)},
{id: 50, name: t('js.admin.orders.index.per_page', results: 50)},
{id: 100, name: t('js.admin.orders.index.per_page', results: 100)}
]
$scope.selected_orders = []
$scope.checkboxes = {}
$scope.selected = false
$scope.select_all = false
$scope.poll = 0
$scope.distributor_id = parseInt($attrs.ofnDistributorId)
$scope.order_cycle_id = parseInt($attrs.ofnOrderCycleId)
$scope.initialise = ->
$scope.per_page = 15
$scope.q = {
completed_at_not_null: true
}
$scope.fetchResults()
$scope.validOrderCycle = (oc) ->
$scope.orderCycleHasDistributor oc, parseInt($scope.distributor_id)
$scope.fetchResults = (page=1) ->
$scope.resetSelected()
Orders.index({
'q[completed_at_lt]': $scope['q']['completed_at_lt'],
'q[completed_at_gt]': $scope['q']['completed_at_gt'],
'q[state_eq]': $scope['q']['state_eq'],
'q[number_cont]': $scope['q']['number_cont'],
'q[email_cont]': $scope['q']['email_cont'],
'q[bill_address_firstname_start]': $scope['q']['bill_address_firstname_start'],
'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[inventory_units_shipment_id_null]': $scope['q']['inventory_units_shipment_id_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[s]': $scope.sorting || 'completed_at desc',
per_page: $scope.per_page,
page: page
})
$scope.distributorHasOrderCycles = (distributor) ->
(oc for oc in orderCycles when @orderCycleHasDistributor(oc, distributor.id)).length > 0
$scope.resetSelected = ->
$scope.selected_orders.length = 0
$scope.selected = false
$scope.select_all = false
$scope.checkboxes = {}
$scope.orderCycleHasDistributor = (oc, distributor_id) ->
distributor_ids = (d.id for d in oc.distributors)
distributor_ids.indexOf(distributor_id) != -1
$scope.toggleSelection = (id) ->
index = $scope.selected_orders.indexOf(id)
$scope.distributionChosen = ->
$scope.distributor_id && $scope.order_cycle_id
if index == -1
$scope.selected_orders.push(id)
else
$scope.selected_orders.splice(index, 1)
for oc in $scope.orderCycles
oc.name_and_status = "#{oc.name} (#{oc.status})"
$scope.toggleAll = ->
$scope.selected_orders.length = 0
$scope.orders.forEach (order) ->
$scope.checkboxes[order.id] = $scope.select_all
$scope.selected_orders.push order.id if $scope.select_all
for shop in $scope.shops
shop.disabled = !$scope.distributorHasOrderCycles(shop)
$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()
, true
$scope.changePage = (newPage) ->
$scope.page = newPage
$scope.fetchResults(newPage)

View File

@@ -0,0 +1,5 @@
angular.module("admin.orders").directive "invoicesModal", ($modal) ->
restrict: 'C'
link: (scope, elem, attrs, ctrl) ->
elem.on "click", (ev) =>
scope.uploadModal = $modal.open(templateUrl: 'admin/modals/bulk_invoice.html', controller: ctrl, scope: scope, windowClass: 'simple-modal')

View File

@@ -1 +1 @@
angular.module("admin.orders", ['admin.indexUtils', 'ngResource'])
angular.module("admin.orders", ['admin.indexUtils', 'ngResource', 'mm.foundation'])

View File

@@ -3,13 +3,14 @@ angular.module("admin.productImport").controller "ImportFormCtrl", ($scope, $htt
$scope.entries = {}
$scope.update_counts = {}
$scope.reset_counts = {}
$scope.supplier_product_counts = ams_data.supplier_product_counts
$scope.enterprise_product_counts = ams_data.enterprise_product_counts
$scope.updates = {}
$scope.updated_total = 0
$scope.updated_ids = []
$scope.update_errors = []
$scope.batchSize = 50
$scope.step = 'settings'
$scope.chunks = 0
$scope.completed = 0
@@ -19,7 +20,7 @@ angular.module("admin.productImport").controller "ImportFormCtrl", ($scope, $htt
}
$scope.countResettable = () ->
angular.forEach $scope.supplier_product_counts, (value, key) ->
angular.forEach $scope.enterprise_product_counts, (value, key) ->
$scope.reset_counts[key] = value
if $scope.update_counts[key]
$scope.reset_counts[key] -= $scope.update_counts[key]
@@ -51,19 +52,28 @@ angular.module("admin.productImport").controller "ImportFormCtrl", ($scope, $htt
$scope.start = () ->
$scope.started = true
total = ams_data.item_count
size = 50
$scope.chunks = Math.ceil(total / size)
$scope.chunks = Math.ceil(total / $scope.batchSize)
i = 0
# Process only the first batch.
$scope.processBatch($scope.step, 0, $scope.chunks)
while i < $scope.chunks
start = (i*size)+1
end = (i+1)*size
if $scope.step == 'import'
$scope.processImport(start, end)
if $scope.step == 'save'
$scope.processSave(start, end)
i++
$scope.processBatch = (step, batchIndex, batchCount) ->
start = (batchIndex * $scope.batchSize) + 1
end = (batchIndex + 1) * $scope.batchSize
isLastBatch = batchCount == batchIndex + 1
promise = if step == 'import'
$scope.processImport(start, end)
else if step == 'save'
$scope.processSave(start, end)
return if isLastBatch
processNextBatch = ->
$scope.processBatch(step, batchIndex + 1, batchCount)
# Process next batch whether or not processing of the current batch succeeds.
promise.then(processNextBatch, processNextBatch)
$scope.processImport = (start, end) ->
$http(

View File

@@ -17,7 +17,7 @@ angular.module("admin.productImport").controller "ImportOptionsFormCtrl", ($scop
confirmed = confirm t('js.product_import.confirmation') if checked
if confirmed or !checked
ProductImportService.updateResetAbsent($scope.supplierId, $scope.reset_counts[$scope.supplierId], checked)
ProductImportService.updateResetAbsent($scope.enterpriseId, $scope.reset_counts[$scope.enterpriseId], checked)
else
$scope.settings['reset_all_absent'] = false

View File

@@ -18,15 +18,15 @@ angular.module("admin.productImport").filter 'entriesFilterValid', ->
filtered
angular.module("admin.productImport").filter 'entriesFilterSupplier', ->
(entries, supplier) ->
if supplier == 'all'
angular.module("admin.productImport").filter 'entriesFilterEnterprise', ->
(entries, enterprise) ->
if enterprise == 'all'
return entries
filtered = {}
angular.forEach entries, (entry, line_number) ->
if supplier == entry.attributes['supplier']
if enterprise == entry.attributes['enterprise']
filtered[line_number] = entry
filtered

View File

@@ -1,15 +1,15 @@
angular.module("admin.productImport").factory "ProductImportService", ($rootScope) ->
new class ProductImportService
suppliers: {}
enterprises: {}
resetTotal: 0
settings: {}
updateResetAbsent: (supplierId, resetCount, resetAbsent) ->
updateResetAbsent: (enterpriseId, resetCount, resetAbsent) ->
if resetAbsent
@suppliers[supplierId] = resetCount
@enterprises[enterpriseId] = resetCount
@resetTotal += resetCount
else
@suppliers[supplierId] = null
@enterprises[enterpriseId] = null
@resetTotal -= resetCount
$rootScope.resetTotal = @resetTotal

View File

@@ -2,5 +2,5 @@ angular.module("ofn.admin").directive "imageModal", ($modal, ProductImageService
restrict: 'C'
link: (scope, elem, attrs, ctrl) ->
elem.on "click", (ev) =>
scope.uploadModal = $modal.open(templateUrl: 'admin/modals/image_upload.html', controller: ctrl, scope: scope, windowClass: 'product-image-upload')
scope.uploadModal = $modal.open(templateUrl: 'admin/modals/image_upload.html', controller: ctrl, scope: scope, windowClass: 'simple-modal')
ProductImageService.configure(scope.product)

View File

@@ -8,4 +8,10 @@ angular.module("admin.resources").factory 'EnterpriseResource', ($resource) ->
isArray: true
'update':
method: 'PUT'
'removeLogo':
url: '/api/enterprises/:id/logo.json'
method: 'DELETE'
'removePromoImage':
url: '/api/enterprises/:id/promo_image.json'
method: 'DELETE'
})

View File

@@ -1,8 +1,8 @@
angular.module("admin.resources").factory 'OrderResource', ($resource) ->
$resource('/admin/orders/:id/:action.json', {}, {
'index':
url: '/api/orders.json'
method: 'GET'
isArray: true
'update':
method: 'PUT'
})

View File

@@ -38,3 +38,17 @@ angular.module("admin.resources").factory 'Enterprises', ($q, EnterpriseResource
resetAttribute: (enterprise, attribute) ->
enterprise[attribute] = @pristineByID[enterprise.id][attribute]
performActionOnEnterpriseResource = (resourceAction) ->
(enterprise) ->
deferred = $q.defer()
resourceAction({id: enterprise.permalink}, ((data) =>
@pristineByID[enterprise.id] = angular.copy(data)
deferred.resolve(data)
), ((response) ->
deferred.reject(response)
))
deferred.promise
removeLogo: performActionOnEnterpriseResource(EnterpriseResource.removeLogo)
removePromoImage: performActionOnEnterpriseResource(EnterpriseResource.removePromoImage)

View File

@@ -1,18 +1,30 @@
angular.module("admin.resources").factory 'Orders', ($q, OrderResource) ->
angular.module("admin.resources").factory 'Orders', ($q, OrderResource, RequestMonitor) ->
new class Orders
all: []
byID: {}
pristineByID: {}
pagination: {}
index: (params={}, callback=null) ->
OrderResource.index params, (data) =>
request = OrderResource.index params, (data) =>
@load(data)
(callback || angular.noop)(data)
@all.$promise = request.$promise
@all
load: (orders) ->
for order in orders
load: (data) ->
angular.extend(@pagination, data.pagination)
@clearData()
for order in data.orders
@all.push order
@byID[order.id] = order
@pristineByID[order.id] = angular.copy(order)
clearData: ->
@all.length = 0
@byID = {}
@pristineByID = {}
save: (order) ->
deferred = $q.defer()
order.$update({id: order.number})

View File

@@ -1,10 +1,20 @@
angular.module("admin.subscriptions").controller "AddressController", ($scope, $filter, StatusMessage, availableCountries) ->
angular.module("admin.subscriptions").controller "AddressController", ($scope, StatusMessage, availableCountries, CountryStates) ->
$scope.countries = availableCountries
$scope.statesFor = (country_id) ->
return [] unless country_id
$filter('filter')(availableCountries, {id: country_id})[0].states
$scope.billStates = $scope.statesFor($scope.subscription.bill_address.country_id)
$scope.shipStates = $scope.statesFor($scope.subscription.ship_address.country_id)
$scope.billStates = CountryStates.statesFor(availableCountries, $scope.subscription.bill_address.country_id)
$scope.shipStates = CountryStates.statesFor(availableCountries, $scope.subscription.ship_address.country_id)
$scope.$watch 'subscription.bill_address.country_id', (newCountryID) ->
return unless newCountryID
$scope.billStates = CountryStates.statesFor(availableCountries, newCountryID)
unless CountryStates.addressStateMatchesCountryStates($scope.billStates, $scope.subscription.bill_address.state_id)
$scope.subscription.bill_address.state_id = ""
$scope.$watch 'subscription.ship_address.country_id', (newCountryID) ->
return unless newCountryID
$scope.shipStates = CountryStates.statesFor(availableCountries, newCountryID)
unless CountryStates.addressStateMatchesCountryStates($scope.shipStates, $scope.subscription.ship_address.state_id)
$scope.subscription.ship_address.state_id = ""
$scope.registerNextCallback 'address', ->
$scope.subscription_form.$submitted = true
@@ -18,9 +28,3 @@ angular.module("admin.subscriptions").controller "AddressController", ($scope, $
$scope.registerBackCallback 'address', ->
StatusMessage.clear()
$scope.setView('details')
$scope.$watch 'subscription.bill_address.country_id', (newValue, oldValue) ->
$scope.billStates = $scope.statesFor(newValue) if newValue?
$scope.$watch 'subscription.ship_address.country_id', (newValue, oldValue) ->
$scope.shipStates = $scope.statesFor(newValue) if newValue?

View File

@@ -6,7 +6,11 @@ angular.module("admin.subscriptions").controller "SubscriptionController", ($sco
$scope.schedules = Schedules.all
$scope.paymentMethods = PaymentMethods.all
$scope.shippingMethods = ShippingMethods.all
$scope.distributor_id = $scope.subscription.shop_id # variant selector requires distributor_id
# Variant selector requires these
$scope.distributor_id = $scope.subscription.shop_id
$scope.eligible_for_subscriptions = true
$scope.view = if $scope.subscription.id? then 'review' else 'details'
$scope.nextCallbacks = {}
$scope.backCallbacks = {}

View File

@@ -1 +1 @@
angular.module("admin.subscriptions", ['ngResource','admin.indexUtils','admin.dropdown'])
angular.module("admin.subscriptions", ['ngResource','admin.indexUtils','admin.dropdown', 'admin.utils'])

View File

@@ -1,12 +1,15 @@
$(document).ready(function() {
$('.datetimepicker').datetimepicker({
dateFormat: 'yy-mm-dd',
timeFormat: 'HH:mm',
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: "button",
showOn: 'button',
controlType: 'select',
oneLine: true,
buttonImage: "<%= asset_path 'datepicker/cal.gif' %>",
buttonImageOnly: true,
stepMinute: 15

View File

@@ -22,6 +22,7 @@ angular.module("admin.utils").directive "variantAutocomplete", ($timeout) ->
q: term
distributor_id: scope.distributor_id
order_cycle_id: scope.order_cycle_id
eligible_for_subscriptions: scope.eligible_for_subscriptions
results: (data, page) ->
results: data
formatResult: (variant) ->

View File

@@ -0,0 +1,14 @@
angular.module("admin.utils").filter "localizeCurrency", (currencyConfig)->
# Convert number to string currency using injected currency configuration.
(amount) ->
# Set country code (eg. "US").
currency_code = if currencyConfig.display_currency then " " + currencyConfig.currency else ""
# Set decimal points, 2 or 0 if hide_cents.
decimals = if currencyConfig.hide_cents == "true" then 0 else 2
# Set format if the currency symbol should come after the number, otherwise (default) use the locale setting.
format = if currencyConfig.symbol_position == "after" then "%n %u" else undefined
# We need to use parseFloat as the amount should come in as a string.
amount = parseFloat(amount)
# Build the final price string.
I18n.toCurrency(amount, {precision: decimals, unit: currencyConfig.symbol, format: format}) + currency_code

View File

@@ -0,0 +1,11 @@
angular.module("admin.utils").factory "CountryStates", ($filter) ->
new class CountryStates
statesFor: (countries, country_id) ->
return [] unless country_id
country = $filter('filter')(countries, {id: parseInt(country_id)}, true)[0]
return [] unless country
country.states
addressStateMatchesCountryStates: (countryStates, stateId) ->
countryStates.some (state) -> state.id == stateId

View File

@@ -13,6 +13,11 @@ angular.module("admin.variantOverrides").controller "AdminVariantOverridesCtrl",
$scope.RequestMonitor = RequestMonitor
$scope.selectView = Views.selectView
$scope.currentView = -> Views.currentView
$scope.onDemandOptions = [
{ description: t('js.variant_overrides.on_demand.use_producer_settings'), value: null },
{ description: t('js.variant_overrides.on_demand.yes'), value: true },
{ description: t('js.variant_overrides.on_demand.no'), value: false }
]
$scope.views = Views.setViews
inventory: { name: t('js.variant_overrides.inventory_products'), visible: true }
@@ -105,3 +110,35 @@ angular.module("admin.variantOverrides").controller "AdminVariantOverridesCtrl",
StatusMessage.display 'success', t('js.variant_overrides.stock_reset')
.error (data, status) ->
$timeout -> StatusMessage.display 'failure', $scope.updateError(data, status)
# Variant override count_on_hand field placeholder logic:
# on_demand true -- Show "On Demand"
# on_demand false -- Show empty value to be set by the user
# on_demand nil -- Show producer on_hand value
$scope.countOnHandPlaceholder = (variant, hubId) ->
variantOverride = $scope.variantOverrides[hubId][variant.id]
if variantOverride.on_demand
t('js.variants.on_demand.yes')
else if variantOverride.on_demand == false
''
else
variant.on_hand
# This method should only be used when the variant override on_demand is changed.
#
# Change the count_on_hand value to a suggested value.
$scope.updateCountOnHand = (variant, hubId) ->
variantOverride = $scope.variantOverrides[hubId][variant.id]
suggested = $scope.countOnHandSuggestion(variant, hubId)
return if suggested == variantOverride.count_on_hand
variantOverride.count_on_hand = suggested
DirtyVariantOverrides.set hubId, variant.id, variantOverride.id, 'count_on_hand', suggested
# Suggest producer count_on_hand if variant has limited stock and variant override forces limited
# stock. Otherwise, clear whatever value is set.
$scope.countOnHandSuggestion = (variant, hubId) ->
variantOverride = $scope.variantOverrides[hubId][variant.id]
return null unless !variant.on_demand && variantOverride.on_demand == false
variant.on_hand

View File

@@ -1,4 +1,5 @@
angular.module("admin.variantOverrides").filter "hubPermissions", ($filter) ->
return (products, hubPermissions, hub_id) ->
return [] if !hub_id
return [] if !hubPermissions[hub_id]
return $filter('filter')(products, ((product) -> hubPermissions[hub_id].indexOf(product.producer_id) > -1), true)

View File

@@ -11,7 +11,7 @@
#= require lodash.underscore.js
#= require angular-scroll.min.js
#= require angular-google-maps.min.js
#= require ../shared/mm-foundation-tpls-0.8.0.min.js
#= require ../shared/mm-foundation-tpls-0.9.0-20180826174721.min.js
#= require ../shared/ng-infinite-scroll.min.js
#= require ../shared/angular-local-storage.js
#= require ../shared/angular-slideables.js
@@ -25,12 +25,14 @@
#= require angular-flash.min.js
#
#= require moment
#= require moment/de.js
#= require moment/en-gb.js
#= require moment/es.js
#= require moment/fr.js
#= require moment/it.js
#= require moment/nb.js
#= require moment/pt-br.js
#= require moment/pt.js
#= require moment/sv.js
#
#= require modernizr

View File

@@ -1,25 +1,22 @@
Darkswarm.controller "AccordionCtrl", ($scope, localStorageService, $timeout, $document, CurrentHub) ->
key = "accordion_#{$scope.order.id}#{CurrentHub.hub.id}#{$scope.order.user_id}"
value = if localStorageService.get(key) then {} else { details: true, billing: false, shipping: false, payment: false }
localStorageService.bind $scope, "accordion", value, key
$scope.accordionSections = ["details", "billing", "shipping", "payment"]
# Scrolling is confused by our position:fixed top bar - add an offset to scroll
# to the correct location, plus 5px buffer
offset_height = $("nav.top-bar").height() + 5
$scope.accordion = { details: true, billing: true, shipping: true, payment: true }
$scope.show = (section)->
$scope.show = (section) ->
$scope.accordion[section] = true
# If we call scrollTo() directly after show(), when one of the accordions above the
# scroll location is closed by show(), scrollTo() will scroll to the old location of
# the element. Putting this in a 50 ms timeout is enough delay for the DOM to
# have updated.
$timeout ->
$document.scrollTo($("##{section}"), offset_height, 500)
, 50
$scope.scrollTo = (section) ->
# Scrolling is confused by our position:fixed top bar - add an offset to scroll
# to the correct location, plus 5px buffer
offset_height = $("nav.top-bar").height() + 5
$document.scrollTo($("##{section}"), offset_height, 400)
$scope.$on 'purchaseFormInvalid', (event, form) ->
# Scroll to first invalid section
for section in $scope.accordionSections
if not form[section].$valid
$scope.show section
$timeout ->
$scope.scrollTo(section)
, 50
break

View File

@@ -5,7 +5,7 @@ Darkswarm.controller "BillingCtrl", ($scope, $timeout) ->
$scope.summary = ->
[$scope.order.bill_address.address1,
$scope.order.bill_address.city,
$scope.order.bill_address.city,
$scope.order.bill_address.zipcode]
$timeout $scope.onTimeout
$timeout $scope.onTimeout

View File

@@ -13,11 +13,11 @@ Darkswarm.controller "DetailsCtrl", ($scope, $timeout, $http, CurrentUser, Authe
$scope.summary = ->
[$scope.fullName(),
$scope.order.email,
$scope.order.email,
$scope.order.bill_address.phone]
$scope.fullName = ->
[$scope.order.bill_address.firstname ? null,
[$scope.order.bill_address.firstname ? null,
$scope.order.bill_address.lastname ? null].join(" ").trim()
$timeout $scope.onTimeout
$timeout $scope.onTimeout

View File

@@ -0,0 +1,29 @@
# Extend the "offCanvasWrap" directive in "angular-foundation" to disable hiding of the off-canvas
# upon window resize.
#
# In some browsers for mobile devices, the address bar is automatically hidden when scrolling down
# the page. This is not workable if the height of the contents of the off-canvas exceeds the height
# of the screen, because the latter portion of the contents stays hidden to the user.
#
# However, for screens over 1024px width for which the off-canvas is not styled to be visible, we
# can proceed to hide this.
#
# https://github.com/openfoodfoundation/angular-foundation/blob/0.9.0-20180826174721/src/offcanvas/offcanvas.js
angular.module('mm.foundation.offcanvas').directive 'offCanvasWrap', ($window) ->
{
restrict: 'C'
priority: 1
link: ($scope, element, attrs) ->
win = angular.element($window)
# Get the scope used by the "offCanvasWrap" directive:
# https://github.com/openfoodfoundation/angular-foundation/blob/0.9.0-20180826174721/src/offcanvas/offcanvas.js#L2
isolatedScope = element.isolateScope()
# Unbind hiding of the off-canvas upon window resize.
win.unbind('resize.body', isolatedScope.hide)
# Bind hiding of the off-canvas that only happens when screen width is over 1024px.
win.bind 'resize.body', ->
isolatedScope.hide() if $(window).width() > 1024
}

View File

@@ -4,7 +4,7 @@ Darkswarm.filter "date_in_words", ->
Darkswarm.filter "sensible_timeframe", (date_in_wordsFilter)->
(date) ->
if moment().add('days', 2) < moment(date)
if moment().add(2, 'days') < moment(date)
t 'orders_open'
else
t('closing') + date_in_wordsFilter(date)

View File

@@ -2,11 +2,11 @@ window.FieldsetMixin = ($scope)->
$scope.next = (event = false)->
event.preventDefault() if event
return unless $scope.nextPanel
$scope.accordion[$scope.name] = false
$scope.show $scope.nextPanel
$scope.onTimeout = ->
if $scope[$scope.name].$valid
$scope.next()
$scope.accordion[$scope.name] = !$scope[$scope.name].$valid
$scope.valid = ->
$scope.form().$valid

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1,12 +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 store/spree_frontend
//= require store/spree_auth
//= require_tree .

View File

@@ -0,0 +1,15 @@
%h4.modal-title
= t('js.admin.orders.index.compiling_invoices')
%p.message{ ng: { show: 'message' } }
{{message}}
%p.error{ ng: { show: 'error' } }
{{error}}
%img.spinner{ src: "/assets/spinning-circles.svg", ng: { show: "loading" } }
%p{ ng: { show: "loading" } }
= t('js.admin.orders.index.please_wait')
%a.button{ target: '_blank', ng: { click: 'showBulkInvoice()', href: '/admin/orders/invoices/{{invoice_id}}', show: "!loading && !error" } }
= t('js.admin.orders.index.view_file')

View File

@@ -1,7 +1,7 @@
.container
.row.modal-centered
%h2 {{'welcome_to_ofn' | t}}
%h5 {{'signup_or_login' | t}}:
%h2 {{'js.registration.welcome_to_ofn' | t}}
%h5 {{'js.registration.signup_or_login' | t}}:
%div{"ng-controller" => "AuthenticationCtrl"}
%tabset
%ng-include{src: "'signup.html'"}
@@ -9,9 +9,9 @@
%ng-include{src: "'forgot.html'"}
%div{ ng: { show: "active('/signup')"} }
%hr
{{'have_an_account' | t}}
{{'js.registration.have_an_account' | t}}
%a{ href: "", ng: { click: "select('/login')"}}
{{'action_login' | t}}
{{'js.registration.action_login' | t}}
%a.close-reveal-modal{"ng-click" => "$close()"}
%i.ofn-i_009-close

View File

@@ -4,6 +4,9 @@
.large-12.columns
.alert-box.success{ng: {show: 'messages != null'}}
{{ messages }}
.large-12.columns
.alert-box.alert{ng: {show: 'errors.message != null'}}
{{ errors.message }}
.row
.large-12.columns
%label{for: "email"} {{'signup_email' | t}}

View File

@@ -7,12 +7,14 @@
*= require admin/spree_backend
*= require admin/spree_auth
*= require shared/jquery-ui-timepicker-addon
*= require jquery-ui-timepicker-addon
*= require shared/textAngular
*= require shared/ng-tags-input.min
*= require admin/custom
*= require_self
*/
@import 'variables';
@import '**/*';
@import 'components/*';
@import '*';

View File

@@ -0,0 +1,10 @@
@import '../../darkswarm/branding';
.container {
input {
&[readonly] {
background-color: $disabled-light;
cursor: default;
}
}
}

View File

@@ -0,0 +1,8 @@
// https://docs.angularjs.org/api/ng/directive/ngCloak
[ng-cloak],
[data-ng-cloak],
[x-ng-cloak],
.ng-cloak,
.x-ng-cloak {
display: none !important;
}

View File

@@ -0,0 +1,20 @@
@import "admin/variables";
.pagination {
text-align: center;
margin: 2em 0 1em;
button {
margin: 0 0.35em;
&.active {
background-color: darken($spree-blue, 15%);
cursor: default;
}
&.disabled {
background-color: $disabled_button;
cursor: default;
}
}
}

View File

@@ -0,0 +1,7 @@
.per-page {
float: left;
.per-page-feedback {
margin-left: 1em;
}
}

View File

@@ -0,0 +1,20 @@
@import '../variables';
.reveal-modal.simple-modal {
width: 300px;
.close-reveal-modal {
color: $modal-close-button-color;
font-size: 23px;
right: .45rem;
top: .35rem;
:hover {
color: $modal-close-button-hover-color;
}
}
label {
margin-top: 20px;
}
}

View File

@@ -0,0 +1,2 @@
/* Custom fix */
.ui-timepicker-div.ui-timepicker-oneLine dl dd { width: 25%; }

View File

@@ -87,3 +87,50 @@ div#group_buy_calculation {
th.actions {
white-space: nowrap;
}
table.index td.actions {
text-align: left;
}
.orders-loading {
margin-top: 1em;
img {
width: 85px;
}
span {
font-size: 1.2em;
}
}
.index-controls {
button {
float: right;
&:disabled {
background-color: $disabled-button;
}
}
}
.simple-modal {
text-align: center;
.modal-title {
margin-bottom: 1.5em;
}
.message, .error {
margin-bottom: 1em;
}
.spinner {
margin-bottom: 1em;
}
.error {
color: $warning-red;
}
}

View File

@@ -0,0 +1,7 @@
@import '../variables';
.admin-subscription-form-subscription-line-items {
.not-in-open-and-upcoming-order-cycles-warning {
color: $warning-red;
}
}

View File

@@ -0,0 +1,7 @@
@import '../variables';
.admin-subscription-review-subscription-line-items {
.not-in-open-and-upcoming-order-cycles-warning {
color: $warning-red;
}
}

View File

@@ -1,15 +1,22 @@
@import "variables";
div.panel-section {
$pi-red: $warning-red;
$pi-green: lighten($spree-green, 10%);
$pi-orange: $bright-orange;
$pi-blue: lighten($spree-blue, 10%);
$pi-light-yellow: #faffaf;
.neutral {
color: #bfbfbf;
// scss-lint:disable NestingDepth
div.panel-section {
.error {
color: $pi-red;
}
.warning {
color: $warning-red;
color: $bright-orange;
}
.success {
color: #86d83a;
color: $pi-green;
}
.info {
color: #68b7c0;
@@ -85,21 +92,29 @@ div.panel-section {
td, th {
white-space: nowrap;
}
tr.error {
color: #c84C4c;
tr {
&.error {
color: #c84C4c;
}
&:hover td.invalid {
background-color: darken(#f05c51, 5%);
}
i {
display: block;
margin-bottom: -0.2em;
font-size: 1.4em !important;
}
}
tr:hover td.invalid {
background-color: #ed5135;
}
tr i {
display: block;
margin-bottom: -0.2em;
font-size: 1.4em !important;
}
td.invalid {
background-color: #f05c51;
box-shadow: inset 0px 0px 1px red;
color: white;
td {
&.invalid {
background-color: #f05c51;
box-shadow: inset 0px 0px 1px red;
color: white;
}
}
}
@@ -123,52 +138,6 @@ br.panels.clearfix {
clear: both;
}
table.import-settings {
background-color: transparent !important;
width: auto;
tbody tr:hover td {
background-color: #f3f3f3;
}
td {
border: 0;
border-bottom: 1px solid #eee;
text-align: left;
input {
width: 15em;
}
input[type="checkbox"] {
width: auto;
}
}
td.description {
font-weight: bold;
padding-right: 2.5em;
}
tr:first-child td {
border-top: 0;
}
tr:last-child td {
border-bottom: 0;
}
div.select2-container {
width: 13.5em;
}
div.select2-container.select2-container-disabled {
a.select2-choice, span.select2-arrow {
background-color: #d5d5d5;
}
}
input[disabled], input:disabled {
background-color: #d5d5d5;
opacity: 1;
border-color: transparent;
color: white !important;
}
}
.panel-section.import-settings {
.header-description {
@@ -177,7 +146,7 @@ table.import-settings {
span.header-error {
font-size: 0.85em;
color: $warning-red;
color: $pi-red;
}
.select2-search {
@@ -208,10 +177,10 @@ table.import-settings {
}
i.fa-check-circle {
color: #86d83a;
color: $pi-green;
}
i.fa-info-circle {
color: #68b7c0;
color: $pi-blue;
}
}
@@ -234,6 +203,10 @@ form.product-import, div.post-save-results, div.import-wrapper {
div.import-wrapper {
.alert-box {
margin: 0 0 1.75em;
}
.ng-hide:not(.ng-hide-animate) {
// We have to use !important here to override angular's display properties
// scss-lint:disable ImportantRule
@@ -281,7 +254,7 @@ div.progress-bar {
span.progress-track{
display: block;
background: #b7ea53;
background: lighten($pi-green, 10%);
height: 100%;
border-radius: 0.3em;
box-shadow: inset 0 0 3px rgba(0,0,0,0.3);
@@ -312,7 +285,7 @@ div.progress-bar {
span.category {
display: inline-block;
background-color: lighten($spree-blue, 10%);
background-color: $pi-blue;
color: white;
padding: 0.3em 0.6em;
margin: 0 0.4em 0.5em 0;

View File

@@ -98,25 +98,6 @@ table#listing_products.bulk {
}
}
.reveal-modal.product-image-upload {
width: 300px;
a.close-reveal-modal {
font-size: 23px;
color: #de6060;
right: 0.45rem;
top: 0.35rem;
:hover {
color: #bf4545;
}
}
div.image-preview {
//float: left;
}
label {
margin-top: 20px;
}
}
form#image_upload {
text-align: center;
.spinner {

View File

@@ -6,7 +6,13 @@ $spree-light-blue: #eff5fc;
$warning-red: #da5354;
$warning-orange: #da7f52;
$bright-orange: #ffa92e;
$medium-grey: #919191;
$pale-blue: #cee1f4;
$light-grey: #ccc;
$admin-table-border: $pale-blue;
$modal-close-button-color: #de6060;
$modal-close-button-hover-color: #bf4545;
$disabled-button: $light-grey;

View File

@@ -1,86 +0,0 @@
@import typography
.darkswarm
navigation
display: block
background: #f7f7f7
distributor.details
box-sizing: border-box
display: block
min-height: 150px
padding: 30px 0px 20px 0px
select
width: 200px
position: relative
img
display: block
height: 100px
width: 100px
margin-right: 12px
location
@include headingFont
@media all and (max-width: 768px)
location, location + small
display: block
#distributor_title h3
margin-top: 0
@media all and (max-width: 768px)
margin-bottom: 8px
ordercycle
text-align: right
p
max-width: 400px
h4 i
margin-right: 0.3rem
@media all and (max-width: 640px)
float: left
clear: left
text-align: left
padding: 12px 10px
width: 100%
margin-top: 10px
background: #e5e5e5
p
max-width: 100%
float: right
form.custom
text-align: right
& > strong
line-height: 2.5
font-size: 1.29em
padding-right: 14px
@media all and (max-width: 768px)
select
width: inherit
display: inline-block
border-width: 1px
border-color: #999
color: #666
font-size: 1em
margin-bottom: 0
padding: 8px 20px 8px 12px
@media all and (max-width: 768px)
font-size: 0.875em
@media screen and (-webkit-min-device-pixel-ratio:0)
font-size: 16px
closing
@include headingFont
@media all and (max-width: 768px)
font-size: 1.2em
padding-bottom: 10px
color: black
font-size: 1.5em
display: block
padding-bottom: 12px
span
@media all and (max-width: 768px)
font-size: 0.875em

View File

@@ -0,0 +1,103 @@
@import "typography";
.darkswarm navigation {
display: block;
background: #f7f7f7;
distributor.details {
box-sizing: border-box;
display: block;
min-height: 150px;
padding: 30px 0 20px 0;
position: relative;
select {
width: 200px;
}
img {
display: block;
height: 100px;
width: 100px;
margin-right: 12px;
}
location {
@include headingFont;
}
@media all and (max-width: 768px) {
location, location + small {
display: block;
}
}
#distributor_title h3 {
margin-top: 0;
@media all and (max-width: 768px) {
margin-bottom: 8px;
}
}
ordercycle {
text-align: right;
float: right;
p {
max-width: 400px;
}
h4 i {
margin-right: 0.3rem;
}
@media all and (max-width: 640px) {
float: left;
clear: left;
text-align: left;
padding: 12px 10px;
width: 100%;
margin-top: 10px;
background: #e5e5e5;
p {
max-width: 100%;
}
}
form.custom {
text-align: right;
& > strong {
line-height: 2.5;
font-size: 1.29em;
padding-right: 14px;
}
select {
width: inherit;
display: inline-block;
border: 1px #999;
color: #666;
font-size: 1em;
margin-bottom: 0;
padding: 8px 20px 8px 12px;
@media all and (max-width: 768px) {
font-size: 0.875em;
}
@media screen and (-webkit-min-device-pixel-ratio: 0) {
font-size: 16px;
}
}
}
closing {
@include headingFont;
color: black;
font-size: 1.5em;
display: block;
padding-bottom: 12px;
@media all and (max-width: 768px) {
font-size: 1.2em;
padding-bottom: 10px;
}
span {
@media all and (max-width: 768px) {
font-size: 0.875em;
}
}
}
}
}
}

View File

@@ -9,8 +9,11 @@
@import 'foundation';
@import 'foundation-icons';
@import 'base/*';
@import '*';
@import 'pages/*';
@import '../web/all';
ofn-modal {
display: block;
}
}

View File

@@ -1,3 +0,0 @@
/*
*= require 'darkswarm/all'
*/

View File

@@ -123,9 +123,12 @@
-moz-transition: -moz-transform 0.2s ease-out;
-o-transition: -o-transform 0.2s ease-out;
transition: transform 0.2s ease-out;
-webkit-transform: translate(0, -25%);
-ms-transform: translate(0, -25%);
transform: translate(0, -25%);
@media only screen and (min-width: 641px) {
-webkit-transform: translate(0, -5%);
-ms-transform: translate(0, -5%);
transform: translate(0, -5%);
}
}
.reveal-modal.in {

View File

@@ -0,0 +1,13 @@
@import 'darkswarm/branding';
$modal-background-color: #efefef;
$modal-content-background-color: #fff;
$modal-alert-link-color: #fff;
$modal-alert-link-hover-color: rgba(255, 255, 255, .7);
$cookies-banner-background-color: $dark-grey;
$cookies-banner-button-background-color: $clr-turquoise;
$cookies-banner-text-color: $white;
$cookies-policy-modal-background-color: $disabled-light;
$cookies-policy-modal-border-bottom-color: $disabled-light;
$cookies-policy-modal-table-tr-even-background-color: $disabled-very-light;

View File

@@ -1,86 +0,0 @@
@import mixins
@import branding
@import animations
.order-summary
background-color: #e1f0f5
padding: 1em
width: 100%
border: none
color: inherit
checkout
display: block
@media all and (max-width: 640px)
&.row .row
margin-left: 0
margin-right: 0
orderdetails
.button, table
width: 100%
@media all and (max-width: 640px)
form.edit_order
border: 1px solid $disabled-bright
margin-bottom: 2rem
#details, #billing, #shipping, #payment
border: 0
margin: 1em 0
padding: 0
.content
border: 1px solid #efefef
h5
margin: 0
padding: 0.65em
background: #f7f7f7
.label
font-size: 1em
padding: 0.3rem 0.35rem 0.275rem
// Logic to turn on & off the alerts for success against each fieldset
label, label.alert, label.success, &.valid label.alert, &.dirty label.success
display: none
&.dirty label.alert
display: inline
&.dirty.valid label.alert
display: none
&.valid label.success
display: inline
h5.dirty
background: #f7ccc5
h5.valid, h5.dirty.valid
background: #bfefd1
orderdetails table tr th
text-align: left
// Logic to swap out up / down accordion icons
//Foundation overrides
dd > a
@include csstrans
background: $disabled-light !important
dd > a:hover
background: $disabled-v-dark !important
color: white
dd
span.accordion-up
display: none
span.accordion-down
display: inline
&.open
span.accordion-up
display: inline
span.accordion-down
display: none
.error
color: #c82020

View File

@@ -0,0 +1,117 @@
@import "mixins";
@import "branding";
@import "animations";
.order-summary {
background-color: #e1f0f5;
padding: 1em;
width: 100%;
border: none;
color: inherit;
}
checkout {
display: block;
@media all and (max-width: 640px) {
&.row .row {
margin-left: 0;
margin-right: 0;
}
}
orderdetails {
.button, table {
width: 100%;
}
@media all and (max-width: 640px) {
form.edit_order {
border: 1px solid $disabled-bright;
margin-bottom: 2rem;
}
}
}
#details, #billing, #shipping, #payment {
border: 0;
margin: 1em 0;
padding: 0;
.content {
border: 1px solid #efefef;
}
}
h5 {
margin: 0;
padding: 0.65em;
background: #f7f7f7;
.label {
font-size: 1em;
padding: 0.3rem 0.35rem 0.275rem;
}
// Logic to turn on & off the alerts for success against each fieldset
label, label.alert, label.success, &.valid label.alert, &.dirty label.success {
display: none;
}
&.dirty label.alert {
display: inline;
}
&.dirty.valid label.alert {
display: none;
}
&.valid label.success {
display: inline;
}
}
h5.dirty {
background: #f7ccc5;
}
h5.valid, h5.dirty.valid {
background: #bfefd1;
}
orderdetails table tr th {
text-align: left;
}
// Logic to swap out up / down accordion icons
//Foundation overrides
dd > a {
@include csstrans;
background: $disabled-light !important;
}
dd > a:hover {
background: $disabled-v-dark !important;
color: white;
}
dd {
span.accordion-up {
display: none;
}
span.accordion-down {
display: inline;
}
&.open {
span.accordion-up {
display: inline;
}
span.accordion-down {
display: none;
}
}
}
.error {
color: #c82020;
}
}

View File

@@ -4,3 +4,11 @@
fieldset {
border: 0;
}
.user-form {
margin-left: auto;
margin-right: auto;
max-width: 1184px;
padding-left: .9375rem;
padding-right: .9375rem;
}

View File

@@ -1,25 +0,0 @@
// Styling for login modal to style tabs
.reveal-modal.login-modal {
border-bottom-color: #efefef;
}
.login-modal {
background: #efefef;
.tabs-content {
background: #fff;
padding-top: 10px;
}
.alert-box {
a {
color: white;
text-decoration: underline;
&:hover {
color: rgba(255, 255, 255, 0.7);
text-decoration: underline;
}
}
}
}

View File

@@ -20,16 +20,16 @@ dialog
// Small - when modal IS full screen
@media only screen and (max-width: 640px) {
height: 500px;
left: 0;
max-height: 100%;
position: absolute !important;
top: 0;
left: 0;
}
// Medium and up - when modal IS NOT full screen
@media only screen and (min-width: 641px) {
top: 10%;
max-height: 100%;
max-height: 90%;
top: 5%;
}
}

View File

@@ -0,0 +1,25 @@
@import '../base/colors';
// Styling for login modal to style tabs
.reveal-modal.login-modal {
border-bottom-color: $modal-background-color;
}
.login-modal {
background: $modal-background-color;
.tabs-content {
background: $modal-content-background-color;
padding-top: 10px;
}
.alert-box a {
color: $modal-alert-link-color;
text-decoration: underline;
&:hover {
color: $modal-alert-link-hover-color;
text-decoration: underline;
}
}
}

View File

@@ -1,10 +0,0 @@
.ui-timepicker-div .ui-widget-header { margin-bottom: 8px; }
.ui-timepicker-div dl { text-align: left; }
.ui-timepicker-div dl dt { height: 25px; margin-bottom: -25px; }
.ui-timepicker-div dl dd { margin: 0 10px 10px 65px; }
.ui-timepicker-div td { font-size: 90%; }
.ui-tpicker-grid-label { background: none; border: none; margin: 0; padding: 0; }
.ui-timepicker-rtl{ direction: rtl; }
.ui-timepicker-rtl dl { text-align: right; }
.ui-timepicker-rtl dl dd { margin: 0 65px 10px 10px; }

View File

@@ -1,12 +0,0 @@
/*
* This is a manifest file that'll automatically include all the stylesheets available in this directory
* and any sub-directories. You're free to add application-wide styles to this file and they'll appear at
* the top of the compiled file, but it's generally better to create a new file per style scope.
*
*= require store/spree_frontend
*= require store/spree_auth
*= require_self
*= require_tree .
*/

View File

@@ -1,13 +1,27 @@
require 'open_food_network/products_cache_integrity_checker'
class Admin::CacheSettingsController < Spree::Admin::BaseController
module Admin
class CacheSettingsController < Spree::Admin::BaseController
def edit
@results = Exchange.cachable.map do |exchange|
checker = OpenFoodNetwork::ProductsCacheIntegrityChecker
.new(exchange.receiver, exchange.order_cycle)
def show
@results = Exchange.cachable.map do |exchange|
checker = OpenFoodNetwork::ProductsCacheIntegrityChecker.new(exchange.receiver, exchange.order_cycle)
{
distributor: exchange.receiver,
order_cycle: exchange.order_cycle,
status: checker.ok?,
diff: checker.diff
}
end
end
{distributor: exchange.receiver, order_cycle: exchange.order_cycle, status: checker.ok?, diff: checker.diff}
def update
Spree::Config.set(params[:preferences])
respond_to do |format|
format.html { redirect_to main_app.edit_admin_cache_settings_path }
end
end
end
end

View File

@@ -1,21 +1,15 @@
module Admin
class ContentsController < Spree::Admin::BaseController
def edit
@preference_sections = [{name: I18n.t('admin.contents.edit.header'), preferences: [:logo, :logo_mobile, :logo_mobile_svg]},
{name: I18n.t('admin.contents.edit.home_page'), preferences: [:home_hero, :home_show_stats]},
{name: I18n.t('admin.contents.edit.producer_signup_page'), preferences: [:producer_signup_pricing_table_html, :producer_signup_case_studies_html, :producer_signup_detail_html]},
{name: I18n.t('admin.contents.edit.hub_signup_page'), preferences: [:hub_signup_pricing_table_html, :hub_signup_case_studies_html, :hub_signup_detail_html]},
{name: I18n.t('admin.contents.edit.group_signup_page'), preferences: [:group_signup_pricing_table_html, :group_signup_case_studies_html, :group_signup_detail_html]},
{name: I18n.t('admin.contents.edit.main_links'), preferences: [:menu_1, :menu_1_icon_name, :menu_2, :menu_2_icon_name, :menu_3, :menu_3_icon_name, :menu_4, :menu_4_icon_name, :menu_5, :menu_5_icon_name, :menu_6, :menu_6_icon_name, :menu_7, :menu_7_icon_name]},
{name: I18n.t('admin.contents.edit.footer_and_external_links'), preferences: [:footer_logo,
:footer_facebook_url, :footer_twitter_url, :footer_instagram_url, :footer_linkedin_url, :footer_googleplus_url, :footer_pinterest_url,
:footer_email, :community_forum_url, :footer_links_md, :footer_about_url]}]
@preference_sections = preference_sections.map do |preference_section|
{ name: preference_section.name, preferences: preference_section.preferences }
end
end
def update
params.each do |name, value|
if ContentConfig.has_preference?(name) || ContentConfig.has_attachment?(name)
ContentConfig.send("#{name}=", value)
ContentConfig.public_send("#{name}=", value)
end
end
@@ -26,5 +20,20 @@ module Admin
redirect_to main_app.edit_admin_content_path
end
private
def preference_sections
[
PreferenceSections::HeaderSection.new,
PreferenceSections::HomePageSection.new,
PreferenceSections::ProducerSignupPageSection.new,
PreferenceSections::HubSignupPageSection.new,
PreferenceSections::GroupSignupPageSection.new,
PreferenceSections::MainLinksSection.new,
PreferenceSections::FooterAndExternalLinksSection.new,
PreferenceSections::UserGuideSection.new
]
end
end
end

View File

@@ -2,7 +2,6 @@ module Admin
class EnterpriseFeesController < ResourceController
before_filter :load_enterprise_fee_set, :only => :index
before_filter :load_data
before_filter :do_not_destroy_referenced_fees, :only => :destroy
def index
@@ -45,22 +44,6 @@ module Admin
private
def do_not_destroy_referenced_fees
product_distribution = ProductDistribution.where(:enterprise_fee_id => @object).first
if product_distribution
p = product_distribution.product
error = I18n.t(:enterprise_fees_destroy_error, id: p.id, name: p.name)
respond_with(@object) do |format|
format.html do
flash[:error] = error
redirect_to collection_url
end
format.js { render text: error, status: 403 }
end
end
end
def load_enterprise_fee_set
@enterprise_fee_set = EnterpriseFeeSet.new :collection => collection
end

View File

@@ -19,7 +19,7 @@ module Admin
# we can authorise #create using an object with required attributes
def build_resource
if parent_data.present?
parent.send(controller_name).build
parent.public_send(controller_name).build
else
model_class.new(params[object_name]) # This line changed
end

View File

@@ -14,9 +14,9 @@ module Admin
@filepath = save_uploaded_file(params[:file])
@importer = ProductImport::ProductImporter.new(File.new(@filepath), spree_current_user, params[:settings])
@original_filename = params[:file].try(:original_filename)
@non_updatable_fields = ProductImport::EntryValidator.non_updatable_fields
check_file_errors @importer
check_spreadsheet_has_data @importer
return if contains_errors? @importer
@ams_data = ams_data
end
@@ -53,7 +53,7 @@ module Admin
@importer = ProductImport::ProductImporter.new(File.new(params[:filepath]), spree_current_user, start: params[:start], end: params[:end], settings: params[:settings])
begin
@importer.send("#{method}_entries")
@importer.public_send("#{method}_entries")
rescue StandardError => e
render json: e.message, response: 500
return false
@@ -62,25 +62,28 @@ module Admin
true
end
def check_file_errors(importer)
def contains_errors?(importer)
if importer.errors.present?
redirect_to '/admin/product_import', notice: @importer.errors.full_messages.to_sentence
return true
end
check_spreadsheet_has_data importer
end
def check_spreadsheet_has_data(importer)
unless importer.item_count
redirect_to '/admin/product_import', notice: I18n.t(:product_import_no_data_in_spreadsheet_notice)
true
end
end
def save_uploaded_file(upload)
filename = 'import' + Time.zone.now.strftime('%d-%m-%Y-%H-%M-%S')
extension = '.' + upload.original_filename.split('.').last
directory = 'tmp/product_import'
Dir.mkdir(directory) unless File.exist?(directory)
File.open(Rails.root.join(directory, filename + extension), 'wb') do |f|
f.write(upload.read)
extension = File.extname(upload.original_filename)
directory = Dir.mktmpdir 'product_import'
File.open(File.join(directory, "import#{extension}"), 'wb') do |f|
data = UploadSanitizer.new(upload.read).call
f.write(data)
f.path
end
end
@@ -89,7 +92,7 @@ module Admin
{
filepath: @filepath,
item_count: @importer.item_count,
supplier_product_counts: @importer.supplier_products,
enterprise_product_counts: @importer.enterprise_products,
import_url: main_app.admin_product_import_process_async_path,
save_url: main_app.admin_product_import_save_async_path,
reset_url: main_app.admin_product_import_reset_async_path,

View File

@@ -15,18 +15,18 @@ module Admin
def edit_object_url(object, options = {})
if parent_data.present?
main_app.send "edit_admin_#{model_name}_#{object_name}_url", parent, object, options
main_app.public_send "edit_admin_#{model_name}_#{object_name}_url", parent, object, options
else
main_app.send "edit_admin_#{object_name}_url", object, options
main_app.public_send "edit_admin_#{object_name}_url", object, options
end
end
def object_url(object = nil, options = {})
target = object ? object : @object
if parent_data.present?
main_app.send "admin_#{model_name}_#{object_name}_url", parent, target, options
main_app.public_send "admin_#{model_name}_#{object_name}_url", parent, target, options
else
main_app.send "admin_#{object_name}_url", target, options
main_app.public_send "admin_#{object_name}_url", target, options
end
end

View File

@@ -1,5 +1,6 @@
require 'open_food_network/permissions'
require 'open_food_network/order_cycle_permissions'
require 'open_food_network/scope_variant_to_hub'
module Admin
class SubscriptionLineItemsController < ResourceController
@@ -12,7 +13,8 @@ module Admin
def build
@subscription_line_item.assign_attributes(params[:subscription_line_item])
@subscription_line_item.price_estimate = price_estimate
render json: @subscription_line_item, serializer: Api::Admin::SubscriptionLineItemSerializer
render json: @subscription_line_item, serializer: Api::Admin::SubscriptionLineItemSerializer,
shop: @shop, schedule: @schedule
end
private
@@ -25,7 +27,7 @@ module Admin
@shop = Enterprise.managed_by(spree_current_user).find_by_id(params[:shop_id])
@schedule = permissions.editable_schedules.find_by_id(params[:schedule_id])
@order_cycle = @schedule.andand.current_or_next_order_cycle
@variant = Spree::Variant.stockable_by(@shop).find_by_id(params[:subscription_line_item][:variant_id])
@variant = variant_if_eligible(params[:subscription_line_item][:variant_id]) if @shop.present?
end
def new_actions
@@ -49,5 +51,9 @@ module Admin
OpenFoodNetwork::ScopeVariantToHub.new(@shop).scope(@variant)
@variant.price + fee_calculator.indexed_fees_for(@variant)
end
def variant_if_eligible(variant_id)
SubscriptionVariantsService.eligible_variants(@shop).find_by_id(variant_id)
end
end
end

View File

@@ -61,10 +61,8 @@ module Admin
def inventory_import_dates
import_dates = VariantOverride.
select('DISTINCT variant_overrides.import_date').
where('variant_overrides.hub_id IN (?)
AND variant_overrides.import_date IS NOT NULL', editable_enterprises.collect(&:id)).
order('import_date DESC')
distinct_import_dates.
for_hubs(editable_enterprises.collect(&:id))
options = [{ id: '0', name: 'All' }]
import_dates.collect(&:import_date).map { |i| options.push(id: i.to_date, name: i.to_date.to_formatted_s(:long)) }

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