Compare commits

...

695 Commits

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

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-18 10:12:37 +01:00
Transifex-Openfoodnetwork
20c41ce69e Updating translations for config/locales/it.yml 2020-06-18 19:11:23 +10:00
Luis Ramos
f6e3e01a10 Extract permitted payment_source attributes from checkout to use them in the backoffice payments controller
Add spec to verify payment source attributes are passed
2020-06-18 09:54:34 +01:00
Transifex-Openfoodnetwork
b5a67e65c5 Updating translations for config/locales/es.yml 2020-06-18 17:42:06 +10:00
Transifex-Openfoodnetwork
da7d36cd0e Updating translations for config/locales/ca.yml 2020-06-18 17:41:48 +10:00
Pau Pérez Fabregat
8f885dd1c5 Merge pull request #5628 from Matt-Yorkley/flaky-caching-spec
Flaky caching spec
2020-06-18 09:37:45 +02:00
Transifex-Openfoodnetwork
fba5f96968 Updating translations for config/locales/nb.yml 2020-06-18 17:33:09 +10:00
Transifex-Openfoodnetwork
0c634c566c Updating translations for config/locales/fr.yml 2020-06-18 17:08:17 +10:00
Transifex-Openfoodnetwork
a9ed081488 Updating translations for config/locales/en_FR.yml 2020-06-18 17:01:02 +10:00
Luis Ramos
37cbcf4172 Merge pull request #5605 from luisramos0/spree_rev
Update spree revision and upgrade ransack to 1.2.3
2020-06-17 20:00:25 +01:00
Luis Ramos
06a37d8ff0 Merge pull request #5566 from rioug/5132-no-error-when-product-csv-malformed
Add handling of CSV::MalformedCSVError for product_importer
2020-06-17 19:58:35 +01:00
Luis Ramos
d0bb625c19 Merge pull request #5593 from coopdevs/fix-report-order-link
Fix link from report to order
2020-06-17 19:55:40 +01:00
Luis Ramos
5163317b10 Merge pull request #5623 from luisramos0/zones
Make Zones editable again
2020-06-17 19:41:20 +01:00
Luis Ramos
91489827a1 Merge pull request #5614 from openfoodfoundation/dependabot/bundler/coffee-rails-4.2.2
Bump coffee-rails from 4.0.1 to 4.2.2
2020-06-17 19:40:59 +01:00
Matt-Yorkley
64b5bde952 Wait for page to actually load after visit shops_path 2020-06-17 12:47:08 +02:00
Matt-Yorkley
86fe032cdb Update calls to #update_attributes! (Rails 4 Rubocop violation) 2020-06-17 12:37:20 +02:00
Matt-Yorkley
640c9e6d2b Re-enable flaky spec 2020-06-17 12:36:42 +02:00
Luis Ramos
01e27dd68c Merge pull request #5492 from pacodelaluna/include-negative-tax-adjustments-in-sales-report
Include adjustments with negative taxes on Sales Tax reports
2020-06-16 20:23:04 +01:00
Matt-Yorkley
add38bf550 Use #image_path helper correctly
Paths should be relative. For example an image under `/app/assets/images/home/banner.jpg` should be: `image_path("home/banner.jpg")`
2020-06-16 18:25:13 +02:00
Matt-Yorkley
c07476e22c Use new Rails 4 #image-url SCSS helper
Paths should be relative. For example an image under `/app/assets/images/home/banner.jpg` should be: `image-url("home/banner.jpg")`
2020-06-16 18:25:12 +02:00
Matt-Yorkley
c370ab04d7 Ensure images in /assets/images** are precompiled and moved correctly to /public/assets folder 2020-06-16 17:01:58 +02:00
Pau Pérez Fabregat
6a31c56601 Merge pull request #5598 from luisramos0/checkout_error
Make checkout js error handling a bit more defensive
2020-06-16 16:18:49 +02:00
François Turbelin
6672cfdaf5 Readd price_adustments after bad rebase 2020-06-16 16:13:56 +02:00
Luis Ramos
2fcafdcf45 Add spec to cover editing zones 2020-06-16 15:13:54 +01:00
Pau Pérez Fabregat
3cfec157ed Merge pull request #5621 from Matt-Yorkley/xit-caching-spec
Set flaky caching spec to pending
2020-06-16 16:11:34 +02:00
Luis Ramos
774b75b649 Make zones spec faster by going directly to zone list page withouth repeating the navigation through Configuration menu 2020-06-16 14:06:01 +01:00
Luis Ramos
3f7fb0ecc2 Add missing permitted attributes to zones 2020-06-16 13:56:39 +01:00
Pau Perez
ff4d7fbc45 Refactor with Arel to perform a single query 2020-06-16 14:01:27 +02:00
Pau Perez
00c9dd7ece Remove N+1 fetching order and li adjustments 2020-06-16 14:01:27 +02:00
François Turbelin
b4952dcbfb Cosmetics 2020-06-16 14:01:27 +02:00
François Turbelin
9abe41f6cb Use OrderTaxAdjustmentsFetcher service 2020-06-16 14:01:27 +02:00
François Turbelin
c729f64fcf Include adjustments without positive taxes 2020-06-16 14:01:27 +02:00
Matt-Yorkley
cf214251fa Set flaky caching spec to pending 2020-06-16 12:59:58 +02:00
dependabot-preview[bot]
dfdf57746a Bump coffee-rails from 4.0.1 to 4.2.2
Bumps [coffee-rails](https://github.com/rails/coffee-rails) from 4.0.1 to 4.2.2.
- [Release notes](https://github.com/rails/coffee-rails/releases)
- [Changelog](https://github.com/rails/coffee-rails/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rails/coffee-rails/compare/v4.0.1...v4.2.2)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Same logic for pry-byebug
2020-05-25 18:15:47 +01:00
Matt-Yorkley
8095371304 Ensure OpenStreetMap credits are aways shown with map and fix credits positioning for /groups page map display 2020-05-25 14:12:12 +02:00
Matt-Yorkley
a3660dfe37 Extract repeated map code to new partial 2020-05-25 14:04:11 +02:00
Matt-Yorkley
e03005ed56 Fix maps and tidy up groups map code 2020-05-25 13:52:56 +02:00
Luis Ramos
cb0aefd29c Make display on attribute available for managers to change, not just super admins 2020-05-25 11:21:53 +01:00
Transifex-Openfoodnetwork
d9d221e4f3 Updating translations for config/locales/en_GB.yml 2020-05-25 18:46:48 +10:00
François Turbelin
b2b988b063 Apply new order directly inside service 2020-05-24 14:41:40 +02:00
Transifex-Openfoodnetwork
5de3fbba1e Updating translations for config/locales/en_FR.yml 2020-05-24 19:14:49 +10:00
Transifex-Openfoodnetwork
ed27ed32e3 Updating translations for config/locales/fr.yml 2020-05-24 19:14:25 +10:00
Luis Ramos
f34f693620 Merge branch 'master' into 3-0-stable-may-22 2020-05-22 22:54:19 +01:00
Pau Pérez Fabregat
ff0e85c877 Merge pull request #5486 from Matt-Yorkley/3-0-caching
[Spree 2.1] Caching
2020-05-22 18:36:49 +02:00
Pau Perez
a33396984f Fix and DRY specs 2020-05-22 18:17:59 +02:00
Pau Perez
d9686d6982 Enable spec files to be executed alone
This fixes the annoying error

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

and let's you execute the spec file in isolation. It slows down way too
much having the run the entire engine test suite while developing. And
it makes me nervous too.
2020-05-22 15:55:03 +02:00
Matt-Yorkley
f0525b861c Update expectations in API caching test
Rails 4 has slightly changed the format of the cache keys here, so the response was not as expected.
2020-05-22 14:54:57 +02:00
Pau Perez
e339a37cd5 Allow to create order_cycle_schedules
There's no way we can create an order_cycle_schedules if the schedule
doesn't have an id, which we can't get if to persist it we need an OC
first, which in turn, will create an order_cycle_schedules.
2020-05-22 14:22:31 +02:00
Matt-Yorkley
b00fbd69ae Update Fragment Caching for Rails 4
Rails 4 introduced "automagically" modified cache keys, that included a digest in the key on any cache entry related to views. This is not what we want at all, fixed here with the `skip_digest: true` option.
2020-05-22 14:22:21 +02:00
Matt-Yorkley
a9abe48ede Re-enable cache invalidation test 2020-05-22 14:21:45 +02:00
Matt-Yorkley
04ffe7b911 Fix expectations and mock responses for Rails 4
Mocking these objects is working differently in Rails 4, and utilising `#and_call_original` helped to ensure different parts of the codebase were receiving the correct response objects (AR relations, etc).
2020-05-22 14:21:45 +02:00
Pau Perez
be9fbae300 Fix misplaced paragraph in shop tab
By wrapping message within 12-cols container, keeping consistency with
the other shop tabs.
2020-05-22 12:37:07 +02:00
Robin Klaus
53c0bcbd0b Changed translation syntax to normal t() call and lazy lookup. 2020-05-22 13:22:57 +10:00
Luis Ramos
12f512e98b Move arrow on OC selector a little to the right so it's centered between end of text (if max length reached) and border 2020-05-21 15:41:26 +01:00
Luis Ramos
b2bfe28173 Remove extra right pad on OC selector, in mobile, this will make the selector be centered 2020-05-21 15:38:55 +01:00
Luis Ramos
ed14a92c7b Make OC selector wider to support more characters where there is enough space for that 2020-05-21 15:38:54 +01:00
Pau Pérez Fabregat
16dfb3c7e9 Merge pull request #5408 from luisramos0/columns_params
[Spree 2.1] Add missing permitted param to Column Preferences controller
2020-05-21 14:41:30 +02:00
Pau Pérez Fabregat
050e83e745 Merge pull request #5410 from luisramos0/fix_some_specs
[Spree 2] Make api/enterprises_controller_spec less flaky
2020-05-21 13:45:39 +02:00
Robin Klaus
16f2c8d7d1 Removed 5 keys per change request in ref to pr5425 2020-05-20 14:13:42 +10:00
Luis Ramos
942dde62ff Merge pull request #5464 from luisramos0/3-0-action-caching
[Spree 2.1] Add actionpack-action_caching gem to make action caching work again
2020-05-19 18:47:55 +01:00
Luis Ramos
758d7c82f7 Rename order_cycle.accessible_by to remove name clash with active record 2020-05-19 12:21:13 +01:00
Luis Ramos
2e9f911958 Add actionpack-action_caching to support action caching 2020-05-19 12:06:24 +01:00
Steve Roberts
446bf268b4 scroll_to substitute 2020-05-19 14:16:45 +10:00
Lucas Hiago
ba30f55e70 Add fullwidth for table selector 2020-05-18 22:53:46 -03:00
Steve Roberts
049b1b4638 Split up the specs again.
This now shows that there is one consistent spec erroring, spec/features/admin/order_cycles/complex_editing_multiple_product_pages_spec.rb:
Capybara::ElementNotFound:
       Unable to find visible checkbox "order_cycle_incoming_exchange_0_select_all_variants" that is not disabled
2020-05-19 10:14:26 +10:00
Eduardo
6d54e6d4a0 change SearchOrders service to search with shipping_method 2020-05-18 20:44:55 -03:00
Eduardo
473b4c63c4 add Shipping Method filter to admin/orders page 2020-05-18 18:46:43 -03:00
Luis Ramos
d1eebe1cfb Merge pull request #5426 from luisramos0/3-0-stable-may13
[Spree 2.1] Merge master into 3-0-stable
2020-05-18 15:05:11 +01:00
Robin Klaus
a0334953db Added 14 translation keys for PayPalExpress payment method 2020-05-18 17:06:07 +10:00
Luis Ramos
6c81c19f00 Remove dead code 2020-05-16 14:19:25 +01:00
Lucas Hiago
98cbe5762a Remove unused css property from image in cancel email 2020-05-15 10:59:56 -03:00
Lucas Hiago
0caa91d057 Remove second table of cancel email instructions style 2020-05-15 10:59:56 -03:00
Lucas Hiago
5d286cb349 Add i18n of new symbols for order cancel mail 2020-05-15 10:59:56 -03:00
Lucas Hiago
f72da4abe4 Add refund message in order cancel mail 2020-05-15 10:59:56 -03:00
Lucas Hiago
42012d6482 Add new order sumary in order cancel mail 2020-05-15 10:59:55 -03:00
Lucas Hiago
1c1200125e Add new greeting table in order cancel mail 2020-05-15 10:59:55 -03:00
Lucas Hiago
0b8771ccf0 Add connect with us footer to order cancelation email 2020-05-15 10:59:55 -03:00
Luis Ramos
4292636e70 Remove close button in product modal 2020-05-15 12:16:19 +01:00
Luis Ramos
d95b2a97b0 Add missing padding above close button (both for the case with image or just with text) and also below product image 2020-05-15 12:12:07 +01:00
Luis Ramos
edaf419857 Use rem instead of px or em 2020-05-15 12:12:07 +01:00
Luis Ramos
38bc076c77 Fix some rubocop issues 2020-05-15 12:12:07 +01:00
Luis Ramos
30fe457cb5 Make product modal show close button only if there is a scroll bar 2020-05-15 12:12:07 +01:00
Luis Ramos
e239bb33f8 Improve the mobile cookies policy modal with a margin 2020-05-15 12:12:07 +01:00
Luis Ramos
3a512478d6 Improve the mobile registration modal by adding a margin 2020-05-15 12:12:07 +01:00
Luis Ramos
4b63893377 Improve mobile login modal with a margin 2020-05-15 12:12:07 +01:00
Luis Ramos
50fa4fc93d Make modal close buttons a little darker with a white cross 2020-05-15 12:12:07 +01:00
Luis Ramos
cbfaaabb72 Adjust different paddings and margins to make mobile product modal contents similar to required design 2020-05-15 12:12:07 +01:00
Luis Ramos
0a378a897b Add close button to mobile product modal, this can be reused in other modals later 2020-05-15 12:12:07 +01:00
Luis Ramos
35ac5e093e Adapt modal size to leave some background visible so that user can click to disable modal 2020-05-15 12:12:07 +01:00
Luis Ramos
39e47998e1 Make the background opacity of modals in the FrontOffice a litle darker according to design 2020-05-15 12:12:07 +01:00
Luis Ramos
14478d5fc1 Style producer name and properties in product modal 2020-05-15 12:12:07 +01:00
Luis Ramos
59a13adff0 Remove product category from product modal 2020-05-15 12:11:32 +01:00
Luis Ramos
fee03c4101 Remove repeated/dead rules 2020-05-15 12:11:32 +01:00
Luis Ramos
9a115afd4f Remove bars around product description and border around product image 2020-05-15 12:11:32 +01:00
dependabot-preview[bot]
3bc09cfcfb Bump stripe from 5.15.0 to 5.22.0
Bumps [stripe](https://github.com/stripe/stripe-ruby) from 5.15.0 to 5.22.0.
- [Release notes](https://github.com/stripe/stripe-ruby/releases)
- [Changelog](https://github.com/stripe/stripe-ruby/blob/master/CHANGELOG.md)
- [Commits](https://github.com/stripe/stripe-ruby/compare/v5.15.0...v5.22.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-05-14 21:03:21 +00:00
Luis Ramos
19da0ba969 Merge branch 'master' into 3-0-stable-may13 2020-05-13 19:50:32 +01:00
Luis Ramos
1671184a3c Merge pull request #5375 from luisramos0/sample_order
[Spree 2.1] OFN v3 comes with sample orders :-)
2020-05-13 12:04:06 +01:00
Luis Ramos
be998a9eb6 Reload shipment before shipping otherwise shipment stays as ready but with shipped_at defined 2020-05-13 12:00:37 +01:00
Luis Ramos
58842e8cab Show order edit link on mobile instead of the cancel link 2020-05-12 19:44:01 +01:00
Luis Ramos
83381ad439 Relax array order verification 2020-05-12 15:46:23 +01:00
Luis Ramos
7804c740a6 Add name to permitted params and fix some rubocop issues 2020-05-12 15:35:47 +01:00
Luis Ramos
cb7a261594 Merge pull request #5374 from luisramos0/3-0-stable-may-5
[Spree 2.1] Merge master into 3-0-stable
2020-05-06 13:57:11 +01:00
Luis Ramos
825f747dff Add more types of sample orders 2020-05-05 23:16:54 +01:00
Luis Ramos
4083da5b16 Add sample order to sample data 2020-05-05 23:16:54 +01:00
Luis Ramos
be4104d6f3 Merge branch 'master' into 3-0-stable-may-5 2020-05-05 19:11:20 +01:00
Steve Roberts
3b8acdc577 Split order_cycle_spec into smaller specs grouped by theme 2020-05-05 15:39:45 +10:00
Pau Pérez Fabregat
e04b18c70e Merge pull request #5320 from luisramos0/vo_fix
[Spree 2.1] Fix variant overrides specs and shops spec
2020-04-29 17:30:41 +02:00
Luis Ramos
f3e651b1f7 present? calls length which is breaking it with error ActiveModel::MissingAttributeError Exception: missing attribute: address_id
any? works well as it just verifies the size of the collection
2020-04-28 16:31:11 +01:00
Luis Ramos
7e12142f91 Collection must be after load_data so that hubs are already available for VOs calculation 2020-04-28 16:31:11 +01:00
Luis Ramos
794fb5dfc5 Merge pull request #5316 from luisramos0/3-0-stable-Apr28
[Spree 2.1] Merge master into 3-0-stable
2020-04-28 16:30:29 +01:00
Luis Ramos
8c29797b23 Remove empty space on ffi line that was breaking bundle install
fuubar gets automatically moved to 2-5-0 as it is in master
2020-04-28 14:57:21 +01:00
Luis Ramos
839b373b5c Merge branch 'master' into 3-0-stable-Apr28 2020-04-28 13:40:19 +01:00
Pau Pérez Fabregat
e1c2b7e105 Merge pull request #5159 from luisramos0/timezone_mixup
[Spree 2.1] Fix timezone mix up in a spec
2020-04-16 11:38:54 +02:00
Pau Pérez Fabregat
7b656fa0a4 Merge pull request #5194 from luisramos0/update_spree_rev
[Spree 2.1] Update spree revision to a version that doesnt depend on deface
2020-04-16 11:37:42 +02:00
Luis Ramos
7d82c6a014 Update spre revision to a version that doesnt depend on deface, this allows us to upgrade nokogiri (done in another PR in the master branch) 2020-04-09 13:51:54 +01:00
Luis Ramos
4b23adca2d Merge pull request #5157 from luisramos0/email_validation
[Spree 2.1] Add order.email regexp validation
2020-04-09 10:14:11 +01:00
Luis Ramos
ff799b6e82 Avoid using update_attributes that save the order to the DB 2020-04-07 11:13:29 +01:00
Maikel
45c0209971 Merge pull request #5154 from luisramos0/prop_strong
[Spree 2.1] Add strong params implementation to properties controller
2020-04-07 16:27:22 +10:00
Luis Ramos
fa4b8832e9 Fix timezone mix up in specs
Converting times with timezones to string was ignoring the timezone and this making the start date be before the end date in this spec
2020-04-04 16:39:23 +01:00
Luis Ramos
4ceaebf098 Add order.email regexp validation and add some tests for it 2020-04-04 16:13:23 +01:00
Luis Ramos
451cfac788 Merge pull request #4995 from Matt-Yorkley/3-0-eager-load
[Spree 2.1] Staging and Production configs
2020-04-04 12:21:25 +01:00
Luis Ramos
4f08ed1801 Remove commented turbo-sprockets-rails3 from Gemfile, thsi gem is not needed in rails 4 2020-04-04 11:39:20 +01:00
Luis Ramos
1364a5e367 Merge pull request #4916 from luisramos0/adj_eli
[Spree 2.1] Make Spree::OrderUpdater update all adjustments, not just promotions and shipment adjustments
2020-04-04 11:28:13 +01:00
Luis Ramos
07264446e6 Add strong params implementation to properties controller 2020-04-04 11:17:38 +01:00
Luis Ramos
b8f8db0341 Merge pull request #5147 from luisramos0/3-0-stable-apr3
[Spree 2.1] Merge master into 3-0-stable
2020-04-04 11:03:14 +01:00
Luis Ramos
04986dd0d5 Merge pull request #4932 from luisramos0/line_items_fix
Adapt line items scope to include deleted variants and deleted products - rails 4 fix
2020-04-03 20:09:35 +01:00
Luis Ramos
384ca310a3 Merge branch 'master' into 3-0-stable-apr3 2020-04-03 18:26:26 +01:00
Luis Ramos
154e223a12 Make sure test data is available before the test 2020-04-01 10:00:07 +01:00
Luis Ramos
80b9800b36 Replace SQL with equivalent AR code 2020-04-01 10:00:07 +01:00
Luis Ramos
6e095bdb68 Fix bug in line_item_decorator, should be inner join not left outer join 2020-04-01 10:00:07 +01:00
Luis Ramos
a4c7dbc329 Add comment to better explain why this scope is not simply using joins(:product) 2020-04-01 10:00:07 +01:00
Luis Ramos
8909238682 Fix one rubocop issue 2020-04-01 10:00:07 +01:00
Luis Ramos
7c367da904 Adapt LineItem#supplied_by_any scope to include deleted variants and deleted products (both not included in the respective default scopes) and use it in Permissions::Order so that variants of deleted products are seen in reports 2020-04-01 10:00:07 +01:00
Luis Ramos
0c8635403a Delete dead scope in line_items
This is not used anywhere in the code
2020-04-01 10:00:07 +01:00
Pau Pérez Fabregat
a218eab67b Merge pull request #4987 from Matt-Yorkley/3-0-packing
[Spree 2.1] Packing report deleted variants
2020-03-26 17:37:51 +01:00
Pau Pérez Fabregat
1c2815d2b7 Merge pull request #5044 from luisramos0/add_spring
[Spree 2.1] Re-add spring and newrelic_rpm
2020-03-26 11:23:19 +01:00
Pau Pérez Fabregat
b3a47964e6 Merge pull request #5033 from luisramos0/ent_fees_data_types
[Spree 2.1] Adapt EnterpriseFeeSummary report code to slightly different rails 4 sql data conversion
2020-03-26 11:20:44 +01:00
Pau Pérez Fabregat
9daa40ce9c Merge pull request #5028 from luisramos0/remove_attr_accessible
[Spree 2.1] Remove new attr_accessible entries
2020-03-26 11:20:08 +01:00
Pau Pérez Fabregat
f70e155b1b Merge pull request #4984 from Matt-Yorkley/3-0-cart-route
[Spree 2.1] Fix cart page update
2020-03-26 11:14:07 +01:00
Matt-Yorkley
0cc5cbd1d2 Merge pull request #5038 from luisramos0/strong_params_prod
[Spree 2.1] Implement strong params in products, variants, variant_overrides and resource controllers
2020-03-25 18:35:58 +01:00
Luis Ramos
f1b64e90e0 Add comment to explain unusual fix 2020-03-25 11:49:14 +00:00
Matt-Yorkley
433ae00818 Ensure :info log level is set in Rails 4 2020-03-25 11:39:03 +00:00
Matt-Yorkley
7bc29769cd Fix logging configs for Rails 4 2020-03-25 11:38:29 +00:00
Matt-Yorkley
483d847b00 Use eager_load = true in production and staging environments 2020-03-25 11:36:33 +00:00
Luis Ramos
95ba1fd02c Merge pull request #5065 from luisramos0/upgrade_deps
[Spree 2.1] Upgrade some dependencies... rails 4.0.13 :-)
2020-03-25 11:04:13 +00:00
Luis Ramos
c02a3e919f Merge pull request #5039 from luisramos0/strong_params_ent
[Spree 2.1] Implement strong params in enterprises, enterprise_groups, enterprise_roles, customers and customer_details controllers
2020-03-25 10:53:01 +00:00
Luis Ramos
b7cb95ae3e Fix problem in PermittedAttributes::Address namespace 2020-03-25 10:52:23 +00:00
Luis Ramos
6b62c8aafd Extract permitted attributes to separate service 2020-03-25 10:52:23 +00:00
Luis Ramos
e5f56c19c0 Switch to using PermittedAttributes::Address instead of spree version of it that will be removed later 2020-03-25 10:52:23 +00:00
Luis Ramos
22a005df47 Add needed permitted attributes to admin/customers_controller 2020-03-25 10:51:55 +00:00
Luis Ramos
9b0d7b9604 Ammend customers_controller to include ship address attributes permit and also permit #update with specific attributes 2020-03-25 10:51:55 +00:00
Luis Ramos
4fd3026bd8 Add strong parameters permits to some controllers 2020-03-25 10:51:55 +00:00
Luis Ramos
a9a92e11e2 Bring some strong parameters code from spree to our Spree controllers
This code comes from spree commit fbc2d150f6
2020-03-25 10:51:55 +00:00
Luis Ramos
fec5e1d84e Add needed param to enterprises controller 2020-03-25 10:51:55 +00:00
Luis Ramos
ad9e5d979a Permit extra needed params in enterprises controller 2020-03-25 10:51:55 +00:00
Luis Ramos
29a457575b Permit specific params in enterprise_groups controller 2020-03-25 10:51:55 +00:00
Luis Ramos
5c179a0932 Ammend strong params on enterprise controller to cover create action 2020-03-25 10:51:55 +00:00
Luis Ramos
34488e5f63 Handle strong params in enterprise_roles controller 2020-03-25 10:51:55 +00:00
Luis Ramos
6ba3a3c373 Handle strong params in admin/enterprises_controller 2020-03-25 10:51:55 +00:00
Pau Pérez Fabregat
a72957e3c3 Merge pull request #4827 from luisramos0/strong_params
[Spree 2.1] Implement Strong Parameters in various controllers
2020-03-25 10:07:14 +01:00
Pau Pérez Fabregat
2c487c2592 Merge pull request #5037 from luisramos0/strong_params_subs
[Spree 2.1] Implement strong params in subscriptions controller
2020-03-25 09:50:47 +01:00
Pau Pérez Fabregat
d4d72c6c6c Merge pull request #5036 from luisramos0/strong_params_users
[Spree 2.1] Implement strong params in user related controllers
2020-03-25 09:48:52 +01:00
Pau Pérez Fabregat
b323364661 Merge pull request #5035 from luisramos0/strong_params_checkout
[Spree 2.1] Implement strong params in checkout controller
2020-03-25 09:46:53 +01:00
Pau Pérez Fabregat
e70daf53ce Merge pull request #4876 from luisramos0/strong_params_oc
[Spree 2.1] Implement strong params in admin Order cycles controller
2020-03-25 09:44:13 +01:00
Pau Pérez Fabregat
c5621b7740 Merge pull request #5034 from luisramos0/strong_params_payment_methods
[Spree 2.1] Implement strong params in admin payment methods controller
2020-03-25 09:39:34 +01:00
Luis Ramos
570fb4bfb4 Upgrade factory_bot_rails 2020-03-24 19:18:13 +00:00
Luis Ramos
89cc7ee5ef Upgrade devise-encryptable to 0.2.0 which is latest 2020-03-24 19:18:13 +00:00
Luis Ramos
5453fed716 Upgrade rails from 4.0.0 to 4.0.13 2020-03-24 19:18:13 +00:00
Luis Ramos
b8ed28b38c Remove deface, it's already included in spree_core, it's not a direct dependency of OFN anymore 2020-03-24 19:18:13 +00:00
Luis Ramos
2de550eac1 Make OrderUpdate update all adjustments again as in v2.0.4 otherwise adjustments that are not shipment adjustments will not be calculated correctly 2020-03-22 20:08:11 +00:00
Luis Ramos
85f6be756e Merge pull request #5027 from luisramos0/3-0-stable-mar20
[Spree 2.1] Merge master into 3-0-stable - 20 March 2020
2020-03-22 13:20:54 +00:00
Luis Ramos
658a024272 Re-add spring and newrelix_rpm 2020-03-22 10:41:59 +00:00
Luis Ramos
478f885b26 Fix problem in PermittedAttributes::Variant namespace 2020-03-21 22:36:31 +00:00
Luis Ramos
5e6a210632 Fix problem in PermittedAttributes::User namespace 2020-03-21 22:36:03 +00:00
Luis Ramos
4e43535512 Add missing permitted attribute 2020-03-21 20:30:34 +00:00
Luis Ramos
3ccd58d50b Fix a problem in the permit list to allow a list to be taken 2020-03-21 20:30:34 +00:00
Luis Ramos
5a0319213f Fix schedules controller permitted attributes 2020-03-21 20:30:34 +00:00
Luis Ramos
b7c0caf883 Add needed permitted attributes to orders_controller 2020-03-21 20:30:34 +00:00
Luis Ramos
8c5dfea92f Fix strong params in order_cycles and schedules controllers 2020-03-21 20:30:34 +00:00
Luis Ramos
2a426d29b6 Permit specific params in zones controller 2020-03-21 20:30:34 +00:00
Luis Ramos
47505b6225 Permit specific params in shipping methods controller 2020-03-21 20:30:34 +00:00
Luis Ramos
6fa1ed03dc Permit specific params in adjustments controller 2020-03-21 20:30:34 +00:00
Luis Ramos
d73d851095 Permit specific params in tax_rates controller 2020-03-21 20:30:34 +00:00
Luis Ramos
495c3a3810 Permit specific params in images controller 2020-03-21 20:30:34 +00:00
Luis Ramos
9681437fba Permit specific params in tax_categories controller 2020-03-21 20:30:34 +00:00
Luis Ramos
b99d4ab627 Permit specific params in schedules controller 2020-03-21 20:30:34 +00:00
Luis Ramos
423d5a5a61 Permit specific params in taxonomies controller 2020-03-21 20:30:34 +00:00
Luis Ramos
e5a214da78 Permit specific params in states controller 2020-03-21 20:30:34 +00:00
Luis Ramos
46025915d5 Make taxons_controller strong_params method consistent with all other controllers 2020-03-21 20:30:34 +00:00
Luis Ramos
e23267156d Improve inventory_items_controller strong params by not using permit! 2020-03-21 20:30:34 +00:00
Luis Ramos
6bd72f44de Handle strong params in credit card controllers 2020-03-21 20:30:34 +00:00
Luis Ramos
913ea5b883 Handle strong parameters in bulk_line_items controller 2020-03-21 20:30:34 +00:00
Luis Ramos
d496a4bdc8 Add strong parameters permits to some controllers 2020-03-21 20:30:34 +00:00
Luis Ramos
c15433af3f Bring some strong parameters code from spree to our Spree controllers
This code comes from spree commit fbc2d150f6
2020-03-21 20:30:34 +00:00
Luis Ramos
244499a27d Extract permitted atttributes to specific classes 2020-03-21 19:41:05 +00:00
Luis Ramos
58a2805bc9 Make resource controller raise error if permitted_resource_params is not overriden 2020-03-21 19:41:05 +00:00
Luis Ramos
49a2522305 Permit specific params in variants controller 2020-03-21 19:27:55 +00:00
Luis Ramos
527f6cb624 Add necessary attributes to admin/products_controller and handle empty params case 2020-03-21 19:14:26 +00:00
Luis Ramos
36389b7bed Add missing permitted attributes to bulk_product_update controller 2020-03-21 19:14:26 +00:00
Luis Ramos
b5cdcdf8cb Permit specific params in products controller 2020-03-21 19:14:26 +00:00
Luis Ramos
a261ae118d Add missing permitted attributes to variant overrides controller 2020-03-21 19:14:26 +00:00
Luis Ramos
7320b38b93 Add missing attributes to variant override controller 2020-03-21 19:14:26 +00:00
Luis Ramos
0151b5ee9a Permit extra needed params in variant overrides controller 2020-03-21 19:14:26 +00:00
Luis Ramos
5b37e89738 Handle strong params in variant_overrides_controller
We use a simpler way to permit on array within params here and change products_controller to the same style
2020-03-21 19:14:26 +00:00
Luis Ramos
c110f4832d Handle strong params in spree/admin/products_controller 2020-03-21 19:14:26 +00:00
Luis Ramos
79b0867507 Extract permitted attributes to separate service 2020-03-21 19:08:37 +00:00
Luis Ramos
58c83d056d Add missing permitted attributes to subscriptions controller 2020-03-21 18:57:37 +00:00
Luis Ramos
c3897b2f1c Handle strong params in subscriptions controller 2020-03-21 18:57:37 +00:00
Luis Ramos
d7cfda8385 Handle strong params in subscription_line_items controller 2020-03-21 18:57:37 +00:00
Luis Ramos
0ee562c718 Add test coverage for PermittedAttributes::User 2020-03-21 18:48:04 +00:00
Luis Ramos
aec7f12f5a Extract common user permitted attributes to a separate class 2020-03-21 18:31:14 +00:00
Luis Ramos
6ed93da3f1 Fix case with empty spree_user in user_registrations controller 2020-03-21 18:00:04 +00:00
Luis Ramos
d0bd2818c2 Handle strong params on users_controller 2020-03-21 18:00:04 +00:00
Luis Ramos
431076fc6d Add strong parameters permits to admin users_controller 2020-03-21 17:59:46 +00:00
Luis Ramos
980fdd65a1 Replace hash rockets syntax 2020-03-21 17:00:08 +00:00
Luis Ramos
2c453359c1 Extract permitted params into a specific service 2020-03-21 16:49:26 +00:00
Luis Ramos
1d9a6edefb Permit params in checkout controller before we adapt them to bypass issues with permitting added attributes like source CreditCard 2020-03-21 16:30:20 +00:00
Luis Ramos
5ae2e6865c Add one more needed permitted attribute to checkout controller 2020-03-21 16:30:20 +00:00
Luis Ramos
d7cccd4143 Add guard clause in checkout_controller for empty params[:order] 2020-03-21 16:30:20 +00:00
Luis Ramos
5af27bb14e Make checkout controller handle strong parameters 2020-03-21 16:30:20 +00:00
Luis Ramos
fd2cf7295e Extract permitted_attributes from order_cycle_controller into a specific service 2020-03-21 16:17:20 +00:00
Luis Ramos
20c7a0d3ef Adapt to latest changes in order cycles controller strong params changes 2020-03-21 14:45:51 +00:00
Luis Ramos
57f8fa26ab Fix strong params in order_cycles 2020-03-21 14:45:51 +00:00
Luis Ramos
1a46e7b7ee Improve strong params implementation on order_cycle controller and fix corresponding specs 2020-03-21 14:45:51 +00:00
Luis Ramos
905811ccb3 Handle strong params in admin order_cycles controller 2020-03-21 14:45:51 +00:00
Luis Ramos
df799340df Add missing permitted attributes to payment_methods controller 2020-03-21 14:21:52 +00:00
Luis Ramos
eac0da9812 Fix payment method controllers by removing unnecessary param that only exists in stripe connect payment method preferred_enterprise_id 2020-03-21 14:09:33 +00:00
Luis Ramos
e5ebf45765 Improve strong params implementation on payment methods controller by specifying specific list of permitted attributes 2020-03-21 14:09:33 +00:00
Luis Ramos
38849f5589 Extract method in payments_method_controller to make it readable 2020-03-21 14:09:32 +00:00
Luis Ramos
86d09ff21e Bring strong parameters code from spree to payment_methods_controller
This code comes from spree commit fbc2d150f6
2020-03-21 14:08:03 +00:00
Luis Ramos
337b2ab592 Merge pull request #4979 from Matt-Yorkley/3-0-customer-details
[Spree 2.1] Customer details
2020-03-21 13:26:09 +00:00
Matt-Yorkley
80e5608436 Ensure customer selection dropdown is visible when adding customer details
For some reason the order is in address state here instead of cart state when adding customer details. There's a conditional in the view which loads the customer selection dropdown that was not being triggered, so a customer could not be selected (and their existing address was not being filled out in the form).

Fixes:

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

     NoMethodError:
       undefined method `lastname' for nil:NilClass
     # ./spec/features/admin/orders_spec.rb:179:in `block (2 levels) in <top (required)>'
2020-03-21 14:14:31 +01:00
Luis Ramos
b33969e6a2 Adapt to slightly different rails 4 sql data conversion 2020-03-21 12:50:34 +00:00
Luis Ramos
9915717a22 Remove attr_accessible from paper_trail config
In rails 4 this is not needed
2020-03-20 15:09:18 +00:00
Luis Ramos
03cdaf589e Remove newly added attr_accessible from stripe_sca
This is not needed, in rails 4 the params are permitted at controller level
2020-03-20 15:08:29 +00:00
Luis Ramos
1c628fac58 Merge branch 'master' into 3-0-stable-mar20 2020-03-20 11:28:06 +00:00
Luis Ramos
eccaaca907 Merge pull request #4930 from luisramos0/3-0-stable-mar6
Merge master into 3-0-stable
2020-03-17 14:49:30 +00:00
Pau Pérez Fabregat
42d5b5d8a3 Merge pull request #4974 from luisramos0/payment_rollback
[Spree 2.1] Bypass broken payment rollback callback
2020-03-17 15:37:28 +01:00
Pau Pérez Fabregat
b2d015416a Merge pull request #4934 from luisramos0/latest_spree_branch
[Spree 2.1] Use latest version of spree which includes PR openfoodfoundation/spree#39
2020-03-17 09:55:49 +01:00
Matt-Yorkley
1cba129432 Ensure line_item.variant succeeds when variant is soft-deleted 2020-03-12 19:13:15 +01:00
Matt-Yorkley
e24d8d7104 Fix deprecation warning for use of #includes without #references 2020-03-12 19:12:36 +01:00
Matt-Yorkley
40b8eb470c Fix deprecation warning for use of #all 2020-03-12 19:12:06 +01:00
Luis Ramos
f2089af0c4 Merge pull request #4907 from luisramos0/3-0-enterprise_relationship
[Spree 2.1] Uncomment Enterprise#relate_to_owners_enterprises
2020-03-12 17:18:47 +00:00
Luis Ramos
949b6ebad1 Merge pull request #4982 from Matt-Yorkley/3-0-orders-form
[Spree 2.1] Fix order index search form
2020-03-12 16:58:08 +00:00
Luis Ramos
32a4355f09 Merge branch 'master' into 3-0-stable-mar6 2020-03-12 16:54:09 +00:00
Luis Ramos
a209b3e860 Merge pull request #4980 from Matt-Yorkley/3-0-destroy-route
[Spree 2.1] Line items destroy route
2020-03-12 16:28:05 +00:00
Matt-Yorkley
9a5452cd52 Delete test in line_items_controller_spec.rb
Rails 4 does not recognise requests to destroy routes without ids as valid routes.

Fixes:

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

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

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

     AbstractController::ActionNotFound:
       The action 'update' could not be found for CartController
     # ./lib/open_food_network/rack_request_blocker.rb:36:in `call'
     # ------------------
     # --- Caused by: ---
     # Capybara::ExpectationNotMet:
     #   expected to find text "Insufficient stock available, only 2 remaining" in "Internal Server Error The action 'update' could not be found for CartController WEBrick/1.3.1 (Ruby/2.3.7/2018-03-28) at 127.0.0.1:38614"
     #   ./spec/features/consumer/shopping/cart_spec.rb:182:in `block (5 levels) in <top (required)>'
2020-03-12 13:34:55 +01:00
Pau Pérez Fabregat
62c35ef6e5 Merge pull request #4953 from luisramos0/sch_fix
Fix problem with misssing params in schedules controller
2020-03-12 12:57:27 +01:00
Pau Pérez Fabregat
f6a1a101a8 Merge pull request #4955 from luisramos0/auth_fix
[Spree 2.1] Fix authentication spec by adapting code to devise 3
2020-03-12 12:51:46 +01:00
Pau Pérez Fabregat
1cba857bdb Merge pull request #4933 from luisramos0/ent_helper
[Spree 2.1] Fix tag rule applicator in enterprises_helper
2020-03-12 12:49:18 +01:00
Pau Pérez Fabregat
568cba9d58 Merge pull request #4941 from luisramos0/devise
[Spree 2.1] Delete unnecessary code related to spree_auth_devise
2020-03-12 12:48:59 +01:00
Pau Pérez Fabregat
4b12d0be46 Merge pull request #4940 from luisramos0/ent_ctrl
[Spree 2.1] Fix issues in EnterprisesController
2020-03-12 12:48:28 +01:00
Pau Pérez Fabregat
de06eed945 Merge pull request #4911 from luisramos0/3-0-manifest
[Spree 2.1] Change Shipment#manifest to include deleted variants (again, this time in rails 4)
2020-03-12 12:47:45 +01:00
Matt-Yorkley
d62d89aa4f Fix order index search form
Fixes:

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

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

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

     ActionView::Template::Error:
       No route matches {:action=>"index", :controller=>"spree/admin/orders"}
     # ./app/views/spree/admin/orders/_filters.html.haml:2:in `_a1b716152f19bf3f4772a98e56adf411'
     # ./app/views/spree/admin/orders/index.html.haml:20:in `block in _d04c5552f7a480bf5f02e5fad0c10de6'
     # ./app/views/spree/admin/orders/index.html.haml:19:in `_d04c5552f7a480bf5f02e5fad0c10de6'
     # ./spec/views/spree/admin/orders/index.html.haml_spec.rb:34:in `block (3 levels) in <top (required)>'
     # ./spec/views/spree/admin/orders/index.html.haml_spec.rb:8:in `block (2 levels) in <top (required)>'
     # ------------------
     # --- Caused by: ---
     # ActionController::UrlGenerationError:
     #   No route matches {:action=>"index", :controller=>"spree/admin/orders"}
     #   ./app/views/spree/admin/orders/_filters.html.haml:2:in `_a1b716152f19bf3f4772a98e56adf411'
2020-03-12 12:44:50 +01:00
Luis Ramos
5506cc86d2 Bypass after_rollback callback in payment
This is causing several specs to fail on rollback and, according to some manual testing (and all the auto tests we have), we dont need this fix in OFN
2020-03-11 14:33:54 +00:00
Luis Ramos
de2c6a8717 Revert previous commits and use collection_singular_ids=(ids) setter instead 2020-03-10 11:21:36 +00:00
Luis Ramos
014e22a7ad Fix problem with misssing params in schedules controller and adapt its spec 2020-03-09 16:04:59 +00:00
Luis Ramos
5ce4fec68b Add html to show the errors reported by devise 3 about password and password confirmation mismatch on user.errors[:password_confirmation] (instead of user.errors[:password]) 2020-03-09 15:48:45 +00:00
Luis Ramos
8c367a2ed2 Merge branch 'master' into 3-0-stable-mar6 2020-03-09 13:20:19 +00:00
Luis Ramos
e5f05b4db9 Handle case where no user_ids are sent to the controller. Fixes original spec. 2020-03-07 20:10:32 +00:00
Luis Ramos
7daa68a8bc Adapt consumer/shopping/orders_spec to use an order with a nil user to test a guest checkout, which is what happens in the real checkout 2020-03-07 20:00:40 +00:00
Luis Ramos
56c29ab472 Make EnterprisesController inherit from Api::BaseController to fix authentication and fix problem with saving params[:user_ids] 2020-03-07 18:14:36 +00:00
Luis Ramos
ffe814ce6b Adapt specs to not use anonymous user
Api::BaseController#authenticate is already taking care of the unauthenticated use case when spree_current_user is nil
2020-03-07 18:14:07 +00:00
Luis Ramos
e4d307fe5e Remove dead code related to user management 2020-03-07 18:14:07 +00:00
Luis Ramos
855d08957c Adjust completed_order_with_totals to have a distributor so that logic around refreshing shipping rates doesnt fail badly 2020-03-06 16:01:29 +00:00
Luis Ramos
063f733dda Use latest version of spree which includes PR openfoodfoundation/spree#39 2020-03-06 15:05:29 +00:00
Luis Ramos
4b21aaafc4 Convert ActiveRecord_Associations_CollectionProxy to array so that the modifications the tagRuleApplicator does on it will remain
Reject on ActiveRecord_Associations_CollectionProxy wont work
2020-03-06 13:51:53 +00:00
Luis Ramos
0815068050 Merge branch 'master' into 3-0-stable-mar6 2020-03-06 09:20:03 +00:00
Pau Pérez Fabregat
4ea891ee2f Merge pull request #4834 from Matt-Yorkley/3-0-bind-message
[Spree 2.1] PG::ProtocolViolation: ERROR: bind message supplies 0 parameters...
2020-03-05 19:31:06 +01:00
Pau Pérez Fabregat
2a010a3233 Merge pull request #4919 from luisramos0/ship_ctrl
[Spree 2.1] Fix shipments admin/enterprises and api/enterprises controller specs
2020-03-05 19:07:10 +01:00
Luis Ramos
cfbec2accc Fix controller specs after PR #4675 adapted code to rails 4 finders 2020-03-05 11:55:13 +00:00
Luis Ramos
0f726c207f Fix shipments controller after PR #4675 adapted code to rails 4 finders 2020-03-04 14:47:32 +00:00
Luis Ramos
3b37fa8872 Move variant scoping from alias method into manifest method 2020-03-03 16:40:31 +00:00
Luis Ramos
5688de4936 Make Shipment#manifest work with deleted variants again
This makes the default variant scope in inventory_unit being used which includes deleted variants
2020-03-03 16:38:03 +00:00
Luis Ramos
d8a92eec4b Bring Shipment#manifest from spree as is 2020-03-03 16:37:00 +00:00
Luis Ramos
e584233c9e Uncomment code that was commented earlier on in the upgrade, we are now ready to handle this 2020-03-03 14:25:17 +00:00
Luis Ramos
cf777b3fa2 Merge pull request #4882 from Matt-Yorkley/3-0-api-with-nil-id
[Spree 2.1] Fix spec setup in api/orders_controller_spec
2020-03-03 10:00:32 +00:00
Pau Pérez Fabregat
9980723060 Merge pull request #4880 from Matt-Yorkley/3-0-duplicate-validations
[Spree 2.1] Fix duplicate validations in payment methods and shipping methods
2020-03-03 10:44:40 +01:00
Pau Pérez Fabregat
f5ec11047a Merge pull request #4896 from Matt-Yorkley/3-0-cc_type
[Spree 2.1] Add missing :cc_type attribute to default :credit_card factory
2020-03-03 10:43:18 +01:00
Pau Pérez Fabregat
f50593ced8 Merge pull request #4883 from Matt-Yorkley/3-0-helper
[Spree 2.1] Fix expectation in helper spec
2020-03-03 10:42:28 +01:00
Pau Pérez Fabregat
b0962f65da Merge pull request #4872 from Matt-Yorkley/3-0-touch
[Spree 2.1] Touch on new records
2020-03-03 10:39:58 +01:00
Pau Pérez Fabregat
a47745c1cc Merge pull request #4866 from Matt-Yorkley/3-0-ofn-qz
[Spree 2.1] ofn-qz
2020-03-03 10:37:10 +01:00
Pau Pérez Fabregat
a60974c760 Merge pull request #4864 from luisramos0/oc_times
[Spree 2.1] Fix OrderCycle.earliest_closing_times spec
2020-03-03 10:36:35 +01:00
Pau Pérez Fabregat
e733761e8a Merge pull request #4847 from Matt-Yorkley/3-0-enterprise-user
[Spree 2.1] Fix #create_enterprise_user
2020-03-03 10:30:25 +01:00
Pau Pérez Fabregat
390cc61273 Merge pull request #4867 from Matt-Yorkley/3-0-gmappable
[Spree 2.1] acts_as_gmappable
2020-03-03 10:28:12 +01:00
Pau Pérez Fabregat
1e2e50ce54 Merge pull request #4888 from Matt-Yorkley/3-0-shipping-method-id
[Spree 2.1] Remove assignment of invalid attribute in test setup
2020-03-03 10:26:15 +01:00
Pau Pérez Fabregat
c48bd12440 Merge pull request #4843 from Matt-Yorkley/3-0-product-import
[Spree 2.1] Product import specs
2020-03-03 10:21:48 +01:00
Matt-Yorkley
6cb8bb2fc3 Add missing :cc_type attribute to default :credit_card factory
Fixes 5 specs, including:

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

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

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

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

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

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

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

      ActiveRecord::UnknownAttributeError:
        unknown attribute: shipping_method_id
      # ./spec/features/consumer/shopping/orders_spec.rb:30:in `block (3 levels) in <top (required)>'
      # ------------------
      # --- Caused by: ---
      # NoMethodError:
      #   undefined method `shipping_method_id=' for #<Spree::Order:0x00007f5e8bafe6f0>
      #   ./spec/features/consumer/shopping/orders_spec.rb:30:in `block (3 levels) in <top (required)>'
2020-03-02 20:37:58 +01:00
Matt-Yorkley
0d08ad7d2e Fix expectation in helper spec
The output of this link helper has changed slightly. All the attributes are the same as before, but they seem to be in alphabetical order now.

Fixes:

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

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

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

Fixes:

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

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

Fixes:

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

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

        (compared using ==)
      # ./spec/models/spree/payment_method_spec.rb:16:in `block (2 levels) in <module:Spree>'
2020-03-02 19:02:07 +01:00
Matt-Yorkley
a0999f5d58 Check #persisted? before calling #touch
Rails 4 now throws a fatal error if calling #touch on an object that hasn't been saved yet: c63cfc8722/activerecord/lib/active_record/persistence.rb (L957)

Fixes:

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

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

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

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

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

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

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

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

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

Fixes:

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

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

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

        expected: nil
             got: "SAMEORIGIN"
      # ./spec/requests/embedded_shopfronts_headers_spec.rb:75:in `block (4 levels) in <top (required)>'
2020-02-27 20:53:09 +01:00
Luis Ramos
bd0245229b Move enterprise logo and promo_image setting in factories to after creation fixes a problem with enterprise_roles in the enterprise validation 2020-02-27 18:32:56 +00:00
Luis Ramos
b1714d73ef Capitalize 'Method' in the flash message to make specs pass 2020-02-27 18:01:24 +00:00
Luis Ramos
ade52dd07d Make ship methods services query work with rails 4, bool_or now results in a boolean and not in t or f as before 2020-02-27 17:40:32 +00:00
Matt-Yorkley
0fa73e3b02 Fix headers in api/base_controller spec
The headers in the request were not being populated correctly in the test, so the #api_key method was not functioning as intended.

Fixes:

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

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

        (compared using ==)

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

      # ./spec/controllers/api/base_controller_spec.rb:40:in `block (3 levels) in <top (required)>'
2020-02-27 11:23:48 +01:00
Matt-Yorkley
c758cb5508 Fix expectations in order_shipment_spec
Some depreacted calls to #find_by_* had previously been updated elsewhere, but the spec was still checking if the object received the #find_by_shipping_method_id message.

Fixes:

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

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

Fixes 2 instances of this error:

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

      NoMethodError:
        private method `total_units' called for #<OpenFoodNetwork::OrdersAndFulfillmentsReport:0x00007f8db5d67168>
      # ./lib/open_food_network/orders_and_fulfillments_report/supplier_totals_report.rb:8:in `total_units'
      # ./lib/open_food_network/orders_and_fulfillments_report/supplier_totals_report.rb:48:in `block in columns'
      # ./lib/open_food_network/order_grouper.rb:41:in `block in build_table'
      # ./lib/open_food_network/order_grouper.rb:41:in `map'
      # ./lib/open_food_network/order_grouper.rb:41:in `build_table'
      # ./lib/open_food_network/order_grouper.rb:47:in `block in build_table'
      # ./lib/open_food_network/order_grouper.rb:43:in `each'
      # ./lib/open_food_network/order_grouper.rb:43:in `build_table'
      # ./lib/open_food_network/order_grouper.rb:47:in `block in build_table'
      # ./lib/open_food_network/order_grouper.rb:43:in `each'
      # ./lib/open_food_network/order_grouper.rb:43:in `build_table'
      # ./lib/open_food_network/order_grouper.rb:47:in `block in build_table'
      # ./lib/open_food_network/order_grouper.rb:43:in `each'
      # ./lib/open_food_network/order_grouper.rb:43:in `build_table'
      # ./lib/open_food_network/order_grouper.rb:56:in `table'
      # ./spec/lib/open_food_network/orders_and_fulfillments_report/supplier_totals_report_spec.rb:19:in `block (2 levels) in <top (required)>'
      # ./spec/lib/open_food_network/orders_and_fulfillments_report/supplier_totals_report_spec.rb:23:in `block (2 levels) in <top (required)>'
2020-02-26 11:35:00 +01:00
Matt-Yorkley
167c8543aa Fix #create_enterprise_user
User was not being associated to enterprises passed in attributes
2020-02-26 10:46:41 +01:00
Matt-Yorkley
90d1a5e605 Add strong params to admin/column_preferences_controller.rb
Fixes failures such as:

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

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

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

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

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

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

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

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

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

If you don't rely on implicit join references you can disable the feature entirely by setting `config.active_record.disable_implicit_join_references = true`. (called from collection at /home/user/Github/openfoodnetwork/app/controllers/admin/variant_overrides_controller.rb:77)
2020-02-22 11:06:51 +00:00
Matt-Yorkley
6c22d655c8 Temporarily remove additional email validation on Spree::Order
A new custom email validator class was added to Spree::Order, and currently it fails every time (breaking lots of specs). This ugly hack disables it for now.
2020-02-22 11:06:51 +00:00
Matt-Yorkley
3615dcd355 Fix namespacing in cookies test
NameError: uninitialized constant ActionDispatch::Cookies::SignedCookieJar::MAX_COOKIE_SIZE
     # ./spec/requests/large_request_spec.rb:8
2020-02-22 11:06:51 +00:00
Matt-Yorkley
49bc3308be Fix broken references to url_helpers 2020-02-22 11:06:51 +00:00
Matt-Yorkley
fd11d4fa5b Fix broken html encoding of injected json in admin views 2020-02-22 11:06:51 +00:00
Matt-Yorkley
e3ae65fad5 Update rubocop_todo 2020-02-22 11:06:51 +00:00
Matt-Yorkley
ae11cb9954 Update rubocop_styleguide for Rails 4 2020-02-22 11:06:51 +00:00
Matt-Yorkley
98fdbb8621 Update deprecated #scoped calls
Model#scoped is now deprecated. Model#where(nil) in Rails 4 returns the same result as Model#scoped in Rails 3
2020-02-22 11:06:51 +00:00
Matt-Yorkley
241e9221b4 Replace deprecated :restrict option in address_decorator.rb
DEPRECATION WARNING: The :restrict option is deprecated. Please use :restrict_with_exception instead, which provides the same functionality. (called from block in <top (required)> at /home/user/Github/openfoodnetwork/app/models/spree/address_decorator.rb:4)
2020-02-22 11:06:51 +00:00
Matt-Yorkley
9fd4863a13 Fix missing roles error in spec workflow #create_enterprise_user 2020-02-22 11:06:51 +00:00
Matt-Yorkley
6541b55872 Fix default_association deprecated syntax in OrderCycle and Schedule 2020-02-22 11:06:51 +00:00
Matt-Yorkley
aff8911309 Update database_cleaner to >1.0 to fix transaction issues in test suite 2020-02-22 11:06:51 +00:00
Matt-Yorkley
39459b4a63 Temporarily fix root_path missing error in many controllers 2020-02-22 11:06:51 +00:00
Matt-Yorkley
7aef5af71c Fix report types spec 2020-02-22 11:06:51 +00:00
Matt-Yorkley
0a9d63dd2f Fix deprecated syntax on associations 2020-02-22 11:06:51 +00:00
Matt-Yorkley
5cc223e8f4 Update routes loading for Rails 4 2020-02-22 11:06:51 +00:00
Matt-Yorkley
a12ec8c5d9 Move filter parameters to initializer for Rails 4 2020-02-22 11:06:51 +00:00
Matt-Yorkley
046d8e0b87 Explicitly configure shoulda-matchers in spec_helper
This is apparently needed in Rails 4
2020-02-22 11:06:51 +00:00
Matt-Yorkley
16d56a8cbd Routes using match must specify a request method in Rails 4 2020-02-22 11:06:51 +00:00
Matt-Yorkley
a8b8269a02 Update deprecated #find_or_initialize_by_* methods 2020-02-22 11:06:51 +00:00
Matt-Yorkley
b80929022b Remove unused newrelic_rpm gem 2020-02-22 11:06:51 +00:00
Matt-Yorkley
53645517af Update deprecated #find_by_* methods 2020-02-22 11:06:51 +00:00
Matt-Yorkley
30558485de Update deprecated #find_or_create_by_* methods 2020-02-22 11:06:51 +00:00
Matt-Yorkley
6dd982532c Update deprecated/changed Rubocop rule names 2020-02-22 11:06:51 +00:00
Matt-Yorkley
418e9d23fe Add missing eager_load setting in test.rb 2020-02-22 11:06:51 +00:00
Matt-Yorkley
b8e608abc2 Remove deprecated #whiny_nils 2020-02-22 11:06:51 +00:00
Matt-Yorkley
6eef2555f1 Fix i18n available locales error
For some reason the locales defined in config/environment/test.rb are `en,es`, but in the used application.yml they were `en,es,en-GB`. This seems to trigger errors in the test environment ("en-GB is not a valid locale") if the two lists don't match..?
2020-02-22 11:06:51 +00:00
Matt-Yorkley
5603b70379 Fix html escaping of characters in AMS rendering causing fatal javascript errors 2020-02-22 11:06:51 +00:00
Matt-Yorkley
b03ef140f7 Enable sass 2020-02-22 11:06:51 +00:00
Matt-Yorkley
8ffdd806bf Enable rails-i18n 4.0 2020-02-22 11:06:25 +00:00
Matt-Yorkley
1fa2d05c0c Fix AuthenticationHelper#spree_current_user
`current_spree_user`: method not found...
2020-02-22 11:05:24 +00:00
Matt-Yorkley
5b8552f541 Fix ActiveRecord::Relation issue
Rails 4 now returns an Activerecord::Relation when using `SomeModel.all`. To get all the objects (as in Rails 3) we need to use `SomeModel.all.to_a`. See: https://stackoverflow.com/a/22417170
2020-02-22 11:05:24 +00:00
Matt-Yorkley
6f62c2cf27 Fix SCSS import file error 2020-02-22 11:05:24 +00:00
luisramos0
2f69d2a7e7 Remove devise email validation regexp, it's not needed in this version 2020-02-22 11:05:24 +00:00
luisramos0
2dc78d2f50 Remove spree_auth_devise and upgrade devise to 3.0.1 2020-02-22 11:05:24 +00:00
luisramos0
d1248c76fa Temporarily disable caching classes in test to fix karma rake task
This fixes the error "can't modify immutable index" in lib/tasks/karma.rake:25:in `application_spec_files'
2020-02-22 11:05:24 +00:00
luisramos0
4ca9a19d8a Temporarily remove broken fontawesome and spree_paypal_express assets 2020-02-22 11:05:24 +00:00
luisramos0
1ef9209183 Remove the assets group in the gemfile (removed in rails 4) 2020-02-22 11:05:24 +00:00
luisramos0
9c369caae2 Temporarily comment part of Enterprise.relate_to_owners_enterprises so that most specs pass for now 2020-02-22 11:05:24 +00:00
luisramos0
b23ce20488 Add migration from spree v2.1 2020-02-22 11:05:24 +00:00
luisramos0
18ca9980c9 Temporarily comment Enterprise.ensure_owner_is_manager otherwise all specs erroring out with 'Enterprise roles invalid' 2020-02-22 11:05:24 +00:00
luisramos0
c0dc999e0d Temporarily remove broken specs 2020-02-22 11:05:24 +00:00
luisramos0
8fe3a8aea4 Setting secret key in config/initializers/secret_token.rb 2020-02-22 11:05:24 +00:00
luisramos0
8e747e54a0 Setting eager loading on each env configuration 2020-02-22 11:05:24 +00:00
luisramos0
8dbe4accaf Upgrade to the spree branch 2-1-0-stable and rails 4.0.0 2020-02-22 11:05:24 +00:00
495 changed files with 9133 additions and 6610 deletions

View File

@@ -16,6 +16,10 @@ plugins:
enabled: false
PropertySortOrder:
enabled: false
StringQuotes:
enabled: false
DeclarationOrder:
enabled: false
duplication:
enabled: true
exclude_patterns:

View File

@@ -142,7 +142,6 @@ Layout/LineLength:
- spec/controllers/api/product_images_controller_spec.rb
- spec/controllers/api/products_controller_spec.rb
- spec/controllers/api/promo_images_controller_spec.rb
- spec/controllers/api/shipments_controller_spec.rb
- spec/controllers/api/variants_controller_spec.rb
- spec/controllers/cart_controller_spec.rb
- spec/controllers/checkout_controller_spec.rb

View File

@@ -5,7 +5,7 @@
# rubocop locally, the default configuration file `.rubocop.yml` loads
# our "todo lists" to ignore all current violations.
AllCops:
TargetRailsVersion: 3.2
TargetRailsVersion: 4.0
Exclude:
- 'bin/**/*'
- 'db/**/*'
@@ -20,9 +20,6 @@ AllCops:
#
# Cop settings that have been agreed upon by the OFN community
Rails:
Enabled: true
Style/Documentation:
Enabled: false
@@ -61,24 +58,6 @@ Lint/UselessAssignment:
Exclude:
- spec/**/*
# AFAIK, there is no good alternative to dynamic matchers until we upgrade
# to Rails 4 and can use #find_by. If there is a better approach, let's do it.
Rails/DynamicFindBy:
Enabled: false
# Same as above, #find_by is not available until Rails 4
Rails/FindBy:
Enabled: false
# Same as above, #update! is not available until Rails 4
Rails/ActiveRecordAliases:
Enabled: false
# This should be the programmer's discretion, perhaps we should review all of
# the uses of it an make specific exceptions though.
Rails/SkipsModelValidations:
Enabled: false
## Relaxed.Ruby.Style SETTINGS
#
# These styles are a starting point for the conversation around conventions

View File

@@ -1,6 +1,6 @@
# This configuration was generated by
# `rubocop --auto-gen-config --exclude-limit 1400`
# on 2020-01-09 11:26:09 +1100 using RuboCop version 0.79.0.
# on 2020-02-22 11:23:29 +0000 using RuboCop version 0.80.0.
# The point is for the user to remove these configuration records
# one by one as the offenses are removed from the code base.
# Note that changes in the inspected code, or installation of new
@@ -14,10 +14,11 @@ Layout/EmptyLineAfterGuardClause:
- 'lib/open_food_network/orders_and_fulfillments_report.rb'
- 'lib/open_food_network/packing_report.rb'
# Offense count: 1
# Offense count: 2
# Cop supports --auto-correct.
Layout/EmptyLines:
Exclude:
- 'app/models/spree/adjustment_decorator.rb'
- 'spec/features/admin/order_cycles_spec.rb'
# Offense count: 1
@@ -28,6 +29,14 @@ Layout/EmptyLinesAroundBlockBody:
Exclude:
- 'spec/controllers/api/orders_controller_spec.rb'
# Offense count: 1
# Cop supports --auto-correct.
# Configuration parameters: EnforcedStyleAlignWith, AutoCorrect, Severity.
# SupportedStylesAlignWith: keyword, variable, start_of_line
Layout/EndAlignment:
Exclude:
- 'lib/open_food_network/permalink_generator.rb'
# Offense count: 2
# Cop supports --auto-correct.
# Configuration parameters: AllowMultipleStyles, EnforcedHashRocketStyle, EnforcedColonStyle, EnforcedLastArgumentHashStyle.
@@ -38,12 +47,27 @@ Layout/HashAlignment:
Exclude:
- 'spec/lib/open_food_network/orders_and_fulfillments_report/customer_totals_report_spec.rb'
# Offense count: 27
# Offense count: 8
# Cop supports --auto-correct.
# Configuration parameters: AllowDoxygenCommentStyle, AllowGemfileRubyComment.
Layout/LeadingCommentSpace:
Exclude:
- 'Gemfile'
- 'app/helpers/application_helper.rb'
- 'app/models/enterprise.rb'
# Offense count: 3
# Cop supports --auto-correct.
# Configuration parameters: AutoCorrect, AllowHeredoc, AllowURI, URISchemes, IgnoreCopDirectives, IgnoredPatterns.
# URISchemes: http, https
Layout/LineLength:
Max: 129
Max: 115
# Offense count: 1
# Cop supports --auto-correct.
Layout/SpaceAfterColon:
Exclude:
- 'lib/open_food_network/order_cycle_form_applicator.rb'
# Offense count: 2
# Cop supports --auto-correct.
@@ -54,14 +78,26 @@ Layout/SpaceAroundOperators:
- 'app/services/cart_service.rb'
- 'spec/support/cancan_helper.rb'
# Offense count: 4
# Offense count: 2
# Cop supports --auto-correct.
# Configuration parameters: EnforcedStyle, EnforcedStyleForEmptyBraces.
# SupportedStyles: space, no_space, compact
# SupportedStylesForEmptyBraces: space, no_space
Layout/SpaceInsideHashLiteralBraces:
Exclude:
- 'spec/controllers/checkout_controller_spec.rb'
# Offense count: 2
Lint/AmbiguousOperator:
Exclude:
- 'app/controllers/spree/admin/orders/customer_details_controller_decorator.rb'
- 'app/controllers/spree/admin/orders_controller_decorator.rb'
- 'spec/controllers/api/enterprise_fees_controller_spec.rb'
- 'spec/controllers/spree/admin/payments_controller_spec.rb'
# Offense count: 2
Lint/Debugger:
Exclude:
- 'app/services/order_factory.rb'
# Offense count: 1
Lint/DuplicateHashKey:
Exclude:
@@ -116,16 +152,32 @@ Lint/UselessAccessModifier:
- 'lib/open_food_network/reports/bulk_coop_report.rb'
- 'spec/lib/open_food_network/reports/report_spec.rb'
# Offense count: 1
Lint/UselessAssignment:
Exclude:
- 'spec/**/*'
- 'app/models/enterprise.rb'
# Offense count: 1
# Configuration parameters: CheckForMethodsWithNoSideEffects.
Lint/Void:
Exclude:
- 'app/serializers/api/enterprise_serializer.rb'
# Offense count: 1
Metrics/AbcSize:
Max: 16
# Offense count: 1
# Configuration parameters: CountComments, ExcludedMethods.
# ExcludedMethods: refine
Metrics/BlockLength:
Max: 27
# Offense count: 1
# Configuration parameters: CountComments.
Metrics/ModuleLength:
Max: 114
Max: 121
# Offense count: 8
Naming/AccessorMethodName:
@@ -143,20 +195,18 @@ Naming/HeredocDelimiterNaming:
Exclude:
- 'app/models/content_configuration.rb'
# Offense count: 4
# Offense count: 3
# Configuration parameters: EnforcedStyleForLeadingUnderscores.
# SupportedStylesForLeadingUnderscores: disallowed, required, optional
Naming/MemoizedInstanceVariableName:
Exclude:
- 'app/controllers/spree/admin/payments_controller_decorator.rb'
- 'lib/open_food_network/address_finder.rb'
# Offense count: 8
# Offense count: 7
# Configuration parameters: MinNameLength, AllowNamesEndingInNumbers, AllowedNames, ForbiddenNames.
# AllowedNames: io, id, to, by, on, in, at, ip, db, os
# AllowedNames: io, id, to, by, on, in, at, ip, db, os, pp
Naming/MethodParameterName:
Exclude:
- 'app/helpers/spree/admin/base_helper_decorator.rb'
- 'app/helpers/spree/base_helper_decorator.rb'
- 'engines/order_management/app/services/order_management/subscriptions/validator.rb'
- 'lib/open_food_network/reports/bulk_coop_report.rb'
@@ -190,7 +240,7 @@ Naming/PredicateName:
- 'lib/open_food_network/packing_report.rb'
- 'lib/tasks/data.rake'
# Offense count: 152
# Offense count: 154
# Cop supports --auto-correct.
# Configuration parameters: EnforcedStyle, Include.
# SupportedStyles: action, filter
@@ -231,22 +281,22 @@ Rails/ActionFilter:
- 'app/controllers/spree/admin/base_controller.rb'
- 'app/controllers/spree/admin/images_controller.rb'
- 'app/controllers/spree/admin/mail_methods_controller.rb'
- 'app/controllers/spree/admin/orders/customer_details_controller_decorator.rb'
- 'app/controllers/spree/admin/orders_controller_decorator.rb'
- 'app/controllers/spree/admin/orders/customer_details_controller.rb'
- 'app/controllers/spree/admin/orders_controller.rb'
- 'app/controllers/spree/admin/payment_methods_controller.rb'
- 'app/controllers/spree/admin/payments_controller_decorator.rb'
- 'app/controllers/spree/admin/payments_controller.rb'
- 'app/controllers/spree/admin/product_properties_controller.rb'
- 'app/controllers/spree/admin/products_controller_decorator.rb'
- 'app/controllers/spree/admin/products_controller.rb'
- 'app/controllers/spree/admin/reports/enterprise_fee_summaries_controller.rb'
- 'app/controllers/spree/admin/reports_controller.rb'
- 'app/controllers/spree/admin/resource_controller.rb'
- 'app/controllers/spree/admin/search_controller.rb'
- 'app/controllers/spree/admin/shipping_methods_controller.rb'
- 'app/controllers/spree/admin/states_controller.rb'
- 'app/controllers/spree/admin/tax_rates_controller.rb'
- 'app/controllers/spree/admin/users_controller.rb'
- 'app/controllers/spree/admin/zones_controller.rb'
- 'app/controllers/spree/checkout_controller.rb'
- 'app/controllers/spree/orders_controller.rb'
- 'app/controllers/spree/paypal_controller_decorator.rb'
- 'app/controllers/spree/store_controller.rb'
- 'app/controllers/spree/user_registrations_controller.rb'
- 'app/controllers/spree/user_sessions_controller.rb'
@@ -255,6 +305,78 @@ Rails/ActionFilter:
- 'app/controllers/user_passwords_controller.rb'
- 'app/controllers/user_registrations_controller.rb'
# Offense count: 192
# Cop supports --auto-correct.
Rails/ActiveRecordAliases:
Exclude:
- 'app/controllers/admin/bulk_line_items_controller.rb'
- 'app/controllers/admin/enterprises_controller.rb'
- 'app/controllers/admin/subscriptions_controller.rb'
- 'app/controllers/api/customers_controller.rb'
- 'app/controllers/api/enterprise_attachment_controller.rb'
- 'app/controllers/api/enterprises_controller.rb'
- 'app/controllers/api/product_images_controller.rb'
- 'app/controllers/api/products_controller.rb'
- 'app/controllers/api/shipments_controller.rb'
- 'app/controllers/api/taxons_controller.rb'
- 'app/controllers/api/variants_controller.rb'
- 'app/controllers/checkout_controller.rb'
- 'app/controllers/spree/admin/orders/customer_details_controller.rb'
- 'app/controllers/spree/admin/orders_controller.rb'
- 'app/controllers/spree/admin/payment_methods_controller.rb'
- 'app/controllers/spree/admin/resource_controller.rb'
- 'app/controllers/spree/admin/taxons_controller.rb'
- 'app/controllers/spree/admin/users_controller.rb'
- 'app/controllers/spree/credit_cards_controller.rb'
- 'app/controllers/spree/orders_controller.rb'
- 'app/controllers/spree/users_controller.rb'
- 'app/helpers/i18n_helper.rb'
- 'app/jobs/subscription_placement_job.rb'
- 'app/models/spree/adjustment_decorator.rb'
- 'app/models/spree/line_item_decorator.rb'
- 'app/models/spree/product_set.rb'
- 'app/services/line_item_syncer.rb'
- 'app/services/order_factory.rb'
- 'app/services/order_syncer.rb'
- 'app/services/user_default_address_setter.rb'
- 'lib/open_food_network/order_cycle_form_applicator.rb'
- 'lib/open_food_network/subscription_payment_updater.rb'
- 'lib/stripe/profile_storer.rb'
- 'spec/controllers/admin/proxy_orders_controller_spec.rb'
- 'spec/controllers/admin/subscriptions_controller_spec.rb'
- 'spec/controllers/api/orders_controller_spec.rb'
- 'spec/controllers/line_items_controller_spec.rb'
- 'spec/controllers/spree/admin/payment_methods_controller_spec.rb'
- 'spec/controllers/spree/orders_controller_spec.rb'
- 'spec/features/admin/order_cycles_spec.rb'
- 'spec/features/admin/subscriptions_spec.rb'
- 'spec/features/admin/variant_overrides_spec.rb'
- 'spec/features/admin/variants_spec.rb'
- 'spec/features/consumer/account_spec.rb'
- 'spec/features/consumer/registration_spec.rb'
- 'spec/features/consumer/shopping/cart_spec.rb'
- 'spec/features/consumer/shopping/orders_spec.rb'
- 'spec/features/consumer/shopping/shopping_spec.rb'
- 'spec/jobs/subscription_confirm_job_spec.rb'
- 'spec/jobs/subscription_placement_job_spec.rb'
- 'spec/lib/open_food_network/proxy_order_syncer_spec.rb'
- 'spec/models/customer_spec.rb'
- 'spec/models/enterprise_caching_spec.rb'
- 'spec/models/exchange_spec.rb'
- 'spec/models/order_cycle_spec.rb'
- 'spec/models/producer_property_spec.rb'
- 'spec/models/proxy_order_spec.rb'
- 'spec/models/spree/adjustment_spec.rb'
- 'spec/models/spree/credit_card_spec.rb'
- 'spec/models/spree/line_item_spec.rb'
- 'spec/models/spree/order_spec.rb'
- 'spec/models/spree/product_spec.rb'
- 'spec/models/spree/user_spec.rb'
- 'spec/models/spree/variant_spec.rb'
- 'spec/requests/checkout/stripe_connect_spec.rb'
- 'spec/services/order_syncer_spec.rb'
- 'spec/services/subscription_estimator_spec.rb'
# Offense count: 1
# Configuration parameters: EnforcedStyle.
# SupportedStyles: strict, flexible
@@ -262,6 +384,18 @@ Rails/Date:
Exclude:
- 'app/models/order_cycle.rb'
# Offense count: 5
# Cop supports --auto-correct.
# Configuration parameters: Whitelist.
# Whitelist: find_by_sql
Rails/DynamicFindBy:
Exclude:
- 'app/controllers/spree/admin/orders/customer_details_controller.rb'
- 'app/controllers/spree/admin/orders_controller.rb'
- 'app/controllers/spree/admin/payments_controller.rb'
- 'app/controllers/spree/admin/products_controller.rb'
- 'spec/support/request/web_helper.rb'
# Offense count: 16
# Configuration parameters: EnforcedStyle.
# SupportedStyles: slashes, arguments
@@ -280,6 +414,18 @@ Rails/FilePath:
- 'spec/serializers/api/admin/enterprise_serializer_spec.rb'
- 'spec/support/downloads_helper.rb'
# Offense count: 7
# Cop supports --auto-correct.
# Configuration parameters: Include.
# Include: app/models/**/*.rb
Rails/FindBy:
Exclude:
- 'app/models/enterprise.rb'
- 'app/models/product_import/entry_processor.rb'
- 'app/models/product_import/entry_validator.rb'
- 'app/models/product_import/spreadsheet_data.rb'
- 'app/models/spree/user.rb'
# Offense count: 7
# Configuration parameters: Include.
# Include: app/models/**/*.rb
@@ -292,7 +438,7 @@ Rails/HasAndBelongsToMany:
- 'app/models/spree/concerns/payment_method_distributors.rb'
- 'app/models/spree/line_item_decorator.rb'
# Offense count: 26
# Offense count: 24
# Configuration parameters: Include.
# Include: app/models/**/*.rb
Rails/HasManyOrHasOneDependent:
@@ -309,7 +455,7 @@ Rails/HasManyOrHasOneDependent:
- 'app/models/spree/variant_decorator.rb'
- 'app/models/subscription.rb'
# Offense count: 78
# Offense count: 83
# Configuration parameters: Include.
# Include: app/helpers/**/*.rb
Rails/HelperInstanceVariable:
@@ -321,19 +467,27 @@ Rails/HelperInstanceVariable:
- 'app/helpers/injection_helper.rb'
- 'app/helpers/order_cycles_helper.rb'
- 'app/helpers/shared_helper.rb'
- 'app/helpers/spree/admin/orders_helper_decorator.rb'
- 'app/helpers/shop_helper.rb'
- 'app/helpers/spree/admin/orders_helper.rb'
- 'app/helpers/spree/orders_helper.rb'
# Offense count: 6
# Offense count: 1
# Configuration parameters: Include.
# Include: app/**/*.rb, config/**/*.rb, db/**/*.rb, lib/**/*.rb
Rails/Output:
Exclude:
- 'app/services/order_factory.rb'
# Offense count: 12
Rails/OutputSafety:
Exclude:
- 'app/controllers/spree/admin/reports_controller.rb'
- 'app/helpers/angular_form_helper.rb'
- 'app/helpers/spree/admin/base_helper.rb'
- 'app/helpers/spree/admin/zones_helper.rb'
- 'app/helpers/spree/reports_helper.rb'
- 'app/helpers/spree/admin/navigation_helper.rb'
- 'app/helpers/spree/admin/orders_helper.rb'
- 'app/helpers/spree/admin/zones_helper.rb'
- 'app/helpers/spree/reports_helper.rb'
- 'app/serializers/api/product_serializer.rb'
- 'lib/spree/money_decorator.rb'
- 'spec/features/admin/orders_spec.rb'
@@ -353,6 +507,86 @@ Rails/ReflectionClassName:
- 'app/models/enterprise_role.rb'
- 'app/models/subscription.rb'
# Offense count: 213
# Configuration parameters: Blacklist, Whitelist.
# Blacklist: decrement!, decrement_counter, increment!, increment_counter, toggle!, touch, update_all, update_attribute, update_column, update_columns, update_counters
Rails/SkipsModelValidations:
Exclude:
- 'app/controllers/spree/admin/payment_methods_controller.rb'
- 'app/controllers/spree/admin/resource_controller.rb'
- 'app/controllers/spree/admin/shipping_methods_controller.rb'
- 'app/controllers/spree/admin/taxons_controller.rb'
- 'app/controllers/spree/orders_controller.rb'
- 'app/jobs/subscription_confirm_job.rb'
- 'app/jobs/subscription_placement_job.rb'
- 'app/models/enterprise.rb'
- 'app/models/enterprise_relationship.rb'
- 'app/models/product_import/inventory_reset_strategy.rb'
- 'app/models/proxy_order.rb'
- 'app/models/spree/address_decorator.rb'
- 'app/models/spree/credit_card_decorator.rb'
- 'app/models/spree/order_decorator.rb'
- 'app/models/spree/payment_decorator.rb'
- 'app/models/subscription.rb'
- 'app/models/variant_override.rb'
- 'app/services/order_factory.rb'
- 'engines/order_management/spec/services/order_management/reports/enterprise_fee_summary/report_service_spec.rb'
- 'lib/tasks/data/anonymize_data.rake'
- 'lib/tasks/sample_data/product_factory.rb'
- 'lib/tasks/users.rake'
- 'spec/controllers/admin/subscription_line_items_controller_spec.rb'
- 'spec/controllers/admin/variant_overrides_controller_spec.rb'
- 'spec/controllers/api/order_cycles_controller_spec.rb'
- 'spec/controllers/api/orders_controller_spec.rb'
- 'spec/controllers/api/products_controller_spec.rb'
- 'spec/controllers/api/shipments_controller_spec.rb'
- 'spec/controllers/api/variants_controller_spec.rb'
- 'spec/controllers/checkout_controller_spec.rb'
- 'spec/controllers/enterprises_controller_spec.rb'
- 'spec/controllers/spree/admin/orders_controller_spec.rb'
- 'spec/controllers/spree/admin/overview_controller_spec.rb'
- 'spec/controllers/spree/admin/payment_methods_controller_spec.rb'
- 'spec/controllers/spree/credit_cards_controller_spec.rb'
- 'spec/factories.rb'
- 'spec/factories/order_factory.rb'
- 'spec/features/admin/bulk_order_management_spec.rb'
- 'spec/features/admin/bulk_product_update_spec.rb'
- 'spec/features/admin/configuration/tax_rates_spec.rb'
- 'spec/features/admin/order_cycles_spec.rb'
- 'spec/features/admin/orders_spec.rb'
- 'spec/features/admin/reports_spec.rb'
- 'spec/features/consumer/shopping/checkout_spec.rb'
- 'spec/features/consumer/shopping/products_spec.rb'
- 'spec/features/consumer/shopping/shopping_spec.rb'
- 'spec/helpers/enterprises_helper_spec.rb'
- 'spec/helpers/order_cycles_helper_spec.rb'
- 'spec/jobs/subscription_placement_job_spec.rb'
- 'spec/lib/open_food_network/address_finder_spec.rb'
- 'spec/lib/open_food_network/enterprise_fee_calculator_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/scope_variant_to_hub_spec.rb'
- 'spec/lib/open_food_network/subscription_payment_updater_spec.rb'
- 'spec/models/calculator/weight_spec.rb'
- 'spec/models/concerns/variant_stock_spec.rb'
- 'spec/models/enterprise_relationship_spec.rb'
- 'spec/models/exchange_spec.rb'
- 'spec/models/spree/adjustment_spec.rb'
- 'spec/models/spree/line_item_spec.rb'
- 'spec/models/spree/order_spec.rb'
- 'spec/models/spree/product_spec.rb'
- 'spec/models/spree/variant_spec.rb'
- 'spec/models/tag_rule/discount_order_spec.rb'
- 'spec/performance/proxy_order_syncer_spec.rb'
- 'spec/serializers/api/admin/subscription_line_item_serializer_spec.rb'
- 'spec/services/order_cycle_distributed_products_spec.rb'
- 'spec/services/order_factory_spec.rb'
- 'spec/services/order_syncer_spec.rb'
- 'spec/services/product_tag_rules_filterer_spec.rb'
- 'spec/services/products_renderer_spec.rb'
- 'spec/services/restart_checkout_spec.rb'
- 'spec/support/request/shop_workflow.rb'
# Offense count: 1
# Configuration parameters: Environments.
# Environments: development, test, production
@@ -473,10 +707,10 @@ Style/FormatStringToken:
- 'lib/open_food_network/sales_tax_report.rb'
- 'spec/features/admin/bulk_order_management_spec.rb'
# Offense count: 928
# Offense count: 920
# Cop supports --auto-correct.
# Configuration parameters: EnforcedStyle.
# SupportedStyles: always, never
# SupportedStyles: always, always_true, never
Style/FrozenStringLiteralComment:
Exclude:
- 'Gemfile'
@@ -511,7 +745,6 @@ Style/FrozenStringLiteralComment:
- 'app/controllers/api/enterprise_attachment_controller.rb'
- 'app/controllers/api/enterprise_fees_controller.rb'
- 'app/controllers/api/enterprises_controller.rb'
- 'app/controllers/api/exchange_products_controller.rb'
- 'app/controllers/api/logos_controller.rb'
- 'app/controllers/api/order_cycles_controller.rb'
- 'app/controllers/api/orders_controller.rb'
@@ -526,7 +759,6 @@ Style/FrozenStringLiteralComment:
- 'app/controllers/application_controller.rb'
- 'app/controllers/base_controller.rb'
- 'app/controllers/cart_controller.rb'
- 'app/controllers/checkout_controller.rb'
- 'app/controllers/discourse_sso_controller.rb'
- 'app/controllers/enterprises_controller.rb'
- 'app/controllers/groups_controller.rb'
@@ -547,19 +779,18 @@ Style/FrozenStringLiteralComment:
- 'app/controllers/spree/admin/images_controller.rb'
- 'app/controllers/spree/admin/invoices_controller.rb'
- 'app/controllers/spree/admin/mail_methods_controller.rb'
- 'app/controllers/spree/admin/orders/customer_details_controller_decorator.rb'
- 'app/controllers/spree/admin/orders_controller_decorator.rb'
- 'app/controllers/spree/admin/orders/customer_details_controller.rb'
- 'app/controllers/spree/admin/orders_controller.rb'
- 'app/controllers/spree/admin/overview_controller.rb'
- 'app/controllers/spree/admin/payment_methods_controller.rb'
- 'app/controllers/spree/admin/payments_controller_decorator.rb'
- 'app/controllers/spree/admin/product_properties_controller.rb'
- 'app/controllers/spree/admin/products_controller_decorator.rb'
- 'app/controllers/spree/admin/products_controller.rb'
- 'app/controllers/spree/admin/properties_controller.rb'
- 'app/controllers/spree/admin/reports/enterprise_fee_summaries_controller.rb'
- 'app/controllers/spree/admin/reports_controller.rb'
- 'app/controllers/spree/admin/resource_controller_decorator.rb'
- 'app/controllers/spree/admin/resource_controller.rb'
- 'app/controllers/spree/admin/return_authorizations_controller.rb'
- 'app/controllers/spree/admin/search_controller_decorator.rb'
- 'app/controllers/spree/admin/search_controller.rb'
- 'app/controllers/spree/admin/shipping_categories_controller.rb'
- 'app/controllers/spree/admin/shipping_methods_controller.rb'
- 'app/controllers/spree/admin/states_controller.rb'
@@ -569,13 +800,11 @@ Style/FrozenStringLiteralComment:
- 'app/controllers/spree/admin/taxonomies_controller.rb'
- 'app/controllers/spree/admin/taxons_controller.rb'
- 'app/controllers/spree/admin/users_controller.rb'
- 'app/controllers/spree/admin/variants_controller_decorator.rb'
- 'app/controllers/spree/admin/variants_controller.rb'
- 'app/controllers/spree/admin/zones_controller.rb'
- 'app/controllers/spree/checkout_controller.rb'
- 'app/controllers/spree/credit_cards_controller.rb'
- 'app/controllers/spree/home_controller.rb'
- 'app/controllers/spree/orders_controller.rb'
- 'app/controllers/spree/paypal_controller_decorator.rb'
- 'app/controllers/spree/store_controller.rb'
- 'app/controllers/spree/user_passwords_controller.rb'
- 'app/controllers/spree/user_registrations_controller.rb'
@@ -586,6 +815,7 @@ Style/FrozenStringLiteralComment:
- 'app/controllers/user_confirmations_controller.rb'
- 'app/controllers/user_passwords_controller.rb'
- 'app/controllers/user_registrations_controller.rb'
- 'app/helpers/admin/enterprises_helper.rb'
- 'app/helpers/admin/image_settings_helper.rb'
- 'app/helpers/admin/injection_helper.rb'
- 'app/helpers/admin/orders_helper.rb'
@@ -604,16 +834,16 @@ Style/FrozenStringLiteralComment:
- 'app/helpers/injection_helper.rb'
- 'app/helpers/map_helper.rb'
- 'app/helpers/markdown_helper.rb'
- 'app/helpers/order_cycles_helper.rb'
- 'app/helpers/serializer_helper.rb'
- 'app/helpers/shared_helper.rb'
- 'app/helpers/shop_helper.rb'
- 'app/helpers/shop_mail_helper.rb'
- 'app/helpers/spree/admin/base_helper_decorator.rb'
- 'app/helpers/spree/admin/base_helper.rb'
- 'app/helpers/spree/admin/general_settings_helper.rb'
- 'app/helpers/spree/admin/navigation_helper_decorator.rb'
- 'app/helpers/spree/admin/orders_helper_decorator.rb'
- 'app/helpers/spree/admin/orders_helper.rb'
- 'app/helpers/spree/admin/payments_helper.rb'
- 'app/helpers/spree/admin/taxons_helper.rb'
- 'app/helpers/spree/admin/zones_helper.rb'
- 'app/helpers/spree/api/api_helpers.rb'
- 'app/helpers/spree/base_helper_decorator.rb'
- 'app/helpers/spree/orders_helper.rb'
@@ -739,7 +969,6 @@ Style/FrozenStringLiteralComment:
- 'app/models/tag_rule/filter_shipping_methods.rb'
- 'app/models/variant_override.rb'
- 'app/models/variant_override_set.rb'
- 'app/presenters/variant_presenter.rb'
- 'app/serializers/api/address_serializer.rb'
- 'app/serializers/api/adjustment_serializer.rb'
- 'app/serializers/api/admin/basic_enterprise_fee_serializer.rb'
@@ -819,6 +1048,7 @@ Style/FrozenStringLiteralComment:
- 'app/serializers/api/uncached_enterprise_serializer.rb'
- 'app/serializers/api/user_serializer.rb'
- 'app/serializers/api/variant_serializer.rb'
- 'app/services/action_callbacks.rb'
- 'app/services/advance_order_service.rb'
- 'app/services/bulk_invoice_service.rb'
- 'app/services/cart_service.rb'
@@ -827,7 +1057,6 @@ Style/FrozenStringLiteralComment:
- 'app/services/default_shipping_category.rb'
- 'app/services/default_stock_location.rb'
- 'app/services/embedded_page_service.rb'
- 'app/services/exchange_products_renderer.rb'
- 'app/services/exchange_variant_bulk_updater.rb'
- 'app/services/exchange_variant_deleter.rb'
- 'app/services/invoice_renderer.rb'
@@ -921,7 +1150,6 @@ Style/FrozenStringLiteralComment:
- 'lib/open_food_network/lettuce_share_report.rb'
- 'lib/open_food_network/locking.rb'
- 'lib/open_food_network/model_class_from_controller_name.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'
@@ -1056,10 +1284,8 @@ Style/FrozenStringLiteralComment:
- 'spec/controllers/spree/admin/shipping_methods_controller_spec.rb'
- 'spec/controllers/spree/admin/users_controller_spec.rb'
- 'spec/controllers/spree/admin/variants_controller_spec.rb'
- 'spec/controllers/spree/checkout_controller_spec.rb'
- 'spec/controllers/spree/credit_cards_controller_spec.rb'
- 'spec/controllers/spree/orders_controller_spec.rb'
- 'spec/controllers/spree/paypal_controller_spec.rb'
- 'spec/controllers/spree/store_controller_spec.rb'
- 'spec/controllers/spree/user_sessions_controller_spec.rb'
- 'spec/controllers/spree/users_controller_spec.rb'
@@ -1258,7 +1484,6 @@ Style/FrozenStringLiteralComment:
- 'spec/models/spree/classification_spec.rb'
- 'spec/models/spree/credit_card_spec.rb'
- 'spec/models/spree/gateway/stripe_connect_spec.rb'
- 'spec/models/spree/gateway_tagging_spec.rb'
- 'spec/models/spree/image_spec.rb'
- 'spec/models/spree/line_item_spec.rb'
- 'spec/models/spree/order/checkout_spec.rb'
@@ -1332,6 +1557,7 @@ Style/FrozenStringLiteralComment:
- 'spec/services/order_cycle_distributed_products_spec.rb'
- 'spec/services/order_cycle_distributed_variants_spec.rb'
- 'spec/services/order_cycle_form_spec.rb'
- 'spec/services/order_cycle_warning_spec.rb'
- 'spec/services/order_factory_spec.rb'
- 'spec/services/order_syncer_spec.rb'
- 'spec/services/permissions/order_spec.rb'
@@ -1388,7 +1614,7 @@ Style/FrozenStringLiteralComment:
- 'spec/views/spree/admin/orders/edit.html.haml_spec.rb'
- 'spec/views/spree/admin/orders/index.html.haml_spec.rb'
# Offense count: 58
# Offense count: 50
# Configuration parameters: MinBodyLength.
Style/GuardClause:
Exclude:
@@ -1399,11 +1625,7 @@ Style/GuardClause:
- 'app/controllers/base_controller.rb'
- 'app/controllers/checkout_controller.rb'
- 'app/controllers/home_controller.rb'
- 'app/controllers/spree/admin/orders_controller_decorator.rb'
- 'app/controllers/spree/admin/variants_controller_decorator.rb'
- 'app/controllers/spree/checkout_controller.rb'
- 'app/controllers/spree/orders_controller.rb'
- 'app/controllers/spree/paypal_controller_decorator.rb'
- 'app/models/enterprise.rb'
- 'app/models/enterprise_group.rb'
- 'app/models/producer_property.rb'
@@ -1423,14 +1645,13 @@ Style/GuardClause:
- 'spec/support/request/distribution_helper.rb'
- 'spec/support/request/shop_workflow.rb'
# Offense count: 4
# Offense count: 3
# Configuration parameters: AllowIfModifier.
Style/IfInsideElse:
Exclude:
- 'app/controllers/admin/column_preferences_controller.rb'
- 'app/controllers/admin/variant_overrides_controller.rb'
- 'app/controllers/api/taxons_controller.rb'
- 'app/controllers/spree/admin/products_controller_decorator.rb'
# Offense count: 1
# Cop supports --auto-correct.
@@ -1498,16 +1719,17 @@ Style/NumericPredicate:
- 'lib/spree/money_decorator.rb'
- 'lib/tasks/sample_data.rake'
# Offense count: 15
# Offense count: 16
# Cop supports --auto-correct.
# Configuration parameters: ConvertCodeThatCanStartToReturnNil, AllowedMethods.
# AllowedMethods: present?, blank?, presence, try, try!
Style/SafeNavigation:
Exclude:
- 'app/controllers/checkout_controller.rb'
- 'app/controllers/spree/admin/payments_controller.rb'
- 'app/controllers/spree/credit_cards_controller.rb'
- 'app/controllers/spree/orders_controller.rb'
- 'app/helpers/i18n_helper.rb'
- 'app/helpers/shop_helper.rb'
- 'app/models/producer_property.rb'
- 'app/models/product_import/entry_validator.rb'
- 'app/models/product_import/product_importer.rb'
@@ -1515,10 +1737,9 @@ Style/SafeNavigation:
- 'lib/discourse/single_sign_on.rb'
- 'spec/factories.rb'
# Offense count: 235
# Offense count: 232
Style/Send:
Exclude:
- 'app/controllers/spree/checkout_controller.rb'
- 'app/models/spree/shipping_method_decorator.rb'
- 'spec/controllers/admin/subscriptions_controller_spec.rb'
- 'spec/controllers/checkout_controller_spec.rb'

View File

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

View File

@@ -13,8 +13,8 @@ WORKDIR /usr/src/app
COPY .ruby-version .
# Install Rbenv & Ruby
RUN git clone https://github.com/rbenv/rbenv.git ${RBENV_ROOT} && \
git clone https://github.com/rbenv/ruby-build.git ${RBENV_ROOT}/plugins/ruby-build && \
RUN git clone --depth 1 --branch v1.1.2 https://github.com/rbenv/rbenv.git ${RBENV_ROOT} && \
git clone --depth 1 --branch v20200520 https://github.com/rbenv/ruby-build.git ${RBENV_ROOT}/plugins/ruby-build && \
${RBENV_ROOT}/plugins/ruby-build/install.sh && \
echo 'eval "$(rbenv init -)"' >> /etc/profile.d/rbenv.sh && \
rbenv install $(cat .ruby-version) && \
@@ -43,4 +43,5 @@ RUN wget https://chromedriver.storage.googleapis.com/2.41/chromedriver_linux64.z
# Copy code and install app dependencies
COPY . /usr/src/app/
RUN bundle install
# Run bundler install in parallel with the amount of available CPUs
RUN bundle install --jobs="$(nproc)"

View File

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

58
Gemfile
View File

@@ -3,9 +3,9 @@ ruby "2.3.7"
git_source(:github) { |repo_name| "https://github.com/#{repo_name}.git" }
gem 'i18n', '~> 0.6.11'
gem 'i18n-js', '~> 3.6.0'
gem 'rails', '~> 3.2.22'
gem 'rails-i18n', '~> 3.0.0'
gem 'i18n-js', '~> 3.7.0'
gem 'rails', '~> 4.0.13'
gem 'rails-i18n', '~> 4.0'
gem 'rails_safe_tasks', '~> 1.0'
gem "activerecord-import"
@@ -21,22 +21,36 @@ gem 'pg', '~> 0.21.0'
# OFN-maintained and patched version of Spree v2.0.4. See
# https://github.com/openfoodfoundation/openfoodnetwork/wiki/Tech-Doc:-OFN's-Spree-fork%F0%9F%8D%B4
# for details.
gem 'spree_core', github: 'openfoodfoundation/spree', branch: '2-0-4-stable'
gem 'spree_core', github: 'openfoodfoundation/spree', branch: '2-1-0-stable'
### Dependencies brought from spree core
gem 'acts_as_list', '= 0.2.0'
gem 'awesome_nested_set', '~> 3.0.0.rc.1'
gem 'cancan', '~> 1.6.10'
gem 'ffaker', '~> 1.16'
gem 'highline', '= 1.6.18' # Necessary for the install generator
gem 'httparty', '~> 0.18' # Used to check alerts in spree_core, this is not used in OFN.
gem 'json', '>= 1.7.7'
gem 'money', '5.1.1'
gem 'paranoia', '~> 2.0'
gem 'ransack', '~> 1.2.3'
gem 'state_machine', '1.2.0'
gem 'stringex', '~> 1.5.1'
gem 'spree_i18n', github: 'spree/spree_i18n', branch: '1-3-stable'
# Our branch contains two changes
# - Pass customer email and phone number to PayPal (merged to upstream master)
# - Change type of password from string to password to hide it in the form
gem 'spree_paypal_express', github: "openfoodfoundation/better_spree_paypal_express", branch: "2-0-stable"
gem 'spree_paypal_express', github: 'openfoodfoundation/better_spree_paypal_express', branch: '2-1-0-stable'
gem 'stripe'
# We need at least this version to have Digicert's root certificate
# which is needed for Pin Payments (and possibly others).
gem 'activemerchant', '~> 1.78'
gem 'activemerchant', '~> 1.78.0'
gem 'devise', '~> 2.2.5'
gem 'devise-encryptable', '0.2.0'
gem 'devise', '~> 3.0.1'
gem 'devise-encryptable'
gem 'jwt', '~> 2.2'
gem 'oauth2', '~> 1.4.4' # Used for Stripe Connect
@@ -50,19 +64,21 @@ gem 'kaminari', '~> 0.14.1'
gem 'andand'
gem 'angularjs-rails', '1.5.5'
gem 'aws-sdk'
gem 'aws-sdk', '1.11.1' # temporarily locked down due to https://github.com/aws/aws-sdk-ruby/issues/273
gem 'bugsnag'
gem 'db2fog'
gem 'haml'
gem 'redcarpet'
gem 'sass', "~> 3.3"
gem 'sass-rails', '~> 3.2.3'
gem 'truncate_html'
gem 'sass'
gem 'sass-rails'
gem 'truncate_html', '0.9.2'
gem 'unicorn'
gem 'actionpack-action_caching'
# AMS is pinned to 0.8.4 because 0.9.x is a complete re-write, as is 0.10.x
# Once Rails is updated to 5.x we should bump directly to 0.10.x
gem "active_model_serializers", "0.8.4"
gem 'activerecord-session_store'
gem 'acts-as-taggable-on', '~> 3.4'
gem 'angularjs-file-upload-rails', '~> 2.4.1'
gem 'blockenspiel'
@@ -78,7 +94,6 @@ gem 'paperclip', '~> 3.4.1'
gem 'rack-rewrite'
gem 'rack-ssl', require: 'rack/ssl'
gem 'roadie-rails', '~> 1.3.0'
gem 'spinjs-rails'
gem 'combine_pdf'
gem 'wicked_pdf'
@@ -92,7 +107,7 @@ gem 'whenever', require: false
gem 'test-unit', '~> 3.3'
gem 'coffee-rails', '~> 3.2.1'
gem 'coffee-rails', '~> 4.2.2'
gem 'compass-rails'
gem 'mini_racer', '0.2.14'
@@ -102,16 +117,15 @@ gem 'uglifier', '>= 1.0.3'
gem 'angular-rails-templates', '~> 0.3.0'
gem 'foundation-icons-sass-rails'
gem 'momentjs-rails'
gem 'turbo-sprockets-rails3'
gem "foundation-rails"
gem 'foundation-rails', '= 5.5.2.1'
gem 'jquery-migrate-rails'
gem 'jquery-rails', '3.1.5'
gem 'jquery-ui-rails', '~> 4.2'
gem 'select2-rails', '~> 3.4.7'
gem 'ofn-qz', github: 'openfoodfoundation/ofn-qz', ref: '60da2ae4c44cbb4c8d602f59fb5fff8d0f21db3c'
gem 'ofn-qz', github: 'openfoodfoundation/ofn-qz', branch: 'ofn-rails-4'
group :production, :staging do
gem 'ddtrace'
@@ -123,8 +137,8 @@ group :test, :development do
gem 'atomic'
gem 'awesome_print'
gem 'capybara', '>= 2.18.0' # 3.0 requires rack 1.6 that only works with Rails 4.2
gem 'database_cleaner', '0.7.1', require: false
gem "factory_bot_rails", require: false
gem 'database_cleaner', require: false
gem "factory_bot_rails", '4.10.0', require: false
gem 'fuubar', '~> 2.5.0'
gem 'json_spec', '~> 1.1.4'
gem 'knapsack'
@@ -146,14 +160,14 @@ group :test do
end
group :development do
gem 'byebug', '~> 11.0' # 11.1 requires ruby 2.4
gem 'byebug', '~> 11.0.0' # 11.1 requires ruby 2.4
gem 'debugger-linecache'
gem "newrelic_rpm", "~> 3.0"
gem "pry", "~> 0.12.0" # pry 0.13 is not compatible with pry-byebug 3.7
gem 'pry-byebug', '~> 3.7' # 3.8 requires ruby 2.4
gem 'pry-byebug', '~> 3.7.0' # 3.8 requires ruby 2.4
gem 'rubocop'
gem 'rubocop-rails'
gem 'spring', '1.7.2'
gem 'spring'
gem 'spring-commands-rspec'
# 1.0.9 fixed openssl issues on macOS https://github.com/eventmachine/eventmachine/issues/602

View File

@@ -6,31 +6,30 @@ GIT
GIT
remote: https://github.com/openfoodfoundation/better_spree_paypal_express.git
revision: 27ad7165ea4c6e8c5f120b42b676cb9c2c272100
branch: 2-0-stable
revision: e28e4a8c5cedba504eea9cdad4be440d277d7e68
branch: 2-1-0-stable
specs:
spree_paypal_express (2.0.3)
paypal-sdk-merchant (= 1.106.1)
spree_core (~> 2.0.3)
spree_core (~> 2.1.0)
GIT
remote: https://github.com/openfoodfoundation/ofn-qz.git
revision: 60da2ae4c44cbb4c8d602f59fb5fff8d0f21db3c
ref: 60da2ae4c44cbb4c8d602f59fb5fff8d0f21db3c
revision: 467f6ea1c44529c7c91cac4c8211bbd863588c0b
branch: ofn-rails-4
specs:
ofn-qz (0.1.0)
railties (~> 3.1)
GIT
remote: https://github.com/openfoodfoundation/spree.git
revision: e10ca1f689b1658040b081939b7523f6fb68895a
branch: 2-0-4-stable
revision: 0b0c422369c82b6dd7e7cb627a24e3a9fca19a6c
branch: 2-1-0-stable
specs:
spree_core (2.0.4)
activemerchant (~> 1.34)
spree_core (2.1.0)
activemerchant (= 1.78.0)
acts_as_list (= 0.2.0)
awesome_nested_set (= 2.1.5)
aws-sdk (~> 1.11.1)
awesome_nested_set (~> 3.0.0.rc.1)
aws-sdk (= 1.11.1)
cancan (~> 1.6.10)
ffaker (~> 1.16)
highline (= 1.6.18)
@@ -39,9 +38,9 @@ GIT
kaminari (~> 0.14.1)
money (= 5.1.1)
paperclip (~> 3.4.1)
paranoia (~> 1.3)
rails (~> 3.2.14)
ransack (= 0.7.2)
paranoia (~> 2.0)
rails (~> 4.0)
ransack (~> 1.0)
state_machine (= 1.2.0)
stringex (~> 1.5.1)
truncate_html (= 0.9.2)
@@ -82,19 +81,17 @@ GEM
remote: https://rubygems.org/
specs:
CFPropertyList (2.3.6)
actionmailer (3.2.22.5)
actionpack (= 3.2.22.5)
mail (~> 2.5.4)
actionpack (3.2.22.5)
activemodel (= 3.2.22.5)
activesupport (= 3.2.22.5)
builder (~> 3.0.0)
actionmailer (4.0.13)
actionpack (= 4.0.13)
mail (~> 2.5, >= 2.5.4)
actionpack (4.0.13)
activesupport (= 4.0.13)
builder (~> 3.1.0)
erubis (~> 2.7.0)
journey (~> 1.0.4)
rack (~> 1.4.5)
rack-cache (~> 1.2)
rack-test (~> 0.6.1)
sprockets (~> 2.2.1)
rack (~> 1.5.2)
rack-test (~> 0.6.2)
actionpack-action_caching (1.2.1)
actionpack (>= 4.0.0)
active_model_serializers (0.8.4)
activemodel (>= 3.0)
activemerchant (1.78.0)
@@ -102,24 +99,31 @@ GEM
builder (>= 2.1.2, < 4.0.0)
i18n (>= 0.6.9)
nokogiri (~> 1.4)
activemodel (3.2.22.5)
activesupport (= 3.2.22.5)
builder (~> 3.0.0)
activerecord (3.2.22.5)
activemodel (= 3.2.22.5)
activesupport (= 3.2.22.5)
arel (~> 3.0.2)
tzinfo (~> 0.3.29)
activemodel (4.0.13)
activesupport (= 4.0.13)
builder (~> 3.1.0)
activerecord (4.0.13)
activemodel (= 4.0.13)
activerecord-deprecated_finders (~> 1.0.2)
activesupport (= 4.0.13)
arel (~> 4.0.0)
activerecord-deprecated_finders (1.0.4)
activerecord-import (1.0.5)
activerecord (>= 3.2)
activerecord-postgresql-adapter (0.0.1)
pg
activeresource (3.2.22.5)
activemodel (= 3.2.22.5)
activesupport (= 3.2.22.5)
activesupport (3.2.22.5)
i18n (~> 0.6, >= 0.6.4)
multi_json (~> 1.0)
activerecord-session_store (1.1.3)
actionpack (>= 4.0)
activerecord (>= 4.0)
multi_json (~> 1.11, >= 1.11.2)
rack (>= 1.5.2, < 3)
railties (>= 4.0)
activesupport (4.0.13)
i18n (~> 0.6, >= 0.6.9)
minitest (~> 4.2)
multi_json (~> 1.3)
thread_safe (~> 0.1)
tzinfo (~> 0.3.37)
acts-as-taggable-on (3.5.0)
activerecord (>= 3.2, < 5)
acts_as_list (0.2.0)
@@ -133,11 +137,11 @@ GEM
tilt
angularjs-file-upload-rails (2.4.1)
angularjs-rails (1.5.5)
arel (3.0.3)
arel (4.0.2)
ast (2.4.0)
atomic (1.1.101)
awesome_nested_set (2.1.5)
activerecord (>= 3.0.0)
awesome_nested_set (3.0.3)
activerecord (>= 4.0.0, < 5)
awesome_print (1.8.0)
aws-sdk (1.11.1)
json (~> 1.4)
@@ -149,7 +153,7 @@ GEM
blockenspiel (0.5.0)
bugsnag (6.13.1)
concurrent-ruby (~> 1.0)
builder (3.0.4)
builder (3.1.4)
byebug (11.0.1)
cancan (1.6.10)
capybara (2.18.0)
@@ -166,13 +170,13 @@ GEM
cocaine (0.5.8)
climate_control (>= 0.0.3, < 1.0)
coderay (1.1.2)
coffee-rails (3.2.2)
coffee-rails (4.2.2)
coffee-script (>= 2.2.0)
railties (~> 3.2.0)
railties (>= 4.0.0)
coffee-script (2.4.1)
coffee-script-source
execjs
coffee-script-source (1.10.0)
coffee-script-source (1.12.2)
combine_pdf (1.0.16)
ruby-rc4 (>= 0.1.5)
compass (1.0.3)
@@ -194,16 +198,16 @@ GEM
concurrent-ruby (1.1.6)
crack (0.4.3)
safe_yaml (~> 1.0.0)
css_parser (1.7.0)
css_parser (1.7.1)
addressable
daemons (1.3.1)
dalli (2.7.10)
database_cleaner (0.7.1)
database_cleaner (1.7.0)
db2fog (0.9.0)
activerecord (>= 3.2.0, < 5.0)
fog (~> 1.0)
rails (>= 3.2.0, < 5.0)
ddtrace (0.35.2)
ddtrace (0.36.0)
msgpack
debugger-linecache (1.2.0)
delayed_job (4.1.8)
@@ -216,11 +220,11 @@ GEM
delayed_job (> 2.0.3)
rack-protection (>= 1.5.5)
sinatra (>= 1.4.4)
devise (2.2.8)
devise (3.0.4)
bcrypt-ruby (~> 3.0)
orm_adapter (~> 0.1)
railties (~> 3.1)
warden (~> 1.2.1)
railties (>= 3.2.6, < 5)
warden (~> 1.2.3)
devise-encryptable (0.2.0)
devise (>= 2.1.0)
diff-lcs (1.3)
@@ -278,7 +282,7 @@ GEM
fog-xml (~> 0.1.1)
ipaddress (~> 0.5)
json (>= 1.8, < 2.0)
fog-aliyun (0.3.2)
fog-aliyun (0.3.5)
fog-core
fog-json
ipaddress (~> 0.8)
@@ -336,8 +340,8 @@ GEM
multi_json (~> 1.10)
fog-local (0.6.0)
fog-core (>= 1.27, < 3.0)
fog-openstack (0.1.25)
fog-core (~> 1.40)
fog-openstack (0.3.10)
fog-core (>= 1.45, <= 2.1.0)
fog-json (>= 1.0)
ipaddress (>= 0.8)
fog-powerdns (0.2.0)
@@ -381,12 +385,13 @@ GEM
fog-voxel (0.1.0)
fog-core
fog-xml
fog-vsphere (2.3.0)
fog-vsphere (3.2.1)
fog-core
rbvmomi (~> 1.9)
fog-xenserver (0.3.0)
rbvmomi (>= 1.9, < 3)
fog-xenserver (1.0.0)
fog-core
fog-xml
xmlrpc
fog-xml (0.1.3)
fog-core
nokogiri (>= 1.5.11, < 2.0.0)
@@ -402,25 +407,26 @@ GEM
fuubar (2.5.0)
rspec-core (~> 3.0)
ruby-progressbar (~> 1.4)
geocoder (1.1.8)
geocoder (1.5.2)
get_process_mem (0.2.5)
ffi (~> 1.0)
gmaps4rails (1.5.6)
haml (4.0.7)
gmaps4rails (2.1.2)
haml (5.1.2)
temple (>= 0.8.0)
tilt
hashdiff (1.0.1)
highline (1.6.18)
hike (1.2.3)
httparty (0.16.2)
httparty (0.18.1)
mime-types (~> 3.0)
multi_xml (>= 0.5.2)
i18n (0.6.11)
i18n-js (3.6.0)
i18n-js (3.7.0)
i18n (>= 0.6.6)
immigrant (0.3.6)
activerecord (>= 3.0)
ipaddress (0.8.3)
jaro_winkler (1.5.4)
journey (1.0.4)
jquery-migrate-rails (1.2.1)
jquery-rails (3.1.5)
railties (>= 3.0, < 5.0)
@@ -443,15 +449,17 @@ GEM
letter_opener (1.7.0)
launchy (~> 2.2)
libv8 (7.3.492.27.1)
mail (2.5.5)
mime-types (~> 1.16)
treetop (~> 1.4.8)
mail (2.7.1)
mini_mime (>= 0.1.1)
method_source (0.9.2)
mime-types (1.25.1)
mini_mime (1.0.1)
mime-types (3.3.1)
mime-types-data (~> 3.2015)
mime-types-data (3.2020.0512)
mini_mime (1.0.2)
mini_portile2 (2.4.0)
mini_racer (0.2.14)
libv8 (> 7.3)
minitest (4.7.5)
momentjs-rails (2.20.1)
railties (>= 3.1)
money (5.1.1)
@@ -470,6 +478,7 @@ GEM
multi_xml (~> 0.5)
rack (>= 1.2, < 3)
oj (3.10.6)
optimist (3.0.0)
orm_adapter (0.5.0)
paper_trail (5.2.3)
activerecord (>= 3.0, < 6.0)
@@ -481,8 +490,8 @@ GEM
cocaine (~> 0.5.0)
mime-types
parallel (1.19.1)
paranoia (1.3.4)
activerecord (~> 3.1)
paranoia (2.4.2)
activerecord (>= 4.0, < 6.1)
parser (2.7.1.0)
ast (~> 2.4.0)
paypal-sdk-core (0.2.10)
@@ -491,10 +500,9 @@ GEM
paypal-sdk-merchant (1.106.1)
paypal-sdk-core (~> 0.2.3)
pg (0.21.0)
polyamorous (0.5.0)
activerecord (~> 3.0)
polyglot (0.3.5)
power_assert (1.1.5)
polyamorous (1.0.0)
activerecord (>= 3.0)
power_assert (1.2.0)
pry (0.12.2)
coderay (~> 1.1.0)
method_source (~> 0.9.0)
@@ -502,54 +510,50 @@ GEM
byebug (~> 11.0)
pry (~> 0.10)
public_suffix (4.0.3)
rack (1.4.7)
rack-cache (1.11.0)
rack (>= 0.4)
rack-mini-profiler (2.0.1)
rack (1.5.5)
rack-mini-profiler (2.0.2)
rack (>= 1.2.0)
rack-protection (1.5.5)
rack
rack-rewrite (1.5.1)
rack-ssl (1.3.4)
rack-ssl (1.4.1)
rack
rack-test (0.6.3)
rack (>= 1.0)
rails (3.2.22.5)
actionmailer (= 3.2.22.5)
actionpack (= 3.2.22.5)
activerecord (= 3.2.22.5)
activeresource (= 3.2.22.5)
activesupport (= 3.2.22.5)
bundler (~> 1.0)
railties (= 3.2.22.5)
rails-i18n (3.0.1)
i18n (~> 0.5)
rails (>= 3.0.0, < 4.0.0)
rails (4.0.13)
actionmailer (= 4.0.13)
actionpack (= 4.0.13)
activerecord (= 4.0.13)
activesupport (= 4.0.13)
bundler (>= 1.3.0, < 2.0)
railties (= 4.0.13)
sprockets-rails (~> 2.0)
rails-i18n (4.0.5)
i18n (~> 0.6)
railties (~> 4.0)
rails_safe_tasks (1.0.0)
railties (3.2.22.5)
actionpack (= 3.2.22.5)
activesupport (= 3.2.22.5)
rack-ssl (~> 1.3.2)
railties (4.0.13)
actionpack (= 4.0.13)
activesupport (= 4.0.13)
rake (>= 0.8.7)
rdoc (~> 3.4)
thor (>= 0.14.6, < 2.0)
thor (>= 0.18.1, < 2.0)
rainbow (3.0.0)
raindrops (0.19.1)
rake (13.0.1)
ransack (0.7.2)
actionpack (~> 3.0)
activerecord (~> 3.0)
polyamorous (~> 0.5.0)
ransack (1.2.3)
actionpack (>= 3.0)
activerecord (>= 3.0)
activesupport (>= 3.0)
i18n
polyamorous (~> 1.0.0)
rb-fsevent (0.10.3)
rb-inotify (0.10.1)
ffi (~> 1.0)
rbvmomi (1.13.0)
rbvmomi (2.2.0)
builder (~> 3.0)
json (>= 1.8)
nokogiri (~> 1.5)
trollop (~> 2.1)
rdoc (3.12.2)
json (~> 1.4)
optimist (~> 3.0)
redcarpet (3.5.0)
request_store (1.4.1)
rack (>= 1.4)
@@ -602,54 +606,53 @@ GEM
ruby-rc4 (0.1.5)
rubyzip (1.3.0)
safe_yaml (1.0.5)
sass (3.3.14)
sass-rails (3.2.6)
railties (~> 3.2.0)
sass (>= 3.1.10)
tilt (~> 1.3)
sass (3.4.25)
sass-rails (5.0.7)
railties (>= 4.0.0, < 6)
sass (~> 3.1)
sprockets (>= 2.8, < 4.0)
sprockets-rails (>= 2.0, < 4.0)
tilt (>= 1.1, < 3)
select2-rails (3.4.9)
sass-rails
thor (~> 0.14)
selenium-webdriver (3.142.7)
childprocess (>= 0.5, < 4.0)
rubyzip (>= 1.2.2)
shoulda-matchers (2.8.0)
activesupport (>= 3.0.0)
shoulda-matchers (3.1.3)
activesupport (>= 4.0.0)
simplecov (0.17.1)
docile (~> 1.1)
json (>= 1.8, < 3)
simplecov-html (~> 0.10.0)
simplecov-html (0.10.2)
sinatra (1.4.6)
rack (~> 1.4)
sinatra (1.4.8)
rack (~> 1.5)
rack-protection (~> 1.4)
tilt (>= 1.3, < 3)
spinjs-rails (1.4)
rails (>= 3.1)
spring (1.7.2)
spring-commands-rspec (1.0.4)
spring (>= 0.9.1)
sprockets (2.2.3)
sprockets (2.12.5)
hike (~> 1.2)
multi_json (~> 1.0)
rack (~> 1.0)
tilt (~> 1.1, != 1.3.0)
sprockets-rails (2.3.3)
actionpack (>= 3.0)
activesupport (>= 3.0)
sprockets (>= 2.8, < 4.0)
state_machine (1.2.0)
stringex (1.5.1)
stripe (5.15.0)
test-unit (3.3.5)
stripe (5.22.0)
temple (0.8.2)
test-unit (3.3.6)
power_assert
thor (0.20.3)
thread_safe (0.3.6)
tilt (1.4.1)
timecop (0.9.1)
treetop (1.4.15)
polyglot
polyglot (>= 0.3.1)
trollop (2.9.9)
truncate_html (0.9.2)
turbo-sprockets-rails3 (0.3.14)
railties (> 3.2.8, < 4.0.0)
sprockets (>= 2.2.0)
tzinfo (0.3.57)
uglifier (4.2.0)
execjs (>= 0.3.0, < 3)
@@ -674,11 +677,13 @@ GEM
addressable (>= 2.3.6)
crack (>= 0.3.2)
hashdiff (>= 0.4.0, < 2.0.0)
whenever (0.11.0)
whenever (1.0.0)
chronic (>= 0.6.3)
wicked_pdf (1.1.0)
wicked_pdf (1.4.0)
activesupport
wkhtmltopdf-binary (0.12.5)
xml-simple (1.1.5)
xmlrpc (0.3.0)
xpath (2.1.0)
nokogiri (~> 1.3)
@@ -686,55 +691,64 @@ PLATFORMS
ruby
DEPENDENCIES
actionpack-action_caching
active_model_serializers (= 0.8.4)
activemerchant (~> 1.78)
activemerchant (~> 1.78.0)
activerecord-import
activerecord-postgresql-adapter
activerecord-session_store
acts-as-taggable-on (~> 3.4)
acts_as_list (= 0.2.0)
andand
angular-rails-templates (~> 0.3.0)
angularjs-file-upload-rails (~> 2.4.1)
angularjs-rails (= 1.5.5)
atomic
awesome_nested_set (~> 3.0.0.rc.1)
awesome_print
aws-sdk
aws-sdk (= 1.11.1)
blockenspiel
bugsnag
byebug (~> 11.0)
byebug (~> 11.0.0)
cancan (~> 1.6.10)
capybara (>= 2.18.0)
catalog!
coffee-rails (~> 3.2.1)
coffee-rails (~> 4.2.2)
combine_pdf
compass-rails
custom_error_message!
daemons
dalli
database_cleaner (= 0.7.1)
database_cleaner
db2fog
ddtrace
debugger-linecache
delayed_job_active_record
delayed_job_web
devise (~> 2.2.5)
devise-encryptable (= 0.2.0)
devise (~> 3.0.1)
devise-encryptable
dfc_provider!
diffy
eventmachine (>= 1.2.3)
factory_bot_rails
factory_bot_rails (= 4.10.0)
ffaker (~> 1.16)
figaro
foreigner
foundation-icons-sass-rails
foundation-rails
foundation-rails (= 5.5.2.1)
fuubar (~> 2.5.0)
geocoder
gmaps4rails
haml
highline (= 1.6.18)
httparty (~> 0.18)
i18n (~> 0.6.11)
i18n-js (~> 3.6.0)
i18n-js (~> 3.7.0)
immigrant
jquery-migrate-rails
jquery-rails (= 3.1.5)
jquery-ui-rails (~> 4.2)
json (>= 1.7.7)
json_spec (~> 1.1.4)
jwt (~> 2.2)
kaminari (~> 0.14.1)
@@ -742,6 +756,7 @@ DEPENDENCIES
letter_opener (>= 1.4.1)
mini_racer (= 0.2.14)
momentjs-rails
money (= 5.1.1)
newrelic_rpm (~> 3.0)
oauth2 (~> 1.4.4)
ofn-qz!
@@ -749,15 +764,17 @@ DEPENDENCIES
order_management!
paper_trail (~> 5.2.3)
paperclip (~> 3.4.1)
paranoia (~> 2.0)
pg (~> 0.21.0)
pry (~> 0.12.0)
pry-byebug (~> 3.7)
pry-byebug (~> 3.7.0)
rack-mini-profiler (< 3.0.0)
rack-rewrite
rack-ssl
rails (~> 3.2.22)
rails-i18n (~> 3.0.0)
rails (~> 4.0.13)
rails-i18n (~> 4.0)
rails_safe_tasks (~> 1.0)
ransack (~> 1.2.3)
redcarpet
roadie-rails (~> 1.3.0)
roo (~> 2.8.3)
@@ -765,23 +782,23 @@ DEPENDENCIES
rspec-retry
rubocop
rubocop-rails
sass (~> 3.3)
sass-rails (~> 3.2.3)
sass
sass-rails
select2-rails (~> 3.4.7)
selenium-webdriver
shoulda-matchers
simplecov
spinjs-rails
spree_core!
spree_i18n!
spree_paypal_express!
spring (= 1.7.2)
spring
spring-commands-rspec
state_machine (= 1.2.0)
stringex (~> 1.5.1)
stripe
test-unit (~> 3.3)
timecop
truncate_html
turbo-sprockets-rails3
truncate_html (= 0.9.2)
uglifier (>= 1.0.3)
unicorn
unicorn-rails

File diff suppressed because it is too large Load Diff

Before

Width:  |  Height:  |  Size: 107 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 138 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 105 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 570 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 206 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 244 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 195 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 34 KiB

File diff suppressed because it is too large Load Diff

Before

Width:  |  Height:  |  Size: 123 KiB

View File

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

Before

Width:  |  Height:  |  Size: 6.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 759 B

View File

@@ -30,7 +30,6 @@
//= require spree
//= require admin/spree/spree-select2
//= require modernizr
//= require spin
//= require equalize
//= require css_browser_selector_dev
//= require responsive-tables

View File

@@ -105,6 +105,7 @@ angular.module("ofn.admin").controller "AdminProductEditCtrl", ($scope, $timeout
$scope.producerFilter = "0"
$scope.categoryFilter = "0"
$scope.importDateFilter = "0"
$scope.fetchProducts()
$scope.$watch 'sortOptions', (sort) ->
return unless sort && sort.predicate != ""

View File

@@ -37,6 +37,7 @@ angular.module("admin.orders").controller "ordersCtrl", ($scope, $timeout, Reque
'q[distributor_id_in][]': $scope['q']['distributor_id_in'],
'q[order_cycle_id_in][]': $scope['q']['order_cycle_id_in'],
'q[s]': $scope.sorting || 'completed_at desc',
shipping_method_id: $scope.shipping_method_id,
per_page: $scope.per_page,
page: page
}

View File

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

View File

@@ -1,27 +1,7 @@
$(document).ready ->
opts =
lines: 11
length: 2
width: 3
radius: 9
corners: 1
rotate: 0
color: '#fff'
speed: 0.8
trail: 48
shadow: false
hwaccel: true
className: 'spinner'
zIndex: 2e9
top: 'auto'
left: 'auto'
target = document.getElementById("spinner")
$(document).ajaxStart ->
$("#progress").fadeIn()
spinner = new Spinner(opts).spin(target)
$(document).ajaxStop ->
$("#progress").fadeOut()
$("#progress").fadeOut()

View File

@@ -1,13 +1,15 @@
#= require jquery
#= require jquery_ujs
#= require jquery.ui.all
#= require spin
#
#= require angular
#= require angular-cookies
#= require angular-sanitize
#= require angular-animate
#= require angular-resource
#= require autocomplete.min.js
#= require leaflet-1.6.0.js
#= require leaflet-providers.js
#= require lodash.underscore.js
# bluebird.js is a dependency of angular-google-maps.js 2.0.0
#= require bluebird.js

View File

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

View File

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

View File

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

View File

@@ -2,6 +2,5 @@ Darkswarm.controller "ProductNodeCtrl", ($scope, $modal, FilterSelectorsService)
$scope.enterprise = $scope.product.supplier # For the modal, so it's consistent
$scope.triggerProductModal = ->
$scope.productTaxonSelectors = FilterSelectorsService.createSelectors()
$scope.productPropertySelectors = FilterSelectorsService.createSelectors()
$modal.open(templateUrl: "product_modal.html", scope: $scope)

View File

@@ -0,0 +1,9 @@
Darkswarm.directive "bodyScroll", ($rootScope, BodyScroll) ->
restrict: 'A'
scope: true
link: (scope, elem, attrs) ->
$rootScope.$on "toggleBodyScroll", ->
if BodyScroll.disabled
elem.addClass "disable-scroll"
else
elem.removeClass "disable-scroll"

View File

@@ -1,19 +0,0 @@
Darkswarm.directive "cartToggle", ($document) ->
# Toggles visibility of the "cart" popover
restrict: 'A'
link: (scope, elem, attr)->
scope.open = false
$document.bind 'click', (event) ->
cart_button = elem[0]
element_and_parents = [event.target, event.target.parentElement, event.target.parentElement.parentElement]
cart_button_clicked = (element_and_parents.indexOf(cart_button) != -1)
if cart_button_clicked
scope.$apply ->
scope.open = !scope.open
else
scope.$apply ->
scope.open = false
return

View File

@@ -0,0 +1,100 @@
Darkswarm.directive 'ofnOpenStreetMap', ($window, Enterprises, EnterpriseModal, availableCountries, openStreetMapConfig) ->
restrict: 'E'
replace: true
scope: true
template: "<div></div>"
link: (scope, element, attrs, ctrl, transclude)->
map = null
markers = []
enterpriseNames = []
openStreetMapProviderName = openStreetMapConfig.open_street_map_provider_name
openStreetMapProviderOptions = JSON.parse(openStreetMapConfig.open_street_map_provider_options)
average = (values) ->
total = values.reduce (sum, value) ->
sum = sum + value
, 0
total / values.length
averageAngle = (angleName) ->
positiveAngles = []
negativeAngles = []
for enterprise in Enterprises.enterprises
if enterprise.latitude? && enterprise.longitude?
if enterprise[angleName] > 0
positiveAngles.push(enterprise[angleName])
else
negativeAngles.push(enterprise[angleName])
averageNegativeAngle = average(negativeAngles)
averagePositiveAngle = average(positiveAngles)
if negativeAngles.length == 0
averagePositiveAngle
else if positiveAngles.length == 0
averageNegativeAngle
else if averagePositiveAngle > averageNegativeAngle
averagePositiveAngle - averageNegativeAngle
else
averageNegativeAngle - averagePositiveAngle
buildMarker = (enterprise, latlng, title) ->
icon = L.icon
iconUrl: enterprise.icon
marker = L.marker latlng,
draggable: true,
icon: icon,
riseOnHover: true,
title: title
marker.on "click", ->
EnterpriseModal.open enterprise
marker
enterpriseName = (enterprise) ->
return enterprise.name + " (" + enterprise.address.address1 + ", " + enterprise.address.city + ", " + enterprise.address.state_name + ")";
goToEnterprise = (selectedEnterpriseName) ->
enterprise = Enterprises.enterprises.find (enterprise) ->
enterpriseName(enterprise) == selectedEnterpriseName
map.setView([enterprise.latitude, enterprise.longitude], 12)
displayMap = ->
setMapDimensions()
averageLatitude = averageAngle("latitude")
averageLongitude = averageAngle("longitude")
zoomLevel = 6
map = L.map('open-street-map')
L.tileLayer.provider(openStreetMapProviderName, openStreetMapProviderOptions).addTo(map)
map.setView([averageLatitude, averageLongitude], zoomLevel)
displayEnterprises = ->
for enterprise in Enterprises.enterprises
if enterprise.latitude? && enterprise.longitude?
marker = buildMarker(enterprise, { lat: enterprise.latitude, lng: enterprise.longitude }, enterprise.name).addTo(map)
enterpriseNames.push(enterpriseName(enterprise))
markers.push(marker)
displaySearchField = () ->
new Autocomplete('#open-street-map--search',
onSubmit: goToEnterprise
search: searchEnterprises
)
overwriteInlinePositionRelativeToPositionSearchField = ->
$('#open-street-map--search').css("position", "absolute")
overwriteInlinePositionRelativeToPositionSearchField()
searchEnterprises = (input) ->
if input.length < 1
return []
enterpriseNames.filter (country) ->
country.toLowerCase().includes input.toLowerCase()
setMapDimensions = ->
height = $window.innerHeight - element.offset().top
element.css "width", "100%"
element.css "height", (height + "px")
displayMap()
displayEnterprises()
displaySearchField()

View File

@@ -14,8 +14,8 @@ Darkswarm.directive "ofnPageAlert", ($timeout) ->
# Wait a moment after page load before showing the alert. Otherwise we often miss the
# start of the animation.
$timeout ->
container_elems.addClass("move-down")
container_elems.addClass("move-up")
, 1000
scope.close = ->
container_elems.removeClass("move-down")
container_elems.removeClass("move-up")

View File

@@ -10,6 +10,5 @@ Darkswarm.directive "ofnSmoothScrollTo", ($location, $document)->
# Scrolling is confused by our position:fixed top bar and page alert bar
# - add an offset to scroll to the correct location, plus 5px buffer
offset = $("nav.top-bar").height()
offset += $(".page-alert.move-down").height()
offset += 5
$document.scrollTo target, offset, 1000

View File

@@ -0,0 +1,7 @@
angular.module("Darkswarm").factory "BodyScroll", ($rootScope) ->
new class BodyScroll
disabled: false
toggle: ->
@disabled = !@disabled
$rootScope.$broadcast "toggleBodyScroll"

View File

@@ -21,14 +21,18 @@ Darkswarm.factory 'Checkout', ($injector, CurrentOrder, ShippingMethods, StripeE
try
@handle_checkout_error_response(response)
catch error
@loadFlash(error: t("checkout.failed")) # inform the user about the unexpected error
throw error # generate a BugsnagJS alert
try
@loadFlash(error: t("checkout.failed")) # inform the user about the unexpected error
finally
throw error # generate a BugsnagJS alert
handle_checkout_error_response: (response) =>
if response.data.path
throw response unless response.data?
if response.data.path?
Navigation.go response.data.path
else
throw response unless response.data.flash
throw response unless response.data.flash?
@errors = response.data.errors
@loadFlash(response.data.flash)

View File

@@ -1,4 +1,4 @@
Darkswarm.factory 'Enterprises', (enterprises, ShopsResource, CurrentHub, Taxons, Dereferencer, Matcher, Geo, $rootScope) ->
Darkswarm.factory 'Enterprises', (enterprises, ShopsResource, CurrentHub, Taxons, Dereferencer, Matcher, GmapsGeo, $rootScope) ->
new class Enterprises
enterprises: []
enterprises_by_id: {}
@@ -59,7 +59,7 @@ Darkswarm.factory 'Enterprises', (enterprises, ShopsResource, CurrentHub, Taxons
false
calculateDistance: (query, firstMatching) ->
if query?.length > 0 and Geo.OK
if query?.length > 0 and GmapsGeo.OK
if firstMatching?
@setDistanceFrom firstMatching
else
@@ -68,9 +68,9 @@ Darkswarm.factory 'Enterprises', (enterprises, ShopsResource, CurrentHub, Taxons
@resetDistance()
calculateDistanceGeo: (query) ->
Geo.geocode query, (results, status) =>
GmapsGeo.geocode query, (results, status) =>
$rootScope.$apply =>
if status == Geo.OK
if status == GmapsGeo.OK
#console.log "Geocoded #{query} -> #{results[0].geometry.location}."
@setDistanceFrom results[0].geometry.location
else
@@ -79,7 +79,7 @@ Darkswarm.factory 'Enterprises', (enterprises, ShopsResource, CurrentHub, Taxons
setDistanceFrom: (locatable) ->
for enterprise in @enterprises
enterprise.distance = Geo.distanceBetween enterprise, locatable
enterprise.distance = GmapsGeo.distanceBetween enterprise, locatable
$rootScope.$broadcast 'enterprisesChanged'
resetDistance: ->

View File

@@ -1,5 +1,5 @@
Darkswarm.service "Geo", ->
new class Geo
Darkswarm.service "GmapsGeo", ->
new class GmapsGeo
OK: google?.maps?.GeocoderStatus?.OK
# Usage:
@@ -10,7 +10,7 @@ Darkswarm.service "Geo", ->
# console.log "Error: #{status}"
geocode: (address, callback) ->
geocoder = new google.maps.Geocoder()
geocoder.geocode {'address': address, 'region': "<%= Spree::Country.find_by_id(Spree::Config[:default_country_id]).iso %>"}, callback
geocoder.geocode {'address': address, 'region': "<%= Spree::Country.find_by(id: Spree::Config[:default_country_id]).iso %>"}, callback
distanceBetween: (src, dst) ->
google.maps.geometry.spherical.computeDistanceBetween @toLatLng(src), @toLatLng(dst)

View File

@@ -4,7 +4,7 @@ Darkswarm.factory "MapConfiguration", ->
center:
latitude: -37.4713077
longitude: 144.7851531
cluster_icon: 'assets/map_009-cluster.svg'
cluster_icon: "<%= image_path('map_009-cluster.svg') %>"
zoom: 12
additional_options:
# mapTypeId: 'satellite'

View File

@@ -20,7 +20,6 @@ Darkswarm.factory 'Variants', ->
name = variant.product_name
else
name = "#{variant.product_name} - #{variant.name_to_display}"
name += " (#{variant.options_text})" if variant.options_text
name
lineItemFor: (variant) ->

View File

@@ -4,7 +4,7 @@
%div.menu{ 'ng-show' => "expanded" }
%div.menu_item{ ng: { repeat: "column in columns", click: "toggle(column)", class: "{selected: column.visible}" } }
%span.check
%span.name {{column.name }}
%span.name {{ column.name }}
%hr
%div.menu_item.text-center
%input.fullwidth.orange{ type: "button", ng: { value: "saved() ? 'Saved': 'Saving'", show: "saved() || saving", disabled: "saved()" } }

View File

@@ -1,6 +1,5 @@
.row
.columns.small-12.large-6.product-header
.columns.small-12.medium-6.large-6.product-header
%h3{"ng-bind" => "::product.name"}
%span
%em {{'products_from' | t}}
@@ -8,19 +7,14 @@
%br
.filter-shopfront.taxon-selectors.inline-block
%filter-selector{ 'selector-set' => "productTaxonSelectors", objects: "[product] | taxonsOf" }
.filter-shopfront.property-selectors.inline-block
%filter-selector{ 'selector-set' => "productPropertySelectors", objects: "[product] | propertiesWithValuesOf" }
%div{"ng-if" => "product.description_html"}
%hr
.product-description{"ng-if" => "product.description_html"}
%p.text-small{"ng-bind-html" => "::product.description_html"}
%hr
.columns.small-12.large-6
%img.product-img{"ng-src" => "{{::product.largeImage}}", "ng-if" => "::product.largeImage"}
%img.product-img.placeholder{ src: "/assets/noimage/large.png", "ng-if" => "::!product.largeImage"}
.columns.small-12.medium-6.large-6.product-img
%img{"ng-src" => "{{::product.largeImage}}", "ng-if" => "::product.largeImage"}
%img.placeholder{ src: "/assets/noimage/large.png", "ng-if" => "::!product.largeImage"}
%ng-include{src: "'partials/close.html'"}

View File

@@ -40,6 +40,8 @@
tabindex: 2,
inputmode: "password",
"ng-model" => "spree_user.password_confirmation"}
%span.error{"ng-show" => "errors.password_confirmation != null"}
{{ errors.password_confirmation.join(' ') }}
.row
.large-12.columns
%input.button.primary{name: "commit",

View File

@@ -1,38 +1,31 @@
@import 'admin/globals/variables';
@import 'admin/globals/mixins';
#progress {
display: none;
#progress {
@include border-radius(10px);
position: fixed;
top: 0;
top: -10px;
left: 50%;
z-index: 1000;
opacity: 0.8;
width: 100%;
width: 200px;
background-color: $spree-blue;
color: $color-1;
display: none;
font-size: 120%;
font-weight: bold;
line-height: 40px;
margin-left: -100px;
padding-top: 15px;
text-align: center;
text-transform: uppercase;
.wrapper {
@include border-radius(10px);
top: -10px;
.spinner {
position: absolute;
left: 50%;
width: 200px;
margin-left: -100px;
padding: 11px 0;
background-color: $color-3;
color: $color-1;
text-align: center;
width: 30px;
height: 30px;
top: -5px;
margin-left: -15px;
}
#spinner {
position: absolute;
top: 10px;
left: 50%;
margin-left: -5px;
}
.progress-message {
font-size: 120%;
font-weight: $font-weight-bold;
margin-top: 20px;
text-transform: uppercase;
}
}
}

View File

@@ -1,5 +1,3 @@
@import '../plugins/font-awesome';
.todolist{
.todo {
&.done {
@@ -18,10 +16,6 @@
.steps {
display: none;
}
i {
@extend .icon-check
}
}
}
}

View File

@@ -1,4 +0,0 @@
@import 'plugins/font-awesome';
.icon-refund:before { @extend .icon-ok:before }
.icon-credit:before { @extend .icon-ok:before }

View File

@@ -7,7 +7,7 @@
@include fullbg;
background-color: black;
background-image: url("/assets/home/tagline-bg.jpg");
background-image: image-url("home/tagline-bg.jpg");
background-repeat: no-repeat;
background-position: center center;
margin-bottom: 2em;

View File

@@ -27,13 +27,11 @@
a, a.button {
display: block;
padding-top: 0.5rem;
@include border-radius(0.5em);
border: 1px solid $border-clr;
padding: 0.5em 0.625em;
font-size: 0.875em;
color: $base-clr;
font-size: 0.75em;
background: white;

View File

@@ -1,9 +1,30 @@
.product-header {
padding-left: 1.5rem;
h1, h2, h3, h4, h5, h6 {
margin: 0;
margin: 0.2rem 1.5rem 0 0;
}
hr {
margin: 0.5em 0;
span {
color: $grey-500;
}
.product-description {
margin: 1rem 0.25rem 0.25rem 0;
}
.property-selectors li {
margin: 0 0.25rem 0.25rem 0;
padding: 0.4rem 0 0;
a {
border: 1px solid $grey-300;
font-weight: normal;
padding: 0.15rem 0.5rem;
}
span {
color: $grey-600;
}
}
}

View File

@@ -62,7 +62,9 @@ ordercycle {
}
select {
background-image: url('/assets/white-caret.svg');
background-image: image-url('white-caret.svg');
background-size: 30px auto;
background-position-x: 102%;
}
p {
@@ -71,24 +73,27 @@ ordercycle {
select,
p {
width: inherit;
display: inline-block;
color: $white;
background-color: transparent;
border: 0;
border-radius: 0 $radius-small $radius-small 0;
margin-bottom: 0;
padding: 0.5em 1.25em 0.5em 0.75em;
font-size: 1em;
line-height: 1.3em;
padding: 0.5em 1.25em 0.5em 0.75em;
height: 2.35em;
background-size: 30px auto;
border-radius: 0 $radius-small $radius-small 0;
min-width: 13em;
width: 200px;
@include breakpoint(mobile) {
width: 100%;
min-width: 0;
}
@media all and (min-width: 640px) and (max-width: 1024px), (min-width: 1200px) {
width: 250px;
}
}
option {
@@ -107,6 +112,7 @@ ordercycle {
@include breakpoint(mobile) {
display: flex;
margin-right: 0;
}
}
@@ -141,7 +147,7 @@ shop ordercycle {
select {
background-color: $white;
background-image: url('/assets/black-caret.svg');
background-image: image-url('black-caret.svg');
color: $grey-500;
font-style: italic;
}
@@ -162,7 +168,7 @@ shop ordercycle {
@include breakpoint(tablet) {
float: none;
padding: 0 0 10px;
padding: 0;
}
}

View File

@@ -4,7 +4,7 @@
products {
product {
.taxon-flag {
background: transparent url("/assets/flag.svg") top center no-repeat;
background: transparent image-url("flag.svg") top center no-repeat;
background-size: 34px 39px;
min-height: 40px;
width: 34px;

View File

@@ -3,6 +3,9 @@
* 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 autocomplete
*= require leaflet
*= require_self
*/
@import 'variables';
@@ -13,7 +16,7 @@
@import 'layout/*';
@import '*';
@import 'pages/*';
@import '../web/all';
@import 'web/all';
ofn-modal {
display: block;

View File

@@ -143,8 +143,8 @@
}
.reveal-modal-bg.in {
filter: alpha(opacity = 50);
opacity: 0.5;
filter: alpha(opacity = 75);
opacity: 0.75;
}
.animate-repeat {

View File

@@ -0,0 +1,124 @@
@import "mixins";
@import "variables";
@import "branding";
.expanding-sidebar.cart-sidebar {
.background {
z-index: 150;
}
.sidebar {
padding: $topbar-height 0 0;
background-color: $white;
z-index: 160;
@include breakpoint(desktop) {
padding: $mobile-nav-height 0 0;
}
}
.cart-header {
background-color: $white;
border-bottom: 1px solid $grey-100;
min-height: 3.5em;
padding: 1em;
position: sticky;
top: 0;
.title {
color: $grey-800;
margin: 0;
}
.close {
color: $grey-500;
float: right;
i {
vertical-align: middle;
}
}
}
.cart-content {
margin-bottom: $sidebar-footer-height + 2em;
.cart-empty {
text-align: center;
padding-top: 10em;
width: 100%;
p {
font-size: 1.5em;
}
}
}
.go-shopping {
display: none;
padding: 0 1.5em;
@include breakpoint(mobile) {
display: inline-block;
}
}
table {
width: 100%;
border: 0;
border-spacing: 0;
margin: 0;
.product-cart {
background-color: $white;
td {
border-bottom: 1px solid $grey-100;
padding: 0.75em 1em 0.5em;
vertical-align: top;
&.image {
width: 42px;
padding: 0.5em 0 0.5em 1em;
}
span {
color: $grey-800;
font-size: 16px;
line-height: 1.4em;
}
img {
max-width: 56px;
max-height: 56px;
}
.options-text {
color: $grey-500;
font-size: 14px;
}
}
}
}
.cart-total {
color: $white;
text-align: center;
margin: -0.5em 0 0.75em;
}
.sidebar,
.sidebar-footer {
width: 375px;
margin-right: -375px;
@include breakpoint(mobile) {
width: 100%;
margin-right: -100%;
}
}
.sidebar-footer {
z-index: 170;
}
}

View File

@@ -0,0 +1,77 @@
@import "mixins";
@import "branding";
@import "compass/css3/user-interface";
@import "variables";
#update-cart {
#errorExplanation {
display: none;
}
}
#cart-detail {
width: 100%;
.cart-item-delete,
.bought-item-delete {
a {
font-size: 1.125em;
}
}
.out-of-stock {
color: $clr-brick;
}
button,
.button {
margin: 0;
}
.toggle-bought {
cursor: pointer;
}
.bought td {
color: $med-grey;
h5 {
color: $med-grey;
}
.already-confirmed {
float: right;
}
}
input {
&.ng-invalid-stock,
&.ng-invalid-number {
border: 1px solid $clr-brick;
}
}
}
.item-thumb-image {
display: none;
@media screen and (min-width: 640px) {
display: inline-block;
float: left;
padding-right: 0.5em;
width: 36px;
height: 36px;
}
}
.links {
.button {
padding: 1.125rem 0 1.1875rem;
width: 210px;
font-size: 1.1em;
@include breakpoint(mobile) {
width: 100%;
}
}
}

View File

@@ -11,7 +11,7 @@ section {
display: block;
background: $white;
position: relative;
z-index: 2;
z-index: 20;
.details {
box-sizing: border-box;
@@ -20,10 +20,6 @@ section {
padding: 30px 0 0;
position: relative;
select {
width: 200px;
}
img {
display: block;
height: 100px;

View File

@@ -0,0 +1,79 @@
@import "mixins";
@import "variables";
@import "branding";
.expanding-sidebar {
display: flex;
flex-direction: column;
height: 100%;
.background {
position: fixed;
top: 0;
right: 0;
z-index: 200;
height: 100%;
width: 100%;
background-color: $shop-sidebar-overlay;
opacity: 0;
transition: opacity $transition-sidebar;
}
&.shown {
.background {
opacity: 1;
}
.sidebar,
.sidebar-footer {
margin-right: 0;
}
}
.sidebar {
position: fixed;
top: 0;
right: 0;
z-index: 210;
height: 100%;
width: $sidebar-large-width;
margin-right: -$sidebar-large-width;
background-color: rgba($white, 0.95);
padding: 1em;
transition: margin $transition-sidebar;
overflow-y: auto;
}
.sidebar-footer {
background-color: $grey-800;
width: $sidebar-large-width;
margin-right: -$sidebar-large-width;
min-height: $sidebar-footer-height;
position: fixed;
bottom: 0;
right: 0;
transition: margin $transition-sidebar;
padding: 1em;
button,
a.button {
width: 48%;
}
}
@include breakpoint(tablet) {
.sidebar,
.sidebar-footer {
width: $sidebar-medium-width;
margin-right: -$sidebar-medium-width;
}
}
@include breakpoint(mobile) {
.sidebar,
.sidebar-footer {
width: $sidebar-small-width;
margin-right: -$sidebar-small-width;
}
}
}

View File

@@ -50,7 +50,7 @@ footer {
width: 100%;
border: 1px solid rgba($dark-grey, 0.35);
background-image: url("/assets/tile-wide.png");
background-image: image-url("tile-wide.png");
background-position: center center;
background-color: #bbb;
padding: 12px 0 8px 0;

View File

@@ -42,7 +42,7 @@
}
#stats.pane {
background-image: url("/assets/home/background-blurred-oranges.jpg");
background-image: image-url("home/background-blurred-oranges.jpg");
background-position: center center;
background-color: $ofn-grey;
@@ -94,7 +94,7 @@
}
.home-icon-box {
background-image: url("/assets/ofn-o.png");
background-image: image-url("ofn-o.png");
background-position: center center;
background-repeat: no-repeat;
background-size: auto 100%;
@@ -121,15 +121,15 @@
background-size: auto 100%;
&.search {
background-image: url("/assets/icon-mask-magnifier.png");
background-image: image-url("icon-mask-magnifier.png");
}
&.shop {
background-image: url("/assets/icon-mask-apple.png");
background-image: image-url("icon-mask-apple.png");
}
&.pick-up-delivery {
background-image: url("/assets/icon-mask-truck.png");
background-image: image-url("icon-mask-truck.png");
}
}
}

View File

@@ -13,7 +13,7 @@
@include fullbg;
background-color: $ofn-grey;
background-image: url("/assets/home/home.jpg");
background-image: image-url("home/home.jpg");
position: fixed;
left: 0;
right: 0;

View File

@@ -3,18 +3,22 @@
@import "branding";
.product-img {
padding: 5px;
margin-bottom: 10px;
outline: 1px solid #ccc;
text-align: center;
@include box-shadow(0 1px 2px 1px rgba(0, 0, 0, 0.15));
img {
padding: 0.3rem;
// placeholder for when no product images
&.placeholder {
opacity: 0.35;
// placeholder for when no product images
&.placeholder {
opacity: 0.35;
@include breakpoint(desktop) {
display: none;
@include breakpoint(desktop) {
display: none;
}
}
@media only screen and (max-width: 1024px) {
margin: 0 0 0.5rem;
}
}
}
@@ -49,10 +53,3 @@
.producer-logo {
max-width: 220px;
}
@media only screen and (max-width: 1024px) {
.product-img {
margin-top: 2em;
margin-bottom: 1em;
}
}

View File

@@ -6,6 +6,7 @@
.map-container {
width: 100%;
position: relative;
map, .angular-google-map-container, google-map, .angular-google-map {
display: block;
@@ -38,6 +39,30 @@
background: rgba(255, 255, 255, 1);
}
}
#open-street-map {
z-index: 1;
}
#open-street-map--search {
top: 16px;
left: 54px;
width: 50%;
z-index: 1000;
.autocomplete-input,
.autocomplete-result-list {
border: 2px solid $grey-500;
&:hover, &:active, &:focus {
border-color: $clr-brick;
}
}
.autocomplete-result-list {
border-top: 1px dotted $grey-500;
}
}
}
.map-footer {
@@ -63,3 +88,8 @@
left: 0px;
}
}
.tabs-content .map-footer {
position: relative;
bottom: 30px;
}

View File

@@ -11,6 +11,7 @@ nav.top-bar {
font-size: 16px;
margin-bottom: 0;
height: $topbar-height;
z-index: 190;
}
@media #{$large-only} {
@@ -174,7 +175,7 @@ nav.top-bar {
height: $mobile-nav-height;
position: fixed;
width: 100%;
z-index: 1;
z-index: 190; // Above cart sidebar and shaded overlay
.cart-span {
background-color: #f4704c;
@@ -225,14 +226,7 @@ nav.top-bar {
.off-canvas-wrap .tab-bar .menu-icon {
@include box-shadow(none);
}
.off-canvas-wrap.move-right .tab-bar .menu-icon span {
box-shadow: 0 0px 0 1px #666, 0 7px 0 1px #666, 0 14px 0 1px #666;
}
.tab-bar .menu-icon span::after {
box-shadow: 0 0 0 1px black, 0 7px 0 1px black, 0 14px 0 1px black;
text-indent: 0;
}
.tab-bar .ofn-logo {

View File

@@ -5,7 +5,7 @@
// Generic \\
@mixin tiledPane {
background-image: url("/assets/tile-wide.png");
background-image: image-url("tile-wide.png");
background-color: $brand-colour;
background-position: center center;
@@ -236,7 +236,7 @@
@mixin producersbg {
background-color: lighten($clr-turquoise, 68%);
background-image: url("/assets/producers.svg");
background-image: image-url("producers.svg");
background-position: center 50px;
background-repeat: no-repeat;
background-size: 922px 763px;
@@ -244,13 +244,13 @@
@mixin hubsbg {
background-color: $brand-colour;
background-image: url("/assets/hubs-bg.jpg");
background-image: image-url("hubs-bg.jpg");
background-position: center center;
}
@mixin groupsbg {
background-color: lighten($clr-brick, 56%);
background-image: url("/assets/groups.svg");
background-image: image-url("groups.svg");
background-position: center 50px;
background-repeat: no-repeat;
background-size: 922px 922px;

View File

@@ -5,8 +5,6 @@ dialog
, .reveal-modal {
border: none;
outline: none;
padding: 30px 20px 0 20px;
border-bottom: 30px solid white;
overflow-y: scroll;
overflow-x: hidden;
min-height: 260px;
@@ -18,23 +16,26 @@ dialog
// Reveal.js break point:
// @media only screen and (max-width: 40.063em)
// Small - when modal IS full screen
// Small - smaller outside area
@media only screen and (max-width: 640px) {
left: 0;
max-height: 100%;
position: absolute !important;
top: 0;
left: 4%;
max-height: 92%;
max-width: 92%;
padding: 15px 0 0;
top: 4%;
}
// Medium and up - when modal IS NOT full screen
// Medium and up - larger outside area
@media only screen and (min-width: 641px) {
border-bottom: 30px solid $white;
max-height: 90%;
padding: 30px 20px 0 20px;
top: 5%;
}
}
.reveal-modal-bg {
background-color: rgba(0, 0, 0, 0.85);
background-color: $black;
position: fixed;
}
@@ -58,6 +59,10 @@ dialog
dialog .close-reveal-modal
, .reveal-modal .close-reveal-modal {
@include close-button(0.25rem);
background-color: $grey-500;
color: $white;
font-size: 1.5rem;
right: 0.25rem;
}

View File

@@ -14,7 +14,7 @@ $page-alert-height: 55px;
border-left: none;
border-right: none;
background-color: #bbb;
background-image: url("/assets/tile-wide.png");
background-image: image-url("tile-wide.png");
background-position: center center;
padding: 12px 0 8px 0;
margin: 0;
@@ -55,19 +55,18 @@ $page-alert-height: 55px;
.off-canvas-fixed nav.tab-bar,
.off-canvas-fixed .page-alert {
@include transition(all 1000ms ease-in-out);
&.move-down {
margin-top: $page-alert-height;
}
}
.off-canvas-wrap .page-alert {
top: -1 * $page-alert-height;
bottom: -1 * $page-alert-height;
top: unset;
z-index: 100;
}
.off-canvas-wrap.move-right .inner-wrap.move-down {
.left-off-canvas-menu {
top: -1 * $page-alert-height;
&.move-up {
bottom: 0;
}
.alert-box {
border-bottom: 0;
}
}

View File

@@ -23,6 +23,12 @@
text-decoration: underline;
}
}
@media only screen and (max-width: 640px) {
.tabbable {
margin: 0 15px;
}
}
}
@media only screen and (min-width: 1025px) {

View File

@@ -2,6 +2,10 @@
@import "mixins";
#registration-modal {
@media only screen and (max-width: 640px) {
margin: 0 15px;
}
header {
text-align: center;

View File

@@ -11,88 +11,7 @@
@import "shop-taxon-flag";
@import "shop-popovers";
$sidebar-small-width: 75%;
$sidebar-medium-width: 65%;
$sidebar-large-width: 45%;
$sidebar-footer-height: 5em;
.darkswarm {
.shop-filters-sidebar {
display: flex;
flex-direction: column;
height: 100%;
.background {
position: fixed;
top: 0;
right: 0;
z-index: 200;
height: 100%;
width: 100%;
background-color: $shop-sidebar-overlay;
opacity: 0;
transition: opacity $transition-sidebar;
}
&.shown {
.background {
opacity: 1;
}
.sidebar, .sidebar-footer {
margin-right: 0;
}
}
.sidebar {
position: fixed;
top: 0;
right: 0;
z-index: 210;
height: 100%;
width: $sidebar-large-width;
margin-right: -$sidebar-large-width;
background-color: rgba($white, 0.95);
padding: 1em;
transition: margin $transition-sidebar;
overflow-y: scroll;
.property-selectors {
margin-bottom: $sidebar-footer-height + 2em;
}
}
.sidebar-footer {
background-color: $grey-800;
width: $sidebar-large-width;
margin-right: -$sidebar-large-width;
height: $sidebar-footer-height;
position: fixed;
bottom: 0;
right: 0;
transition: margin $transition-sidebar;
padding: 1em;
button {
width: 48%;
}
}
@include breakpoint(tablet) {
.sidebar, .sidebar-footer {
width: $sidebar-medium-width;
margin-right: -$sidebar-medium-width;
}
}
@include breakpoint(mobile) {
.sidebar, .sidebar-footer {
width: $sidebar-small-width;
margin-right: -$sidebar-small-width;
}
}
}
products {
display: block;
@@ -205,11 +124,13 @@ $sidebar-footer-height: 5em;
.open-shop-message {
a {
color: #0096ad;
color: $teal-500;
&:hover, &:focus, &:active {
&:hover,
&:focus,
&:active {
text-decoration: none;
color: #4aadbd;
color: $teal-400;
}
}
}
@@ -231,9 +152,10 @@ $sidebar-footer-height: 5em;
}
}
.warning-sign {
margin: 0 10px 0 5px;
display: inline-block;
.warning-sign {
margin: 0 10px 0 5px;
display: inline-block;
line-height: 1.9rem;
strong {
color: $grey-650;
@@ -255,3 +177,9 @@ $sidebar-footer-height: 5em;
}
}
}
.shop-filters-sidebar {
.property-selectors {
margin-bottom: $sidebar-footer-height + 2em;
}
}

View File

@@ -32,7 +32,7 @@
padding: 0 2.25em 0 2.75em;
width: 100%;
min-width: 0;
background: $white url("/assets/icn-search-grey.png") 1em center no-repeat;
background: $white image-url("icn-search-grey.png") 1em center no-repeat;
font-size: 1rem; // avoid zoom on iphone, see issue #4535
&::placeholder {

View File

@@ -9,6 +9,7 @@
color: $dark-grey;
box-shadow: $distributor-header-shadow;
position: relative;
z-index: 10;
.columns {
display: flex;

View File

@@ -1,140 +0,0 @@
@import "mixins";
@import "branding";
@import "compass/css3/user-interface";
@import 'variables';
.cart {
@include user-select(none);
.cart-span, .cart-span a {
display: inline-block;
}
.cart-span {
float: left;
}
.joyride-tip-guide {
display: block;
right: 0;
top: $topbar-height;
width: 480px;
@media screen and (min-width: 641px) {
overflow-y: auto;
max-height: calc(95vh - 55px);
}
@media screen and (max-width: 640px) {
width: 96%;
}
.joyride-nub {
right: 22px !important;
left: auto;
}
table {
width: 100%;
border: none;
border-spacing: 0px;
margin-bottom: 5px;
tr.total-cart {
color: #fff;
background-color: #424242;
td {
color: #fff;
}
}
tr.product-cart {
background-color: #333333;
border-top: 1px solid #424242;
td {
padding: 4px 12px;
color: #fff;
}
}
}
.buttons {
margin-bottom: 0.1em;
.button {
height: auto;
top: 0px;
}
}
}
}
// Shopping cart
#update-cart {
#errorExplanation {
display: none;
}
}
#cart-detail {
.cart-item-delete, .bought-item-delete {
a {
font-size: 1.125em;
}
}
.out-of-stock {
color: $clr-brick;
}
button, .button {
margin: 0;
}
.toggle-bought {
cursor: pointer;
}
tr.bought td {
color: $med-grey;
h5 {
color: $med-grey;
}
.already-confirmed {
float: right;
}
}
input {
&.ng-invalid-stock, &.ng-invalid-number {
border: 1px solid $clr-brick;
}
}
}
.item-thumb-image {
display: none;
@media screen and (min-width: 640px) {
display: inline-block;
float: left;
padding-right: 0.5em;
width: 36px;
height: 36px;
}
}
.links {
.button {
padding: 1.125rem 0 1.1875rem;
width: 210px;
@media all and (max-width: 480px) {
width: 100%;
}
}
}

View File

@@ -124,7 +124,12 @@ button.success, .button.success {
}
}
button.large {
a.button.large {
line-height: 2.75em;
}
button.large,
a.button.large {
height: 3em;
font-size: 1em;
color: $white;
@@ -158,3 +163,7 @@ button.large {
padding-right: 0;
padding-left: 0;
}
.disable-scroll {
overflow: hidden;
}

View File

@@ -33,6 +33,11 @@ $topbar-dropdown-link-bg-hover: $white;
$mobile-nav-height: 2.8em;
$sidebar-small-width: 75%;
$sidebar-medium-width: 65%;
$sidebar-large-width: 45%;
$sidebar-footer-height: 5em;
$radius-small: 0.25em;
$radius-medium: 0.5em;

View File

@@ -68,6 +68,10 @@ table.social {
background-color: white !important;
border: 1px solid #ebebeb;
}
&.fullwidth {
width: 100%;
}
}
table.order-summary {

View File

@@ -28,7 +28,7 @@ module Admin
# See https://github.com/rails/rails/blob/3-2-stable/activerecord/lib/active_record/locking/pessimistic.rb#L69
# and https://www.postgresql.org/docs/current/static/sql-select.html#SQL-FOR-UPDATE-SHARE
order.with_lock do
if @line_item.update_attributes(params[:line_item])
if @line_item.update_attributes(line_item_params)
order.update_distribution_charge!
render nothing: true, status: :no_content # No Content, does not trigger ng resource auto-update
else
@@ -79,6 +79,10 @@ module Admin
@line_item.order
end
def line_item_params
params.require(:line_item).permit(:price, :quantity, :final_weight_volume)
end
def order_permissions
::Permissions::Order.new(spree_current_user)
end

View File

@@ -8,7 +8,6 @@ module Admin
@cp_set.collection.each { |cp| authorize! :bulk_update, cp }
if @cp_set.save
# Return saved VOs with IDs
render json: @cp_set.collection, each_serializer: Api::Admin::ColumnPreferenceSerializer
else
if @cp_set.errors.present?
@@ -21,14 +20,23 @@ module Admin
private
def permitted_params
params.permit(
:action_name,
column_preferences: [:id, :user_id, :action_name, :column_name, :name, :visible]
)
end
def load_collection
collection_hash = Hash[params[:column_preferences].each_with_index.map { |cp, i| [i, cp] }]
collection_hash.select!{ |_i, cp| cp[:action_name] == params[:action_name] }
collection_hash = Hash[permitted_params[:column_preferences].
each_with_index.map { |cp, i| [i, cp] }]
collection_hash.select!{ |_i, cp| cp[:action_name] == permitted_params[:action_name] }
@cp_set = ColumnPreferenceSet.new @column_preferences, collection_attributes: collection_hash
end
def collection
ColumnPreference.where(user_id: spree_current_user, action_name: params[:action_name])
ColumnPreference.where(user_id: spree_current_user,
action_name: permitted_params[:action_name])
end
def collection_actions

View File

@@ -32,7 +32,8 @@ module Admin
PreferenceSections::GroupSignupPageSection.new,
PreferenceSections::MainLinksSection.new,
PreferenceSections::FooterAndExternalLinksSection.new,
PreferenceSections::UserGuideSection.new
PreferenceSections::UserGuideSection.new,
PreferenceSections::MapSection.new
]
end
end

View File

@@ -29,7 +29,7 @@ module Admin
end
def create
@customer = Customer.new(params[:customer])
@customer = Customer.new(customer_params)
if user_can_create_customer?
if @customer.save
tag_rule_mapping = TagRule.mapping_for(Enterprise.where(id: @customer.enterprise))
@@ -71,7 +71,7 @@ module Admin
def managed_enterprise_id
@managed_enterprise_id ||= Enterprise.managed_by(spree_current_user).
select('enterprises.id').find_by_id(params[:enterprise_id])
select('enterprises.id').find_by(id: params[:enterprise_id])
end
def load_managed_shops
@@ -87,6 +87,19 @@ module Admin
[:subscription]
end
def customer_params
params.require(:customer).permit(
:enterprise_id, :name, :email, :code, :tag_list,
ship_address_attributes: PermittedAttributes::Address.attributes,
bill_address_attributes: PermittedAttributes::Address.attributes,
)
end
# Used in ResourceController#update
def permitted_resource_params
customer_params
end
def tag_rule_mapping
TagRule.mapping_for(Enterprise.where(id: managed_enterprise_id))
end

View File

@@ -51,8 +51,8 @@ module Admin
def collection
case action
when :for_order_cycle
order_cycle = OrderCycle.find_by_id(params[:order_cycle_id]) if params[:order_cycle_id]
coordinator = Enterprise.find_by_id(params[:coordinator_id]) if params[:coordinator_id]
order_cycle = OrderCycle.find_by(id: params[:order_cycle_id]) if params[:order_cycle_id]
coordinator = Enterprise.find_by(id: params[:coordinator_id]) if params[:coordinator_id]
order_cycle = OrderCycle.new(coordinator: coordinator) if order_cycle.nil? && coordinator.present?
enterprises = OpenFoodNetwork::OrderCyclePermissions.new(spree_current_user, order_cycle).visible_enterprises
EnterpriseFee.for_enterprises(enterprises).order('enterprise_id', 'fee_type', 'name')

View File

@@ -28,7 +28,9 @@ module Admin
def build_resource_with_address
enterprise_group = build_resource_without_address
enterprise_group.address = Spree::Address.new
enterprise_group.address.country = Spree::Country.find_by_id(Spree::Config[:default_country_id])
enterprise_group.address.country = Spree::Country.find_by(
id: Spree::Config[:default_country_id]
)
enterprise_group
end
alias_method_chain :build_resource, :address
@@ -38,7 +40,7 @@ module Admin
# The ! version is important to raise a RecordNotFound error.
def find_resource
permalink = params[:id] || params[:enterprise_group_id]
EnterpriseGroup.find_by_permalink!(permalink)
EnterpriseGroup.find_by!(permalink: permalink)
end
private
@@ -55,5 +57,13 @@ module Admin
def collection
EnterpriseGroup.by_position
end
def permitted_resource_params
params.require(:enterprise_group).permit(
:name, :description, :long_description, :on_front_page, :owner_id, :permalink,
:email, :website, :facebook, :instagram, :linkedin, :twitter,
enterprise_ids: [], address_attributes: PermittedAttributes::Address.attributes
)
end
end
end

View File

@@ -11,7 +11,7 @@ module Admin
end
def create
@enterprise_relationship = EnterpriseRelationship.new params[:enterprise_relationship]
@enterprise_relationship = EnterpriseRelationship.new enterprise_relationship_params
if @enterprise_relationship.save
render text: Api::Admin::EnterpriseRelationshipSerializer.new(@enterprise_relationship).to_json
@@ -25,5 +25,11 @@ module Admin
@enterprise_relationship.destroy
render nothing: true
end
private
def enterprise_relationship_params
params.require(:enterprise_relationship).permit(:parent_id, :child_id, permissions_list: [])
end
end
end

View File

@@ -7,7 +7,7 @@ module Admin
end
def create
@enterprise_role = EnterpriseRole.new params[:enterprise_role]
@enterprise_role = EnterpriseRole.new enterprise_role_params
if @enterprise_role.save
render text: Api::Admin::EnterpriseRoleSerializer.new(@enterprise_role).to_json
@@ -22,5 +22,11 @@ module Admin
@enterprise_role.destroy
render nothing: true
end
private
def enterprise_role_params
params.require(:enterprise_role).permit(:user_id, :enterprise_id)
end
end
end

View File

@@ -47,7 +47,7 @@ module Admin
tag_rules_attributes = params[object_name].delete :tag_rules_attributes
update_tag_rules(tag_rules_attributes) if tag_rules_attributes.present?
update_enterprise_notifications
if @object.update_attributes(params[object_name])
if @object.update_attributes(enterprise_params)
invoke_callbacks(:update, :after)
flash[:success] = flash_message_for(@object, :successfully_updated)
respond_with(@object) do |format|
@@ -115,7 +115,7 @@ module Admin
def build_resource_with_address
enterprise = build_resource_without_address
enterprise.address ||= Spree::Address.new
enterprise.address.country ||= Spree::Country.find_by_id(Spree::Config[:default_country_id])
enterprise.address.country ||= Spree::Country.find_by(id: Spree::Config[:default_country_id])
enterprise
end
alias_method_chain :build_resource, :address
@@ -123,7 +123,7 @@ module Admin
# Overriding method on Spree's resource controller,
# so that resources are found using permalink
def find_resource
Enterprise.find_by_permalink(params[:id])
Enterprise.find_by(permalink: params[:id])
end
private
@@ -139,8 +139,8 @@ module Admin
def collection
case action
when :for_order_cycle
@order_cycle = OrderCycle.find_by_id(params[:order_cycle_id]) if params[:order_cycle_id]
coordinator = Enterprise.find_by_id(params[:coordinator_id]) if params[:coordinator_id]
@order_cycle = OrderCycle.find_by(id: params[:order_cycle_id]) if params[:order_cycle_id]
coordinator = Enterprise.find_by(id: params[:coordinator_id]) if params[:coordinator_id]
@order_cycle = OrderCycle.new(coordinator: coordinator) if @order_cycle.nil? && coordinator.present?
enterprises = OpenFoodNetwork::OrderCyclePermissions.new(spree_current_user, @order_cycle)
@@ -211,7 +211,8 @@ module Admin
# record is persisted. This problem is compounded by the use of calculators.
@object.transaction do
tag_rules_attributes.select{ |_i, attrs| attrs[:type].present? }.each do |_i, attrs|
rule = @object.tag_rules.find_by_id(attrs.delete(:id)) || attrs[:type].constantize.new(enterprise: @object)
rule = @object.tag_rules.find_by(id: attrs.delete(:id)) ||
attrs[:type].constantize.new(enterprise: @object)
create_calculator_for(rule, attrs) if rule.type == "TagRule::DiscountOrder" && rule.calculator.nil?
rule.update_attributes(attrs)
end
@@ -234,7 +235,9 @@ module Admin
def check_can_change_bulk_sells
unless spree_current_user.admin?
params[:enterprise_set][:collection_attributes].each do |_i, enterprise_params|
enterprise_params.delete :sells unless spree_current_user == Enterprise.find_by_id(enterprise_params[:id]).owner
unless spree_current_user == Enterprise.find_by(id: enterprise_params[:id]).owner
enterprise_params.delete :sells
end
end
end
end
@@ -252,7 +255,7 @@ module Admin
def override_sells
unless spree_current_user.admin?
has_hub = spree_current_user.owned_enterprises.is_hub.any?
new_enterprise_is_producer = Enterprise.new(params[:enterprise]).is_primary_producer
new_enterprise_is_producer = Enterprise.new(enterprise_params).is_primary_producer
params[:enterprise][:sells] = has_hub && !new_enterprise_is_producer ? 'any' : 'none'
end
end
@@ -311,5 +314,14 @@ module Admin
def ams_prefix_whitelist
[:index, :basic]
end
def enterprise_params
PermittedAttributes::Enterprise.new(params).call
end
# Used in ResourceController#create
def permitted_resource_params
enterprise_params
end
end
end

View File

@@ -14,14 +14,14 @@ module Admin
private
# Overriding Spree method to load data from params here so that
# Overriding resource_controller method to load data from params here so that
# we can authorise #create using an object with required attributes
def build_resource
if parent_data.present?
parent.public_send(controller_name).build
else
model_class.new(params[object_name]) # This line changed
end
model_class.new(permitted_resource_params)
end
def permitted_resource_params
params.require(:inventory_item).permit(:enterprise_id, :variant_id, :visible)
end
end
end

View File

@@ -8,7 +8,7 @@ module Admin
authorize! :edit, @enterprise
existing_user = Spree::User.find_by_email(@email)
existing_user = Spree::User.find_by(email: @email)
if existing_user
render json: { errors: t('admin.enterprises.invite_manager.user_already_exists') }, status: :unprocessable_entity

View File

@@ -40,7 +40,7 @@ module Admin
end
def create
@order_cycle_form = OrderCycleForm.new(@order_cycle, params, spree_current_user)
@order_cycle_form = OrderCycleForm.new(@order_cycle, order_cycle_params, spree_current_user)
if @order_cycle_form.save
flash[:notice] = I18n.t(:order_cycles_create_notice)
@@ -56,7 +56,7 @@ module Admin
end
def update
@order_cycle_form = OrderCycleForm.new(@order_cycle, params, spree_current_user)
@order_cycle_form = OrderCycleForm.new(@order_cycle, order_cycle_params, spree_current_user)
if @order_cycle_form.save
respond_to do |format|
@@ -145,7 +145,7 @@ module Admin
preload(:schedules).
ransack(params[:q]).
result.
accessible_by(spree_current_user)
visible_by(spree_current_user)
end
def load_data_for_index
@@ -164,7 +164,7 @@ module Admin
def require_coordinator
@order_cycle.coordinator =
permitted_coordinating_enterprises_for(@order_cycle).find_by_id(params[:coordinator_id])
permitted_coordinating_enterprises_for(@order_cycle).find_by(id: params[:coordinator_id])
return if params[:coordinator_id] && @order_cycle.coordinator
available_coordinators = permitted_coordinating_enterprises_for(@order_cycle)
@@ -235,5 +235,9 @@ module Admin
def ams_prefix_whitelist
[:basic, :index]
end
def order_cycle_params
PermittedAttributes::OrderCycle.new(params).call
end
end
end

View File

@@ -11,7 +11,7 @@ module Admin
end
def load_enterprise
@enterprise = Enterprise.find_by_permalink! params[:enterprise_id]
@enterprise = Enterprise.find_by! permalink: params[:enterprise_id]
end
def load_properties

View File

@@ -3,10 +3,11 @@ require 'order_management/subscriptions/proxy_order_syncer'
module Admin
class SchedulesController < ResourceController
before_filter :check_editable_order_cycle_ids, only: [:create, :update]
before_filter :adapt_params, only: [:update]
before_filter :editable_order_cycle_ids_for_create, only: [:create]
before_filter :editable_order_cycle_ids_for_update, only: [:update]
before_filter :check_dependent_subscriptions, only: [:destroy]
create.after :sync_subscriptions
update.after :sync_subscriptions
update.after :sync_subscriptions_for_update
respond_to :json
@@ -27,6 +28,23 @@ module Admin
end
end
def create
return respond_with(@schedule) if params[:order_cycle_ids].blank?
@schedule.attributes = permitted_resource_params
if @schedule.save
@schedule.order_cycle_ids = params[:order_cycle_ids]
@schedule.save!
sync_subscriptions_for_create
flash[:success] = flash_message_for(@schedule, :successfully_created)
end
respond_with(@schedule)
end
private
def collection
@@ -48,17 +66,43 @@ module Admin
[:index]
end
def check_editable_order_cycle_ids
# In this controller, params like params[:name] are moved into
# params[:schedule] becoming params[:schedule][:name].
# For some reason in rails 4, this is not happening for params[:order_cycle_ids]
# We do it manually in this filter
def adapt_params
params[:schedule] = {} if params[:schedule].blank?
params[:schedule][:order_cycle_ids] = params[:order_cycle_ids]
end
def editable_order_cycle_ids_for_create
return unless params[:order_cycle_ids]
@existing_order_cycle_ids = []
result = editable_order_cycles(params[:order_cycle_ids])
params[:order_cycle_ids] = result
end
def editable_order_cycle_ids_for_update
return unless params[:schedule][:order_cycle_ids]
requested = params[:schedule][:order_cycle_ids]
@existing_order_cycle_ids = @schedule.persisted? ? @schedule.order_cycle_ids : []
permitted = OrderCycle.where(id: params[:schedule][:order_cycle_ids] | @existing_order_cycle_ids).merge(OrderCycle.managed_by(spree_current_user)).pluck(:id)
@existing_order_cycle_ids = @schedule.order_cycle_ids
result = editable_order_cycles(params[:schedule][:order_cycle_ids])
params[:schedule][:order_cycle_ids] = result
@schedule.order_cycle_ids = result
end
def editable_order_cycles(requested)
permitted = OrderCycle
.where(id: params[:order_cycle_ids] | @existing_order_cycle_ids)
.merge(OrderCycle.managed_by(spree_current_user))
.pluck(:id)
result = @existing_order_cycle_ids
result |= (requested & permitted) # add any requested & permitted ids
result -= ((result & permitted) - requested) # remove any existing and permitted ids that were not specifically requested
params[:schedule][:order_cycle_ids] = result
@object.order_cycle_ids = result
result
end
def check_dependent_subscriptions
@@ -73,9 +117,19 @@ module Admin
@permissions = OpenFoodNetwork::Permissions.new(spree_current_user)
end
def sync_subscriptions
def sync_subscriptions_for_update
return unless params[:schedule][:order_cycle_ids]
sync_subscriptions
end
def sync_subscriptions_for_create
return unless params[:order_cycle_ids]
sync_subscriptions
end
def sync_subscriptions
removed_ids = @existing_order_cycle_ids - @schedule.order_cycle_ids
new_ids = @schedule.order_cycle_ids - @existing_order_cycle_ids
return unless removed_ids.any? || new_ids.any?
@@ -84,5 +138,9 @@ module Admin
syncer = OrderManagement::Subscriptions::ProxyOrderSyncer.new(subscriptions)
syncer.sync!
end
def permitted_resource_params
params.require(:schedule).permit(:id, :name)
end
end
end

View File

@@ -28,7 +28,7 @@ module Admin
def status
return render json: { status: :stripe_disabled } unless Spree::Config.stripe_connect_enabled
stripe_account = StripeAccount.find_by_enterprise_id(params[:enterprise_id])
stripe_account = StripeAccount.find_by(enterprise_id: params[:enterprise_id])
return render json: { status: :account_missing } unless stripe_account
authorize! :status, stripe_account

View File

@@ -11,7 +11,7 @@ module Admin
respond_to :json
def build
@subscription_line_item.assign_attributes(params[:subscription_line_item])
@subscription_line_item.assign_attributes(subscription_line_item_params)
@subscription_line_item.price_estimate = price_estimate
render json: @subscription_line_item, serializer: Api::Admin::SubscriptionLineItemSerializer,
shop: @shop, schedule: @schedule
@@ -24,10 +24,10 @@ module Admin
end
def load_build_context
@shop = Enterprise.managed_by(spree_current_user).find_by_id(params[:shop_id])
@schedule = permissions.editable_schedules.find_by_id(params[:schedule_id])
@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 = variant_if_eligible(params[:subscription_line_item][:variant_id]) if @shop.present?
@variant = variant_if_eligible(subscription_line_item_params[:variant_id]) if @shop.present?
end
def new_actions
@@ -56,7 +56,11 @@ module Admin
end
def variant_if_eligible(variant_id)
OrderManagement::Subscriptions::VariantsList.eligible_variants(@shop).find_by_id(variant_id)
OrderManagement::Subscriptions::VariantsList.eligible_variants(@shop).find_by(id: variant_id)
end
def subscription_line_item_params
params.require(:subscription_line_item).permit(:quantity, :variant_id)
end
end
end

View File

@@ -64,7 +64,7 @@ module Admin
private
def save_form_and_render(render_issues = true)
form = OrderManagement::Subscriptions::Form.new(@subscription, params[:subscription])
form = OrderManagement::Subscriptions::Form.new(@subscription, subscription_params)
unless form.save
render json: { errors: form.json_errors }, status: :unprocessable_entity
return
@@ -148,11 +148,15 @@ module Admin
# Overriding Spree method to load data from params here so that
# we can authorise #create using an object with required attributes
def build_resource
Subscription.new(params[:subscription])
Subscription.new(subscription_params)
end
def ams_prefix_whitelist
[:index]
end
def subscription_params
PermittedAttributes::Subscription.new(params).call
end
end
end

View File

@@ -68,7 +68,7 @@ module Admin
end
def load_collection
collection_hash = Hash[params[:variant_overrides].each_with_index.map { |vo, i| [i, vo] }]
collection_hash = Hash[variant_overrides_params.each_with_index.map { |vo, i| [i, vo] }]
@vo_set = VariantOverrideSet.new @variant_overrides, collection_attributes: collection_hash
end
@@ -76,6 +76,7 @@ module Admin
@variant_overrides = VariantOverride.
includes(variant: :product).
for_hubs(params[:hub_id] || @hubs).
references(:variant).
select { |vo| vo.variant.present? }
end
@@ -91,5 +92,15 @@ module Admin
full_messages.each { |fm| errors.add(:base, fm) }
errors
end
def variant_overrides_params
params.require(:variant_overrides).map do |variant_override|
variant_override.permit(
:id, :variant_id, :hub_id,
:price, :count_on_hand, :sku, :on_demand,
:default_stock, :resettable, :tag_list
)
end
end
end
end

View File

@@ -32,6 +32,12 @@ module Api
use_renderers :json
check_authorization
# Temporary measure to help debugging strong_parameters
rescue_from ActiveModel::ForbiddenAttributesError, with: :print_params
def print_params
raise ActiveModel::ForbiddenAttributesError, params.to_s
end
def set_jsonp_format
return unless params[:callback] && request.get?
@@ -55,7 +61,7 @@ module Api
return
end
return if @current_api_user = Spree.user_class.find_by_spree_api_key(api_key.to_s)
return if @current_api_user = Spree.user_class.find_by(spree_api_key: api_key.to_s)
invalid_api_key
end

View File

@@ -1,3 +1,7 @@
# frozen_string_literal: true
require 'api/admin/enterprise_serializer'
module Api
class EnterpriseAttachmentController < Api::BaseController
class MissingImplementationError < StandardError; end
@@ -25,7 +29,7 @@ module Api
end
def load_enterprise
@enterprise = Enterprise.find_by_permalink(params[:enterprise_id].to_s)
@enterprise = Enterprise.find_by(permalink: params[:enterprise_id].to_s)
raise UnknownEnterpriseAuthorizationActionError if enterprise_authorize_action.blank?
authorize!(enterprise_authorize_action, @enterprise)

View File

@@ -15,7 +15,7 @@ module Api
private
def enterprise_fee
@enterprise_fee ||= EnterpriseFee.find_by_id params[:id]
@enterprise_fee ||= EnterpriseFee.find_by id: params[:id]
end
end
end

View File

@@ -1,5 +1,5 @@
module Api
class EnterprisesController < BaseController
class EnterprisesController < Api::BaseController
before_filter :override_owner, only: [:create, :update]
before_filter :check_type, only: :update
before_filter :override_sells, only: [:create, :update]
@@ -9,8 +9,12 @@ module Api
def create
authorize! :create, Enterprise
# params[:user_ids] breaks the enterprise creation
# We remove them from params and save them after creating the enterprise
user_ids = params[:enterprise].delete(:user_ids)
@enterprise = Enterprise.new(params[:enterprise])
if @enterprise.save
@enterprise.user_ids = user_ids
render text: @enterprise.id, status: :created
else
invalid_resource!(@enterprise)
@@ -18,7 +22,7 @@ module Api
end
def update
@enterprise = Enterprise.find_by_permalink(params[:id]) || Enterprise.find(params[:id])
@enterprise = Enterprise.find_by(permalink: params[:id]) || Enterprise.find(params[:id])
authorize! :update, @enterprise
if @enterprise.update_attributes(params[:enterprise])
@@ -29,7 +33,7 @@ module Api
end
def update_image
@enterprise = Enterprise.find_by_permalink(params[:id]) || Enterprise.find(params[:id])
@enterprise = Enterprise.find_by(permalink: params[:id]) || Enterprise.find(params[:id])
authorize! :update, @enterprise
if params[:logo] && @enterprise.update_attributes( logo: params[:logo] )

View File

@@ -58,7 +58,7 @@ module Api
end
def load_data_from_exchange
exchange = Exchange.find_by_id(params[:exchange_id])
exchange = Exchange.find_by(id: params[:exchange_id])
@order_cycle = exchange.order_cycle
@incoming = exchange.incoming
@@ -66,10 +66,10 @@ module Api
end
def load_data_from_other_params
@enterprise = Enterprise.find_by_id(params[:enterprise_id])
@enterprise = Enterprise.find_by(id: params[:enterprise_id])
if params[:order_cycle_id]
@order_cycle = OrderCycle.find_by_id(params[:order_cycle_id])
@order_cycle = OrderCycle.find_by(id: params[:order_cycle_id])
elsif !params[:incoming]
raise "order_cycle_id is required to list products for new outgoing exchange"
end

View File

@@ -81,11 +81,11 @@ module Api
end
def distributor
@distributor ||= Enterprise.find_by_id(params[:distributor])
@distributor ||= Enterprise.find_by(id: params[:distributor])
end
def order_cycle
@order_cycle ||= OrderCycle.find_by_id(params[:id])
@order_cycle ||= OrderCycle.find_by(id: params[:id])
end
def customer

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