solidus_core 2.7.4 → 2.8.0
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of solidus_core might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/README.md +19 -17
- data/app/assets/images/logo/solidus.svg +18 -0
- data/app/assets/javascripts/spree.js.erb +2 -2
- data/app/helpers/spree/base_helper.rb +1 -7
- data/app/helpers/spree/taxons_helper.rb +2 -2
- data/app/mailers/spree/carton_mailer.rb +4 -4
- data/app/models/spree/calculator/flat_percent_item_total.rb +4 -1
- data/app/models/spree/calculator/shipping/flat_percent_item_total.rb +5 -3
- data/app/models/spree/calculator/tiered_percent.rb +2 -1
- data/app/models/spree/country.rb +8 -0
- data/app/models/spree/fulfilment_changer.rb +9 -1
- data/app/models/spree/gallery/product_gallery.rb +18 -0
- data/app/models/spree/gallery/variant_gallery.rb +21 -0
- data/app/models/spree/image.rb +11 -1
- data/app/models/spree/inventory_unit.rb +8 -0
- data/app/models/spree/line_item.rb +1 -1
- data/app/models/spree/order.rb +0 -4
- data/app/models/spree/order_cancellations.rb +31 -10
- data/app/models/spree/order_contents.rb +1 -5
- data/app/models/spree/order_inventory.rb +5 -4
- data/app/models/spree/product.rb +9 -0
- data/app/models/spree/product/scopes.rb +3 -4
- data/app/models/spree/promotion.rb +1 -6
- data/app/models/spree/promotion_handler/coupon.rb +15 -0
- data/app/models/spree/reimbursement.rb +21 -6
- data/app/models/spree/reimbursement_performer.rb +12 -6
- data/app/models/spree/reimbursement_type.rb +1 -1
- data/app/models/spree/reimbursement_type/credit.rb +5 -2
- data/app/models/spree/reimbursement_type/exchange.rb +1 -1
- data/app/models/spree/reimbursement_type/original_payment.rb +1 -1
- data/app/models/spree/reimbursement_type/reimbursement_helpers.rb +6 -6
- data/app/models/spree/reimbursement_type/store_credit.rb +18 -3
- data/app/models/spree/shipment.rb +11 -11
- data/app/models/spree/stock/allocator/base.rb +19 -0
- data/app/models/spree/stock/allocator/on_hand_first.rb +42 -0
- data/app/models/spree/stock/content_item.rb +1 -1
- data/app/models/spree/stock/inventory_units_finalizer.rb +47 -0
- data/app/models/spree/stock/location_sorter/base.rb +38 -0
- data/app/models/spree/stock/location_sorter/default_first.rb +15 -0
- data/app/models/spree/stock/location_sorter/unsorted.rb +14 -0
- data/app/models/spree/stock/simple_coordinator.rb +24 -10
- data/app/models/spree/stock_location.rb +2 -0
- data/app/models/spree/store_credit.rb +4 -12
- data/app/models/spree/store_credit_event.rb +2 -2
- data/app/models/spree/store_credit_reason.rb +11 -0
- data/app/models/spree/taxon.rb +8 -3
- data/app/models/spree/unit_cancel.rb +3 -0
- data/app/models/spree/variant.rb +18 -7
- data/config/initializers/money.rb +5 -0
- data/config/locales/en.yml +661 -527
- data/db/default/spree/store_credit.rb +1 -1
- data/db/default/spree/zones.rb +2 -2
- data/db/migrate/20180710170104_create_spree_store_credit_reasons_table.rb +42 -0
- data/db/migrate/20190106184413_remove_code_from_spree_promotions.rb +41 -0
- data/lib/generators/spree/dummy/templates/rails/test.rb +0 -3
- data/lib/generators/spree/install/install_generator.rb +2 -2
- data/lib/generators/spree/install/templates/config/initializers/spree.rb.tt +2 -2
- data/lib/generators/spree/install/templates/vendor/assets/javascripts/spree/backend/all.js +1 -1
- data/lib/generators/spree/install/templates/vendor/assets/javascripts/spree/frontend/all.js +1 -1
- data/lib/solidus/migrations/promotions_with_code_handlers.rb +66 -0
- data/lib/spree/app_configuration.rb +20 -4
- data/lib/spree/core/controller_helpers/common.rb +1 -1
- data/lib/spree/core/stock_configuration.rb +12 -0
- data/lib/spree/core/version.rb +1 -1
- data/lib/spree/i18n.rb +4 -0
- data/lib/spree/money.rb +13 -11
- data/lib/spree/permission_sets.rb +0 -1
- data/lib/spree/permission_sets/promotion_management.rb +1 -0
- data/lib/spree/testing_support/dummy_app.rb +13 -2
- data/lib/spree/testing_support/dummy_app/assets/javascripts/spree/backend/all.js +1 -1
- data/lib/spree/testing_support/dummy_app/assets/javascripts/spree/frontend/all.js +1 -1
- data/lib/spree/testing_support/factories/store_credit_event_factory.rb +5 -5
- data/lib/spree/testing_support/factories/{store_credit_update_reason_factory.rb → store_credit_reason_factory.rb} +1 -1
- data/lib/spree/testing_support/partial_double_verification.rb +13 -0
- data/lib/spree/testing_support/shared_examples/gallery.rb +18 -0
- data/spec/helpers/products_helper_spec.rb +10 -8
- data/spec/helpers/taxons_helper_spec.rb +3 -1
- data/spec/lib/i18n_spec.rb +5 -0
- data/spec/lib/spree/core/controller_helpers/auth_spec.rb +6 -2
- data/spec/lib/spree/core/stock_configuration_spec.rb +19 -0
- data/spec/lib/spree/core/testing_support/factories/store_credit_reason_factory_spec.rb +14 -0
- data/spec/lib/spree/money_spec.rb +12 -13
- data/spec/migrate/20190106184413_remove_code_from_spree_promotions_spec.rb +136 -0
- data/spec/models/spree/calculator/flat_percent_item_total_spec.rb +10 -1
- data/spec/models/spree/calculator/shipping/flat_percent_item_total_spec.rb +18 -6
- data/spec/models/spree/calculator/tiered_percent_spec.rb +7 -1
- data/spec/models/spree/country_spec.rb +76 -0
- data/spec/models/spree/customer_return_spec.rb +2 -1
- data/spec/models/spree/fulfilment_changer_spec.rb +33 -0
- data/spec/models/spree/gallery/product_gallery_spec.rb +21 -0
- data/spec/models/spree/gallery/variant_gallery_spec.rb +21 -0
- data/spec/models/spree/inventory_unit_spec.rb +1 -4
- data/spec/models/spree/order/checkout_spec.rb +6 -6
- data/spec/models/spree/order/finalizing_spec.rb +1 -20
- data/spec/models/spree/order/outstanding_balance_integration_spec.rb +2 -1
- data/spec/models/spree/order/updating_spec.rb +1 -1
- data/spec/models/spree/order_cancellations_spec.rb +55 -14
- data/spec/models/spree/order_inventory_spec.rb +12 -5
- data/spec/models/spree/order_merger_spec.rb +6 -3
- data/spec/models/spree/order_spec.rb +3 -7
- data/spec/models/spree/order_updater_spec.rb +3 -8
- data/spec/models/spree/payment/cancellation_spec.rb +4 -3
- data/spec/models/spree/payment_spec.rb +1 -17
- data/spec/models/spree/permission_sets/promotion_management_spec.rb +2 -0
- data/spec/models/spree/product_spec.rb +10 -1
- data/spec/models/spree/promotion_handler/coupon_spec.rb +62 -8
- data/spec/models/spree/promotion_spec.rb +24 -10
- data/spec/models/spree/refund_spec.rb +2 -1
- data/spec/models/spree/reimbursement_performer_spec.rb +5 -4
- data/spec/models/spree/reimbursement_spec.rb +26 -2
- data/spec/models/spree/reimbursement_type/credit_spec.rb +2 -1
- data/spec/models/spree/reimbursement_type/exchange_spec.rb +2 -1
- data/spec/models/spree/reimbursement_type/original_payment_spec.rb +2 -1
- data/spec/models/spree/reimbursement_type/store_credit_spec.rb +14 -2
- data/spec/models/spree/return_item_spec.rb +1 -1
- data/spec/models/spree/shipment_spec.rb +20 -13
- data/spec/models/spree/shipping_calculator_spec.rb +13 -3
- data/spec/models/spree/stock/allocator/on_hand_first_spec.rb +146 -0
- data/spec/models/spree/stock/content_item_spec.rb +70 -0
- data/spec/models/spree/stock/estimator_spec.rb +5 -2
- data/spec/models/spree/stock/inventory_units_finalizer_spec.rb +34 -0
- data/spec/models/spree/stock/location_sorter/default_first_spec.rb +20 -0
- data/spec/models/spree/stock/location_sorter/unsorted_spec.rb +19 -0
- data/spec/models/spree/stock/simple_coordinator_spec.rb +17 -0
- data/spec/models/spree/store_credit_event_spec.rb +12 -12
- data/spec/models/spree/store_credit_spec.rb +2 -2
- data/spec/models/spree/unit_cancel_spec.rb +20 -1
- data/spec/models/spree/variant_spec.rb +46 -24
- data/spec/spec_helper.rb +1 -0
- metadata +30 -9
- data/.yardopts +0 -1
- data/app/models/spree/store_credit_update_reason.rb +0 -4
- data/lib/spree/permission_sets/report_display.rb +0 -11
- data/spec/lib/spree/core/testing_support/factories/store_credit_update_reason_factory_spec.rb +0 -14
- data/spec/models/spree/permission_sets/report_display_spec.rb +0 -25
@@ -19,4 +19,4 @@ Spree::ReimbursementType.create_with(name: "Store Credit").find_or_create_by!(ty
|
|
19
19
|
|
20
20
|
Spree::StoreCreditCategory.find_or_create_by!(name: 'Gift Card')
|
21
21
|
|
22
|
-
Spree::
|
22
|
+
Spree::StoreCreditReason.find_or_create_by!(name: 'Credit Given In Error')
|
data/db/default/spree/zones.rb
CHANGED
@@ -5,9 +5,9 @@ north_america = Spree::Zone.find_or_create_by!(name: "North America", descriptio
|
|
5
5
|
|
6
6
|
%w(PL FI PT RO DE FR SK HU SI IE AT ES IT BE SE LV BG GB LT CY LU MT DK NL EE HR CZ GR).
|
7
7
|
each do |symbol|
|
8
|
-
eu_vat.zone_members.
|
8
|
+
eu_vat.zone_members.find_or_create_by!(zoneable: Spree::Country.find_by!(iso: symbol))
|
9
9
|
end
|
10
10
|
|
11
11
|
%w(US CA).each do |symbol|
|
12
|
-
north_america.zone_members.
|
12
|
+
north_america.zone_members.find_or_create_by!(zoneable: Spree::Country.find_by!(iso: symbol))
|
13
13
|
end
|
@@ -0,0 +1,42 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
class CreateSpreeStoreCreditReasonsTable < ActiveRecord::Migration[5.1]
|
4
|
+
class StoreCreditUpdateReason < ActiveRecord::Base
|
5
|
+
self.table_name = "spree_store_credit_update_reasons"
|
6
|
+
end
|
7
|
+
|
8
|
+
class StoreCreditReason < ActiveRecord::Base
|
9
|
+
self.table_name = "spree_store_credit_reasons"
|
10
|
+
end
|
11
|
+
|
12
|
+
def up
|
13
|
+
create_table :spree_store_credit_reasons do |t|
|
14
|
+
t.string :name
|
15
|
+
t.boolean :active, default: true
|
16
|
+
|
17
|
+
t.timestamps
|
18
|
+
end
|
19
|
+
|
20
|
+
StoreCreditUpdateReason.all.each do |update_reason|
|
21
|
+
StoreCreditReason.create!(name: update_reason.name)
|
22
|
+
end
|
23
|
+
|
24
|
+
drop_table :spree_store_credit_update_reasons
|
25
|
+
rename_column :spree_store_credit_events, :update_reason_id, :store_credit_reason_id
|
26
|
+
end
|
27
|
+
|
28
|
+
def down
|
29
|
+
create_table :spree_store_credit_update_reasons do |t|
|
30
|
+
t.string :name
|
31
|
+
|
32
|
+
t.timestamps
|
33
|
+
end
|
34
|
+
|
35
|
+
StoreCreditReason.all.each do |store_credit_reason|
|
36
|
+
StoreCreditUpdateReason.create!(name: store_credit_reason.name)
|
37
|
+
end
|
38
|
+
|
39
|
+
drop_table :spree_store_credit_reasons
|
40
|
+
rename_column :spree_store_credit_events, :store_credit_reason_id, :update_reason_id
|
41
|
+
end
|
42
|
+
end
|
@@ -0,0 +1,41 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'solidus/migrations/promotions_with_code_handlers'
|
4
|
+
|
5
|
+
class RemoveCodeFromSpreePromotions < ActiveRecord::Migration[5.1]
|
6
|
+
class Promotion < ActiveRecord::Base
|
7
|
+
self.table_name = "spree_promotions"
|
8
|
+
end
|
9
|
+
|
10
|
+
def up
|
11
|
+
promotions_with_code = Promotion.where.not(code: nil)
|
12
|
+
|
13
|
+
if promotions_with_code.any?
|
14
|
+
# You have some promotions with "code" field present! This is not good
|
15
|
+
# since we are going to remove that column.
|
16
|
+
#
|
17
|
+
self.class.promotions_with_code_handler.new(self, promotions_with_code).call
|
18
|
+
end
|
19
|
+
|
20
|
+
remove_index :spree_promotions, name: :index_spree_promotions_on_code
|
21
|
+
remove_column :spree_promotions, :code
|
22
|
+
end
|
23
|
+
|
24
|
+
def down
|
25
|
+
add_column :spree_promotions, :code, :string
|
26
|
+
add_index :spree_promotions, :code, name: :index_spree_promotions_on_code
|
27
|
+
end
|
28
|
+
|
29
|
+
def self.promotions_with_code_handler
|
30
|
+
# We propose different approaches, just pick the one that you prefer or
|
31
|
+
# write your custom one.
|
32
|
+
#
|
33
|
+
# The fist one (raising an exception) is the default but you can
|
34
|
+
# comment/uncomment the one then better fits you needs or use a
|
35
|
+
# custom class or callable object.
|
36
|
+
#
|
37
|
+
Solidus::Migrations::PromotionWithCodeHandlers::RaiseException
|
38
|
+
# Solidus::Migrations::PromotionWithCodeHandlers::MoveToSpreePromotionCode
|
39
|
+
# Solidus::Migrations::PromotionWithCodeHandlers::DoNothing
|
40
|
+
end
|
41
|
+
end
|
@@ -20,9 +20,6 @@ Dummy::Application.configure do
|
|
20
20
|
# Raise exceptions instead of rendering exception templates
|
21
21
|
config.action_dispatch.show_exceptions = false
|
22
22
|
|
23
|
-
# Disable request forgery protection in test environment
|
24
|
-
config.action_controller.allow_forgery_protection = false
|
25
|
-
|
26
23
|
# Tell Action Mailer not to deliver emails to the real world.
|
27
24
|
# The :test delivery method accumulates sent emails in the
|
28
25
|
# ActionMailer::Base.deliveries array.
|
@@ -84,12 +84,12 @@ module Spree
|
|
84
84
|
config.to_prepare do
|
85
85
|
# Load application's model / class decorators
|
86
86
|
Dir.glob(File.join(File.dirname(__FILE__), "../app/**/*_decorator*.rb")) do |c|
|
87
|
-
|
87
|
+
require_dependency(c)
|
88
88
|
end
|
89
89
|
|
90
90
|
# Load application's view overrides
|
91
91
|
Dir.glob(File.join(File.dirname(__FILE__), "../app/overrides/*.rb")) do |c|
|
92
|
-
|
92
|
+
require_dependency(c)
|
93
93
|
end
|
94
94
|
end
|
95
95
|
APP
|
@@ -22,7 +22,7 @@ Spree.config do |config|
|
|
22
22
|
# Frontend:
|
23
23
|
|
24
24
|
# Custom logo for the frontend
|
25
|
-
# config.logo = "logo/
|
25
|
+
# config.logo = "logo/solidus.svg"
|
26
26
|
|
27
27
|
# Template to use when rendering layout
|
28
28
|
# config.layout = "spree/layouts/spree_application"
|
@@ -31,7 +31,7 @@ Spree.config do |config|
|
|
31
31
|
# Admin:
|
32
32
|
|
33
33
|
# Custom logo for the admin
|
34
|
-
# config.admin_interface_logo = "logo/
|
34
|
+
# config.admin_interface_logo = "logo/solidus.svg"
|
35
35
|
|
36
36
|
# Gateway credentials can be configured statically here and referenced from
|
37
37
|
# the admin. They can also be fully configured from the admin.
|
@@ -0,0 +1,66 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Solidus
|
4
|
+
module Migrations
|
5
|
+
module PromotionWithCodeHandlers
|
6
|
+
class PromotionCode < ActiveRecord::Base
|
7
|
+
self.table_name = "spree_promotion_codes"
|
8
|
+
end
|
9
|
+
|
10
|
+
class Base
|
11
|
+
attr_reader :migration_context, :promotions
|
12
|
+
|
13
|
+
def initialize(migration_context, promotions)
|
14
|
+
@migration_context = migration_context
|
15
|
+
@promotions = promotions
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
class RaiseException < Base
|
20
|
+
def call
|
21
|
+
# Please note that this will block the current migration and rollback all
|
22
|
+
# the previous ones run with the same "rails db:migrate" command.
|
23
|
+
#
|
24
|
+
raise StandardError, "You are trying to drop 'code' column from "\
|
25
|
+
"spree_promotions table but you have at least one record with that "\
|
26
|
+
"column filled. Please take care of that or you could lose data. See:" \
|
27
|
+
"\n" \
|
28
|
+
"https://github.com/solidusio/solidus/pull/3028"\
|
29
|
+
"\n"
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
class MoveToSpreePromotionCode < Base
|
34
|
+
def call
|
35
|
+
# This is another possible approach, it will convert Spree::Promotion#code
|
36
|
+
# to a Spree::PromotionCode before removing the `code` field.
|
37
|
+
#
|
38
|
+
# NOTE: promotion codes will be downcased and stripped
|
39
|
+
promotions.find_each do |promotion|
|
40
|
+
normalized_code = promotion.code.downcase.strip
|
41
|
+
|
42
|
+
PromotionCode.find_or_create_by!(
|
43
|
+
value: normalized_code,
|
44
|
+
promotion_id: promotion.id
|
45
|
+
) do
|
46
|
+
migration_context.say "Creating Spree::PromotionCode with value "\
|
47
|
+
"'#{normalized_code}' for Spree::Promotion with id '#{promotion.id}'"
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
class DoNothing < Base
|
54
|
+
def call
|
55
|
+
# This approach will delete all codes without taking any action. At
|
56
|
+
# least we could print a message to track what we are deleting.
|
57
|
+
#
|
58
|
+
promotions.find_each do |promotion|
|
59
|
+
migration_context.say "Code '#{promotion.code}' is going to be removed "\
|
60
|
+
"from Spree::Promotion with id '#{promotion.id}'"
|
61
|
+
end
|
62
|
+
end
|
63
|
+
end
|
64
|
+
end
|
65
|
+
end
|
66
|
+
end
|
@@ -31,8 +31,8 @@ module Spree
|
|
31
31
|
preference :address_requires_state, :boolean, default: true
|
32
32
|
|
33
33
|
# @!attribute [rw] admin_interface_logo
|
34
|
-
# @return [String] URL of logo used in admin (default: +'logo/
|
35
|
-
preference :admin_interface_logo, :string, default: 'logo/
|
34
|
+
# @return [String] URL of logo used in admin (default: +'logo/solidus.svg'+)
|
35
|
+
preference :admin_interface_logo, :string, default: 'logo/solidus.svg'
|
36
36
|
|
37
37
|
# @!attribute [rw] admin_products_per_page
|
38
38
|
# @return [Integer] Number of products to display in admin (default: +10+)
|
@@ -142,8 +142,8 @@ module Spree
|
|
142
142
|
preference :layout, :string, default: 'spree/layouts/spree_application'
|
143
143
|
|
144
144
|
# @!attribute [rw] logo
|
145
|
-
# @return [String] URL of logo used on frontend (default: +'logo/
|
146
|
-
preference :logo, :string, default: 'logo/
|
145
|
+
# @return [String] URL of logo used on frontend (default: +'logo/solidus.svg'+)
|
146
|
+
preference :logo, :string, default: 'logo/solidus.svg'
|
147
147
|
|
148
148
|
# @!attribute [rw] order_bill_address_used
|
149
149
|
# @return [Boolean] Use the order's bill address, as opposed to storing
|
@@ -295,6 +295,8 @@ module Spree
|
|
295
295
|
# promotion_chooser_class allows extensions to provide their own PromotionChooser
|
296
296
|
class_name_attribute :promotion_chooser_class, default: 'Spree::PromotionChooser'
|
297
297
|
|
298
|
+
class_name_attribute :allocator_class, default: 'Spree::Stock::Allocator::OnHandFirst'
|
299
|
+
|
298
300
|
class_name_attribute :shipping_rate_sorter_class, default: 'Spree::Stock::ShippingRateSorter'
|
299
301
|
|
300
302
|
class_name_attribute :shipping_rate_selector_class, default: 'Spree::Stock::ShippingRateSelector'
|
@@ -407,6 +409,20 @@ module Spree
|
|
407
409
|
# returns a String
|
408
410
|
class_name_attribute :taxon_url_parametizer_class, default: 'ActiveSupport::Inflector'
|
409
411
|
|
412
|
+
# Allows providing your own class for image galleries on Variants
|
413
|
+
#
|
414
|
+
# @!attribute [rw] variant_gallery_class
|
415
|
+
# @return [Class] a class that implements an `images` method and returns an
|
416
|
+
# Enumerable of images adhering to the present_image_class interface
|
417
|
+
class_name_attribute :variant_gallery_class, default: 'Spree::Gallery::VariantGallery'
|
418
|
+
|
419
|
+
# Allows providing your own class for image galleries on Products
|
420
|
+
#
|
421
|
+
# @!attribute [rw] product_gallery_class
|
422
|
+
# @return [Class] a class that implements an `images` method and returns an
|
423
|
+
# Enumerable of images adhering to the present_image_class interface
|
424
|
+
class_name_attribute :product_gallery_class, default: 'Spree::Gallery::ProductGallery'
|
425
|
+
|
410
426
|
# Allows providing your own class instance for generating order numbers.
|
411
427
|
#
|
412
428
|
# @!attribute [rw] order_number_generator
|
@@ -5,6 +5,8 @@ module Spree
|
|
5
5
|
class StockConfiguration
|
6
6
|
attr_writer :coordinator_class
|
7
7
|
attr_writer :estimator_class
|
8
|
+
attr_writer :location_sorter_class
|
9
|
+
attr_writer :allocator_class
|
8
10
|
|
9
11
|
def coordinator_class
|
10
12
|
@coordinator_class ||= '::Spree::Stock::SimpleCoordinator'
|
@@ -15,6 +17,16 @@ module Spree
|
|
15
17
|
@estimator_class ||= '::Spree::Stock::Estimator'
|
16
18
|
@estimator_class.constantize
|
17
19
|
end
|
20
|
+
|
21
|
+
def location_sorter_class
|
22
|
+
@location_sorter_class ||= '::Spree::Stock::LocationSorter::Unsorted'
|
23
|
+
@location_sorter_class.constantize
|
24
|
+
end
|
25
|
+
|
26
|
+
def allocator_class
|
27
|
+
@allocator_class ||= '::Spree::Stock::Allocator::OnHandFirst'
|
28
|
+
@allocator_class.constantize
|
29
|
+
end
|
18
30
|
end
|
19
31
|
end
|
20
32
|
end
|
data/lib/spree/core/version.rb
CHANGED
data/lib/spree/i18n.rb
CHANGED
@@ -26,6 +26,10 @@ module Spree
|
|
26
26
|
# extra functionality. e.g return reasonable strings for missing translations
|
27
27
|
|
28
28
|
def translate(key, options = {})
|
29
|
+
Spree::Deprecation.warn <<-WARN.squish
|
30
|
+
Spree.t & Spree.translate have been deprecated.
|
31
|
+
Instead use I18n.t('spree.your_translation_key')
|
32
|
+
WARN
|
29
33
|
options[:scope] = [:spree, *options[:scope]]
|
30
34
|
TranslationHelperWrapper.new.translate(key, options)
|
31
35
|
end
|
data/lib/spree/money.rb
CHANGED
@@ -1,9 +1,5 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require 'money'
|
4
|
-
require 'monetize'
|
5
|
-
require 'active_support/core_ext/string/output_safety'
|
6
|
-
|
7
3
|
module Spree
|
8
4
|
# Spree::Money is a relatively thin wrapper around Monetize which handles
|
9
5
|
# formatting via Spree::Config.
|
@@ -77,16 +73,22 @@ module Spree
|
|
77
73
|
@money.format(@options.merge(options))
|
78
74
|
end
|
79
75
|
|
80
|
-
# @note If you pass in options, ensure you pass in the
|
76
|
+
# @note If you pass in options, ensure you pass in the { html_wrap: true } as well.
|
81
77
|
# @param options [Hash] additional formatting options
|
82
78
|
# @return [String] the value of this money object formatted according to
|
83
|
-
# its options and any additional options, by default
|
84
|
-
def to_html(options = {
|
79
|
+
# its options and any additional options, by default with html_wrap.
|
80
|
+
def to_html(options = { html_wrap: true })
|
85
81
|
output = format(options)
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
82
|
+
# Maintain compatibility by checking html option renamed to html_wrap.
|
83
|
+
if options[:html] || options[:html] == false
|
84
|
+
Spree::Deprecation.warn <<-WARN.squish, caller
|
85
|
+
Spree::Money#to_html called with Spree::Money#to_html(html: #{options[:html]}),
|
86
|
+
which will not be supported in the future.
|
87
|
+
Instead use :html_wrap e.g. Spree::Money#to_html(html_wrap: #{options[:html]})
|
88
|
+
WARN
|
89
|
+
end
|
90
|
+
if options[:html_wrap] || options[:html]
|
91
|
+
output = output.html_safe
|
90
92
|
end
|
91
93
|
output
|
92
94
|
end
|
@@ -11,7 +11,6 @@ require 'spree/permission_sets/product_display'
|
|
11
11
|
require 'spree/permission_sets/product_management'
|
12
12
|
require 'spree/permission_sets/promotion_display'
|
13
13
|
require 'spree/permission_sets/promotion_management'
|
14
|
-
require 'spree/permission_sets/report_display'
|
15
14
|
require 'spree/permission_sets/restricted_stock_display'
|
16
15
|
require 'spree/permission_sets/restricted_stock_management'
|
17
16
|
require 'spree/permission_sets/stock_display'
|
@@ -12,9 +12,16 @@ Rails.env = 'test'
|
|
12
12
|
|
13
13
|
require 'solidus_core'
|
14
14
|
|
15
|
+
# @private
|
16
|
+
def forgery_protected_by_default?
|
17
|
+
Gem::Version.new(Rails.version) >= Gem::Version.new('5.2')
|
18
|
+
end
|
19
|
+
|
15
20
|
# @private
|
16
21
|
class ApplicationController < ActionController::Base
|
17
|
-
|
22
|
+
if !forgery_protected_by_default?
|
23
|
+
protect_from_forgery with: :exception
|
24
|
+
end
|
18
25
|
end
|
19
26
|
|
20
27
|
# @private
|
@@ -50,14 +57,18 @@ module DummyApp
|
|
50
57
|
config.public_file_server.headers = { 'Cache-Control' => 'public, max-age=3600' }
|
51
58
|
config.whiny_nils = true
|
52
59
|
config.consider_all_requests_local = true
|
60
|
+
config.action_controller.allow_forgery_protection = true
|
53
61
|
config.action_controller.perform_caching = false
|
54
62
|
config.action_dispatch.show_exceptions = false
|
55
63
|
config.active_support.deprecation = :stderr
|
56
64
|
config.action_mailer.delivery_method = :test
|
57
|
-
config.action_controller.allow_forgery_protection = false
|
58
65
|
config.active_support.deprecation = :stderr
|
59
66
|
config.secret_key_base = 'SECRET_TOKEN'
|
60
67
|
|
68
|
+
if forgery_protected_by_default?
|
69
|
+
config.action_controller.default_protect_from_forgery = true
|
70
|
+
end
|
71
|
+
|
61
72
|
if config.active_record.sqlite3
|
62
73
|
# Rails >= 5.2
|
63
74
|
config.active_record.sqlite3.represent_boolean_as_integer = true
|