Commit Graph

11245 Commits

Author SHA1 Message Date
Luis Ramos
c5ca0976a5 Merge pull request #4873 from jeduardo824/ampersand-not-showing-correctly
fix ampersand problem using ng-bind-html
2020-03-06 17:40:54 +00:00
Pau Pérez Fabregat
be7b3d5a12 Merge pull request #4809 from jeduardo824/redirect-to-shops-when-shop-does-not-exist
redirect to shops list when an enterprise is not found
2020-03-06 18:39:00 +01:00
Luis Ramos
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
be9f33312b Merge pull request #4904 from luisramos0/tax_rates_match
Move TaxRate#match to OFN to avoid having to adapt to the spree 2.1 version
2020-03-05 18:55:55 +01:00
Pau Perez
0042ab2f28 Rewrite INNER JOIN in ActiveRecord's DSL 2020-03-05 17:45:06 +01:00
Pau Perez
53a63775fe Replace LEFT JOIN with INNER JOIN
I see no reason why a LEFT might be needed and its the root cause of the
awful performance.
2020-03-05 17:45:06 +01:00
Pau Perez
461b1b26f3 Add controller tests to cover totals by supplier 2020-03-05 17:45:06 +01:00
Luis Ramos
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
af8369ae1b Remove 5 years old debug code
This reverts ab9bc7b1dc, it can be added if the issue happens again
2020-03-03 10:56:57 +00:00
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
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
Luis Ramos
6c8b175344 Merge match and its alias method 2020-03-03 09:29:02 +00:00
Pau Pérez Fabregat
390cc61273 Merge pull request #4867 from Matt-Yorkley/3-0-gmappable
[Spree 2.1] acts_as_gmappable
2020-03-03 10:28:12 +01:00
Luis Ramos
a508c55700 Bring TaxRate.match to OFN
The version of this method in spree 2.1 will break our build

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

We can get back to this in the future if we ever experience the mentioned bug
2020-03-03 09:27:04 +00:00
Pau Pérez Fabregat
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
Maikel
0b18344572 Merge pull request #4790 from mkllnk/4779-payment-method-display
4779 payment method display
2020-03-03 10:10:51 +11:00
Luis Ramos
777754f8a9 Remove dead code that creates products in product_set 2020-03-02 19:41:51 +00:00
Matt-Yorkley
ed5351d23e Fix duplicate validations in payment methods and shipping methods
Updates the syntax to follow the recommended usage in the code comments of the ActiveModel #validates_with method.

Fixes:

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

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

        (compared using ==)
      # ./spec/models/spree/payment_method_spec.rb:16:in `block (2 levels) in <module:Spree>'
2020-03-02 19:02:07 +01:00
Luis Ramos
d0a3ab68f3 Make processing payments also pending payments 2020-03-02 17:30:12 +00:00
luisramos0
6877485c90 Extract AuthorizeResponsePatcher from stripeSCA gateway 2020-03-02 17:30:12 +00:00
luisramos0
95c1b7f7a6 Extract PaymentIntentValidator from StripeSCA gateway 2020-03-02 17:30:12 +00:00
luisramos0
3fcf286516 Extract PostCheckoutActions from checkout controller 2020-03-02 17:30:12 +00:00
luisramos0
e2cdb01a28 Improve readability of stripe sca gateway code 2020-03-02 17:30:12 +00:00
luisramos0
08e729673f Move stripe sca gateway error messages to translatable keys 2020-03-02 17:30:12 +00:00
luisramos0
c0bf09131f Make order.pending_payments include payments in pending state so that these payments (pending is the state after authorization for credit cards) are also processed as part of the normal order workflow 2020-03-02 17:30:12 +00:00
luisramos0
19042e0d37 Make checkout controller able to receive a redirect from stripe with a payment_intent as parameter 2020-03-02 17:30:12 +00:00
luisramos0
4b3b4e00ff Add authorize action to the stripe_sca gateway and make it fetch the redirect url if provided
Change the purchase action to only capture the alrteady authorized payment intent
2020-03-02 17:30:12 +00:00
luisramos0
e3ffe8fe6b Add Checkout Stripe redirect logic to get users redirected to stripe authentication pages provided by the stripe API 2020-03-02 17:30:12 +00:00
luisramos0
d91578ab80 Rename checkout payment redirect to checkout paypal redirect 2020-03-02 17:30:12 +00:00
luisramos0
873dcc373f Small refactoring to make next commit easier 2020-03-02 17:30:12 +00:00
luisramos0
1289c3f1a2 Fix rubocop issues in credit_cards_controller 2020-03-02 17:29:30 +00:00
Luis Ramos
c37218fdc5 Merge pull request #4719 from luisramos0/stripe_card_to_pm
Make StripeSCA payment method work with existing credit cards (the ones saved through the Stripe Charges API)
2020-03-02 17:22:07 +00:00
Luis Ramos
dad21a52b2 Merge pull request #4672 from luisramos0/stripe_sca_method
Add new Stripe payment method compatible with the new Stripe Payment Intents API
2020-03-02 17:19:05 +00:00
Pau Pérez Fabregat
97a65d760f Merge pull request #4527 from luisramos0/subs_logs
Improve Subscriptions logging
2020-03-02 15:48:45 +01:00
Eduardo
64d83bfc4d fix ampersand problem using ng-bind-html 2020-03-01 17:54:36 -03:00
Matt-Yorkley
a0999f5d58 Check #persisted? before calling #touch
Rails 4 now throws a fatal error if calling #touch on an object that hasn't been saved yet: c63cfc8722/activerecord/lib/active_record/persistence.rb (L957)

Fixes:

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

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

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

      ActiveRecord::ActiveRecordError:
        can not touch on a new record object
      # ./app/models/spree/shipping_method_decorator.rb:81:in `touch_distributors'
      # ./spec/models/stock/package_spec.rb:39:in `block (2 levels) in <module:Stock>'
      # ./spec/models/stock/package_spec.rb:17:in `block (2 levels) in <module:Stock>'
      # ./spec/models/stock/package_spec.rb:32:in `block (2 levels) in <module:Stock>'
      # ./spec/models/stock/package_spec.rb:7:in `block (2 levels) in <module:Stock>'
      # ./spec/models/stock/package_spec.rb:50:in `block (3 levels) in <module:Stock>'
2020-03-01 18:40:15 +01:00
Matt-Yorkley
847a349a6b Fix geocoding in Rails 4 🎉
Responsibility for geocoding has moved from the `gmaps4rails` gem using `acts_as_taggable`, to the `geocoding` gem using `geocoded_by`. We already use this in the Address model.
2020-02-29 13:08:06 +01:00
Matt-Yorkley
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
Matt-Yorkley
eef1574ebe Call #permit on params object in before_filter 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
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
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
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