solidus_core 2.10.5 → 3.0.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/app/assets/javascripts/spree.js.erb +0 -22
- data/app/controllers/spree/base_controller.rb +1 -0
- data/app/helpers/spree/store_helper.rb +0 -11
- data/app/mailers/spree/base_mailer.rb +4 -0
- data/app/mailers/spree/carton_mailer.rb +1 -5
- data/app/mailers/spree/order_mailer.rb +1 -1
- data/app/models/concerns/spree/active_storage_adapter/attachment.rb +71 -0
- data/app/models/concerns/spree/active_storage_adapter/normalization.rb +39 -0
- data/app/models/concerns/spree/active_storage_adapter.rb +118 -0
- data/app/models/concerns/spree/adjustment_source.rb +0 -15
- data/app/models/concerns/spree/calculated_adjustments.rb +0 -18
- data/app/models/concerns/spree/default_price.rb +1 -1
- data/app/models/concerns/spree/soft_deletable.rb +16 -0
- data/app/models/concerns/spree/user_address_book.rb +61 -44
- data/app/models/concerns/spree/user_methods.rb +23 -12
- data/app/models/spree/ability.rb +0 -13
- data/app/models/spree/address/name.rb +31 -0
- data/app/models/spree/address/state_validator.rb +71 -0
- data/app/models/spree/address.rb +17 -95
- data/app/models/spree/adjustment.rb +1 -29
- data/app/models/spree/base.rb +1 -28
- data/app/models/spree/calculator/default_tax.rb +1 -1
- data/app/models/spree/calculator/flexi_rate.rb +0 -5
- data/app/models/spree/calculator.rb +8 -11
- data/app/models/spree/country.rb +1 -6
- data/app/models/spree/credit_card.rb +2 -29
- data/app/models/spree/customer_return.rb +5 -6
- data/app/models/spree/exchange.rb +1 -1
- data/app/models/spree/image/active_storage_attachment.rb +29 -0
- data/app/models/spree/image/paperclip_attachment.rb +1 -1
- data/app/models/spree/image.rb +0 -7
- data/app/models/spree/inventory_unit.rb +1 -22
- data/app/models/spree/line_item.rb +12 -46
- data/app/models/spree/log_entry.rb +74 -1
- data/app/models/spree/option_type.rb +1 -1
- data/app/models/spree/option_value.rb +2 -2
- data/app/models/spree/order/payments.rb +2 -2
- data/app/models/spree/order.rb +70 -132
- data/app/models/spree/order_cancellations.rb +4 -24
- data/app/models/spree/order_inventory.rb +16 -4
- data/app/models/spree/order_merger.rb +7 -5
- data/app/models/spree/order_promotion.rb +1 -1
- data/app/models/spree/order_shipping.rb +6 -9
- data/app/models/spree/order_updater.rb +7 -15
- data/app/models/spree/payment/cancellation.rb +3 -22
- data/app/models/spree/payment/processing.rb +54 -30
- data/app/models/spree/payment.rb +13 -9
- data/app/models/spree/payment_create.rb +1 -13
- data/app/models/spree/payment_method/bogus_credit_card.rb +13 -9
- data/app/models/spree/payment_method/credit_card.rb +1 -3
- data/app/models/spree/payment_method/simple_bogus_credit_card.rb +4 -4
- data/app/models/spree/payment_method.rb +7 -106
- data/app/models/spree/payment_source.rb +2 -2
- data/app/models/spree/preference.rb +1 -1
- data/app/models/spree/price.rb +3 -9
- data/app/models/spree/product/scopes.rb +9 -32
- data/app/models/spree/product.rb +24 -52
- data/app/models/spree/promotion/actions/create_adjustment.rb +0 -3
- data/app/models/spree/promotion/actions/create_item_adjustments.rb +0 -3
- data/app/models/spree/promotion/actions/create_quantity_adjustments.rb +0 -3
- data/app/models/spree/promotion/actions/free_shipping.rb +6 -5
- data/app/models/spree/promotion/rules/taxon.rb +2 -15
- data/app/models/spree/promotion.rb +15 -8
- data/app/models/spree/promotion_action.rb +5 -15
- data/app/models/spree/promotion_code/batch_builder.rb +0 -14
- data/app/models/spree/promotion_code.rb +8 -3
- data/app/models/spree/promotion_code_batch.rb +1 -1
- data/app/models/spree/promotion_handler/coupon.rb +2 -2
- data/app/models/spree/promotion_rule.rb +5 -1
- data/app/models/spree/promotion_rule_role.rb +1 -1
- data/app/models/spree/refund.rb +19 -13
- data/app/models/spree/reimbursement.rb +11 -22
- data/app/models/spree/reimbursement_performer.rb +2 -8
- data/app/models/spree/reimbursement_type/credit.rb +1 -4
- data/app/models/spree/reimbursement_type/reimbursement_helpers.rb +8 -2
- data/app/models/spree/reimbursement_type/store_credit.rb +1 -4
- data/app/models/spree/return_authorization.rb +2 -5
- data/app/models/spree/return_item/exchange_variant_eligibility/same_option_value.rb +1 -1
- data/app/models/spree/return_item.rb +10 -18
- data/app/models/spree/role.rb +1 -1
- data/app/models/spree/shipment.rb +3 -56
- data/app/models/spree/shipping_calculator.rb +1 -1
- data/app/models/spree/shipping_manifest.rb +2 -2
- data/app/models/spree/shipping_method.rb +3 -35
- data/app/models/spree/shipping_rate.rb +1 -3
- data/app/models/spree/shipping_rate_tax.rb +1 -1
- data/app/models/spree/state.rb +0 -4
- data/app/models/spree/stock/availability_validator.rb +2 -2
- data/app/models/spree/stock/inventory_unit_builder.rb +18 -7
- data/app/models/spree/stock/inventory_units_finalizer.rb +3 -5
- data/app/models/spree/stock/inventory_validator.rb +2 -2
- data/app/models/spree/stock/package.rb +1 -1
- data/app/models/spree/stock/simple_coordinator.rb +7 -18
- data/app/models/spree/stock/splitter/base.rb +2 -7
- data/app/models/spree/stock_item.rb +3 -15
- data/app/models/spree/stock_movement.rb +2 -0
- data/app/models/spree/store.rb +1 -13
- data/app/models/spree/store_credit.rb +9 -7
- data/app/models/spree/store_credit_category.rb +3 -8
- data/app/models/spree/store_credit_event.rb +1 -7
- data/app/models/spree/store_credit_reason.rb +0 -4
- data/app/models/spree/tax/tax_helpers.rb +1 -1
- data/app/models/spree/tax_calculator/shipping_rate.rb +1 -12
- data/app/models/spree/tax_category.rb +2 -8
- data/app/models/spree/tax_rate.rb +7 -34
- data/app/models/spree/taxon/active_storage_attachment.rb +13 -0
- data/app/models/spree/taxon/paperclip_attachment.rb +0 -4
- data/app/models/spree/taxon.rb +1 -12
- data/app/models/spree/user_address.rb +3 -2
- data/app/models/spree/variant.rb +8 -58
- data/app/models/spree/variant_property_rule.rb +5 -1
- data/app/models/spree/wallet/add_payment_sources_to_wallet.rb +8 -3
- data/app/models/spree/zone.rb +1 -1
- data/config/locales/en.yml +293 -13
- data/db/default/spree/countries.rb +1 -1
- data/db/default/spree/states.rb +12 -4
- data/db/default/spree/store_credit.rb +2 -2
- data/db/migrate/20180416083007_add_apply_to_all_to_variant_property_rule.rb +12 -0
- data/db/migrate/20200320144521_add_default_billng_flag_to_user_addresses.rb +6 -0
- data/db/migrate/20200530111458_add_bcc_email_to_spree_stores.rb +7 -0
- data/db/migrate/20201008213609_add_discontinue_on_to_spree_products.rb +7 -0
- data/db/migrate/20210122110141_add_name_to_spree_addresses.rb +13 -0
- data/lib/generators/{spree → solidus}/install/install_generator.rb +82 -14
- data/lib/generators/{spree → solidus}/install/templates/config/initializers/spree.rb.tt +4 -9
- data/lib/generators/spree/dummy/dummy_generator.rb +2 -1
- data/lib/generators/spree/dummy/templates/rails/database.yml +6 -1
- data/lib/generators/spree/dummy/templates/rails/storage.yml +3 -0
- data/lib/generators/spree/dummy/templates/rails/test.rb +6 -1
- data/lib/solidus/migrations/promotions_with_code_handlers.rb +1 -1
- data/lib/spree/app_configuration.rb +104 -72
- data/lib/spree/core/class_constantizer.rb +2 -0
- data/lib/spree/core/controller_helpers/auth.rb +4 -4
- data/lib/spree/core/controller_helpers/current_host.rb +17 -0
- data/lib/spree/core/controller_helpers/order.rb +8 -27
- data/lib/spree/core/controller_helpers/payment_parameters.rb +0 -54
- data/lib/spree/core/controller_helpers/pricing.rb +0 -8
- data/lib/spree/core/controller_helpers/strong_parameters.rb +0 -4
- data/lib/spree/core/engine.rb +23 -8
- data/lib/spree/core/environment_extension.rb +0 -9
- data/lib/spree/core/importer/order.rb +24 -10
- data/lib/spree/core/permalinks.rb +1 -3
- data/lib/spree/core/product_filters.rb +5 -44
- data/lib/spree/core/role_configuration.rb +0 -14
- data/lib/spree/core/search/base.rb +0 -26
- data/lib/spree/core/state_machines/order.rb +249 -0
- data/lib/spree/core/state_machines/return_item/reception_status.rb +2 -2
- data/lib/spree/core/state_machines.rb +11 -1
- data/lib/spree/core/validators/email.rb +2 -2
- data/lib/spree/core/version.rb +1 -1
- data/lib/spree/core.rb +11 -19
- data/lib/spree/deprecation.rb +1 -1
- data/lib/spree/encryptor.rb +25 -0
- data/lib/spree/event/adapters/active_support_notifications.rb +32 -0
- data/lib/spree/event/configuration.rb +7 -7
- data/lib/spree/event/subscriber.rb +22 -20
- data/lib/spree/event/subscriber_registry.rb +94 -0
- data/lib/spree/event.rb +20 -18
- data/lib/spree/i18n.rb +0 -22
- data/lib/spree/mailer_previews/carton_preview.rb +2 -1
- data/lib/spree/money.rb +3 -18
- data/lib/spree/permission_sets/configuration_display.rb +14 -14
- data/lib/spree/permission_sets/default_customer.rb +16 -16
- data/lib/spree/permission_sets/order_display.rb +11 -11
- data/lib/spree/permission_sets/order_management.rb +1 -1
- data/lib/spree/permission_sets/product_display.rb +9 -9
- data/lib/spree/permission_sets/promotion_display.rb +5 -5
- data/lib/spree/permission_sets/restricted_stock_display.rb +2 -2
- data/lib/spree/permission_sets/restricted_stock_management.rb +1 -1
- data/lib/spree/permission_sets/stock_display.rb +2 -2
- data/lib/spree/permission_sets/stock_management.rb +1 -1
- data/lib/spree/permission_sets/user_display.rb +3 -3
- data/lib/spree/permission_sets/user_management.rb +4 -3
- data/lib/spree/permitted_attributes.rb +12 -56
- data/lib/spree/preferences/persistable.rb +23 -0
- data/lib/spree/preferences/preferable.rb +4 -3
- data/lib/spree/preferences/preferable_class_methods.rb +22 -3
- data/lib/spree/testing_support/ability_helpers.rb +9 -9
- data/lib/spree/testing_support/authorization_helpers.rb +1 -0
- data/lib/spree/testing_support/blacklist_urls.rb +23 -0
- data/lib/spree/testing_support/capybara_ext.rb +3 -30
- data/lib/spree/testing_support/common_rake.rb +3 -3
- data/lib/spree/testing_support/controller_requests.rb +0 -82
- data/lib/spree/testing_support/dummy_app/mailer_previews/test_mailer_preview.rb +4 -0
- data/lib/spree/testing_support/dummy_app/migrations.rb +2 -6
- data/lib/spree/testing_support/dummy_app/rake_tasks.rb +1 -3
- data/lib/spree/testing_support/dummy_app.rb +41 -24
- data/lib/spree/testing_support/factories/address_factory.rb +7 -4
- data/lib/spree/testing_support/factories/adjustment_factory.rb +10 -5
- data/lib/spree/testing_support/factories/adjustment_reason_factory.rb +5 -0
- data/lib/spree/testing_support/factories/calculator_factory.rb +5 -0
- data/lib/spree/testing_support/factories/carton_factory.rb +7 -2
- data/lib/spree/testing_support/factories/country_factory.rb +5 -0
- data/lib/spree/testing_support/factories/credit_card_factory.rb +5 -0
- data/lib/spree/testing_support/factories/customer_return_factory.rb +8 -3
- data/lib/spree/testing_support/factories/image_factory.rb +6 -1
- data/lib/spree/testing_support/factories/inventory_unit_factory.rb +9 -4
- data/lib/spree/testing_support/factories/line_item_factory.rb +7 -2
- data/lib/spree/testing_support/factories/option_type_factory.rb +8 -0
- data/lib/spree/testing_support/factories/option_value_factory.rb +5 -0
- data/lib/spree/testing_support/factories/order_factory.rb +11 -7
- data/lib/spree/testing_support/factories/order_promotion_factory.rb +7 -2
- data/lib/spree/testing_support/factories/payment_factory.rb +9 -4
- data/lib/spree/testing_support/factories/payment_method_factory.rb +5 -0
- data/lib/spree/testing_support/factories/price_factory.rb +6 -1
- data/lib/spree/testing_support/factories/product_factory.rb +10 -5
- data/lib/spree/testing_support/factories/product_option_type_factory.rb +7 -2
- data/lib/spree/testing_support/factories/product_property_factory.rb +7 -2
- data/lib/spree/testing_support/factories/promotion_category_factory.rb +5 -0
- data/lib/spree/testing_support/factories/promotion_code_factory.rb +7 -2
- data/lib/spree/testing_support/factories/promotion_factory.rb +13 -2
- data/lib/spree/testing_support/factories/property_factory.rb +5 -0
- data/lib/spree/testing_support/factories/refund_factory.rb +7 -2
- data/lib/spree/testing_support/factories/refund_reason_factory.rb +5 -0
- data/lib/spree/testing_support/factories/reimbursement_factory.rb +7 -2
- data/lib/spree/testing_support/factories/reimbursement_type_factory.rb +5 -0
- data/lib/spree/testing_support/factories/return_authorization_factory.rb +8 -3
- data/lib/spree/testing_support/factories/return_item_factory.rb +8 -4
- data/lib/spree/testing_support/factories/return_reason_factory.rb +5 -0
- data/lib/spree/testing_support/factories/role_factory.rb +5 -0
- data/lib/spree/testing_support/factories/shipment_factory.rb +9 -3
- data/lib/spree/testing_support/factories/shipping_category_factory.rb +5 -0
- data/lib/spree/testing_support/factories/shipping_method_factory.rb +8 -3
- data/lib/spree/testing_support/factories/shipping_rate_factory.rb +7 -2
- data/lib/spree/testing_support/factories/state_factory.rb +7 -1
- data/lib/spree/testing_support/factories/stock_item_factory.rb +7 -2
- data/lib/spree/testing_support/factories/stock_location_factory.rb +8 -3
- data/lib/spree/testing_support/factories/stock_movement_factory.rb +6 -1
- data/lib/spree/testing_support/factories/stock_package_factory.rb +7 -2
- data/lib/spree/testing_support/factories/store_credit_category_factory.rb +13 -0
- data/lib/spree/testing_support/factories/store_credit_event_factory.rb +8 -2
- data/lib/spree/testing_support/factories/store_credit_factory.rb +8 -3
- data/lib/spree/testing_support/factories/store_credit_reason_factory.rb +8 -1
- data/lib/spree/testing_support/factories/store_credit_type_factory.rb +5 -0
- data/lib/spree/testing_support/factories/store_factory.rb +6 -1
- data/lib/spree/testing_support/factories/tax_category_factory.rb +7 -1
- data/lib/spree/testing_support/factories/tax_rate_factory.rb +8 -3
- data/lib/spree/testing_support/factories/taxon_factory.rb +10 -1
- data/lib/spree/testing_support/factories/taxonomy_factory.rb +5 -0
- data/lib/spree/testing_support/factories/user_factory.rb +14 -3
- data/lib/spree/testing_support/factories/variant_factory.rb +9 -4
- data/lib/spree/testing_support/factories/variant_property_rule_condition_factory.rb +7 -2
- data/lib/spree/testing_support/factories/variant_property_rule_factory.rb +8 -3
- data/lib/spree/testing_support/factories/variant_property_rule_value_factory.rb +7 -2
- data/lib/spree/testing_support/factories/zone_factory.rb +8 -3
- data/lib/spree/testing_support/factories.rb +8 -4
- data/lib/spree/testing_support/factory_bot.rb +68 -0
- data/lib/spree/testing_support/fixtures/blank.jpg +0 -0
- data/lib/spree/testing_support/fixtures/file.txt +1 -0
- data/lib/spree/testing_support/job_helpers.rb +24 -0
- data/lib/spree/testing_support/order_walkthrough.rb +10 -13
- data/lib/spree/testing_support/precompiled_assets.rb +15 -0
- data/lib/spree/testing_support/preferences.rb +0 -23
- data/lib/spree/testing_support/sequences.rb +4 -1
- data/lib/spree/testing_support/shared_examples/gallery.rb +1 -1
- data/lib/spree/testing_support/translations.rb +25 -0
- data/lib/spree/testing_support.rb +31 -0
- data/lib/tasks/solidus/check_orders_with_invalid_email.rake +18 -0
- data/lib/tasks/upgrade.rake +15 -0
- data/solidus_core.gemspec +30 -7
- metadata +137 -408
- data/app/mailers/spree/test_mailer.rb +0 -13
- data/app/models/concerns/spree/user_payment_source.rb +0 -26
- data/app/models/spree/calculator/free_shipping.rb +0 -21
- data/app/models/spree/calculator/percent_per_item.rb +0 -49
- data/app/models/spree/calculator/price_sack.rb +0 -27
- data/app/models/spree/gateway/bogus.rb +0 -13
- data/app/models/spree/gateway/bogus_simple.rb +0 -13
- data/app/models/spree/gateway.rb +0 -14
- data/app/models/spree/order/checkout.rb +0 -243
- data/app/models/spree/order_capturing.rb +0 -50
- data/app/models/spree/promotion_handler/free_shipping.rb +0 -9
- data/lib/solidus/migrations/rename_gateways.rb +0 -41
- data/lib/spree/core/current_store.rb +0 -24
- data/lib/spree/paranoia_deprecations.rb +0 -21
- data/lib/spree/promo/environment.rb +0 -12
- data/lib/spree/testing_support/bar_ability.rb +0 -19
- data/lib/tasks/core.rake +0 -104
- data/lib/tasks/email.rake +0 -11
- data/lib/tasks/migrations/copy_order_bill_address_to_credit_card.rake +0 -119
- data/lib/tasks/migrations/migrate_shipping_rate_taxes.rake +0 -22
- data/lib/tasks/migrations/migrate_user_addresses.rake +0 -34
- data/lib/tasks/migrations/rename_gateways.rake +0 -23
- data/lib/tasks/order_capturing.rake +0 -27
- data/script/rails +0 -10
- data/spec/fixtures/thinking-cat.jpg +0 -0
- data/spec/helpers/base_helper_spec.rb +0 -168
- data/spec/helpers/products_helper_spec.rb +0 -202
- data/spec/helpers/taxons_helper_spec.rb +0 -43
- data/spec/jobs/promotion_code_batch_job_spec.rb +0 -96
- data/spec/lib/calculated_adjustments_spec.rb +0 -133
- data/spec/lib/i18n_spec.rb +0 -97
- data/spec/lib/search/base_spec.rb +0 -91
- data/spec/lib/search/variant_spec.rb +0 -115
- data/spec/lib/spree/app_configuration_spec.rb +0 -140
- data/spec/lib/spree/core/class_constantizer_spec.rb +0 -91
- data/spec/lib/spree/core/controller_helpers/auth_spec.rb +0 -73
- data/spec/lib/spree/core/controller_helpers/order_spec.rb +0 -126
- data/spec/lib/spree/core/controller_helpers/payment_parameters_spec.rb +0 -195
- data/spec/lib/spree/core/controller_helpers/pricing_spec.rb +0 -94
- data/spec/lib/spree/core/controller_helpers/search_spec.rb +0 -21
- data/spec/lib/spree/core/controller_helpers/store_spec.rb +0 -18
- data/spec/lib/spree/core/controller_helpers/strong_parameters_spec.rb +0 -48
- data/spec/lib/spree/core/current_store_spec.rb +0 -33
- data/spec/lib/spree/core/environment_extension_spec.rb +0 -46
- data/spec/lib/spree/core/importer/order_spec.rb +0 -484
- data/spec/lib/spree/core/role_configuration_spec.rb +0 -155
- data/spec/lib/spree/core/stock_configuration_spec.rb +0 -95
- data/spec/lib/spree/core/testing_support/factories/address_factory_spec.rb +0 -61
- data/spec/lib/spree/core/testing_support/factories/adjustment_factory_spec.rb +0 -20
- data/spec/lib/spree/core/testing_support/factories/adjustment_reason_factory_spec.rb +0 -14
- data/spec/lib/spree/core/testing_support/factories/calculator_factory_spec.rb +0 -44
- data/spec/lib/spree/core/testing_support/factories/carton_factory_spec.rb +0 -14
- data/spec/lib/spree/core/testing_support/factories/country_factory_spec.rb +0 -14
- data/spec/lib/spree/core/testing_support/factories/credit_card_factory_spec.rb +0 -14
- data/spec/lib/spree/core/testing_support/factories/customer_return_factory_spec.rb +0 -39
- data/spec/lib/spree/core/testing_support/factories/image_factory_spec.rb +0 -14
- data/spec/lib/spree/core/testing_support/factories/inventory_unit_factory_spec.rb +0 -14
- data/spec/lib/spree/core/testing_support/factories/line_item_factory_spec.rb +0 -14
- data/spec/lib/spree/core/testing_support/factories/option_type_factory_spec.rb +0 -14
- data/spec/lib/spree/core/testing_support/factories/option_value_factory_spec.rb +0 -14
- data/spec/lib/spree/core/testing_support/factories/order_factory_spec.rb +0 -376
- data/spec/lib/spree/core/testing_support/factories/order_promotion_factory_spec.rb +0 -14
- data/spec/lib/spree/core/testing_support/factories/payment_factory_spec.rb +0 -40
- data/spec/lib/spree/core/testing_support/factories/payment_method_factory_spec.rb +0 -32
- data/spec/lib/spree/core/testing_support/factories/price_factory_spec.rb +0 -14
- data/spec/lib/spree/core/testing_support/factories/product_factory_spec.rb +0 -32
- data/spec/lib/spree/core/testing_support/factories/product_option_type_factory_spec.rb +0 -14
- data/spec/lib/spree/core/testing_support/factories/product_property_factory_spec.rb +0 -14
- data/spec/lib/spree/core/testing_support/factories/promotion_category_factory_spec.rb +0 -14
- data/spec/lib/spree/core/testing_support/factories/promotion_code_factory_spec.rb +0 -14
- data/spec/lib/spree/core/testing_support/factories/promotion_factory_spec.rb +0 -32
- data/spec/lib/spree/core/testing_support/factories/property_factory_spec.rb +0 -14
- data/spec/lib/spree/core/testing_support/factories/refund_factory_spec.rb +0 -14
- data/spec/lib/spree/core/testing_support/factories/refund_reason_factory_spec.rb +0 -14
- data/spec/lib/spree/core/testing_support/factories/reimbursement_factory_spec.rb +0 -20
- data/spec/lib/spree/core/testing_support/factories/reimbursement_type_factory_spec.rb +0 -14
- data/spec/lib/spree/core/testing_support/factories/return_authorization_factory_spec.rb +0 -14
- data/spec/lib/spree/core/testing_support/factories/return_item_factory_spec.rb +0 -20
- data/spec/lib/spree/core/testing_support/factories/return_reason_factory_spec.rb +0 -14
- data/spec/lib/spree/core/testing_support/factories/role_factory_spec.rb +0 -20
- data/spec/lib/spree/core/testing_support/factories/shipment_factory_spec.rb +0 -14
- data/spec/lib/spree/core/testing_support/factories/shipping_category_factory_spec.rb +0 -14
- data/spec/lib/spree/core/testing_support/factories/shipping_method_factory_spec.rb +0 -44
- data/spec/lib/spree/core/testing_support/factories/shipping_rate_factory_spec.rb +0 -14
- data/spec/lib/spree/core/testing_support/factories/state_factory_spec.rb +0 -59
- data/spec/lib/spree/core/testing_support/factories/stock_item_factory_spec.rb +0 -14
- data/spec/lib/spree/core/testing_support/factories/stock_location_factory_spec.rb +0 -35
- data/spec/lib/spree/core/testing_support/factories/stock_movement_factory_spec.rb +0 -14
- data/spec/lib/spree/core/testing_support/factories/stock_package_factory_spec.rb +0 -28
- data/spec/lib/spree/core/testing_support/factories/store_credit_category_factory_spec.rb +0 -14
- data/spec/lib/spree/core/testing_support/factories/store_credit_event_factory_spec.rb +0 -43
- data/spec/lib/spree/core/testing_support/factories/store_credit_factory_spec.rb +0 -14
- data/spec/lib/spree/core/testing_support/factories/store_credit_reason_factory_spec.rb +0 -14
- data/spec/lib/spree/core/testing_support/factories/store_credit_type_factory_spec.rb +0 -20
- data/spec/lib/spree/core/testing_support/factories/store_factory_spec.rb +0 -14
- data/spec/lib/spree/core/testing_support/factories/tax_category_factory_spec.rb +0 -14
- data/spec/lib/spree/core/testing_support/factories/tax_rate_factory_spec.rb +0 -14
- data/spec/lib/spree/core/testing_support/factories/taxon_factory_spec.rb +0 -14
- data/spec/lib/spree/core/testing_support/factories/taxonomy_factory_spec.rb +0 -14
- data/spec/lib/spree/core/testing_support/factories/user_factory_spec.rb +0 -24
- data/spec/lib/spree/core/testing_support/factories/variant_factory_spec.rb +0 -56
- data/spec/lib/spree/core/testing_support/factories/variant_property_rule_condition_factory_spec.rb +0 -14
- data/spec/lib/spree/core/testing_support/factories/variant_property_rule_factory_spec.rb +0 -14
- data/spec/lib/spree/core/testing_support/factories/variant_property_rule_value_factory_spec.rb +0 -14
- data/spec/lib/spree/core/testing_support/factories/zone_factory_spec.rb +0 -20
- data/spec/lib/spree/core/testing_support/preferences_spec.rb +0 -61
- data/spec/lib/spree/core/validators/email_spec.rb +0 -53
- data/spec/lib/spree/core/version_spec.rb +0 -19
- data/spec/lib/spree/event/subscriber_spec.rb +0 -85
- data/spec/lib/spree/event_spec.rb +0 -130
- data/spec/lib/spree/localized_number_spec.rb +0 -45
- data/spec/lib/spree/migrations_spec.rb +0 -32
- data/spec/lib/spree/money_spec.rb +0 -298
- data/spec/lib/spree/permission_sets/default_customer_spec.rb +0 -22
- data/spec/lib/spree/permitted_attributes_spec.rb +0 -41
- data/spec/lib/spree/promo/environment_spec.rb +0 -53
- data/spec/lib/tasks/dummy_task.rake +0 -12
- data/spec/lib/tasks/dummy_task_spec.rb +0 -30
- data/spec/lib/tasks/migrations/migrate_shipping_rate_taxes_spec.rb +0 -21
- data/spec/mailers/carton_mailer_spec.rb +0 -44
- data/spec/mailers/order_mailer_spec.rb +0 -117
- data/spec/mailers/promotion_code_batch_mailer_spec.rb +0 -47
- data/spec/mailers/reimbursement_mailer_spec.rb +0 -36
- data/spec/mailers/test_mailer_spec.rb +0 -13
- data/spec/models/spree/ability_spec.rb +0 -279
- data/spec/models/spree/address_spec.rb +0 -399
- data/spec/models/spree/adjustment_reason_spec.rb +0 -11
- data/spec/models/spree/adjustment_spec.rb +0 -339
- data/spec/models/spree/asset_spec.rb +0 -25
- data/spec/models/spree/calculator/default_tax_spec.rb +0 -260
- data/spec/models/spree/calculator/distributed_amount_spec.rb +0 -82
- data/spec/models/spree/calculator/flat_percent_item_total_spec.rb +0 -39
- data/spec/models/spree/calculator/flat_rate_spec.rb +0 -52
- data/spec/models/spree/calculator/flexi_rate_spec.rb +0 -158
- data/spec/models/spree/calculator/free_shipping_spec.rb +0 -8
- data/spec/models/spree/calculator/percent_on_line_item_spec.rb +0 -20
- data/spec/models/spree/calculator/percent_per_item_spec.rb +0 -12
- data/spec/models/spree/calculator/price_sack_spec.rb +0 -35
- data/spec/models/spree/calculator/refunds/default_refund_amount_spec.rb +0 -70
- data/spec/models/spree/calculator/shipping/flat_percent_item_total_spec.rb +0 -44
- data/spec/models/spree/calculator/shipping/flat_rate_spec.rb +0 -18
- data/spec/models/spree/calculator/shipping/flexi_rate_spec.rb +0 -56
- data/spec/models/spree/calculator/shipping/per_item_spec.rb +0 -25
- data/spec/models/spree/calculator/shipping/price_sack_spec.rb +0 -44
- data/spec/models/spree/calculator/tiered_flat_rate_spec.rb +0 -99
- data/spec/models/spree/calculator/tiered_percent_spec.rb +0 -197
- data/spec/models/spree/calculator_spec.rb +0 -43
- data/spec/models/spree/carton_spec.rb +0 -145
- data/spec/models/spree/classification_spec.rb +0 -126
- data/spec/models/spree/concerns/display_money_spec.rb +0 -44
- data/spec/models/spree/concerns/ordered_property_value_list_spec.rb +0 -52
- data/spec/models/spree/concerns/user_address_book_spec.rb +0 -358
- data/spec/models/spree/concerns/user_methods_spec.rb +0 -122
- data/spec/models/spree/country_spec.rb +0 -154
- data/spec/models/spree/credit_card_spec.rb +0 -373
- data/spec/models/spree/customer_return_spec.rb +0 -294
- data/spec/models/spree/distributed_amounts_handler_spec.rb +0 -83
- data/spec/models/spree/exchange_spec.rb +0 -76
- data/spec/models/spree/fulfilment_changer_spec.rb +0 -340
- data/spec/models/spree/gallery/product_gallery_spec.rb +0 -21
- data/spec/models/spree/gallery/variant_gallery_spec.rb +0 -21
- data/spec/models/spree/gateway/bogus_simple.rb +0 -14
- data/spec/models/spree/gateway/bogus_spec.rb +0 -14
- data/spec/models/spree/gateway_spec.rb +0 -14
- data/spec/models/spree/image_spec.rb +0 -25
- data/spec/models/spree/inventory_unit_spec.rb +0 -309
- data/spec/models/spree/line_item_spec.rb +0 -240
- data/spec/models/spree/option_type_spec.rb +0 -16
- data/spec/models/spree/option_value_spec.rb +0 -52
- data/spec/models/spree/order/address_spec.rb +0 -52
- data/spec/models/spree/order/adjustments_spec.rb +0 -29
- data/spec/models/spree/order/callbacks_spec.rb +0 -44
- data/spec/models/spree/order/checkout_spec.rb +0 -740
- data/spec/models/spree/order/finalizing_spec.rb +0 -92
- data/spec/models/spree/order/number_generator_spec.rb +0 -47
- data/spec/models/spree/order/outstanding_balance_integration_spec.rb +0 -138
- data/spec/models/spree/order/payment_spec.rb +0 -280
- data/spec/models/spree/order/risk_assessment_spec.rb +0 -70
- data/spec/models/spree/order/state_machine_spec.rb +0 -122
- data/spec/models/spree/order/totals_spec.rb +0 -26
- data/spec/models/spree/order/validations_spec.rb +0 -17
- data/spec/models/spree/order_cancellations_spec.rb +0 -233
- data/spec/models/spree/order_capturing_spec.rb +0 -16
- data/spec/models/spree/order_contents_spec.rb +0 -362
- data/spec/models/spree/order_inventory_spec.rb +0 -285
- data/spec/models/spree/order_merger_spec.rb +0 -162
- data/spec/models/spree/order_mutex_spec.rb +0 -89
- data/spec/models/spree/order_promotion_spec.rb +0 -33
- data/spec/models/spree/order_shipping_spec.rb +0 -247
- data/spec/models/spree/order_spec.rb +0 -1687
- data/spec/models/spree/order_taxation_spec.rb +0 -128
- data/spec/models/spree/order_update_attributes_spec.rb +0 -49
- data/spec/models/spree/order_updater_spec.rb +0 -556
- data/spec/models/spree/payment/cancellation_spec.rb +0 -84
- data/spec/models/spree/payment_create_spec.rb +0 -195
- data/spec/models/spree/payment_method/bogus_credit_card_spec.rb +0 -10
- data/spec/models/spree/payment_method/check_spec.rb +0 -80
- data/spec/models/spree/payment_method/credit_card_spec.rb +0 -68
- data/spec/models/spree/payment_method/simple_bogus_credit_card_spec.rb +0 -20
- data/spec/models/spree/payment_method/store_credit_spec.rb +0 -325
- data/spec/models/spree/payment_method_spec.rb +0 -408
- data/spec/models/spree/payment_spec.rb +0 -1270
- data/spec/models/spree/permission_sets/base_spec.rb +0 -14
- data/spec/models/spree/permission_sets/configuration_display.rb +0 -79
- data/spec/models/spree/permission_sets/configuration_management_spec.rb +0 -49
- data/spec/models/spree/permission_sets/dashboard_display_spec.rb +0 -23
- data/spec/models/spree/permission_sets/order_display_spec.rb +0 -56
- data/spec/models/spree/permission_sets/order_management_spec.rb +0 -43
- data/spec/models/spree/permission_sets/product_display_spec.rb +0 -57
- data/spec/models/spree/permission_sets/product_management_spec.rb +0 -39
- data/spec/models/spree/permission_sets/promotion_display_spec.rb +0 -41
- data/spec/models/spree/permission_sets/promotion_management_spec.rb +0 -29
- data/spec/models/spree/permission_sets/restricted_stock_display_spec.rb +0 -42
- data/spec/models/spree/permission_sets/restricted_stock_management_spec.rb +0 -42
- data/spec/models/spree/permission_sets/stock_display_spec.rb +0 -25
- data/spec/models/spree/permission_sets/stock_management_spec.rb +0 -23
- data/spec/models/spree/permission_sets/user_display_spec.rb +0 -39
- data/spec/models/spree/permission_sets/user_management_spec.rb +0 -58
- data/spec/models/spree/preference_spec.rb +0 -79
- data/spec/models/spree/preferences/configuration_spec.rb +0 -27
- data/spec/models/spree/preferences/preferable_spec.rb +0 -334
- data/spec/models/spree/preferences/scoped_store_spec.rb +0 -62
- data/spec/models/spree/preferences/static_model_preferences_spec.rb +0 -79
- data/spec/models/spree/preferences/statically_configurable_spec.rb +0 -67
- data/spec/models/spree/preferences/store_spec.rb +0 -40
- data/spec/models/spree/price_spec.rb +0 -150
- data/spec/models/spree/product/scopes_spec.rb +0 -164
- data/spec/models/spree/product_duplicator_spec.rb +0 -92
- data/spec/models/spree/product_filter_spec.rb +0 -28
- data/spec/models/spree/product_property_spec.rb +0 -20
- data/spec/models/spree/product_spec.rb +0 -584
- data/spec/models/spree/promotion/actions/create_adjustment_spec.rb +0 -126
- data/spec/models/spree/promotion/actions/create_item_adjustments_spec.rb +0 -198
- data/spec/models/spree/promotion/actions/create_quantity_adjustments_spec.rb +0 -298
- data/spec/models/spree/promotion/actions/free_shipping_spec.rb +0 -61
- data/spec/models/spree/promotion/rules/first_order_spec.rb +0 -87
- data/spec/models/spree/promotion/rules/first_repeat_purchase_since_spec.rb +0 -71
- data/spec/models/spree/promotion/rules/item_total_spec.rb +0 -128
- data/spec/models/spree/promotion/rules/nth_order_spec.rb +0 -72
- data/spec/models/spree/promotion/rules/one_use_per_user_spec.rb +0 -54
- data/spec/models/spree/promotion/rules/option_value_spec.rb +0 -96
- data/spec/models/spree/promotion/rules/product_spec.rb +0 -193
- data/spec/models/spree/promotion/rules/store_spec.rb +0 -35
- data/spec/models/spree/promotion/rules/taxon_spec.rb +0 -227
- data/spec/models/spree/promotion/rules/user_logged_in_spec.rb +0 -33
- data/spec/models/spree/promotion/rules/user_role_spec.rb +0 -88
- data/spec/models/spree/promotion/rules/user_spec.rb +0 -39
- data/spec/models/spree/promotion_action_spec.rb +0 -44
- data/spec/models/spree/promotion_category_spec.rb +0 -19
- data/spec/models/spree/promotion_code/batch_builder_spec.rb +0 -107
- data/spec/models/spree/promotion_code_batch_spec.rb +0 -54
- data/spec/models/spree/promotion_code_spec.rb +0 -206
- data/spec/models/spree/promotion_handler/cart_spec.rb +0 -132
- data/spec/models/spree/promotion_handler/coupon_spec.rb +0 -419
- data/spec/models/spree/promotion_handler/page_spec.rb +0 -45
- data/spec/models/spree/promotion_handler/shipping_spec.rb +0 -96
- data/spec/models/spree/promotion_rule_spec.rb +0 -34
- data/spec/models/spree/promotion_spec.rb +0 -945
- data/spec/models/spree/refund_spec.rb +0 -200
- data/spec/models/spree/reimbursement/credit_spec.rb +0 -38
- data/spec/models/spree/reimbursement/reimbursement_type_engine_spec.rb +0 -144
- data/spec/models/spree/reimbursement/reimbursement_type_validator_spec.rb +0 -85
- data/spec/models/spree/reimbursement_performer_spec.rb +0 -33
- data/spec/models/spree/reimbursement_spec.rb +0 -278
- data/spec/models/spree/reimbursement_tax_calculator_spec.rb +0 -52
- data/spec/models/spree/reimbursement_type/credit_spec.rb +0 -56
- data/spec/models/spree/reimbursement_type/exchange_spec.rb +0 -48
- data/spec/models/spree/reimbursement_type/original_payment_spec.rb +0 -110
- data/spec/models/spree/reimbursement_type/store_credit_spec.rb +0 -111
- data/spec/models/spree/return_authorization_spec.rb +0 -226
- data/spec/models/spree/return_item/eligibility_validator/default_spec.rb +0 -79
- data/spec/models/spree/return_item/eligibility_validator/inventory_shipped_spec.rb +0 -59
- data/spec/models/spree/return_item/eligibility_validator/no_reimbursements_spec.rb +0 -86
- data/spec/models/spree/return_item/eligibility_validator/order_completed_spec.rb +0 -35
- data/spec/models/spree/return_item/eligibility_validator/rma_required_spec.rb +0 -31
- data/spec/models/spree/return_item/eligibility_validator/time_since_purchase_spec.rb +0 -42
- data/spec/models/spree/return_item/exchange_variant_eligibility/same_option_value_spec.rb +0 -66
- data/spec/models/spree/return_item/exchange_variant_eligibility/same_product_spec.rb +0 -43
- data/spec/models/spree/return_item_spec.rb +0 -785
- data/spec/models/spree/returns_calculator_spec.rb +0 -16
- data/spec/models/spree/shipment_spec.rb +0 -914
- data/spec/models/spree/shipping_calculator_spec.rb +0 -45
- data/spec/models/spree/shipping_manifest_spec.rb +0 -110
- data/spec/models/spree/shipping_method_spec.rb +0 -292
- data/spec/models/spree/shipping_rate_spec.rb +0 -154
- data/spec/models/spree/shipping_rate_tax_spec.rb +0 -79
- data/spec/models/spree/state_spec.rb +0 -43
- data/spec/models/spree/stock/allocator/on_hand_first_spec.rb +0 -146
- data/spec/models/spree/stock/availability_spec.rb +0 -143
- data/spec/models/spree/stock/availability_validator_spec.rb +0 -140
- data/spec/models/spree/stock/content_item_spec.rb +0 -70
- data/spec/models/spree/stock/differentiator_spec.rb +0 -41
- data/spec/models/spree/stock/estimator_spec.rb +0 -241
- data/spec/models/spree/stock/inventory_unit_builder_spec.rb +0 -34
- data/spec/models/spree/stock/inventory_units_finalizer_spec.rb +0 -58
- data/spec/models/spree/stock/location_filter/active_spec.rb +0 -22
- data/spec/models/spree/stock/location_sorter/default_first_spec.rb +0 -22
- data/spec/models/spree/stock/location_sorter/unsorted_spec.rb +0 -21
- data/spec/models/spree/stock/package_spec.rb +0 -182
- data/spec/models/spree/stock/quantifier_spec.rb +0 -113
- data/spec/models/spree/stock/shipping_rate_selector_spec.rb +0 -18
- data/spec/models/spree/stock/shipping_rate_sorter_spec.rb +0 -18
- data/spec/models/spree/stock/simple_coordinator_spec.rb +0 -264
- data/spec/models/spree/stock/splitter/backordered_spec.rb +0 -31
- data/spec/models/spree/stock/splitter/base_spec.rb +0 -22
- data/spec/models/spree/stock/splitter/shipping_category_spec.rb +0 -48
- data/spec/models/spree/stock/splitter/weight_spec.rb +0 -31
- data/spec/models/spree/stock/splitter_chain_spec.rb +0 -66
- data/spec/models/spree/stock_item_spec.rb +0 -348
- data/spec/models/spree/stock_location_spec.rb +0 -288
- data/spec/models/spree/stock_movement_spec.rb +0 -58
- data/spec/models/spree/stock_quantities_spec.rb +0 -249
- data/spec/models/spree/store_credit_category_spec.rb +0 -19
- data/spec/models/spree/store_credit_event_spec.rb +0 -328
- data/spec/models/spree/store_credit_spec.rb +0 -900
- data/spec/models/spree/store_selector/by_server_name_spec.rb +0 -28
- data/spec/models/spree/store_selector/legacy_spec.rb +0 -46
- data/spec/models/spree/store_spec.rb +0 -156
- data/spec/models/spree/tax/order_adjuster_spec.rb +0 -35
- data/spec/models/spree/tax/shipping_rate_taxer_spec.rb +0 -59
- data/spec/models/spree/tax/tax_location_spec.rb +0 -79
- data/spec/models/spree/tax/taxation_integration_spec.rb +0 -815
- data/spec/models/spree/tax_calculator/default_spec.rb +0 -56
- data/spec/models/spree/tax_category_spec.rb +0 -50
- data/spec/models/spree/tax_rate_spec.rb +0 -317
- data/spec/models/spree/taxon_spec.rb +0 -197
- data/spec/models/spree/taxonomy_spec.rb +0 -15
- data/spec/models/spree/taxons/paperclip_attachment_spec.rb +0 -29
- data/spec/models/spree/unit_cancel_spec.rb +0 -126
- data/spec/models/spree/user_last_url_storer/rules/authentication_rule_spec.rb +0 -31
- data/spec/models/spree/user_last_url_storer_spec.rb +0 -60
- data/spec/models/spree/user_spec.rb +0 -247
- data/spec/models/spree/validations/db_maximum_length_validator_spec.rb +0 -33
- data/spec/models/spree/variant/price_selector_spec.rb +0 -90
- data/spec/models/spree/variant/pricing_options_spec.rb +0 -204
- data/spec/models/spree/variant/scopes_spec.rb +0 -94
- data/spec/models/spree/variant/vat_price_generator_spec.rb +0 -77
- data/spec/models/spree/variant_property_rule_condition_spec.rb +0 -17
- data/spec/models/spree/variant_property_rule_spec.rb +0 -85
- data/spec/models/spree/variant_property_rule_value_spec.rb +0 -20
- data/spec/models/spree/variant_spec.rb +0 -862
- data/spec/models/spree/wallet_payment_source_spec.rb +0 -77
- data/spec/models/spree/wallet_spec.rb +0 -155
- data/spec/models/spree/zone_spec.rb +0 -248
- data/spec/rails_helper.rb +0 -46
- data/spec/shared_examples/calculator_shared_examples.rb +0 -10
- data/spec/spec_helper.rb +0 -36
- data/spec/support/big_decimal.rb +0 -7
- data/spec/support/concerns/default_price.rb +0 -44
- data/spec/support/concerns/payment_source.rb +0 -66
- data/spec/support/concerns/working_factories.rb +0 -15
- data/spec/support/dummy_ability.rb +0 -7
- /data/lib/generators/{spree → solidus}/install/templates/vendor/assets/javascripts/spree/backend/all.js +0 -0
- /data/lib/generators/{spree → solidus}/install/templates/vendor/assets/javascripts/spree/frontend/all.js +0 -0
- /data/lib/generators/{spree → solidus}/install/templates/vendor/assets/stylesheets/spree/backend/all.css +0 -0
- /data/lib/generators/{spree → solidus}/install/templates/vendor/assets/stylesheets/spree/frontend/all.css +0 -0
- /data/{app/models → lib}/spree/user_class_handle.rb +0 -0
@@ -1,23 +1,34 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require 'rails/generators'
|
4
|
-
require '
|
5
|
-
require 'bundler/cli'
|
4
|
+
require 'rails/version'
|
6
5
|
|
7
|
-
module
|
6
|
+
module Solidus
|
8
7
|
# @private
|
9
8
|
class InstallGenerator < Rails::Generators::Base
|
10
9
|
CORE_MOUNT_ROUTE = "mount Spree::Core::Engine"
|
11
10
|
|
11
|
+
PAYMENT_METHODS = {
|
12
|
+
'paypal' => 'solidus_paypal_commerce_platform',
|
13
|
+
'none' => nil,
|
14
|
+
}
|
15
|
+
|
12
16
|
class_option :migrate, type: :boolean, default: true, banner: 'Run Solidus migrations'
|
13
|
-
class_option :seed, type: :boolean, default: true, banner: '
|
14
|
-
class_option :sample, type: :boolean, default: true, banner: '
|
17
|
+
class_option :seed, type: :boolean, default: true, banner: 'Load seed data (migrations must be run)'
|
18
|
+
class_option :sample, type: :boolean, default: true, banner: 'Load sample data (migrations must be run)'
|
19
|
+
class_option :active_storage, type: :boolean, default: Rails.gem_version >= Gem::Version.new("6.1.0"), banner: 'Install ActiveStorage as image attachments handler for products and taxons'
|
15
20
|
class_option :auto_accept, type: :boolean
|
16
21
|
class_option :user_class, type: :string
|
17
22
|
class_option :admin_email, type: :string
|
18
23
|
class_option :admin_password, type: :string
|
19
24
|
class_option :lib_name, type: :string, default: 'spree'
|
25
|
+
class_option :with_authentication, type: :boolean, default: true
|
20
26
|
class_option :enforce_available_locales, type: :boolean, default: nil
|
27
|
+
class_option :payment_method,
|
28
|
+
type: :string,
|
29
|
+
enum: PAYMENT_METHODS.keys,
|
30
|
+
default: PAYMENT_METHODS.keys.first,
|
31
|
+
desc: "Indicates which payment method to install."
|
21
32
|
|
22
33
|
def self.source_paths
|
23
34
|
paths = superclass.source_paths
|
@@ -42,8 +53,19 @@ module Spree
|
|
42
53
|
template 'config/initializers/spree.rb.tt', 'config/initializers/spree.rb'
|
43
54
|
end
|
44
55
|
|
56
|
+
def install_file_attachment
|
57
|
+
if options[:active_storage]
|
58
|
+
say "Installing Active Storage", :green
|
59
|
+
rake 'active_storage:install'
|
60
|
+
else
|
61
|
+
say "Installing Paperclip", :green
|
62
|
+
gsub_file 'config/initializers/spree.rb', "ActiveStorageAttachment", "PaperclipAttachment"
|
63
|
+
end
|
64
|
+
end
|
65
|
+
|
45
66
|
def additional_tweaks
|
46
67
|
return unless File.exist? 'public/robots.txt'
|
68
|
+
|
47
69
|
append_file "public/robots.txt", <<-ROBOTS.strip_heredoc
|
48
70
|
User-agent: *
|
49
71
|
Disallow: /checkout
|
@@ -91,15 +113,6 @@ module Spree
|
|
91
113
|
end
|
92
114
|
end
|
93
115
|
end
|
94
|
-
|
95
|
-
# Load application's view overrides
|
96
|
-
initializer 'spree.overrides' do |app|
|
97
|
-
config.to_prepare do
|
98
|
-
Dir.glob(Rails.root.join('app/overrides/*.rb')) do |path|
|
99
|
-
require_dependency(path)
|
100
|
-
end
|
101
|
-
end
|
102
|
-
end
|
103
116
|
RUBY
|
104
117
|
|
105
118
|
if !options[:enforce_available_locales].nil?
|
@@ -110,6 +123,42 @@ module Spree
|
|
110
123
|
end
|
111
124
|
end
|
112
125
|
|
126
|
+
def plugin_install_preparation
|
127
|
+
@plugins_to_be_installed = []
|
128
|
+
@plugin_generators_to_run = []
|
129
|
+
end
|
130
|
+
|
131
|
+
def install_auth_plugin
|
132
|
+
if options[:with_authentication] && (options[:auto_accept] || !no?("
|
133
|
+
Solidus has a default authentication extension that uses Devise.
|
134
|
+
You can find more info at https://github.com/solidusio/solidus_auth_devise.
|
135
|
+
|
136
|
+
Would you like to install it? (y/n)"))
|
137
|
+
|
138
|
+
@plugins_to_be_installed << 'solidus_auth_devise'
|
139
|
+
@plugin_generators_to_run << 'solidus:auth:install'
|
140
|
+
end
|
141
|
+
end
|
142
|
+
|
143
|
+
def install_payment_method
|
144
|
+
name = options[:payment_method]
|
145
|
+
|
146
|
+
unless options[:auto_accept]
|
147
|
+
available_names = PAYMENT_METHODS.keys
|
148
|
+
|
149
|
+
name = ask("
|
150
|
+
You can select a payment method to be included in the installation process.
|
151
|
+
Please select a payment method name:", limited_to: available_names, default: available_names.first)
|
152
|
+
end
|
153
|
+
|
154
|
+
gem_name = PAYMENT_METHODS.fetch(name)
|
155
|
+
|
156
|
+
if gem_name
|
157
|
+
@plugins_to_be_installed << gem_name
|
158
|
+
@plugin_generators_to_run << "#{gem_name}:install"
|
159
|
+
end
|
160
|
+
end
|
161
|
+
|
113
162
|
def include_seed_data
|
114
163
|
append_file "db/seeds.rb", <<-RUBY.strip_heredoc
|
115
164
|
|
@@ -128,6 +177,19 @@ module Spree
|
|
128
177
|
rake 'db:create'
|
129
178
|
end
|
130
179
|
|
180
|
+
def run_bundle_install_if_needed_by_plugins
|
181
|
+
@plugins_to_be_installed.each do |plugin_name|
|
182
|
+
gem plugin_name
|
183
|
+
end
|
184
|
+
|
185
|
+
bundle_cleanly{ run "bundle install" } if @plugins_to_be_installed.any?
|
186
|
+
run "spring stop" if defined?(Spring)
|
187
|
+
|
188
|
+
@plugin_generators_to_run.each do |plugin_generator_name|
|
189
|
+
generate "#{plugin_generator_name} --skip_migrations=true"
|
190
|
+
end
|
191
|
+
end
|
192
|
+
|
131
193
|
def run_migrations
|
132
194
|
if @run_migrations
|
133
195
|
say_status :running, "migrations"
|
@@ -193,5 +255,11 @@ module Spree
|
|
193
255
|
puts "Enjoy!"
|
194
256
|
end
|
195
257
|
end
|
258
|
+
|
259
|
+
private
|
260
|
+
|
261
|
+
def bundle_cleanly(&block)
|
262
|
+
Bundler.respond_to?(:with_unbundled_env) ? Bundler.with_unbundled_env(&block) : Bundler.with_clean_env(&block)
|
263
|
+
end
|
196
264
|
end
|
197
265
|
end
|
@@ -18,11 +18,11 @@ Spree.config do |config|
|
|
18
18
|
# any inventory changes.
|
19
19
|
# config.inventory_cache_threshold = 3
|
20
20
|
|
21
|
-
#
|
22
|
-
config.image_attachment_module = 'Spree::Image::
|
23
|
-
config.taxon_attachment_module = 'Spree::Taxon::
|
24
|
-
|
21
|
+
# Configure adapter for attachments on products and taxons (use ActiveStorageAttachment or PaperclipAttachment)
|
22
|
+
config.image_attachment_module = 'Spree::Image::ActiveStorageAttachment'
|
23
|
+
config.taxon_attachment_module = 'Spree::Taxon::ActiveStorageAttachment'
|
25
24
|
|
25
|
+
# Defaults
|
26
26
|
# Permission Sets:
|
27
27
|
|
28
28
|
# Uncomment and customize the following line to add custom permission sets
|
@@ -89,11 +89,6 @@ end
|
|
89
89
|
|
90
90
|
Spree.user_class = <%= (options[:user_class].blank? ? "Spree::LegacyUser" : options[:user_class]).inspect %>
|
91
91
|
|
92
|
-
# If you want to add a field to the whitelisted ransackable attributes,
|
93
|
-
# just uncomment the following code and change it as you need.
|
94
|
-
#
|
95
|
-
# Spree::Model.whitelisted_ransackable_attributes << 'field'
|
96
|
-
|
97
92
|
# Rules for avoiding to store the current path into session for redirects
|
98
93
|
# When at least one rule is matched, the request path will not be stored
|
99
94
|
# in session.
|
@@ -43,7 +43,7 @@ module Spree
|
|
43
43
|
opts[:skip_test] = true
|
44
44
|
opts[:skip_yarn] = true
|
45
45
|
opts[:skip_bootsnap] = true
|
46
|
-
opts[:
|
46
|
+
opts[:skip_javascript] = true
|
47
47
|
|
48
48
|
puts "Generating dummy Rails application..."
|
49
49
|
invoke Rails::Generators::AppGenerator,
|
@@ -55,6 +55,7 @@ module Spree
|
|
55
55
|
@database = options[:database]
|
56
56
|
|
57
57
|
template "rails/database.yml", "#{dummy_path}/config/database.yml", force: true
|
58
|
+
template "rails/storage.yml", "#{dummy_path}/config/storage/test.yml", force: true
|
58
59
|
template "rails/boot.rb", "#{dummy_path}/config/boot.rb", force: true
|
59
60
|
template "rails/application.rb.tt", "#{dummy_path}/config/application.rb", force: true
|
60
61
|
template "rails/routes.rb", "#{dummy_path}/config/routes.rb", force: true
|
@@ -32,6 +32,8 @@ production:
|
|
32
32
|
encoding: utf8
|
33
33
|
<% when 'postgres', 'postgresql' %>
|
34
34
|
<% db_host = ENV['DB_HOST'] -%>
|
35
|
+
<% db_username = ENV['DB_USERNAME'] -%>
|
36
|
+
<% db_password = ENV['DB_PASSWORD'] -%>
|
35
37
|
development:
|
36
38
|
adapter: postgresql
|
37
39
|
database: <%= database_prefix %><%= options[:lib_name] %>_solidus_development
|
@@ -43,7 +45,10 @@ development:
|
|
43
45
|
test:
|
44
46
|
adapter: postgresql
|
45
47
|
database: <%= database_prefix %><%= options[:lib_name] %>_solidus_test
|
46
|
-
username: postgres
|
48
|
+
username: <%= db_username || 'postgres' %>
|
49
|
+
<% unless db_password.blank? %>
|
50
|
+
password: <%= db_password %>
|
51
|
+
<% end %>
|
47
52
|
min_messages: warning
|
48
53
|
<% unless db_host.blank? %>
|
49
54
|
host: <%= db_host %>
|
@@ -20,11 +20,16 @@ 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
|
+
|
23
26
|
# Tell Action Mailer not to deliver emails to the real world.
|
24
27
|
# The :test delivery method accumulates sent emails in the
|
25
28
|
# ActionMailer::Base.deliveries array.
|
26
29
|
config.action_mailer.delivery_method = :test
|
27
|
-
ActionMailer::Base.default from: "
|
30
|
+
ActionMailer::Base.default from: "solidus@example.com"
|
31
|
+
|
32
|
+
config.active_storage.service = :test
|
28
33
|
|
29
34
|
# Raise on deprecation warnings
|
30
35
|
if ENV['SOLIDUS_RAISE_DEPRECATIONS'].present?
|
@@ -21,10 +21,15 @@ require "spree/core/search/base"
|
|
21
21
|
require "spree/core/search/variant"
|
22
22
|
require 'spree/preferences/configuration'
|
23
23
|
require 'spree/core/environment'
|
24
|
+
require 'rails/gem_version'
|
24
25
|
|
25
26
|
module Spree
|
26
27
|
class AppConfiguration < Preferences::Configuration
|
27
|
-
#
|
28
|
+
# Preferences (alphabetized to more easily lookup particular preferences)
|
29
|
+
|
30
|
+
# @!attribute [rw] address_requires_phone
|
31
|
+
# @return [Boolean] should phone number be required (default: +true+)
|
32
|
+
preference :address_requires_phone, :boolean, default: true
|
28
33
|
|
29
34
|
# @!attribute [rw] address_requires_state
|
30
35
|
# @return [Boolean] should state/state_name be required (default: +true+)
|
@@ -42,6 +47,12 @@ module Spree
|
|
42
47
|
# @return [Integer] Number of variants to display in admin (default: +20+)
|
43
48
|
preference :admin_variants_per_page, :integer, default: 20
|
44
49
|
|
50
|
+
# @!attribute [rw] admin_vat_country_iso
|
51
|
+
# Set this if you want to enter prices in the backend including value added tax.
|
52
|
+
# @return [String, nil] Two-letter ISO code of that {Spree::Country} for which
|
53
|
+
# prices are entered in the backend (default: nil)
|
54
|
+
preference :admin_vat_country_iso, :string, default: nil
|
55
|
+
|
45
56
|
# @!attribute [rw] allow_checkout_on_gateway_error
|
46
57
|
# @return [Boolean] Allow checkout to complete after a failed payment (default: +false+)
|
47
58
|
preference :allow_checkout_on_gateway_error, :boolean, default: false
|
@@ -50,6 +61,10 @@ module Spree
|
|
50
61
|
# @return [Boolean] When false, customers must create an account to complete an order (default: +true+)
|
51
62
|
preference :allow_guest_checkout, :boolean, default: true
|
52
63
|
|
64
|
+
# @!attribute [rw] guest_token_cookie_options
|
65
|
+
# @return [Hash] Add additional guest_token cookie options here (ie. domain or path)
|
66
|
+
preference :guest_token_cookie_options, :hash, default: {}
|
67
|
+
|
53
68
|
# @!attribute [rw] allow_return_item_amount_editing
|
54
69
|
# @return [Boolean] Determines whether an admin is allowed to change a return item's pre-calculated amount (default: +false+)
|
55
70
|
preference :allow_return_item_amount_editing, :boolean, default: false
|
@@ -78,30 +93,24 @@ module Spree
|
|
78
93
|
# @return [Boolean] Automatically capture the credit card (as opposed to just authorize and capture later) (default: +false+)
|
79
94
|
preference :auto_capture_exchanges, :boolean, default: false
|
80
95
|
|
81
|
-
# @!attribute [rw]
|
82
|
-
#
|
83
|
-
#
|
84
|
-
#
|
85
|
-
#
|
96
|
+
# @!attribute [rw] automatic_default_address
|
97
|
+
# The default value of true preserves existing backwards compatible feature of
|
98
|
+
# treating the most recently used address in checkout as the user's default address.
|
99
|
+
# Setting to false means that the user should manage their own default via some
|
100
|
+
# custom UI that uses AddressBookController.
|
101
|
+
# @return [Boolean] Whether use of an address in checkout marks it as user's default
|
102
|
+
preference :automatic_default_address, :boolean, default: true
|
103
|
+
|
104
|
+
# @!attribute [rw] billing_address_required
|
105
|
+
# Controls whether billing address is required or not in the checkout process
|
106
|
+
# by default, can be overridden at order level.
|
86
107
|
# (default: +false+)
|
87
|
-
# @deprecated - use inventory_cache_threshold instead
|
88
108
|
# @return [Boolean]
|
89
|
-
preference :
|
109
|
+
preference :billing_address_required, :boolean, default: false
|
90
110
|
|
91
|
-
# @!attribute [rw]
|
92
|
-
# @return [
|
93
|
-
preference :
|
94
|
-
|
95
|
-
# @!attribute [rw] completable_order_created_cutoff
|
96
|
-
# @return [Integer] the number of days to look back for updated orders which get returned to the user as last completed
|
97
|
-
preference :completable_order_updated_cutoff_days, :integer, default: nil
|
98
|
-
|
99
|
-
# @!attribute [rw] inventory_cache_threshold
|
100
|
-
# Only invalidate product caches when the count on hand for a stock item
|
101
|
-
# falls below or rises about the inventory_cache_threshold. When undefined, the
|
102
|
-
# product caches will be invalidated anytime the count on hand is changed.
|
103
|
-
# @return [Integer]
|
104
|
-
preference :inventory_cache_threshold, :integer
|
111
|
+
# @!attribute [rw] can_restrict_stock_management
|
112
|
+
# @return [Boolean] Indicates if stock management can be restricted by location
|
113
|
+
preference :can_restrict_stock_management, :boolean, default: false
|
105
114
|
|
106
115
|
# @!attribute [rw] checkout_zone
|
107
116
|
# @return [String] Name of a {Spree::Zone}, which limits available countries to those included in that zone. (default: +nil+)
|
@@ -111,32 +120,44 @@ module Spree
|
|
111
120
|
# @return [Boolean] Request company field for billing and shipping addresses. (default: +false+)
|
112
121
|
preference :company, :boolean, default: false
|
113
122
|
|
123
|
+
# @!attribute [rw] completable_order_created_cutoff
|
124
|
+
# @return [Integer] the number of days to look back for created orders which get returned to the user as last completed
|
125
|
+
preference :completable_order_created_cutoff_days, :integer, default: nil
|
126
|
+
|
127
|
+
# @!attribute [rw] completable_order_created_cutoff
|
128
|
+
# @return [Integer] the number of days to look back for updated orders which get returned to the user as last completed
|
129
|
+
preference :completable_order_updated_cutoff_days, :integer, default: nil
|
130
|
+
|
131
|
+
# @!attribute [rw] credit_to_new_allocation
|
132
|
+
# @return [Boolean] Creates a new allocation anytime {Spree::StoreCredit#credit} is called
|
133
|
+
preference :credit_to_new_allocation, :boolean, default: false
|
134
|
+
|
114
135
|
# @!attribute [rw] currency
|
115
136
|
# Currency to use by default when not defined on the site (default: +"USD"+)
|
116
137
|
# @return [String] ISO 4217 Three letter currency code
|
117
138
|
preference :currency, :string, default: "USD"
|
118
139
|
|
119
|
-
# @!attribute [rw]
|
120
|
-
# @
|
121
|
-
|
122
|
-
preference :default_country_id, :integer
|
140
|
+
# @!attribute [rw] customer_returns_per_page
|
141
|
+
# @return [Integer] Customer returns to show per-page in the admin (default: +15+)
|
142
|
+
preference :customer_returns_per_page, :integer, default: 15
|
123
143
|
|
124
144
|
# @!attribute [rw] default_country_iso
|
125
145
|
# Default customer country ISO code
|
126
146
|
# @return [String] Two-letter ISO code of a {Spree::Country} to assumed as the country of an unidentified customer (default: "US")
|
127
147
|
preference :default_country_iso, :string, default: 'US'
|
128
148
|
|
129
|
-
# @!attribute [rw] admin_vat_country_iso
|
130
|
-
# Set this if you want to enter prices in the backend including value added tax.
|
131
|
-
# @return [String, nil] Two-letter ISO code of that {Spree::Country} for which
|
132
|
-
# prices are entered in the backend (default: nil)
|
133
|
-
preference :admin_vat_country_iso, :string, default: nil
|
134
|
-
|
135
149
|
# @!attribute [rw] generate_api_key_for_all_roles
|
136
150
|
# @return [Boolean] Allow generating api key automatically for user
|
137
151
|
# at role_user creation for all roles. (default: +false+)
|
138
152
|
preference :generate_api_key_for_all_roles, :boolean, default: false
|
139
153
|
|
154
|
+
# @!attribute [rw] inventory_cache_threshold
|
155
|
+
# Only invalidate product caches when the count on hand for a stock item
|
156
|
+
# falls below or rises about the inventory_cache_threshold. When undefined, the
|
157
|
+
# product caches will be invalidated anytime the count on hand is changed.
|
158
|
+
# @return [Integer]
|
159
|
+
preference :inventory_cache_threshold, :integer
|
160
|
+
|
140
161
|
# @!attribute [rw] layout
|
141
162
|
# @return [String] template to use for layout on the frontend (default: +"spree/layouts/spree_application"+)
|
142
163
|
preference :layout, :string, default: 'spree/layouts/spree_application'
|
@@ -145,6 +166,30 @@ module Spree
|
|
145
166
|
# @return [String] URL of logo used on frontend (default: +'logo/solidus.svg'+)
|
146
167
|
preference :logo, :string, default: 'logo/solidus.svg'
|
147
168
|
|
169
|
+
# @!attribute [rw] log_entry_permitted_classes
|
170
|
+
# @return [Array<String>] An array of extra classes that are allowed to be
|
171
|
+
# loaded from a serialized YAML as details in {Spree::LogEntry}
|
172
|
+
# (defaults to a non-frozen empty array, so that extensions can add
|
173
|
+
# their own classes).
|
174
|
+
# @example
|
175
|
+
# config.log_entry_permitted_classes = ['Date']
|
176
|
+
preference :log_entry_permitted_classes, :array, default: []
|
177
|
+
|
178
|
+
# @!attribute [rw] log_entry_allow_aliases
|
179
|
+
# @return [Boolean] Whether YAML aliases are allowed when loading
|
180
|
+
# serialized data in {Spree::LogEntry}. It defaults to true. Depending
|
181
|
+
# on the source of your data, you may consider disabling it to prevent
|
182
|
+
# entity expansion attacks.
|
183
|
+
preference :log_entry_allow_aliases, :boolean, default: true
|
184
|
+
|
185
|
+
# @!attribute [rw] mails_from
|
186
|
+
# @return [String] Email address used as +From:+ field in transactional emails.
|
187
|
+
preference :mails_from, :string, default: 'solidus@example.com'
|
188
|
+
|
189
|
+
# @!attribute [rw] max_level_in_taxons_menu
|
190
|
+
# @return [Integer] maximum nesting level in taxons menu (default: +1+)
|
191
|
+
preference :max_level_in_taxons_menu, :integer, default: 1
|
192
|
+
|
148
193
|
# @!attribute [rw] order_bill_address_used
|
149
194
|
# @return [Boolean] Use the order's bill address, as opposed to storing
|
150
195
|
# bill addresses on payment sources. (default: +true+)
|
@@ -154,10 +199,6 @@ module Spree
|
|
154
199
|
# @return [Integer] the number of days to look back for fully-shipped/cancelled orders in order to charge for them
|
155
200
|
preference :order_capturing_time_window, :integer, default: 14
|
156
201
|
|
157
|
-
# @!attribute [rw] max_level_in_taxons_menu
|
158
|
-
# @return [Integer] maximum nesting level in taxons menu (default: +1+)
|
159
|
-
preference :max_level_in_taxons_menu, :integer, default: 1
|
160
|
-
|
161
202
|
# @!attribute [rw] order_mutex_max_age
|
162
203
|
# @return [Integer] Max age of {Spree::OrderMutex} in seconds (default: 2 minutes)
|
163
204
|
preference :order_mutex_max_age, :integer, default: 120
|
@@ -178,10 +219,6 @@ module Spree
|
|
178
219
|
# @return [Integer] Promotions to show per-page in the admin (default: +15+)
|
179
220
|
preference :promotions_per_page, :integer, default: 15
|
180
221
|
|
181
|
-
# @!attribute [rw] customer_returns_per_page
|
182
|
-
# @return [Integer] Customer returns to show per-page in the admin (default: +15+)
|
183
|
-
preference :customer_returns_per_page, :integer, default: 15
|
184
|
-
|
185
222
|
# @!attribute [rw] require_master_price
|
186
223
|
# @return [Boolean] Require a price on the master variant of a product (default: +true+)
|
187
224
|
preference :require_master_price, :boolean, default: true
|
@@ -200,6 +237,18 @@ module Spree
|
|
200
237
|
# (default: +['admin']+)
|
201
238
|
preference :roles_for_auto_api_key, :array, default: ['admin']
|
202
239
|
|
240
|
+
# @!attribute [rw] countries_that_use_nested_subregions
|
241
|
+
# @return [Array] An array of countries that use nested subregions, instead
|
242
|
+
# of the default subregions that come with Carmen. Will be used on store creation
|
243
|
+
# to ensure the correct states are generated, and when running the states
|
244
|
+
# regenerate rake task.
|
245
|
+
# (default: +['IT']+)
|
246
|
+
preference :countries_that_use_nested_subregions, :array, default: ['IT']
|
247
|
+
|
248
|
+
# @!attribute [rw] send_core_emails
|
249
|
+
# @return [Boolean] Whether to send transactional emails (default: true)
|
250
|
+
preference :send_core_emails, :boolean, default: true
|
251
|
+
|
203
252
|
# @!attribute [rw] shipping_instructions
|
204
253
|
# @return [Boolean] Request instructions/info for shipping (default: +false+)
|
205
254
|
preference :shipping_instructions, :boolean, default: false
|
@@ -231,33 +280,8 @@ module Spree
|
|
231
280
|
# @return [] Track on_hand values for variants / products. (default: true)
|
232
281
|
preference :track_inventory_levels, :boolean, default: true
|
233
282
|
|
234
|
-
# Default mail headers settings
|
235
|
-
|
236
|
-
# @!attribute [rw] send_core_emails
|
237
|
-
# @return [Boolean] Whether to send transactional emails (default: true)
|
238
|
-
preference :send_core_emails, :boolean, default: true
|
239
|
-
|
240
|
-
# @!attribute [rw] mails_from
|
241
|
-
# @return [String] Email address used as +From:+ field in transactional emails.
|
242
|
-
preference :mails_from, :string, default: 'spree@example.com'
|
243
|
-
|
244
|
-
# Store credits configurations
|
245
283
|
|
246
|
-
#
|
247
|
-
# @return [Boolean] Creates a new allocation anytime {Spree::StoreCredit#credit} is called
|
248
|
-
preference :credit_to_new_allocation, :boolean, default: false
|
249
|
-
|
250
|
-
# @!attribute [rw] automatic_default_address
|
251
|
-
# The default value of true preserves existing backwards compatible feature of
|
252
|
-
# treating the most recently used address in checkout as the user's default address.
|
253
|
-
# Setting to false means that the user should manage their own default via some
|
254
|
-
# custom UI that uses AddressBookController.
|
255
|
-
# @return [Boolean] Whether use of an address in checkout marks it as user's default
|
256
|
-
preference :automatic_default_address, :boolean, default: true
|
257
|
-
|
258
|
-
# @!attribute [rw] can_restrict_stock_management
|
259
|
-
# @return [Boolean] Indicates if stock management can be restricted by location
|
260
|
-
preference :can_restrict_stock_management, :boolean, default: false
|
284
|
+
# Other configurations
|
261
285
|
|
262
286
|
# Allows restricting what currencies will be available.
|
263
287
|
#
|
@@ -430,23 +454,31 @@ module Spree
|
|
430
454
|
|
431
455
|
# Allows switching attachment library for Image
|
432
456
|
#
|
433
|
-
# `Spree::Image::
|
434
|
-
# is the default and provides the
|
457
|
+
# `Spree::Image::ActiveStorageAttachment`
|
458
|
+
# is the default and provides the Active Storage implementation.
|
435
459
|
#
|
436
460
|
# @!attribute [rw] image_attachment_module
|
437
461
|
# @return [Module] a module that can be included into Spree::Image to allow attachments
|
438
462
|
# Enumerable of images adhering to the present_image_class interface
|
439
|
-
class_name_attribute :image_attachment_module, default:
|
463
|
+
class_name_attribute :image_attachment_module, default: Rails.gem_version >= Gem::Version.new("6.1.0") ? "Spree::Image::ActiveStorageAttachment" : "Spree::Image::PaperclipAttachment"
|
464
|
+
|
465
|
+
# @!attribute [rw] allowed_image_mime_types
|
466
|
+
#
|
467
|
+
# Defines which MIME types are allowed for images
|
468
|
+
# `%w(image/jpeg image/jpg image/png image/gif).freeze` is the default.
|
469
|
+
#
|
470
|
+
# @return [Array]
|
471
|
+
class_name_attribute :allowed_image_mime_types, default: %w(image/jpeg image/jpg image/png image/gif).freeze
|
440
472
|
|
441
473
|
# Allows switching attachment library for Taxon
|
442
474
|
#
|
443
|
-
# `Spree::Taxon::
|
444
|
-
# is the default and provides the
|
475
|
+
# `Spree::Taxon::ActiveStorageAttachment`
|
476
|
+
# is the default and provides the Active Storage implementation.
|
445
477
|
#
|
446
478
|
# @!attribute [rw] taxon_attachment_module
|
447
479
|
# @return [Module] a module that can be included into Spree::Taxon to allow attachments
|
448
480
|
# Enumerable of taxons adhering to the present_taxon_class interface
|
449
|
-
class_name_attribute :taxon_attachment_module, default:
|
481
|
+
class_name_attribute :taxon_attachment_module, default: Rails.gem_version >= Gem::Version.new("6.1.0") ? "Spree::Taxon::ActiveStorageAttachment" : "Spree::Taxon::PaperclipAttachment"
|
450
482
|
|
451
483
|
# Allows providing your own class instance for generating order numbers.
|
452
484
|
#
|
@@ -11,7 +11,7 @@ module Spree
|
|
11
11
|
# @!attribute [rw] unauthorized_redirect
|
12
12
|
# @!scope class
|
13
13
|
# Extension point for overriding behaviour of access denied errors.
|
14
|
-
# Default behaviour is to redirect to "/unauthorized" with a flash
|
14
|
+
# Default behaviour is to redirect back or to "/unauthorized" with a flash
|
15
15
|
# message.
|
16
16
|
# @return [Proc] action to take when access denied error is raised.
|
17
17
|
|
@@ -22,7 +22,7 @@ module Spree
|
|
22
22
|
class_attribute :unauthorized_redirect
|
23
23
|
self.unauthorized_redirect = -> do
|
24
24
|
flash[:error] = I18n.t('spree.authorization_failure')
|
25
|
-
|
25
|
+
redirect_back(fallback_location: "/unauthorized")
|
26
26
|
end
|
27
27
|
|
28
28
|
rescue_from CanCan::AccessDenied do
|
@@ -42,10 +42,10 @@ module Spree
|
|
42
42
|
|
43
43
|
def set_guest_token
|
44
44
|
unless cookies.signed[:guest_token].present?
|
45
|
-
cookies.permanent.signed[:guest_token] =
|
45
|
+
cookies.permanent.signed[:guest_token] = Spree::Config[:guest_token_cookie_options].merge(
|
46
46
|
value: SecureRandom.urlsafe_base64(nil, false),
|
47
47
|
httponly: true
|
48
|
-
|
48
|
+
)
|
49
49
|
end
|
50
50
|
end
|
51
51
|
|
@@ -0,0 +1,17 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Spree
|
4
|
+
module Core
|
5
|
+
module ControllerHelpers
|
6
|
+
module CurrentHost
|
7
|
+
extend ActiveSupport::Concern
|
8
|
+
|
9
|
+
included do
|
10
|
+
before_action do
|
11
|
+
ActiveStorage::Current.host = request.base_url
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -11,37 +11,23 @@ module Spree
|
|
11
11
|
|
12
12
|
included do
|
13
13
|
helper_method :current_order
|
14
|
-
helper_method :simple_current_order
|
15
14
|
end
|
16
15
|
|
17
|
-
def simple_current_order
|
18
|
-
return @simple_current_order if @simple_current_order
|
19
|
-
|
20
|
-
@simple_current_order = find_order_by_token_or_user
|
21
|
-
|
22
|
-
if @simple_current_order
|
23
|
-
@simple_current_order.last_ip_address = ip_address
|
24
|
-
return @simple_current_order
|
25
|
-
else
|
26
|
-
@simple_current_order = Spree::Order.new(current_order_params)
|
27
|
-
end
|
28
|
-
end
|
29
|
-
deprecate simple_current_order: :current_order, deprecator: Spree::Deprecation
|
30
|
-
|
31
16
|
# The current incomplete order from the guest_token for use in cart and during checkout
|
32
17
|
def current_order(options = {})
|
33
|
-
options[:create_order_if_necessary]
|
18
|
+
should_create = options[:create_order_if_necessary] || false
|
19
|
+
should_build = options[:build_order_if_necessary] || should_create
|
34
20
|
|
35
21
|
return @current_order if @current_order
|
36
22
|
|
37
|
-
@current_order = find_order_by_token_or_user(options)
|
23
|
+
@current_order = find_order_by_token_or_user(lock: options[:lock])
|
38
24
|
|
39
|
-
if
|
25
|
+
if should_build && (@current_order.nil? || @current_order.completed?)
|
40
26
|
@current_order = Spree::Order.new(new_order_params)
|
41
27
|
@current_order.user ||= try_spree_current_user
|
42
28
|
# See issue https://github.com/spree/spree/issues/3346 for reasons why this line is here
|
43
29
|
@current_order.created_by ||= try_spree_current_user
|
44
|
-
@current_order.save!
|
30
|
+
@current_order.save! if should_create
|
45
31
|
end
|
46
32
|
|
47
33
|
if @current_order
|
@@ -83,16 +69,11 @@ module Spree
|
|
83
69
|
current_order_params.merge(last_ip_address: ip_address)
|
84
70
|
end
|
85
71
|
|
86
|
-
def find_order_by_token_or_user(options = {}
|
87
|
-
options[:lock]
|
72
|
+
def find_order_by_token_or_user(options = {})
|
73
|
+
should_lock = options[:lock] || false
|
88
74
|
|
89
75
|
# Find any incomplete orders for the guest_token
|
90
|
-
|
91
|
-
Spree::Deprecation.warn "The second argument to find_order_by_token_or_user is deprecated, and will be removed in a future version."
|
92
|
-
order = Spree::Order.incomplete.includes(:adjustments).lock(options[:lock]).find_by(current_order_params)
|
93
|
-
else
|
94
|
-
order = Spree::Order.incomplete.lock(options[:lock]).find_by(current_order_params)
|
95
|
-
end
|
76
|
+
order = Spree::Order.incomplete.lock(should_lock).find_by(current_order_params)
|
96
77
|
|
97
78
|
# Find any incomplete orders for the current user
|
98
79
|
if order.nil? && try_spree_current_user
|