solidus_core 2.11.5 → 3.0.0.rc2

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.

Files changed (127) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/spree.js.erb +0 -51
  3. data/app/helpers/spree/store_helper.rb +0 -11
  4. data/app/mailers/spree/carton_mailer.rb +1 -5
  5. data/app/models/concerns/spree/adjustment_source.rb +0 -15
  6. data/app/models/concerns/spree/calculated_adjustments.rb +0 -18
  7. data/app/models/concerns/spree/soft_deletable.rb +2 -4
  8. data/app/models/concerns/spree/user_address_book.rb +0 -37
  9. data/app/models/concerns/spree/user_methods.rb +2 -11
  10. data/app/models/spree/ability.rb +0 -37
  11. data/app/models/spree/address.rb +8 -186
  12. data/app/models/spree/address/name.rb +2 -20
  13. data/app/models/spree/adjustment.rb +0 -28
  14. data/app/models/spree/base.rb +0 -10
  15. data/app/models/spree/calculator.rb +0 -7
  16. data/app/models/spree/calculator/flexi_rate.rb +0 -5
  17. data/app/models/spree/country.rb +1 -6
  18. data/app/models/spree/credit_card.rb +0 -27
  19. data/app/models/spree/customer_return.rb +1 -4
  20. data/app/models/spree/image.rb +0 -7
  21. data/app/models/spree/inventory_unit.rb +0 -21
  22. data/app/models/spree/line_item.rb +2 -45
  23. data/app/models/spree/order.rb +3 -136
  24. data/app/models/spree/order_cancellations.rb +4 -24
  25. data/app/models/spree/order_updater.rb +2 -11
  26. data/app/models/spree/payment.rb +0 -3
  27. data/app/models/spree/payment/cancellation.rb +1 -1
  28. data/app/models/spree/payment_create.rb +1 -13
  29. data/app/models/spree/payment_method.rb +2 -103
  30. data/app/models/spree/payment_method/credit_card.rb +1 -3
  31. data/app/models/spree/product.rb +0 -39
  32. data/app/models/spree/product/scopes.rb +0 -27
  33. data/app/models/spree/promotion.rb +2 -6
  34. data/app/models/spree/promotion/actions/create_adjustment.rb +0 -3
  35. data/app/models/spree/promotion/actions/create_item_adjustments.rb +0 -3
  36. data/app/models/spree/promotion/actions/create_quantity_adjustments.rb +0 -3
  37. data/app/models/spree/promotion/rules/taxon.rb +2 -15
  38. data/app/models/spree/promotion_action.rb +2 -9
  39. data/app/models/spree/promotion_code/batch_builder.rb +0 -14
  40. data/app/models/spree/refund.rb +0 -50
  41. data/app/models/spree/reimbursement.rb +3 -41
  42. data/app/models/spree/reimbursement_performer.rb +2 -8
  43. data/app/models/spree/reimbursement_type/credit.rb +1 -4
  44. data/app/models/spree/reimbursement_type/reimbursement_helpers.rb +1 -2
  45. data/app/models/spree/reimbursement_type/store_credit.rb +1 -4
  46. data/app/models/spree/return_authorization.rb +1 -4
  47. data/app/models/spree/return_item.rb +1 -19
  48. data/app/models/spree/shipment.rb +1 -54
  49. data/app/models/spree/shipping_method.rb +0 -25
  50. data/app/models/spree/shipping_rate.rb +0 -2
  51. data/app/models/spree/state.rb +0 -4
  52. data/app/models/spree/stock/simple_coordinator.rb +0 -14
  53. data/app/models/spree/stock/splitter/base.rb +2 -7
  54. data/app/models/spree/stock_item.rb +1 -7
  55. data/app/models/spree/store.rb +0 -12
  56. data/app/models/spree/store_credit_category.rb +0 -32
  57. data/app/models/spree/tax_calculator/shipping_rate.rb +1 -12
  58. data/app/models/spree/tax_rate.rb +0 -27
  59. data/app/models/spree/taxon.rb +0 -11
  60. data/app/models/spree/taxon/active_storage_attachment.rb +0 -5
  61. data/app/models/spree/taxon/paperclip_attachment.rb +0 -5
  62. data/app/models/spree/user_address.rb +0 -5
  63. data/app/models/spree/variant.rb +1 -45
  64. data/config/locales/en.yml +0 -8
  65. data/db/migrate/20180416083007_add_apply_to_all_to_variant_property_rule.rb +1 -1
  66. data/lib/generators/solidus/install/install_generator.rb +12 -1
  67. data/lib/generators/solidus/install/templates/config/initializers/spree.rb.tt +3 -39
  68. data/lib/generators/spree/dummy/dummy_generator.rb +2 -1
  69. data/lib/generators/spree/dummy/templates/rails/database.yml +6 -1
  70. data/lib/generators/spree/dummy/templates/rails/storage.yml +3 -0
  71. data/lib/generators/spree/dummy/templates/rails/test.rb +2 -0
  72. data/lib/spree/app_configuration.rb +6 -65
  73. data/lib/spree/core.rb +9 -8
  74. data/lib/spree/core/class_constantizer.rb +2 -0
  75. data/lib/spree/core/controller_helpers/auth.rb +1 -14
  76. data/lib/spree/core/controller_helpers/order.rb +2 -22
  77. data/lib/spree/core/controller_helpers/payment_parameters.rb +0 -54
  78. data/lib/spree/core/controller_helpers/pricing.rb +0 -8
  79. data/lib/spree/core/controller_helpers/strong_parameters.rb +0 -4
  80. data/lib/spree/core/engine.rb +0 -35
  81. data/lib/spree/core/environment_extension.rb +0 -9
  82. data/lib/spree/core/product_filters.rb +0 -40
  83. data/lib/spree/core/role_configuration.rb +0 -14
  84. data/lib/spree/core/search/base.rb +0 -26
  85. data/lib/spree/core/state_machines.rb +2 -11
  86. data/lib/spree/core/version.rb +1 -1
  87. data/lib/spree/event.rb +0 -31
  88. data/lib/spree/event/configuration.rb +0 -5
  89. data/lib/spree/event/subscriber.rb +0 -18
  90. data/lib/spree/event/subscriber_registry.rb +3 -1
  91. data/lib/spree/i18n.rb +0 -22
  92. data/lib/spree/money.rb +3 -18
  93. data/lib/spree/permitted_attributes.rb +2 -53
  94. data/lib/spree/testing_support/capybara_ext.rb +0 -30
  95. data/lib/spree/testing_support/controller_requests.rb +0 -82
  96. data/lib/spree/testing_support/dummy_app.rb +6 -14
  97. data/lib/spree/testing_support/dummy_app/migrations.rb +0 -3
  98. data/lib/spree/testing_support/factories/order_factory.rb +0 -1
  99. data/lib/spree/testing_support/factories/refund_factory.rb +0 -1
  100. data/lib/spree/testing_support/order_walkthrough.rb +0 -3
  101. data/lib/spree/testing_support/preferences.rb +0 -25
  102. data/solidus_core.gemspec +1 -24
  103. metadata +6 -62
  104. data/app/mailers/spree/test_mailer.rb +0 -13
  105. data/app/models/concerns/spree/user_payment_source.rb +0 -26
  106. data/app/models/spree/calculator/free_shipping.rb +0 -22
  107. data/app/models/spree/calculator/percent_per_item.rb +0 -51
  108. data/app/models/spree/calculator/price_sack.rb +0 -28
  109. data/app/models/spree/gateway.rb +0 -14
  110. data/app/models/spree/gateway/bogus.rb +0 -13
  111. data/app/models/spree/gateway/bogus_simple.rb +0 -13
  112. data/app/models/spree/order/checkout.rb +0 -244
  113. data/app/models/spree/order_capturing.rb +0 -50
  114. data/app/models/spree/promotion_handler/free_shipping.rb +0 -9
  115. data/lib/generators/spree/install/install_generator.rb +0 -15
  116. data/lib/solidus/migrations/rename_gateways.rb +0 -41
  117. data/lib/spree/core/current_store.rb +0 -24
  118. data/lib/spree/paranoia_deprecations.rb +0 -41
  119. data/lib/spree/promo/environment.rb +0 -12
  120. data/lib/spree/testing_support/bar_ability.rb +0 -19
  121. data/lib/tasks/core.rake +0 -104
  122. data/lib/tasks/email.rake +0 -12
  123. data/lib/tasks/migrations/copy_order_bill_address_to_credit_card.rake +0 -119
  124. data/lib/tasks/migrations/migrate_shipping_rate_taxes.rake +0 -22
  125. data/lib/tasks/migrations/migrate_user_addresses.rake +0 -34
  126. data/lib/tasks/migrations/rename_gateways.rake +0 -23
  127. data/lib/tasks/order_capturing.rake +0 -27
@@ -1,9 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Spree::PromotionHandler
4
- FreeShipping = ActiveSupport::Deprecation::DeprecatedConstantProxy.new(
5
- 'Spree::PromotionHandler::FreeShipping',
6
- 'Spree::PromotionHandler::Shipping',
7
- Spree::Deprecation,
8
- )
9
- end
@@ -1,15 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'generators/solidus/install/install_generator'
4
-
5
- module Spree
6
- # @private
7
- class InstallGenerator < Solidus::InstallGenerator
8
- def print_deprecation_warning
9
- puts " "
10
- puts "*" * 50
11
- puts "spree:install generator is deprecated, please use solidus:install."
12
- puts " "
13
- end
14
- end
15
- end
@@ -1,41 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Solidus
4
- module Migrations
5
- class RenameGateways
6
- DEFAULT_MAPPING = {
7
- 'Spree::Gateway' => 'Spree::PaymentMethod::CreditCard',
8
- 'Spree::Gateway::Bogus' => 'Spree::PaymentMethod::BogusCreditCard',
9
- 'Spree::Gateway::BogusSimple' => 'Spree::PaymentMethod::SimpleBogusCreditCard'
10
- }
11
-
12
- attr_reader :gateway_mapping
13
-
14
- def initialize(gateway_mapping = DEFAULT_MAPPING)
15
- Spree::Deprecation.warn 'Solidus::Migrations::RenameGateways is deprecated and will be removed with Solidus 3.0.'
16
-
17
- @gateway_mapping = gateway_mapping
18
- end
19
-
20
- def up
21
- gateway_mapping.inject(0) do |count, mapping|
22
- count + update(from: mapping[0], to: mapping[1])
23
- end
24
- end
25
-
26
- def down
27
- gateway_mapping.inject(0) do |count, mapping|
28
- count + update(from: mapping[1], to: mapping[0])
29
- end
30
- end
31
-
32
- private
33
-
34
- def update(from:, to:)
35
- ActiveRecord::Base.connection.update <<-SQL.strip_heredoc
36
- UPDATE spree_payment_methods SET type = '#{to}' WHERE type = '#{from}';
37
- SQL
38
- end
39
- end
40
- end
41
- end
@@ -1,24 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- # Default class for deciding what the current store is, given an HTTP request
4
- # This is an extension point used in Spree::Core::ControllerHelpers::Store
5
- # Custom versions of this class must respond to a store instance method
6
- module Spree
7
- module Core
8
- class CurrentStore
9
- def initialize(request)
10
- @request = request
11
- @current_store_selector = Spree::Config.current_store_selector_class.new(request)
12
- Spree::Deprecation.warn "Using Spree::Core::CurrentStore is deprecated. Use Spree::Config.current_store_selector_class instead", caller
13
- end
14
-
15
- # Delegate store selection to Spree::Config.current_store_selector_class
16
- # Using this class is deprecated.
17
- #
18
- # @return [Spree::Store]
19
- def store
20
- @current_store_selector.store
21
- end
22
- end
23
- end
24
- end
@@ -1,41 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Spree
4
- module ParanoiaDeprecations
5
- module InstanceMethods
6
- def paranoia_destroy
7
- Spree::Deprecation.warn <<~WARN, caller
8
- Calling #destroy (or #paranoia_destroy) on a #{self.class} currently performs a soft-destroy using the paranoia gem.
9
- In Solidus 3.0, paranoia will be removed, and this will perform a HARD destroy instead. To continue soft-deleting, use #discard instead.
10
- WARN
11
- super
12
- end
13
-
14
- def paranoia_delete
15
- Spree::Deprecation.warn <<~WARN, caller
16
- Calling #delete (or #paranoia_delete) on a #{self.class} currently performs a soft-destroy using the paranoia gem.
17
- In Solidus 3.0, paranoia will be removed, and this will perform a HARD destroy instead. To continue soft-deleting, use #discard instead.
18
- WARN
19
- super
20
- end
21
- end
22
-
23
- module ClassMethods
24
- def with_deleted
25
- Spree::Deprecation.warn <<~WARN, caller
26
- #{self}.with_deleted has been deprecated. Use #{self}.with_discarded instead.
27
- In Solidus 3.0, paranoia will be removed, and this method will be replaced by #{self}.with_discarded.
28
- WARN
29
- super
30
- end
31
-
32
- def only_deleted
33
- Spree::Deprecation.warn <<~WARN, caller
34
- #{self}.only_deleted has been deprecated. Use #{self}.discarded instead.
35
- In Solidus 3.0, paranoia will be removed, and this method will be replaced by #{self}.discarded.
36
- WARN
37
- super
38
- end
39
- end
40
- end
41
- end
@@ -1,12 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Spree
4
- module Promo
5
- Environment =
6
- ActiveSupport::Deprecation::DeprecatedConstantProxy.new(
7
- 'Spree::Promo::Environment',
8
- 'Spree::Core::Environment::Promotions',
9
- Spree::Deprecation
10
- )
11
- end
12
- end
@@ -1,19 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- Spree::Deprecation.warn "BarAbility is deprecated. Use stub_authorization! instead"
4
-
5
- # Fake ability for testing administration
6
- # @private
7
- class BarAbility
8
- include CanCan::Ability
9
-
10
- def initialize(user)
11
- user ||= Spree::User.new
12
- if user.has_spree_role? 'bar'
13
- # allow dispatch to :admin, :index, and :show on Spree::Order
14
- can [:admin, :index, :show], Spree::Order
15
- # allow dispatch to :index, :show, :create and :update shipments on the admin
16
- can [:admin, :manage], Spree::Shipment
17
- end
18
- end
19
- end
data/lib/tasks/core.rake DELETED
@@ -1,104 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'active_record'
4
-
5
- def prompt_for_agree(prompt)
6
- print prompt
7
- ["y", "yes"].include? STDIN.gets.strip.downcase
8
- end
9
-
10
- namespace :db do
11
- desc 'Loads a specified fixture file:
12
- use rake db:load_file[/absolute/path/to/sample/filename.rb]'
13
-
14
- task :load_file, [:file, :dir] => :environment do |_t, args|
15
- Spree::Deprecation.warn("load_file has been deprecated. Please load your own file.")
16
- file = Pathname.new(args.file)
17
-
18
- puts "loading ruby #{file}"
19
- require file
20
- end
21
-
22
- desc "Loads fixtures from the the dir you specify using rake db:load_dir[loadfrom]"
23
- task :load_dir, [:dir] => :environment do |_t, args|
24
- Spree::Deprecation.warn("rake spree:load_dir has been deprecated and will be removed with Solidus 3.0. Please load your files directly.")
25
- dir = args.dir
26
- dir = File.join(Rails.root, "db", dir) if Pathname.new(dir).relative?
27
-
28
- ruby_files = {}
29
- Dir.glob(File.join(dir, '**/*.{rb}')).each do |fixture_file|
30
- ruby_files[File.basename(fixture_file, '.*')] = fixture_file
31
- end
32
- ruby_files.sort.each do |fixture, ruby_file|
33
- # If file is exists within application it takes precendence.
34
- if File.exist?(File.join(Rails.root, "db/default/spree", "#{fixture}.rb"))
35
- ruby_file = File.expand_path(File.join(Rails.root, "db/default/spree", "#{fixture}.rb"))
36
- end
37
- # an invoke will only execute the task once
38
- Rake::Task["db:load_file"].execute( Rake::TaskArguments.new([:file], [ruby_file]) )
39
- end
40
- end
41
-
42
- desc "Migrate schema to version 0 and back up again. WARNING: Destroys all data in tables!!"
43
- task remigrate: :environment do
44
- Spree::Deprecation.warn("remigrate has been deprecated. Please use db:reset or other db: commands instead.")
45
-
46
- if ENV['SKIP_NAG'] || ENV['OVERWRITE'].to_s.casecmp('true') || prompt_for_agree("This task will destroy any data in the database. Are you sure you want to \ncontinue? [y/n] ")
47
-
48
- # Drop all tables
49
- ActiveRecord::Base.connection.tables.each { |t| ActiveRecord::Base.connection.drop_table t }
50
-
51
- # Migrate upward
52
- Rake::Task["db:migrate"].invoke
53
-
54
- # Dump the schema
55
- Rake::Task["db:schema:dump"].invoke
56
- else
57
- puts "Task cancelled."
58
- exit
59
- end
60
- end
61
-
62
- desc "Bootstrap is: migrating, loading defaults, sample data and seeding (for all extensions) and load_products tasks"
63
- task :bootstrap do
64
- Spree::Deprecation.warn("rake bootstrap has been deprecated, please run db:setup instead.")
65
-
66
- # remigrate unless production mode (as saftey check)
67
- if %w[demo development test].include? Rails.env
68
- if ENV['AUTO_ACCEPT'] || prompt_for_agree("This task will destroy any data in the database. Are you sure you want to \ncontinue? [y/n] ")
69
- ENV['SKIP_NAG'] = 'yes'
70
- Rake::Task["db:create"].invoke
71
- Rake::Task["db:remigrate"].invoke
72
- else
73
- puts "Task cancelled, exiting."
74
- exit
75
- end
76
- else
77
- puts "NOTE: Bootstrap in production mode will not drop database before migration"
78
- Rake::Task["db:migrate"].invoke
79
- end
80
-
81
- ActiveRecord::Base.send(:subclasses).each(&:reset_column_information)
82
-
83
- load_defaults = Spree::Country.count == 0
84
- load_defaults ||= prompt_for_agree('Countries present, load sample data anyways? [y/n]: ')
85
- if load_defaults
86
- Rake::Task["db:seed"].invoke
87
- end
88
-
89
- if Rails.env.production? && Spree::Product.count > 0
90
- load_sample = prompt_for_agree("WARNING: In Production and products exist in database, load sample data anyways? [y/n]:" )
91
- else
92
- load_sample = true if ENV['AUTO_ACCEPT']
93
- load_sample ||= prompt_for_agree('Load Sample Data? [y/n]: ')
94
- end
95
-
96
- if load_sample
97
- # Reload models' attributes in case they were loaded in old migrations with wrong attributes
98
- ActiveRecord::Base.descendants.each(&:reset_column_information)
99
- Rake::Task["spree_sample:load"].invoke
100
- end
101
-
102
- puts "Bootstrap Complete.\n\n"
103
- end
104
- end
data/lib/tasks/email.rake DELETED
@@ -1,12 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- namespace :email do
4
- desc 'Sends test email to specified address - Example: EMAIL=solidus@example.com bundle exec rake email:test'
5
- task test: :environment do
6
- Spree::Deprecation.warn("rake email:test has been deprecated and will be removed with Solidus 3.0")
7
-
8
- raise ArgumentError, "Must pass EMAIL environment variable. Example: EMAIL=solidus@example.com bundle exec rake email:test" if ENV['EMAIL'].blank?
9
-
10
- Spree::TestMailer.test_email(ENV['EMAIL']).deliver!
11
- end
12
- end
@@ -1,119 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- namespace 'spree:migrations:copy_order_bill_address_to_credit_card' do
4
- # This copies the billing address from the order associated with a
5
- # credit card's most recent payment to the credit card.
6
-
7
- # Used in the migration CopyOrderBillAddressToCreditCard and made available as a
8
- # rake task to allow running it a second time after deploying the new code, in
9
- # case some order->credit card data was missed between the time that the
10
- # migration was run and the application servers were restarted with the new
11
- # code.
12
-
13
- # This task should be safe to run multiple times.
14
-
15
- task up: :environment do
16
- Spree::Deprecation.warn("rake spree:migrations:copy_order_bill_address_to_credit_card:up has been deprecated and will be removed with Solidus 3.0.")
17
-
18
- if Spree::CreditCard.connection.adapter_name =~ /postgres/i
19
- postgres_copy
20
- else
21
- ruby_copy
22
- end
23
- end
24
-
25
- task down: :environment do
26
- Spree::Deprecation.warn("rake spree:migrations:copy_order_bill_address_to_credit_card:down has been deprecated and will be removed with Solidus 3.0.")
27
-
28
- Spree::CreditCard.update_all(address_id: nil)
29
- end
30
-
31
- def ruby_copy
32
- scope = Spree::CreditCard.where(address_id: nil).includes(payments: :order)
33
-
34
- scope.find_each(batch_size: 500) do |cc|
35
- # remove payments that lack a bill address
36
- payments = cc.payments.select { |p| p.order.bill_address_id }
37
-
38
- payment = payments.sort_by do |p|
39
- [
40
- %w(failed invalid).include?(p.state) ? 0 : 1, # prioritize valid payments
41
- p.created_at, # prioritize more recent payments
42
- ]
43
- end.last
44
-
45
- next if payment.nil?
46
-
47
- cc.update_column(:address_id, payment.order.bill_address_id)
48
- puts "Successfully associated billing address (#{payment.order.bill_address_id}) with credit card (#{cc.id})"
49
- end
50
- end
51
-
52
- # This was 20x faster for us but the syntax is postgres-specific. I'm sure
53
- # there are equivalent versions for other DBs if someone wants to write them.
54
- # I took a quick stab at crafting a cross-db compatible version but it was
55
- # slow.
56
- def postgres_copy
57
- batch_size = 10_000
58
-
59
- current_start_id = 1
60
-
61
- while current_start_id <= last_credit_card_id
62
- current_end_id = current_start_id + batch_size
63
- puts "updating #{current_start_id} to #{current_end_id}"
64
-
65
- # first try to find a valid payment for each credit card
66
- Spree::CreditCard.connection.execute(
67
- postgres_sql(
68
- start_id: current_start_id,
69
- end_id: current_end_id,
70
- payment_state: "not in ('failed', 'invalid')"
71
- )
72
- )
73
-
74
- # fall back to using invalid payments for each credit card
75
- Spree::CreditCard.connection.execute(
76
- postgres_sql(
77
- start_id: current_start_id,
78
- end_id: current_end_id,
79
- payment_state: "in ('failed', 'invalid')"
80
- )
81
- )
82
-
83
- current_start_id += batch_size
84
- end
85
- end
86
-
87
- def postgres_sql(start_id:, end_id:, payment_state:)
88
- <<-SQL
89
- update spree_credit_cards c
90
- set address_id = o.bill_address_id
91
- from spree_payments p
92
- inner join spree_orders o
93
- on o.id = p.order_id
94
- and o.bill_address_id is not null
95
- left join (
96
- select p2.*
97
- from spree_payments p2
98
- inner join spree_orders o2
99
- on o2.id = p2.order_id
100
- and o2.bill_address_id is not null
101
- ) more_recent_payment
102
- on more_recent_payment.source_id = p.source_id
103
- and more_recent_payment.source_type = 'Spree::CreditCard'
104
- and more_recent_payment.created_at > p.created_at
105
- and more_recent_payment.state #{payment_state}
106
- where c.address_id is null
107
- and p.source_id = c.id
108
- and p.source_type = 'Spree::CreditCard'
109
- and p.state #{payment_state}
110
- and more_recent_payment.id is null
111
- and o.bill_address_id is not null
112
- and c.id between #{start_id} and #{end_id}
113
- SQL
114
- end
115
-
116
- def last_credit_card_id
117
- Spree::CreditCard.last.try!(:id) || 0
118
- end
119
- end
@@ -1,22 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- namespace :solidus do
4
- namespace :migrations do
5
- namespace :migrate_shipping_rate_taxes do
6
- task up: :environment do
7
- Spree::Deprecation.warn("rake spree:migrations:migrate_shipping_rate_taxes:up has been deprecated and will be removed with Solidus 3.0.")
8
-
9
- print "Adding persisted tax notes to historic shipping rates ... "
10
- Spree::ShippingRate.where.not(tax_rate_id: nil).find_each do |shipping_rate|
11
- tax_rate = Spree::TaxRate.unscoped.find(shipping_rate.tax_rate_id)
12
- shipping_rate.taxes.find_or_create_by!(
13
- tax_rate: tax_rate,
14
- amount: tax_rate.compute_amount(shipping_rate)
15
- )
16
- end
17
- Spree::ShippingRate.where.not(tax_rate_id: nil).update_all(tax_rate_id: nil)
18
- puts "Success."
19
- end
20
- end
21
- end
22
- end
@@ -1,34 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- namespace 'spree:migrations:migrate_user_addresses' do
4
- # This creates an entry in the user_addresses table for a user's currently
5
- # associated shipping and billing addresses.
6
-
7
- # This task should not need to be run more than once. But the de-dup behavior in
8
- # UserAddressBook should make it safe.
9
- # When the code (in the same PR) is deployed, each new order's addresses will be added
10
- # to the user's address book. This will catch up all the historical data.
11
-
12
- task up: :environment do
13
- Spree::Deprecation.warn("rake spree:migrations:migrate_user_addresses:up has been deprecated and will be removed with Solidus 3.0.")
14
-
15
- Spree.user_class.find_each(batch_size: 500) do |user|
16
- ship_address = Spree::Address.find_by(id: user.ship_address_id)
17
- bill_address = Spree::Address.find_by(id: user.bill_address_id)
18
-
19
- current_addresses = [bill_address, ship_address].compact.uniq
20
-
21
- current_addresses.each do |address|
22
- # since ship_address is last, it will override bill_address as default when both are present
23
- user.save_in_address_book(address.attributes, true)
24
- end
25
-
26
- puts "Migrated addresses for user ##{user.id}"
27
- end
28
- end
29
-
30
- task down: :environment do
31
- Spree::Deprecation.warn("rake spree:migrations:migrate_user_addresses:down has been deprecated and will be removed with Solidus 3.0.")
32
- Spree::UserAddress.delete_all
33
- end
34
- end