From 01daf63fc69b28389f48e2bc942a5f2b7c4a2033 Mon Sep 17 00:00:00 2001 From: Luis Ramos Date: Tue, 1 Sep 2020 20:05:09 +0100 Subject: [PATCH 001/188] Fix some problems with code that was relying on spree code --- app/models/spree/payment_method.rb | 2 +- spec/factories/calculator_factory.rb | 4 ++-- spec/factories/stock_factory.rb | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/app/models/spree/payment_method.rb b/app/models/spree/payment_method.rb index 9c41fbefa2..ba1dc3e301 100644 --- a/app/models/spree/payment_method.rb +++ b/app/models/spree/payment_method.rb @@ -99,7 +99,7 @@ module Spree self.class.include Spree::Core::CalculatedAdjustments end - self.calculator ||= Calculator::FlatRate.new(preferred_amount: 0) + self.calculator ||= ::Calculator::FlatRate.new(preferred_amount: 0) end def has_distributor?(distributor) diff --git a/spec/factories/calculator_factory.rb b/spec/factories/calculator_factory.rb index 1268a8ccb7..2d8cc36a1a 100644 --- a/spec/factories/calculator_factory.rb +++ b/spec/factories/calculator_factory.rb @@ -1,9 +1,9 @@ FactoryBot.define do - factory :calculator, class: Spree::Calculator::FlatRate do + factory :calculator, class: Calculator::FlatRate do after(:create) { |c| c.set_preference(:amount, 10.0) } end - factory :no_amount_calculator, class: Spree::Calculator::FlatRate do + factory :no_amount_calculator, class: Calculator::FlatRate do after(:create) { |c| c.set_preference(:amount, 0) } end diff --git a/spec/factories/stock_factory.rb b/spec/factories/stock_factory.rb index b501401507..c288121873 100644 --- a/spec/factories/stock_factory.rb +++ b/spec/factories/stock_factory.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true FactoryBot.define do - factory :stock_package, class: Spree::Stock::Package do + factory :stock_package, class: OrderManagement::Stock::Package do ignore do stock_location { build(:stock_location) } order { create(:order_with_line_items, line_items_count: 2) } From b84212023b14f77cd23883b36337df4e6c007b8d Mon Sep 17 00:00:00 2001 From: Luis Ramos Date: Tue, 1 Sep 2020 21:25:10 +0100 Subject: [PATCH 002/188] Require code from spree/core explicitly --- app/controllers/spree/base_controller.rb | 2 +- app/models/enterprise_group.rb | 1 + app/models/spree/gateway.rb | 3 +++ app/models/spree/payment_method.rb | 3 +++ spec/models/spree/order_spec.rb | 1 + 5 files changed, 9 insertions(+), 1 deletion(-) diff --git a/app/controllers/spree/base_controller.rb b/app/controllers/spree/base_controller.rb index 21a3d6fe5d..b2e4628bc3 100644 --- a/app/controllers/spree/base_controller.rb +++ b/app/controllers/spree/base_controller.rb @@ -3,8 +3,8 @@ require 'cancan' require 'spree/core/controller_helpers/auth' require 'spree/core/controller_helpers/respond_with' -require 'spree/core/controller_helpers/common' require 'spree/core/controller_helpers/ssl' +require 'spree/core/controller_helpers/common' module Spree class BaseController < ApplicationController diff --git a/app/models/enterprise_group.rb b/app/models/enterprise_group.rb index 0bf0319bde..5bb20d3821 100644 --- a/app/models/enterprise_group.rb +++ b/app/models/enterprise_group.rb @@ -1,5 +1,6 @@ require 'open_food_network/locking' require 'open_food_network/permalink_generator' +require 'spree/core/s3_support' class EnterpriseGroup < ActiveRecord::Base include PermalinkGenerator diff --git a/app/models/spree/gateway.rb b/app/models/spree/gateway.rb index 99d57826fb..4b7533c2d8 100644 --- a/app/models/spree/gateway.rb +++ b/app/models/spree/gateway.rb @@ -1,5 +1,8 @@ # frozen_string_literal: true +require 'concerns/payment_method_distributors' +require 'spree/core/delegate_belongs_to' + module Spree class Gateway < PaymentMethod include PaymentMethodDistributors diff --git a/app/models/spree/payment_method.rb b/app/models/spree/payment_method.rb index ba1dc3e301..a521122d67 100644 --- a/app/models/spree/payment_method.rb +++ b/app/models/spree/payment_method.rb @@ -1,5 +1,8 @@ # frozen_string_literal: true +require 'concerns/payment_method_distributors' +require 'spree/core/calculated_adjustments' + module Spree class PaymentMethod < ActiveRecord::Base include Spree::Core::CalculatedAdjustments diff --git a/spec/models/spree/order_spec.rb b/spec/models/spree/order_spec.rb index 5c583a5252..7461ca069e 100644 --- a/spec/models/spree/order_spec.rb +++ b/spec/models/spree/order_spec.rb @@ -1,4 +1,5 @@ require 'spec_helper' +require 'spree/core/gateway_error' describe Spree::Order do include OpenFoodNetwork::EmailHelper From 8707f512146d39e41465586c014e04514bb0bdb3 Mon Sep 17 00:00:00 2001 From: Luis Ramos Date: Tue, 1 Sep 2020 21:43:42 +0100 Subject: [PATCH 003/188] Remove unused helper --- app/controllers/spree/user_passwords_controller.rb | 2 +- app/controllers/spree/user_registrations_controller.rb | 2 +- app/controllers/spree/user_sessions_controller.rb | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/app/controllers/spree/user_passwords_controller.rb b/app/controllers/spree/user_passwords_controller.rb index 4e7fc6e824..6358d16f0b 100644 --- a/app/controllers/spree/user_passwords_controller.rb +++ b/app/controllers/spree/user_passwords_controller.rb @@ -7,7 +7,7 @@ require "spree/core/controller_helpers/ssl" module Spree class UserPasswordsController < Devise::PasswordsController - helper 'spree/base', 'spree/store' + helper 'spree/base' include Spree::Core::ControllerHelpers::Auth include Spree::Core::ControllerHelpers::Common diff --git a/app/controllers/spree/user_registrations_controller.rb b/app/controllers/spree/user_registrations_controller.rb index 1a2d740da7..64c3681d81 100644 --- a/app/controllers/spree/user_registrations_controller.rb +++ b/app/controllers/spree/user_registrations_controller.rb @@ -7,7 +7,7 @@ require "spree/core/controller_helpers/ssl" module Spree class UserRegistrationsController < Devise::RegistrationsController - helper 'spree/base', 'spree/store' + helper 'spree/base' include Spree::Core::ControllerHelpers::Auth include Spree::Core::ControllerHelpers::Common diff --git a/app/controllers/spree/user_sessions_controller.rb b/app/controllers/spree/user_sessions_controller.rb index c17eafb892..f090a281ca 100644 --- a/app/controllers/spree/user_sessions_controller.rb +++ b/app/controllers/spree/user_sessions_controller.rb @@ -7,7 +7,7 @@ require "spree/core/controller_helpers/ssl" module Spree class UserSessionsController < Devise::SessionsController - helper 'spree/base', 'spree/store' + helper 'spree/base' include Spree::Core::ControllerHelpers::Auth include Spree::Core::ControllerHelpers::Common From a5dd1526f7e1867fdbb3f544413560b2728d6577 Mon Sep 17 00:00:00 2001 From: Luis Ramos Date: Wed, 2 Sep 2020 20:50:48 +0100 Subject: [PATCH 004/188] Delete dead code ProductFilters --- lib/spree/product_filters.rb | 20 -------------------- spec/lib/spree/product_filters_spec.rb | 12 ------------ 2 files changed, 32 deletions(-) delete mode 100644 lib/spree/product_filters.rb delete mode 100644 spec/lib/spree/product_filters_spec.rb diff --git a/lib/spree/product_filters.rb b/lib/spree/product_filters.rb deleted file mode 100644 index b0b9189663..0000000000 --- a/lib/spree/product_filters.rb +++ /dev/null @@ -1,20 +0,0 @@ -module Spree - module ProductFilters - if Enterprise.table_exists? - Spree::Product.scope :distributor_any, - lambda { |*opts| - conds = opts.map { |o| ProductFilters.distributor_filter[:conds][o] }.reject(&:nil?) - Spree::Product.joins(:distributors).conditions_any(conds) - } - - def ProductFilters.distributor_filter - distributors = Enterprise.is_distributor.map(&:name).compact.uniq - conds = Hash[*distributors.map { |d| [d, "#{Enterprise.table_name}.name = '#{d}'"] }.flatten] - { name: "Group", - scope: :distributor_any, - conds: conds, - labels: distributors.sort.map { |k| [k, k] } } - end - end - end -end diff --git a/spec/lib/spree/product_filters_spec.rb b/spec/lib/spree/product_filters_spec.rb deleted file mode 100644 index 5829d9f450..0000000000 --- a/spec/lib/spree/product_filters_spec.rb +++ /dev/null @@ -1,12 +0,0 @@ -require 'spec_helper' - -describe Spree::ProductFilters do - context "distributor filter" do - it "provides filtering for all distributors" do - 3.times { create(:distributor_enterprise) } - Enterprise.is_distributor.sort.map { |d| [d.name, d.name] }.each do |distributor| - expect(Spree::ProductFilters.distributor_filter[:labels]).to include distributor - end - end - end -end From 37f38612334ac790bc0173a41a48143d46c33f39 Mon Sep 17 00:00:00 2001 From: Luis Ramos Date: Wed, 2 Sep 2020 22:59:50 +0100 Subject: [PATCH 005/188] Remove require of a file no longer needed --- config/initializers/spree.rb | 1 - 1 file changed, 1 deletion(-) diff --git a/config/initializers/spree.rb b/config/initializers/spree.rb index 9280befea3..1ec508aec0 100644 --- a/config/initializers/spree.rb +++ b/config/initializers/spree.rb @@ -7,7 +7,6 @@ # config.setting_name = 'new value' require "spree/core/environment" -require 'spree/product_filters' # Due to a bug in ActiveRecord we need to load the tagging code in Gateway which # should have inherited it from its parent PaymentMethod. From b6a374ab6662970d65c29d42ffa1e54bd4b3e88a Mon Sep 17 00:00:00 2001 From: Luis Ramos Date: Tue, 1 Sep 2020 19:41:02 +0100 Subject: [PATCH 006/188] Remove spree require that is not needed in OFN --- lib/spree/core.rb | 2 -- 1 file changed, 2 deletions(-) diff --git a/lib/spree/core.rb b/lib/spree/core.rb index 5a7d98dbd2..f0943bef92 100644 --- a/lib/spree/core.rb +++ b/lib/spree/core.rb @@ -40,14 +40,12 @@ module Spree end end -require 'spree/core/version' require 'spree/core/engine' require 'spree/i18n' require 'spree/money' require 'spree/core/delegate_belongs_to' -require 'spree/core/ext/active_record' require 'spree/core/permalinks' require 'spree/core/token_resource' require 'spree/core/calculated_adjustments' From e0cb7a29bf265a240bd90b0ab7c341aec6d12ac3 Mon Sep 17 00:00:00 2001 From: Luis Ramos Date: Thu, 3 Sep 2020 20:11:51 +0100 Subject: [PATCH 007/188] Add helper prefix to helper calls --- app/controllers/checkout_controller.rb | 2 +- .../spree/admin/orders/customer_details_controller.rb | 2 +- app/controllers/spree/admin/payment_methods_controller.rb | 4 ++-- app/controllers/spree/admin/payments_controller.rb | 6 +++--- app/controllers/spree/admin/users_controller.rb | 4 ++-- app/controllers/spree/admin/variants_controller.rb | 2 +- app/controllers/spree/credit_cards_controller.rb | 4 ++-- app/controllers/spree/orders_controller.rb | 6 +++--- .../spree/admin/orders/payments/payments_controller_spec.rb | 1 + 9 files changed, 16 insertions(+), 15 deletions(-) diff --git a/app/controllers/checkout_controller.rb b/app/controllers/checkout_controller.rb index c47b112359..34e974febd 100644 --- a/app/controllers/checkout_controller.rb +++ b/app/controllers/checkout_controller.rb @@ -150,7 +150,7 @@ class CheckoutController < Spree::StoreController def handle_redirect_from_stripe if OrderWorkflow.new(@order).next && order_complete? checkout_succeeded - redirect_to(order_path(@order)) && return + redirect_to(spree.order_path(@order)) && return else checkout_failed end diff --git a/app/controllers/spree/admin/orders/customer_details_controller.rb b/app/controllers/spree/admin/orders/customer_details_controller.rb index 8ad0c7ea28..56502d54a0 100644 --- a/app/controllers/spree/admin/orders/customer_details_controller.rb +++ b/app/controllers/spree/admin/orders/customer_details_controller.rb @@ -27,7 +27,7 @@ module Spree @order.shipments.map(&:refresh_rates) flash[:success] = Spree.t('customer_details_updated') - redirect_to admin_order_customer_path(@order) + redirect_to spree.admin_order_customer_path(@order) else render action: :edit end diff --git a/app/controllers/spree/admin/payment_methods_controller.rb b/app/controllers/spree/admin/payment_methods_controller.rb index 950b97340b..b649a51970 100644 --- a/app/controllers/spree/admin/payment_methods_controller.rb +++ b/app/controllers/spree/admin/payment_methods_controller.rb @@ -22,7 +22,7 @@ module Spree if @payment_method.save invoke_callbacks(:create, :after) flash[:success] = Spree.t(:successfully_created, resource: Spree.t(:payment_method)) - redirect_to edit_admin_payment_method_path(@payment_method) + redirect_to spree.edit_admin_payment_method_path(@payment_method) else invoke_callbacks(:create, :fails) respond_with(@payment_method) @@ -43,7 +43,7 @@ module Spree if @payment_method.update(params_for_update) invoke_callbacks(:update, :after) flash[:success] = Spree.t(:successfully_updated, resource: Spree.t(:payment_method)) - redirect_to edit_admin_payment_method_path(@payment_method) + redirect_to spree.edit_admin_payment_method_path(@payment_method) else invoke_callbacks(:update, :fails) respond_with(@payment_method) diff --git a/app/controllers/spree/admin/payments_controller.rb b/app/controllers/spree/admin/payments_controller.rb index bfdb4fd2ff..22e4e84725 100644 --- a/app/controllers/spree/admin/payments_controller.rb +++ b/app/controllers/spree/admin/payments_controller.rb @@ -35,16 +35,16 @@ module Spree @payment.process! flash[:success] = flash_message_for(@payment, :successfully_created) - redirect_to admin_order_payments_path(@order) + redirect_to spree.admin_order_payments_path(@order) else OrderWorkflow.new(@order).complete! flash[:success] = Spree.t(:new_order_completed) - redirect_to edit_admin_order_url(@order) + redirect_to spree.edit_admin_order_url(@order) end rescue Spree::Core::GatewayError => e flash[:error] = e.message.to_s - redirect_to new_admin_order_payment_path(@order) + redirect_to spree.new_admin_order_payment_path(@order) end end diff --git a/app/controllers/spree/admin/users_controller.rb b/app/controllers/spree/admin/users_controller.rb index e6ffeaa6cd..3241a889f1 100644 --- a/app/controllers/spree/admin/users_controller.rb +++ b/app/controllers/spree/admin/users_controller.rb @@ -60,14 +60,14 @@ module Spree if @user.generate_spree_api_key! flash[:success] = t('spree.api.key_generated') end - redirect_to edit_admin_user_path(@user) + redirect_to spree.edit_admin_user_path(@user) end def clear_api_key if @user.clear_spree_api_key! flash[:success] = t('spree.api.key_cleared') end - redirect_to edit_admin_user_path(@user) + redirect_to spree.edit_admin_user_path(@user) end protected diff --git a/app/controllers/spree/admin/variants_controller.rb b/app/controllers/spree/admin/variants_controller.rb index 302b3e62a5..3a591f59c0 100644 --- a/app/controllers/spree/admin/variants_controller.rb +++ b/app/controllers/spree/admin/variants_controller.rb @@ -67,7 +67,7 @@ module Spree Spree.t('notice_messages.variant_not_deleted') end - redirect_to admin_product_variants_url(params[:product_id], @url_filters) + redirect_to spree.admin_product_variants_url(params[:product_id], @url_filters) end protected diff --git a/app/controllers/spree/credit_cards_controller.rb b/app/controllers/spree/credit_cards_controller.rb index a1c2e60ea5..9b4c2d971d 100644 --- a/app/controllers/spree/credit_cards_controller.rb +++ b/app/controllers/spree/credit_cards_controller.rb @@ -48,10 +48,10 @@ module Spree else flash[:error] = I18n.t(:card_could_not_be_removed) end - redirect_to account_path(anchor: 'cards') + redirect_to spree.account_path(anchor: 'cards') rescue Stripe::CardError flash[:error] = I18n.t(:card_could_not_be_removed) - redirect_to account_path(anchor: 'cards') + redirect_to spree.account_path(anchor: 'cards') end private diff --git a/app/controllers/spree/orders_controller.rb b/app/controllers/spree/orders_controller.rb index 898ec93f99..a948e4d801 100644 --- a/app/controllers/spree/orders_controller.rb +++ b/app/controllers/spree/orders_controller.rb @@ -90,7 +90,7 @@ module Spree @order.next_transition.run_callbacks if @order.cart? redirect_to checkout_state_path(@order.checkout_steps.first) elsif @order.complete? - redirect_to order_path(@order) + redirect_to spree.order_path(@order) else redirect_to main_app.cart_path end @@ -157,7 +157,7 @@ module Spree else flash[:error] = I18n.t(:orders_could_not_cancel) end - redirect_to request.referer || order_path(@order) + redirect_to request.referer || spree.order_path(@order) end private @@ -221,7 +221,7 @@ module Spree if items.empty? flash[:error] = I18n.t(:orders_cannot_remove_the_final_item) - redirect_to order_path(order_to_update) + redirect_to spree.order_path(order_to_update) end end diff --git a/spec/controllers/spree/admin/orders/payments/payments_controller_spec.rb b/spec/controllers/spree/admin/orders/payments/payments_controller_spec.rb index 8e78be69d8..287f70a655 100644 --- a/spec/controllers/spree/admin/orders/payments/payments_controller_spec.rb +++ b/spec/controllers/spree/admin/orders/payments/payments_controller_spec.rb @@ -1,6 +1,7 @@ # frozen_string_literal: true require 'spec_helper' +require 'spree/core/gateway_error' describe Spree::Admin::PaymentsController, type: :controller do let!(:shop) { create(:enterprise) } From 739917ca4632735751747f53eca412381c8affd8 Mon Sep 17 00:00:00 2001 From: Luis Ramos Date: Thu, 3 Sep 2020 21:27:36 +0100 Subject: [PATCH 008/188] Add require for spree responder --- lib/spree/core/controller_helpers/respond_with.rb | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib/spree/core/controller_helpers/respond_with.rb b/lib/spree/core/controller_helpers/respond_with.rb index 6b3e7129ca..0e3e7ef56b 100644 --- a/lib/spree/core/controller_helpers/respond_with.rb +++ b/lib/spree/core/controller_helpers/respond_with.rb @@ -1,5 +1,7 @@ # frozen_string_literal: true +require 'spree/responder' + module ActionController class Base def respond_with(*resources, &block) From 66f27aad323a4bb95d4bf5f36ed577c8db4baa0c Mon Sep 17 00:00:00 2001 From: Luis Ramos Date: Thu, 3 Sep 2020 22:44:18 +0100 Subject: [PATCH 009/188] Explicitly use spree url helpers for spree routes --- app/controllers/admin/enterprises_controller.rb | 2 +- .../spree/admin/general_settings_controller.rb | 2 +- app/controllers/spree/admin/mail_methods_controller.rb | 2 +- app/controllers/spree/admin/orders_controller.rb | 10 +++++----- app/controllers/spree/admin/payments_controller.rb | 4 ++-- app/controllers/spree/admin/products_controller.rb | 8 ++++---- app/controllers/spree/admin/tax_settings_controller.rb | 2 +- app/controllers/spree/admin/taxons_controller.rb | 2 +- 8 files changed, 16 insertions(+), 16 deletions(-) diff --git a/app/controllers/admin/enterprises_controller.rb b/app/controllers/admin/enterprises_controller.rb index 4277dc2ff4..f1b4887f6a 100644 --- a/app/controllers/admin/enterprises_controller.rb +++ b/app/controllers/admin/enterprises_controller.rb @@ -73,7 +73,7 @@ module Admin if @enterprise.update(attributes) flash[:success] = I18n.t(:enterprise_register_success_notice, enterprise: @enterprise.name) - redirect_to admin_dashboard_path + redirect_to spree.admin_dashboard_path else flash[:error] = I18n.t(:enterprise_register_error, enterprise: @enterprise.name) render :welcome, layout: "spree/layouts/bare_admin" diff --git a/app/controllers/spree/admin/general_settings_controller.rb b/app/controllers/spree/admin/general_settings_controller.rb index dcb360bcc9..73fbe619d3 100644 --- a/app/controllers/spree/admin/general_settings_controller.rb +++ b/app/controllers/spree/admin/general_settings_controller.rb @@ -17,7 +17,7 @@ module Spree end flash[:success] = Spree.t(:successfully_updated, resource: Spree.t(:general_settings)) - redirect_to edit_admin_general_settings_path + redirect_to spree.edit_admin_general_settings_path end end end diff --git a/app/controllers/spree/admin/mail_methods_controller.rb b/app/controllers/spree/admin/mail_methods_controller.rb index 70d573f319..d3618488ed 100644 --- a/app/controllers/spree/admin/mail_methods_controller.rb +++ b/app/controllers/spree/admin/mail_methods_controller.rb @@ -23,7 +23,7 @@ module Spree rescue StandardError => e flash[:error] = Spree.t('admin.mail_methods.testmail.error') % { e: e } ensure - redirect_to edit_admin_mail_methods_url + redirect_to spree.edit_admin_mail_methods_url end private diff --git a/app/controllers/spree/admin/orders_controller.rb b/app/controllers/spree/admin/orders_controller.rb index 0e3b28d630..c26ccb769d 100644 --- a/app/controllers/spree/admin/orders_controller.rb +++ b/app/controllers/spree/admin/orders_controller.rb @@ -29,7 +29,7 @@ module Spree @order = Order.create @order.created_by = spree_current_user @order.save - redirect_to edit_admin_order_url(@order) + redirect_to spree.edit_admin_order_url(@order) end def edit @@ -54,10 +54,10 @@ module Spree @order.update! if @order.complete? - redirect_to edit_admin_order_path(@order) + redirect_to spree.edit_admin_order_path(@order) else # Jump to next step if order is not complete - redirect_to admin_order_customer_path(@order) + redirect_to spree.admin_order_customer_path(@order) end end @@ -91,7 +91,7 @@ module Spree Spree::OrderMailer.invoice_email(@order.id, pdf).deliver flash[:success] = t('admin.orders.invoice_email_sent') - respond_with(@order) { |format| format.html { redirect_to edit_admin_order_path(@order) } } + respond_with(@order) { |format| format.html { redirect_to spree.edit_admin_order_path(@order) } } end def print @@ -131,7 +131,7 @@ module Spree flash[:error] = t(:must_have_valid_business_number, enterprise_name: @order.distributor.name) - respond_with(@order) { |format| format.html { redirect_to edit_admin_order_path(@order) } } + respond_with(@order) { |format| format.html { redirect_to spree.edit_admin_order_path(@order) } } end def load_distribution_choices diff --git a/app/controllers/spree/admin/payments_controller.rb b/app/controllers/spree/admin/payments_controller.rb index 22e4e84725..025f3dbef9 100644 --- a/app/controllers/spree/admin/payments_controller.rb +++ b/app/controllers/spree/admin/payments_controller.rb @@ -25,7 +25,7 @@ module Spree begin unless @payment.save - redirect_to admin_order_payments_path(@order) + redirect_to spree.admin_order_payments_path(@order) return end @@ -118,7 +118,7 @@ module Spree return if @order.payment? || @order.complete? flash[:notice] = Spree.t(:fill_in_customer_info) - redirect_to edit_admin_order_customer_url(@order) + redirect_to spree.edit_admin_order_customer_url(@order) end def load_order diff --git a/app/controllers/spree/admin/products_controller.rb b/app/controllers/spree/admin/products_controller.rb index 0556c25a1a..42d4006680 100644 --- a/app/controllers/spree/admin/products_controller.rb +++ b/app/controllers/spree/admin/products_controller.rb @@ -29,9 +29,9 @@ module Spree if @object.save flash[:success] = flash_message_for(@object, :successfully_created) if params[:button] == "add_another" - redirect_to new_admin_product_path + redirect_to spree.new_admin_product_path else - redirect_to admin_products_path + redirect_to spree.admin_products_path end else render :new @@ -70,7 +70,7 @@ module Spree flash[:success] = flash_message_for(@object, :successfully_updated) end - redirect_to edit_admin_product_url(@object, @url_filters) + redirect_to spree.edit_admin_product_url(@object, @url_filters) end end @@ -97,7 +97,7 @@ module Spree Spree.t('notice_messages.product_not_cloned') end - redirect_to edit_admin_product_url(@new) + redirect_to spree.edit_admin_product_url(@new) end def group_buy_options diff --git a/app/controllers/spree/admin/tax_settings_controller.rb b/app/controllers/spree/admin/tax_settings_controller.rb index a66ad219ff..8be30677e0 100644 --- a/app/controllers/spree/admin/tax_settings_controller.rb +++ b/app/controllers/spree/admin/tax_settings_controller.rb @@ -6,7 +6,7 @@ module Spree respond_to do |format| format.html { - redirect_to edit_admin_tax_settings_path + redirect_to spree.edit_admin_tax_settings_path } end end diff --git a/app/controllers/spree/admin/taxons_controller.rb b/app/controllers/spree/admin/taxons_controller.rb index 0b171567d2..a3585ad12f 100644 --- a/app/controllers/spree/admin/taxons_controller.rb +++ b/app/controllers/spree/admin/taxons_controller.rb @@ -95,7 +95,7 @@ module Spree end respond_with(@taxon) do |format| - format.html { redirect_to edit_admin_taxonomy_url(@taxonomy) } + format.html { redirect_to spree.edit_admin_taxonomy_url(@taxonomy) } format.json { render json: @taxon.to_json } end end From bec6e8e604856454b84e64dbff83165d6e54f19f Mon Sep 17 00:00:00 2001 From: Luis Ramos Date: Thu, 3 Sep 2020 22:55:04 +0100 Subject: [PATCH 010/188] Add missing translation --- config/locales/en.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/config/locales/en.yml b/config/locales/en.yml index c4088825fb..99bda4c3d1 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -3151,6 +3151,7 @@ See the %{link} to find out more about %{sitename}'s features and to start using cannot_create_payment_without_payment_methods: "You cannot create a payment for an order without any payment methods defined." please_define_payment_methods: "Please define some payment methods first." options: "Options" + has_no_shipped_units: "has no shipped units" actions: update: "Update" From ec8dfd668d003e4f74832a22b793efe4dc54de36 Mon Sep 17 00:00:00 2001 From: Luis Ramos Date: Thu, 3 Sep 2020 23:08:57 +0100 Subject: [PATCH 011/188] Use ofn's calculator in all tests and add missing translation --- config/locales/en.yml | 2 ++ spec/controllers/spree/admin/adjustments_controller_spec.rb | 2 +- spec/models/spree/line_item_spec.rb | 4 ++-- spec/models/spree/payment_method_spec.rb | 4 ++-- spec/models/spree/tax_rate_spec.rb | 4 ++-- 5 files changed, 9 insertions(+), 7 deletions(-) diff --git a/config/locales/en.yml b/config/locales/en.yml index 99bda4c3d1..48e02bb0de 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -3152,6 +3152,8 @@ See the %{link} to find out more about %{sitename}'s features and to start using please_define_payment_methods: "Please define some payment methods first." options: "Options" has_no_shipped_units: "has no shipped units" + order_populator: + out_of_stock: ! '%{item} is out of stock.' actions: update: "Update" diff --git a/spec/controllers/spree/admin/adjustments_controller_spec.rb b/spec/controllers/spree/admin/adjustments_controller_spec.rb index 7691bd6e72..5a439e55cb 100644 --- a/spec/controllers/spree/admin/adjustments_controller_spec.rb +++ b/spec/controllers/spree/admin/adjustments_controller_spec.rb @@ -8,7 +8,7 @@ module Spree describe "setting included tax" do let(:order) { create(:order) } - let(:tax_rate) { create(:tax_rate, amount: 0.1, calculator: Calculator::DefaultTax.new) } + let(:tax_rate) { create(:tax_rate, amount: 0.1, calculator: ::Calculator::DefaultTax.new) } describe "creating an adjustment" do it "sets included tax to zero when no tax rate is specified" do diff --git a/spec/models/spree/line_item_spec.rb b/spec/models/spree/line_item_spec.rb index 2836c2c51c..de03219979 100644 --- a/spec/models/spree/line_item_spec.rb +++ b/spec/models/spree/line_item_spec.rb @@ -35,7 +35,7 @@ module Spree end describe "finding line items with and without tax" do - let(:tax_rate) { create(:tax_rate, calculator: Calculator::DefaultTax.new) } + let(:tax_rate) { create(:tax_rate, calculator: ::Calculator::DefaultTax.new) } let!(:adjustment1) { create(:adjustment, originator: tax_rate, label: "TR", amount: 123, included_tax: 10.00) } before do @@ -311,7 +311,7 @@ module Spree describe "tax" do let(:li_no_tax) { create(:line_item) } let(:li_tax) { create(:line_item) } - let(:tax_rate) { create(:tax_rate, calculator: Calculator::DefaultTax.new) } + let(:tax_rate) { create(:tax_rate, calculator: ::Calculator::DefaultTax.new) } let!(:adjustment) { create(:adjustment, adjustable: li_tax, originator: tax_rate, label: "TR", amount: 123, included_tax: 10.00) } context "checking if a line item has tax included" do diff --git a/spec/models/spree/payment_method_spec.rb b/spec/models/spree/payment_method_spec.rb index 3e0d99c5fa..20e259dfce 100644 --- a/spec/models/spree/payment_method_spec.rb +++ b/spec/models/spree/payment_method_spec.rb @@ -72,10 +72,10 @@ module Spree free_payment_method = create(:payment_method) # flat rate calculator with preferred_amount of 0 expect(free_payment_method.compute_amount(order)).to eq 0 - flat_rate_payment_method = create(:payment_method, calculator: Calculator::FlatRate.new(preferred_amount: 10)) + flat_rate_payment_method = create(:payment_method, calculator: ::Calculator::FlatRate.new(preferred_amount: 10)) expect(flat_rate_payment_method.compute_amount(order)).to eq 10 - flat_percent_payment_method = create(:payment_method, calculator: Calculator::FlatPercentItemTotal.new(preferred_flat_percent: 10)) + flat_percent_payment_method = create(:payment_method, calculator: ::Calculator::FlatPercentItemTotal.new(preferred_flat_percent: 10)) expect(flat_percent_payment_method.compute_amount(order)).to eq 0 product = create(:product) diff --git a/spec/models/spree/tax_rate_spec.rb b/spec/models/spree/tax_rate_spec.rb index 61938c5d0f..65b4cfd552 100644 --- a/spec/models/spree/tax_rate_spec.rb +++ b/spec/models/spree/tax_rate_spec.rb @@ -5,7 +5,7 @@ module Spree describe "selecting tax rates to apply to an order" do let!(:zone) { create(:zone_with_member) } let!(:order) { create(:order, distributor: hub, bill_address: create(:address)) } - let!(:tax_rate) { create(:tax_rate, included_in_price: true, calculator: Calculator::FlatRate.new(preferred_amount: 0.1), zone: zone) } + let!(:tax_rate) { create(:tax_rate, included_in_price: true, calculator: ::Calculator::FlatRate.new(preferred_amount: 0.1), zone: zone) } describe "when the order's hub charges sales tax" do let(:hub) { create(:distributor_enterprise, charges_sales_tax: true) } @@ -33,7 +33,7 @@ module Spree end describe "ensuring that tax rate is marked as tax included_in_price" do - let(:tax_rate) { create(:tax_rate, included_in_price: false, calculator: Calculator::DefaultTax.new) } + let(:tax_rate) { create(:tax_rate, included_in_price: false, calculator: ::Calculator::DefaultTax.new) } it "sets included_in_price to true" do tax_rate.send(:with_tax_included_in_price) do From 27fa04114e211b67021454279c87f11740b90751 Mon Sep 17 00:00:00 2001 From: Luis Ramos Date: Thu, 3 Sep 2020 23:12:07 +0100 Subject: [PATCH 012/188] Add require for gateway error --- app/controllers/checkout_controller.rb | 1 + 1 file changed, 1 insertion(+) diff --git a/app/controllers/checkout_controller.rb b/app/controllers/checkout_controller.rb index 34e974febd..4d7638fc50 100644 --- a/app/controllers/checkout_controller.rb +++ b/app/controllers/checkout_controller.rb @@ -1,6 +1,7 @@ # frozen_string_literal: true require 'open_food_network/address_finder' +require 'spree/core/gateway_error' class CheckoutController < Spree::StoreController layout 'darkswarm' From a34c18451cd8f569517ad670b7bc01b73fb90e3d Mon Sep 17 00:00:00 2001 From: Luis Ramos Date: Thu, 3 Sep 2020 23:14:51 +0100 Subject: [PATCH 013/188] Add spree helper --- app/controllers/checkout_controller.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/controllers/checkout_controller.rb b/app/controllers/checkout_controller.rb index 4d7638fc50..e49460f680 100644 --- a/app/controllers/checkout_controller.rb +++ b/app/controllers/checkout_controller.rb @@ -211,10 +211,10 @@ class CheckoutController < Spree::StoreController def update_succeeded_response respond_to do |format| format.html do - respond_with(@order, location: order_path(@order)) + respond_with(@order, location: spree.order_path(@order)) end format.json do - render json: { path: order_path(@order) }, status: :ok + render json: { path: spree.order_path(@order) }, status: :ok end end end From da19fa5f80f2c0111d79cb134acb5f07e5c7ee99 Mon Sep 17 00:00:00 2001 From: Luis Ramos Date: Thu, 3 Sep 2020 23:45:40 +0100 Subject: [PATCH 014/188] Add missing translations --- config/locales/en.yml | 7 +++++++ spec/models/spree/payment_spec.rb | 1 + 2 files changed, 8 insertions(+) diff --git a/config/locales/en.yml b/config/locales/en.yml index 48e02bb0de..bde2f16c03 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -44,6 +44,10 @@ en: variant_unit_name: "Variant Unit Name" spree/credit_card: base: "Credit Card" + number: "Number" + month: "Month" + verification_value: "Verification Value" + year: "Year" order_cycle: orders_close_at: Close date variant_override: @@ -3152,6 +3156,9 @@ See the %{link} to find out more about %{sitename}'s features and to start using please_define_payment_methods: "Please define some payment methods first." options: "Options" has_no_shipped_units: "has no shipped units" + successfully_created: ! '%{resource} has been successfully created!' + successfully_updated: ! '%{resource} has been successfully updated!' + payment_processing_failed: "Payment could not be processed, please check the details you entered" order_populator: out_of_stock: ! '%{item} is out of stock.' diff --git a/spec/models/spree/payment_spec.rb b/spec/models/spree/payment_spec.rb index 200efab868..9954d7dc9f 100644 --- a/spec/models/spree/payment_spec.rb +++ b/spec/models/spree/payment_spec.rb @@ -1,4 +1,5 @@ require 'spec_helper' +require 'spree/core/gateway_error' describe Spree::Payment do context 'original specs from Spree' do From d5d62894a553f330ab4eaf6d3e8305a55e3bd174 Mon Sep 17 00:00:00 2001 From: Luis Ramos Date: Thu, 3 Sep 2020 23:47:28 +0100 Subject: [PATCH 015/188] Use spree url helpers --- app/controllers/spree/admin/orders_controller.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/controllers/spree/admin/orders_controller.rb b/app/controllers/spree/admin/orders_controller.rb index c26ccb769d..7b257522bb 100644 --- a/app/controllers/spree/admin/orders_controller.rb +++ b/app/controllers/spree/admin/orders_controller.rb @@ -48,7 +48,7 @@ module Spree if @order.line_items.empty? @order.errors.add(:line_items, Spree.t('errors.messages.blank')) end - return redirect_to(edit_admin_order_path(@order), + return redirect_to(spree.edit_admin_order_path(@order), flash: { error: @order.errors.full_messages.join(', ') }) end From a2435d29af4f8eedbcf8292285237b1b3412b881 Mon Sep 17 00:00:00 2001 From: Luis Ramos Date: Fri, 4 Sep 2020 00:27:22 +0100 Subject: [PATCH 016/188] Add missing translation --- config/locales/en.yml | 1 + spec/features/admin/configuration/tax_rates_spec.rb | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/config/locales/en.yml b/config/locales/en.yml index bde2f16c03..c309f53541 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -3159,6 +3159,7 @@ See the %{link} to find out more about %{sitename}'s features and to start using successfully_created: ! '%{resource} has been successfully created!' successfully_updated: ! '%{resource} has been successfully updated!' payment_processing_failed: "Payment could not be processed, please check the details you entered" + not_available: "N/A" order_populator: out_of_stock: ! '%{item} is out of stock.' diff --git a/spec/features/admin/configuration/tax_rates_spec.rb b/spec/features/admin/configuration/tax_rates_spec.rb index 56ff8fac73..52e2db4811 100644 --- a/spec/features/admin/configuration/tax_rates_spec.rb +++ b/spec/features/admin/configuration/tax_rates_spec.rb @@ -10,7 +10,7 @@ describe "Tax Rates" do login_as_admin_and_visit spree.edit_admin_general_settings_path end - # Regression test for #535 + # Regression test for Spree #535 it "can see a tax rate in the list if the tax category has been deleted" do tax_rate.tax_category.update_column(:deleted_at, Time.zone.now) expect { click_link "Tax Rates" }.not_to raise_error From 1df7890a0d4749fccf6f2ba398a0f853da3898d4 Mon Sep 17 00:00:00 2001 From: Luis Ramos Date: Fri, 4 Sep 2020 00:29:35 +0100 Subject: [PATCH 017/188] Use spree url_helpers --- app/controllers/spree/admin/images_controller.rb | 2 +- app/controllers/spree/admin/payment_methods_controller.rb | 2 +- app/controllers/spree/admin/payments_controller.rb | 2 +- app/controllers/spree/admin/shipping_methods_controller.rb | 2 +- app/controllers/spree/admin/states_controller.rb | 2 +- app/controllers/spree/admin/taxonomies_controller.rb | 4 ++-- app/controllers/spree/admin/taxons_controller.rb | 4 ++-- 7 files changed, 9 insertions(+), 9 deletions(-) diff --git a/app/controllers/spree/admin/images_controller.rb b/app/controllers/spree/admin/images_controller.rb index c73e4e6826..b16e643508 100644 --- a/app/controllers/spree/admin/images_controller.rb +++ b/app/controllers/spree/admin/images_controller.rb @@ -61,7 +61,7 @@ module Spree private def location_after_save - admin_product_images_url(@product) + spree.admin_product_images_url(@product) end def load_data diff --git a/app/controllers/spree/admin/payment_methods_controller.rb b/app/controllers/spree/admin/payment_methods_controller.rb index b649a51970..72408fef26 100644 --- a/app/controllers/spree/admin/payment_methods_controller.rb +++ b/app/controllers/spree/admin/payment_methods_controller.rb @@ -122,7 +122,7 @@ module Spree return if valid_payment_methods.include?(params[:payment_method][:type]) flash[:error] = Spree.t(:invalid_payment_provider) - redirect_to new_admin_payment_method_path + redirect_to spree.new_admin_payment_method_path end def load_hubs diff --git a/app/controllers/spree/admin/payments_controller.rb b/app/controllers/spree/admin/payments_controller.rb index 025f3dbef9..0b5732caa1 100644 --- a/app/controllers/spree/admin/payments_controller.rb +++ b/app/controllers/spree/admin/payments_controller.rb @@ -12,7 +12,7 @@ module Spree def index @payments = @order.payments - redirect_to new_admin_order_payment_url(@order) if @payments.empty? + redirect_to spree.new_admin_order_payment_url(@order) if @payments.empty? end def new diff --git a/app/controllers/spree/admin/shipping_methods_controller.rb b/app/controllers/spree/admin/shipping_methods_controller.rb index 5fa427772e..14d4fed9cb 100644 --- a/app/controllers/spree/admin/shipping_methods_controller.rb +++ b/app/controllers/spree/admin/shipping_methods_controller.rb @@ -74,7 +74,7 @@ module Spree end def location_after_save - edit_admin_shipping_method_path(@shipping_method) + spree.edit_admin_shipping_method_path(@shipping_method) end def load_data diff --git a/app/controllers/spree/admin/states_controller.rb b/app/controllers/spree/admin/states_controller.rb index 09d7244439..56f077b0ea 100644 --- a/app/controllers/spree/admin/states_controller.rb +++ b/app/controllers/spree/admin/states_controller.rb @@ -14,7 +14,7 @@ module Spree protected def location_after_save - admin_country_states_url(@country) + spree.admin_country_states_url(@country) end def collection diff --git a/app/controllers/spree/admin/taxonomies_controller.rb b/app/controllers/spree/admin/taxonomies_controller.rb index fb735ec4fa..66497eda2a 100644 --- a/app/controllers/spree/admin/taxonomies_controller.rb +++ b/app/controllers/spree/admin/taxonomies_controller.rb @@ -11,9 +11,9 @@ module Spree def location_after_save if @taxonomy.created_at == @taxonomy.updated_at - edit_admin_taxonomy_url(@taxonomy) + spree.edit_admin_taxonomy_url(@taxonomy) else - admin_taxonomies_url + spree.admin_taxonomies_url end end diff --git a/app/controllers/spree/admin/taxons_controller.rb b/app/controllers/spree/admin/taxons_controller.rb index a3585ad12f..1b9b980da2 100644 --- a/app/controllers/spree/admin/taxons_controller.rb +++ b/app/controllers/spree/admin/taxons_controller.rb @@ -15,9 +15,9 @@ module Spree respond_with(@taxon) do |format| format.html do if redirect_to @taxonomy - edit_admin_taxonomy_url(@taxonomy) + spree.edit_admin_taxonomy_url(@taxonomy) else - admin_taxonomies_url + spree.admin_taxonomies_url end end end From 1a513567f2b397ee91ad625065d465c6a0b5d894 Mon Sep 17 00:00:00 2001 From: Luis Ramos Date: Mon, 7 Sep 2020 20:48:18 +0100 Subject: [PATCH 018/188] Fix easy rubocop issues --- app/controllers/spree/admin/orders_controller.rb | 8 ++++++-- app/controllers/spree/admin/variants_controller.rb | 14 +++++++++----- 2 files changed, 15 insertions(+), 7 deletions(-) diff --git a/app/controllers/spree/admin/orders_controller.rb b/app/controllers/spree/admin/orders_controller.rb index 7b257522bb..56dc8b0ed7 100644 --- a/app/controllers/spree/admin/orders_controller.rb +++ b/app/controllers/spree/admin/orders_controller.rb @@ -91,7 +91,9 @@ module Spree Spree::OrderMailer.invoice_email(@order.id, pdf).deliver flash[:success] = t('admin.orders.invoice_email_sent') - respond_with(@order) { |format| format.html { redirect_to spree.edit_admin_order_path(@order) } } + respond_with(@order) { |format| + format.html { redirect_to spree.edit_admin_order_path(@order) } + } end def print @@ -131,7 +133,9 @@ module Spree flash[:error] = t(:must_have_valid_business_number, enterprise_name: @order.distributor.name) - respond_with(@order) { |format| format.html { redirect_to spree.edit_admin_order_path(@order) } } + respond_with(@order) { |format| + format.html { redirect_to spree.edit_admin_order_path(@order) } + } end def load_distribution_choices diff --git a/app/controllers/spree/admin/variants_controller.rb b/app/controllers/spree/admin/variants_controller.rb index 3a591f59c0..bb1f8284ac 100644 --- a/app/controllers/spree/admin/variants_controller.rb +++ b/app/controllers/spree/admin/variants_controller.rb @@ -61,17 +61,21 @@ module Spree @url_filters = ::ProductFilters.new.extract(request.query_parameters) @variant = Spree::Variant.find(params[:id]) - flash[:success] = if VariantDeleter.new.delete(@variant) - Spree.t('notice_messages.variant_deleted') - else - Spree.t('notice_messages.variant_not_deleted') - end + flash[:success] = delete_variant redirect_to spree.admin_product_variants_url(params[:product_id], @url_filters) end protected + def delete_variant + if VariantDeleter.new.delete(@variant) + Spree.t('notice_messages.variant_deleted') + else + Spree.t('notice_messages.variant_not_deleted') + end + end + def create_before option_values = params[:new_variant] option_values.andand.each_value { |id| @object.option_values << OptionValue.find(id) } From 496f9c106ee10fa5b887137b8f3ce202d6019e00 Mon Sep 17 00:00:00 2001 From: Luis Ramos Date: Wed, 19 Aug 2020 10:04:27 +0100 Subject: [PATCH 019/188] Bring the very last bits of js and css from spree_core --- .../admin/spree/handlebar_extensions.js | 9 + .../javascripts/admin/spree/spree.js.coffee | 40 ++ app/views/spree/admin/shared/_routes.html.erb | 6 + vendor/assets/javascripts/jsuri.js | 2 + vendor/assets/stylesheets/normalize.css | 375 ++++++++++++++++++ vendor/assets/stylesheets/skeleton.css | 242 +++++++++++ 6 files changed, 674 insertions(+) create mode 100644 app/assets/javascripts/admin/spree/handlebar_extensions.js create mode 100644 app/assets/javascripts/admin/spree/spree.js.coffee create mode 100644 vendor/assets/javascripts/jsuri.js create mode 100644 vendor/assets/stylesheets/normalize.css create mode 100644 vendor/assets/stylesheets/skeleton.css diff --git a/app/assets/javascripts/admin/spree/handlebar_extensions.js b/app/assets/javascripts/admin/spree/handlebar_extensions.js new file mode 100644 index 0000000000..02f372bb00 --- /dev/null +++ b/app/assets/javascripts/admin/spree/handlebar_extensions.js @@ -0,0 +1,9 @@ +//= require handlebars +Handlebars.registerHelper("t", function(key) { + if (Spree.translations[key]) { + return Spree.translations[key] + } else { + console.error("No translation found for " + key + ". Does it exist within spree/admin/shared/_translations.html.erb?") + } +}); + diff --git a/app/assets/javascripts/admin/spree/spree.js.coffee b/app/assets/javascripts/admin/spree/spree.js.coffee new file mode 100644 index 0000000000..0930a372ad --- /dev/null +++ b/app/assets/javascripts/admin/spree/spree.js.coffee @@ -0,0 +1,40 @@ +#= require jsuri +class window.Spree + @ready: (callback) -> + jQuery(document).ready(callback) + + # Helper function to take a URL and add query parameters to it + # Uses the JSUri library from here: https://code.google.com/p/jsuri/ + # Thanks to Jake Moffat for the suggestion: https://twitter.com/jakeonrails/statuses/321776992221544449 + @url: (uri, query) -> + if uri.path == undefined + uri = new Uri(uri) + if query + $.each query, (key, value) -> + uri.addQueryParam(key, value) + if Spree.api_key + uri.addQueryParam('token', Spree.api_key) + return uri + + # Helper method in case people want to call uri rather than url + @uri: (uri, query) -> + url(uri, query) + + # This function automatically appends the API token + # for the user to the end of any URL. + # Immediately after, this string is then passed to jQuery.ajax. + # + # ajax works in two ways in jQuery: + # + # $.ajax("url", {settings: 'go here'}) + # or: + # $.ajax({url: "url", settings: 'go here'}) + # + # This function will support both of these calls. + @ajax: (url_or_settings, settings) -> + if (typeof(url_or_settings) == "string") + $.ajax(Spree.url(url_or_settings).toString(), settings) + else + url = url_or_settings['url'] + delete url_or_settings['url'] + $.ajax(Spree.url(url).toString(), url_or_settings) diff --git a/app/views/spree/admin/shared/_routes.html.erb b/app/views/spree/admin/shared/_routes.html.erb index 15d562e4ef..438d257af9 100644 --- a/app/views/spree/admin/shared/_routes.html.erb +++ b/app/views/spree/admin/shared/_routes.html.erb @@ -1,4 +1,10 @@