spree_core 5.4.3 → 5.5.0.rc1
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/helpers/spree/base_helper.rb +0 -82
- data/app/helpers/spree/currency_helper.rb +0 -12
- data/app/helpers/spree/products_helper.rb +0 -8
- data/app/jobs/spree/base_job.rb +18 -0
- data/app/jobs/spree/events/subscriber_job.rb +2 -1
- data/app/jobs/spree/exports/generate_job.rb +11 -0
- data/app/jobs/spree/images/save_from_url_job.rb +23 -8
- data/app/jobs/spree/imports/assign_tags_job.rb +11 -0
- data/app/jobs/spree/imports/base_job.rb +15 -0
- data/app/jobs/spree/imports/create_categories_job.rb +37 -0
- data/app/jobs/spree/imports/create_rows_job.rb +1 -3
- data/app/jobs/spree/imports/process_group_job.rb +8 -6
- data/app/jobs/spree/imports/process_rows_job.rb +1 -3
- data/app/jobs/spree/media/migrate_product_assets_job.rb +83 -0
- data/app/jobs/spree/products/refresh_metrics_job.rb +15 -4
- data/app/jobs/spree/reports/generate_job.rb +11 -0
- data/app/jobs/spree/search_provider/index_job.rb +5 -1
- data/app/jobs/spree/search_provider/remove_job.rb +4 -0
- data/app/jobs/spree/stock_reservations/expire_job.rb +11 -0
- data/app/models/concerns/spree/calculated_adjustments.rb +34 -1
- data/app/models/concerns/spree/display_on.rb +31 -0
- data/app/models/concerns/spree/metafields.rb +167 -5
- data/app/models/concerns/spree/preference_schema.rb +191 -0
- data/app/models/concerns/spree/prefixed_id.rb +94 -11
- data/app/models/concerns/spree/product_scopes.rb +36 -17
- data/app/models/concerns/spree/ransackable_attributes.rb +5 -1
- data/app/models/concerns/spree/search_indexable.rb +8 -7
- data/app/models/concerns/spree/searchable.rb +11 -2
- data/app/models/concerns/spree/stores/channels.rb +20 -0
- data/app/models/concerns/spree/stores/markets.rb +21 -5
- data/app/models/concerns/spree/typed_associations.rb +120 -0
- data/app/models/concerns/spree/user_methods.rb +71 -12
- data/app/models/spree/ability.rb +4 -117
- data/app/models/spree/api_key.rb +53 -0
- data/app/models/spree/asset.rb +28 -5
- data/app/models/spree/authentication/strategy_registry.rb +72 -0
- data/app/models/spree/base.rb +18 -1
- data/app/models/spree/channel.rb +159 -0
- data/app/models/spree/country.rb +2 -0
- data/app/models/spree/current.rb +5 -1
- data/app/models/spree/custom_field.rb +9 -0
- data/app/models/spree/custom_field_definition.rb +7 -0
- data/app/models/spree/customer_group.rb +8 -2
- data/app/models/spree/export.rb +30 -3
- data/app/models/spree/gateway.rb +25 -0
- data/app/models/spree/gift_card.rb +1 -1
- data/app/models/spree/gift_card_batch.rb +4 -1
- data/app/models/spree/import.rb +5 -0
- data/app/models/spree/import_row.rb +12 -0
- data/app/models/spree/line_item.rb +6 -1
- data/app/models/spree/market.rb +32 -1
- data/app/models/spree/metafield.rb +38 -0
- data/app/models/spree/metafield_definition.rb +29 -6
- data/app/models/spree/metafields/json.rb +10 -0
- data/app/models/spree/newsletter_subscriber.rb +19 -3
- data/app/models/spree/option_type.rb +48 -7
- data/app/models/spree/order/checkout.rb +3 -3
- data/app/models/spree/order.rb +102 -6
- data/app/models/spree/order_approval.rb +19 -0
- data/app/models/spree/order_cancellation.rb +19 -0
- data/app/models/spree/order_routing/has_strategy_preference.rb +28 -0
- data/app/models/spree/order_routing/rules/default_location.rb +16 -0
- data/app/models/spree/order_routing/rules/minimize_splits.rb +45 -0
- data/app/models/spree/order_routing/rules/preferred_location.rb +22 -0
- data/app/models/spree/order_routing/strategy/base.rb +47 -0
- data/app/models/spree/order_routing/strategy/legacy.rb +33 -0
- data/app/models/spree/order_routing/strategy/reducer.rb +68 -0
- data/app/models/spree/order_routing/strategy/rules.rb +81 -0
- data/app/models/spree/order_routing_rule.rb +75 -0
- data/app/models/spree/permission_sets/configuration_management.rb +16 -0
- data/app/models/spree/permission_sets/product_display.rb +2 -0
- data/app/models/spree/permission_sets/product_management.rb +2 -0
- data/app/models/spree/price.rb +14 -1
- data/app/models/spree/price_list.rb +129 -17
- data/app/models/spree/price_rule.rb +11 -1
- data/app/models/spree/price_rules/customer_group_rule.rb +15 -1
- data/app/models/spree/price_rules/market_rule.rb +16 -1
- data/app/models/spree/price_rules/user_rule.rb +21 -2
- data/app/models/spree/product/channels.rb +149 -0
- data/app/models/spree/product/legacy_multi_store_support.rb +40 -0
- data/app/models/spree/product/slugs.rb +1 -1
- data/app/models/spree/product.rb +172 -31
- data/app/models/spree/product_publication.rb +43 -0
- data/app/models/spree/promotion/actions/create_adjustment.rb +4 -0
- data/app/models/spree/promotion/actions/create_item_adjustments.rb +4 -0
- data/app/models/spree/promotion/actions/create_line_items.rb +32 -14
- data/app/models/spree/promotion/rules/country.rb +40 -18
- data/app/models/spree/promotion/rules/customer_group.rb +10 -1
- data/app/models/spree/promotion/rules/product.rb +4 -0
- data/app/models/spree/promotion/rules/taxon.rb +24 -1
- data/app/models/spree/promotion/rules/user.rb +21 -0
- data/app/models/spree/promotion/rules/user_logged_in.rb +6 -0
- data/app/models/spree/promotion.rb +22 -1
- data/app/models/spree/promotion_action.rb +17 -11
- data/app/models/spree/promotion_rule.rb +17 -18
- data/app/models/spree/search_provider/meilisearch.rb +12 -2
- data/app/models/spree/stock/availability_validator.rb +1 -1
- data/app/models/spree/stock/quantifier.rb +89 -9
- data/app/models/spree/stock_item.rb +36 -0
- data/app/models/spree/stock_location.rb +52 -0
- data/app/models/spree/stock_reservation.rb +38 -0
- data/app/models/spree/stock_reservations/insufficient_stock_error.rb +12 -0
- data/app/models/spree/store.rb +18 -72
- data/app/models/spree/store_credit.rb +0 -8
- data/app/models/spree/store_product.rb +11 -23
- data/app/models/spree/taxon.rb +0 -5
- data/app/models/spree/user_identity.rb +1 -2
- data/app/models/spree/variant.rb +132 -18
- data/app/models/spree/variant_media.rb +46 -0
- data/app/models/spree/webhook_delivery.rb +1 -1
- data/app/models/spree/webhook_endpoint.rb +24 -0
- data/app/models/spree/wished_item.rb +0 -13
- data/app/presenters/spree/csv/product_variant_presenter.rb +23 -3
- data/app/presenters/spree/search_provider/product_presenter.rb +11 -4
- data/app/presenters/spree/variant_presenter.rb +4 -3
- data/app/services/spree/addresses/update.rb +6 -8
- data/app/services/spree/cart/add_item.rb +10 -0
- data/app/services/spree/cart/empty.rb +2 -0
- data/app/services/spree/cart/remove_line_item.rb +10 -0
- data/app/services/spree/cart/remove_out_of_stock_items.rb +1 -1
- data/app/services/spree/cart/set_quantity.rb +10 -0
- data/app/services/spree/carts/complete.rb +1 -0
- data/app/services/spree/carts/create.rb +1 -0
- data/app/services/spree/carts/update.rb +18 -2
- data/app/services/spree/carts/upsert_items.rb +6 -6
- data/app/services/spree/imports/row_processors/customer.rb +4 -1
- data/app/services/spree/imports/row_processors/product_variant.rb +95 -57
- data/app/services/spree/newsletter/link_user.rb +53 -0
- data/app/services/spree/newsletter/subscribe.rb +31 -9
- data/app/services/spree/orders/approve.rb +27 -6
- data/app/services/spree/orders/build_shipments.rb +29 -0
- data/app/services/spree/orders/cancel.rb +34 -3
- data/app/services/spree/orders/complete.rb +53 -0
- data/app/services/spree/orders/create.rb +156 -0
- data/app/services/spree/orders/update.rb +51 -0
- data/app/services/spree/orders/upsert_items.rb +70 -0
- data/app/services/spree/prices/bulk_upsert.rb +201 -0
- data/app/services/spree/products/duplicator.rb +1 -1
- data/app/services/spree/products/prepare_nested_attributes.rb +2 -30
- data/app/services/spree/sample_data/loader.rb +30 -0
- data/app/services/spree/stock_reservations/extend.rb +19 -0
- data/app/services/spree/stock_reservations/release.rb +12 -0
- data/app/services/spree/stock_reservations/reserve.rb +103 -0
- data/app/services/spree/taxons/remove_products.rb +7 -1
- data/app/subscribers/spree/product_metrics_subscriber.rb +3 -7
- data/app/views/spree/invitation_mailer/invitation_email.html.erb +4 -0
- data/config/locales/en.yml +27 -10
- data/config/routes.rb +9 -0
- data/db/migrate/20260429000001_create_spree_order_cancellations.rb +25 -0
- data/db/migrate/20260429000002_create_spree_order_approvals.rb +22 -0
- data/db/migrate/20260429000003_add_status_to_spree_orders.rb +6 -0
- data/db/migrate/20260429000004_add_scopes_to_spree_api_keys.rb +11 -0
- data/db/migrate/20260501000001_create_spree_stock_reservations.rb +19 -0
- data/db/migrate/20260507162651_create_spree_variant_media.rb +23 -0
- data/db/migrate/20260508175303_add_pickup_to_spree_stock_locations.rb +12 -0
- data/db/migrate/20260508204040_create_spree_channels.rb +18 -0
- data/db/migrate/20260508204041_create_spree_order_routing_rules.rb +18 -0
- data/db/migrate/20260508204042_add_preferred_stock_location_to_spree_orders.rb +5 -0
- data/db/migrate/20260508204043_add_channel_id_to_spree_orders.rb +10 -0
- data/db/migrate/20260511000001_backfill_status_on_spree_orders.rb +57 -0
- data/db/migrate/20260515000001_add_store_id_to_spree_newsletter_subscribers.rb +25 -0
- data/db/migrate/20260529000001_add_unique_index_to_spree_price_rules.rb +41 -0
- data/db/migrate/20260529000002_add_unique_index_to_spree_promotion_rules.rb +37 -0
- data/db/migrate/20260601000001_create_spree_product_publications.rb +14 -0
- data/db/migrate/20260601000002_add_store_id_to_spree_products.rb +16 -0
- data/db/migrate/20260602000001_add_default_to_spree_channels.rb +14 -0
- data/db/sample_data/channels.rb +12 -0
- data/db/sample_data/orders.rb +1 -1
- data/db/sample_data/products.csv +212 -212
- data/lib/generators/spree/api_resource/api_resource_generator.rb +353 -0
- data/lib/generators/spree/api_resource/templates/admin_controller.rb.tt +23 -0
- data/lib/generators/spree/api_resource/templates/admin_controller_spec.rb.tt +59 -0
- data/lib/generators/spree/api_resource/templates/admin_serializer.rb.tt +11 -0
- data/lib/generators/spree/api_resource/templates/factory.rb.tt +26 -0
- data/lib/generators/spree/api_resource/templates/store_aliased_serializer.rb.tt +12 -0
- data/lib/generators/spree/api_resource/templates/store_controller.rb.tt +31 -0
- data/lib/generators/spree/api_resource/templates/store_controller_spec.rb.tt +61 -0
- data/lib/generators/spree/api_resource/templates/store_serializer.rb.tt +14 -0
- data/lib/generators/spree/controller_decorator/controller_decorator_generator.rb +66 -0
- data/lib/generators/spree/controller_decorator/templates/controller_decorator.rb.tt +25 -0
- data/lib/generators/spree/model/model_generator.rb +73 -7
- data/lib/generators/spree/model/templates/create_table_migration.rb.tt +40 -0
- data/lib/generators/spree/model/templates/model.rb.tt +28 -2
- data/lib/spree/core/configuration.rb +7 -0
- data/lib/spree/core/controller_helpers/auth.rb +0 -12
- data/lib/spree/core/controller_helpers/currency.rb +0 -17
- data/lib/spree/core/controller_helpers/order.rb +0 -19
- data/lib/spree/core/dependencies.rb +5 -2
- data/lib/spree/core/engine.rb +54 -7
- data/lib/spree/core/permission_configuration.rb +15 -0
- data/lib/spree/core/preferences/masking.rb +47 -0
- data/lib/spree/core/preferences/preferable_class_methods.rb +7 -1
- data/lib/spree/core/version.rb +1 -1
- data/lib/spree/core.rb +56 -5
- data/lib/spree/permitted_attributes.rb +9 -7
- data/lib/spree/testing_support/factories/address_factory.rb +16 -9
- data/lib/spree/testing_support/factories/api_key_factory.rb +1 -0
- data/lib/spree/testing_support/factories/channel_factory.rb +8 -0
- data/lib/spree/testing_support/factories/line_item_factory.rb +2 -8
- data/lib/spree/testing_support/factories/newsletter_subscriber_factory.rb +2 -0
- data/lib/spree/testing_support/factories/product_factory.rb +16 -7
- data/lib/spree/testing_support/factories/product_publication_factory.rb +6 -0
- data/lib/spree/testing_support/factories/refresh_token_factory.rb +15 -0
- data/lib/spree/testing_support/factories/stock_location_factory.rb +2 -2
- data/lib/spree/testing_support/factories/stock_reservation_factory.rb +31 -0
- data/lib/spree/testing_support/factories/variant_factory.rb +3 -3
- data/lib/spree/testing_support/order_walkthrough.rb +1 -1
- data/lib/spree/testing_support/store.rb +10 -0
- data/lib/spree/upgrades/5_4_to_5_5/manifest.yml +53 -0
- data/lib/tasks/channels.rake +94 -0
- data/lib/tasks/core.rake +1 -0
- data/lib/tasks/media.rake +27 -0
- data/lib/tasks/products.rake +4 -6
- data/lib/tasks/publications.rake +60 -0
- data/lib/tasks/upgrade.rake +211 -0
- metadata +83 -18
- data/app/finders/spree/variants/visible_finder.rb +0 -23
- data/app/paginators/spree/shared/paginate.rb +0 -30
- data/app/presenters/spree/filters/price_presenter.rb +0 -23
- data/app/presenters/spree/filters/price_range_presenter.rb +0 -30
- data/app/presenters/spree/filters/quantified_price_range_presenter.rb +0 -45
- data/app/presenters/spree/product_summary_presenter.rb +0 -27
- data/app/presenters/spree/variants/options_presenter.rb +0 -82
- data/app/services/spree/classifications/reposition.rb +0 -23
- data/app/sorters/spree/orders/sort.rb +0 -10
- data/lib/spree/core/controller_helpers/common.rb +0 -14
- data/lib/spree/core/token_generator.rb +0 -23
- data/lib/spree/database_type_utilities.rb +0 -22
- data/lib/spree/testing_support/bar_ability.rb +0 -14
- data/lib/spree/testing_support/factories/store_product_factory.rb +0 -6
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
module Spree
|
|
2
|
-
module Filters
|
|
3
|
-
class PriceRangePresenter
|
|
4
|
-
def self.from_param(param, currency:)
|
|
5
|
-
prices = param.split('-')
|
|
6
|
-
|
|
7
|
-
new(
|
|
8
|
-
min_price: PricePresenter.new(amount: prices.first, currency: currency),
|
|
9
|
-
max_price: PricePresenter.new(amount: prices.last, currency: currency)
|
|
10
|
-
)
|
|
11
|
-
end
|
|
12
|
-
|
|
13
|
-
def initialize(min_price:, max_price:)
|
|
14
|
-
Spree::Deprecation.warn('Spree::Filters::PriceRangePresenter is deprecated and will be removed in Spree 5.5.')
|
|
15
|
-
@min_price = min_price
|
|
16
|
-
@max_price = max_price
|
|
17
|
-
end
|
|
18
|
-
|
|
19
|
-
attr_reader :min_price, :max_price
|
|
20
|
-
|
|
21
|
-
def to_param
|
|
22
|
-
"#{min_price.to_i}-#{max_price.to_i}"
|
|
23
|
-
end
|
|
24
|
-
|
|
25
|
-
def to_s
|
|
26
|
-
"#{min_price} - #{max_price}"
|
|
27
|
-
end
|
|
28
|
-
end
|
|
29
|
-
end
|
|
30
|
-
end
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
module Spree
|
|
2
|
-
module Filters
|
|
3
|
-
class QuantifiedPriceRangePresenter
|
|
4
|
-
ALLOWED_QUANTIFIERS = [
|
|
5
|
-
:less_than,
|
|
6
|
-
:more_than
|
|
7
|
-
].freeze
|
|
8
|
-
|
|
9
|
-
def initialize(price:, quantifier:)
|
|
10
|
-
Spree::Deprecation.warn('Spree::Filters::QuantifiedPriceRangePresenter is deprecated and will be removed in Spree 5.5.')
|
|
11
|
-
if ALLOWED_QUANTIFIERS.exclude?(quantifier.to_sym)
|
|
12
|
-
raise ArgumentError, "quantifier must be one of: #{ALLOWED_QUANTIFIERS.join(', ')}"
|
|
13
|
-
end
|
|
14
|
-
|
|
15
|
-
@price = price
|
|
16
|
-
@quantifier = quantifier.to_sym
|
|
17
|
-
end
|
|
18
|
-
|
|
19
|
-
def to_param
|
|
20
|
-
case quantifier
|
|
21
|
-
when :less_than
|
|
22
|
-
less_than_param
|
|
23
|
-
when :more_than
|
|
24
|
-
more_than_param
|
|
25
|
-
end
|
|
26
|
-
end
|
|
27
|
-
|
|
28
|
-
def to_s
|
|
29
|
-
"#{I18n.t("activerecord.attributes.spree/product.#{quantifier}")} #{price}"
|
|
30
|
-
end
|
|
31
|
-
|
|
32
|
-
private
|
|
33
|
-
|
|
34
|
-
attr_reader :price, :quantifier
|
|
35
|
-
|
|
36
|
-
def less_than_param
|
|
37
|
-
"0-#{price.to_i}"
|
|
38
|
-
end
|
|
39
|
-
|
|
40
|
-
def more_than_param
|
|
41
|
-
"#{price.to_i}-Infinity"
|
|
42
|
-
end
|
|
43
|
-
end
|
|
44
|
-
end
|
|
45
|
-
end
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
module Spree
|
|
2
|
-
class ProductSummaryPresenter
|
|
3
|
-
include Rails.application.routes.url_helpers
|
|
4
|
-
|
|
5
|
-
def initialize(product)
|
|
6
|
-
Spree::Deprecation.warn('Spree::ProductSummaryPresenter is deprecated and will be removed in Spree 5.5.')
|
|
7
|
-
@product = product
|
|
8
|
-
end
|
|
9
|
-
|
|
10
|
-
def call
|
|
11
|
-
{
|
|
12
|
-
name: @product.name,
|
|
13
|
-
images: images
|
|
14
|
-
}
|
|
15
|
-
end
|
|
16
|
-
|
|
17
|
-
private
|
|
18
|
-
|
|
19
|
-
def images
|
|
20
|
-
@product.images.map do |image|
|
|
21
|
-
{
|
|
22
|
-
url_product: rails_representation_url(image.url(:product), only_path: true)
|
|
23
|
-
}
|
|
24
|
-
end
|
|
25
|
-
end
|
|
26
|
-
end
|
|
27
|
-
end
|
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
module Spree
|
|
2
|
-
module Variants
|
|
3
|
-
class OptionsPresenter
|
|
4
|
-
WORDS_CONNECTOR = ', '.freeze
|
|
5
|
-
|
|
6
|
-
attr_reader :variant
|
|
7
|
-
|
|
8
|
-
delegate :option_values, to: :variant
|
|
9
|
-
|
|
10
|
-
def initialize(variant)
|
|
11
|
-
Spree::Deprecation.warn('Spree::Variants::OptionsPresenter is deprecated and will be removed in Spree 5.5. Please use Spree::Variant#options_text instead.')
|
|
12
|
-
@variant = variant
|
|
13
|
-
end
|
|
14
|
-
|
|
15
|
-
def to_sentence
|
|
16
|
-
options = option_values
|
|
17
|
-
options = sort_options(options)
|
|
18
|
-
options = present_options(options)
|
|
19
|
-
|
|
20
|
-
join_options(options)
|
|
21
|
-
end
|
|
22
|
-
|
|
23
|
-
def to_hash
|
|
24
|
-
options = option_values
|
|
25
|
-
options = sort_options(options)
|
|
26
|
-
options = present_options_as_hash(options)
|
|
27
|
-
|
|
28
|
-
join_hash_options(options)
|
|
29
|
-
end
|
|
30
|
-
|
|
31
|
-
private
|
|
32
|
-
|
|
33
|
-
def sort_options(options)
|
|
34
|
-
if options.first&.association(:option_type)&.loaded?
|
|
35
|
-
options.sort_by { |o| o.option_type.position }
|
|
36
|
-
else
|
|
37
|
-
options.includes(:option_type).sort_by { |o| o.option_type.position }
|
|
38
|
-
end
|
|
39
|
-
end
|
|
40
|
-
|
|
41
|
-
def present_options(options)
|
|
42
|
-
options.map do |ov|
|
|
43
|
-
method = "present_#{ov.option_type.name}_option"
|
|
44
|
-
|
|
45
|
-
respond_to?(method, true) ? send(method, ov) : present_option(ov)
|
|
46
|
-
end
|
|
47
|
-
end
|
|
48
|
-
|
|
49
|
-
def present_color_option(option)
|
|
50
|
-
"#{option.option_type.presentation}: #{option.presentation}"
|
|
51
|
-
end
|
|
52
|
-
|
|
53
|
-
def present_option(option)
|
|
54
|
-
"#{option.option_type.presentation}: #{option.presentation}"
|
|
55
|
-
end
|
|
56
|
-
|
|
57
|
-
def join_options(options)
|
|
58
|
-
options.to_sentence(words_connector: WORDS_CONNECTOR, two_words_connector: WORDS_CONNECTOR)
|
|
59
|
-
end
|
|
60
|
-
|
|
61
|
-
def present_options_as_hash(options)
|
|
62
|
-
options.map do |ov|
|
|
63
|
-
method = "present_#{ov.option_type.name}_option_as_hash"
|
|
64
|
-
|
|
65
|
-
respond_to?(method, true) ? send(method, ov) : present_option_as_hash(ov)
|
|
66
|
-
end
|
|
67
|
-
end
|
|
68
|
-
|
|
69
|
-
def present_option_as_hash(option)
|
|
70
|
-
{}.tap do |hash|
|
|
71
|
-
hash.store(option.option_type.presentation.downcase, option.presentation)
|
|
72
|
-
end
|
|
73
|
-
end
|
|
74
|
-
|
|
75
|
-
def join_hash_options(options)
|
|
76
|
-
return {} if options.empty?
|
|
77
|
-
|
|
78
|
-
options.inject(:merge).symbolize_keys
|
|
79
|
-
end
|
|
80
|
-
end
|
|
81
|
-
end
|
|
82
|
-
end
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
module Spree
|
|
2
|
-
module Classifications
|
|
3
|
-
# @deprecated This service is deprecated and will be removed in Spree 5.5.
|
|
4
|
-
class Reposition
|
|
5
|
-
prepend Spree::ServiceModule::Base
|
|
6
|
-
|
|
7
|
-
def call(classification:, position:)
|
|
8
|
-
Spree::Deprecation.warn(
|
|
9
|
-
"#{self.class.name} is deprecated and will be removed in Spree 5.5.",
|
|
10
|
-
caller_locations(2)
|
|
11
|
-
)
|
|
12
|
-
if position.is_a?(String) && !position.match(/^\d+$/)
|
|
13
|
-
return failure(nil, I18n.t('errors.messages.not_a_number'))
|
|
14
|
-
end
|
|
15
|
-
|
|
16
|
-
# Because position we get back is 0-indexed.
|
|
17
|
-
# acts_as_list is 1-indexed.
|
|
18
|
-
classification.insert_at(position.to_i + 1)
|
|
19
|
-
success(classification)
|
|
20
|
-
end
|
|
21
|
-
end
|
|
22
|
-
end
|
|
23
|
-
end
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
module Spree
|
|
2
|
-
module Core
|
|
3
|
-
module ControllerHelpers
|
|
4
|
-
# @deprecated This module is deprecated and will be removed in Spree 5.5.
|
|
5
|
-
module Common
|
|
6
|
-
def self.included(base)
|
|
7
|
-
Spree::Deprecation.warn(
|
|
8
|
-
'Spree::Core::ControllerHelpers::Common is deprecated and will be removed in Spree 5.5.'
|
|
9
|
-
)
|
|
10
|
-
end
|
|
11
|
-
end
|
|
12
|
-
end
|
|
13
|
-
end
|
|
14
|
-
end
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
module Spree
|
|
2
|
-
module Core
|
|
3
|
-
module TokenGenerator
|
|
4
|
-
def generate_token(model_class = Spree::Order)
|
|
5
|
-
Spree::Deprecation.warn('generate_token is deprecated and will be removed in Spree 5.5. Please use Rails secure token generator: https://api.rubyonrails.org/classes/ActiveRecord/SecureToken/ClassMethods.html')
|
|
6
|
-
loop do
|
|
7
|
-
token = "#{random_token}#{unique_ending}"
|
|
8
|
-
break token unless model_class.exists?(token: token)
|
|
9
|
-
end
|
|
10
|
-
end
|
|
11
|
-
|
|
12
|
-
private
|
|
13
|
-
|
|
14
|
-
def random_token
|
|
15
|
-
SecureRandom.urlsafe_base64(nil, false)
|
|
16
|
-
end
|
|
17
|
-
|
|
18
|
-
def unique_ending
|
|
19
|
-
(Time.now.to_f * 1000).to_i
|
|
20
|
-
end
|
|
21
|
-
end
|
|
22
|
-
end
|
|
23
|
-
end
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
module Spree
|
|
2
|
-
# @deprecated Use the integer constant directly instead, eg. `2_147_483_647` for 4-byte signed integer max.
|
|
3
|
-
# This module will be removed in Spree 5.5.
|
|
4
|
-
module DatabaseTypeUtilities
|
|
5
|
-
# Maximum value for a 4-byte signed integer (default database integer type)
|
|
6
|
-
INTEGER_MAX = (2**31) - 1
|
|
7
|
-
|
|
8
|
-
def self.maximum_value_for(data_type)
|
|
9
|
-
Spree::Deprecation.warn(
|
|
10
|
-
'Spree::DatabaseTypeUtilities.maximum_value_for is deprecated and will be removed in Spree 5.5. ' \
|
|
11
|
-
'Use the integer constant directly instead, eg. 2_147_483_647 for 4-byte signed integer max.'
|
|
12
|
-
)
|
|
13
|
-
|
|
14
|
-
case data_type
|
|
15
|
-
when :integer
|
|
16
|
-
INTEGER_MAX
|
|
17
|
-
else
|
|
18
|
-
raise ArgumentError, 'Currently only :integer argument is acceptable'
|
|
19
|
-
end
|
|
20
|
-
end
|
|
21
|
-
end
|
|
22
|
-
end
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
# Fake ability for testing administration
|
|
2
|
-
class BarAbility
|
|
3
|
-
include CanCan::Ability
|
|
4
|
-
|
|
5
|
-
def initialize(user)
|
|
6
|
-
user ||= Spree::User.new
|
|
7
|
-
if user.has_spree_role? 'bar'
|
|
8
|
-
# allow dispatch to :admin, :index, and :show on Spree::Order
|
|
9
|
-
can [:admin, :index, :show], Spree::Order
|
|
10
|
-
# allow dispatch to :index, :show, :create and :update shipments on the admin
|
|
11
|
-
can [:admin, :manage], Spree::Shipment
|
|
12
|
-
end
|
|
13
|
-
end
|
|
14
|
-
end
|