spree_core 2.2.14 → 2.3.0
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.coffee → spree.js.coffee.erb} +11 -2
- data/app/controllers/spree/base_controller.rb +1 -0
- data/app/helpers/spree/base_helper.rb +5 -6
- data/app/helpers/spree/orders_helper.rb +4 -0
- data/app/helpers/spree/products_helper.rb +8 -7
- data/app/mailers/spree/base_mailer.rb +2 -2
- data/app/mailers/spree/order_mailer.rb +2 -2
- data/app/mailers/spree/shipment_mailer.rb +1 -1
- data/app/mailers/spree/test_mailer.rb +1 -1
- data/app/models/spree/ability.rb +15 -16
- data/app/models/spree/address.rb +3 -6
- data/app/models/spree/adjustment.rb +2 -2
- data/app/models/spree/alert.rb +1 -1
- data/app/models/spree/app_configuration.rb +17 -20
- data/app/models/spree/asset.rb +2 -2
- data/app/models/spree/base.rb +9 -0
- data/app/models/spree/calculator.rb +1 -1
- data/app/models/spree/calculator/flat_rate.rb +1 -1
- data/app/models/spree/calculator/flexi_rate.rb +1 -1
- data/app/models/spree/calculator/price_sack.rb +1 -3
- data/app/models/spree/calculator/shipping/flat_rate.rb +1 -1
- data/app/models/spree/calculator/shipping/flexi_rate.rb +1 -1
- data/app/models/spree/calculator/shipping/per_item.rb +1 -1
- data/app/models/spree/calculator/shipping/price_sack.rb +1 -3
- data/app/models/spree/classification.rb +1 -1
- data/app/models/spree/configuration.rb +1 -1
- data/app/models/spree/country.rb +1 -1
- data/app/models/spree/credit_card.rb +8 -12
- data/app/models/spree/gateway.rb +0 -3
- data/app/models/spree/gateway/bogus.rb +2 -3
- data/app/models/spree/image.rb +3 -1
- data/app/models/spree/inventory_unit.rb +5 -6
- data/app/models/spree/item_adjustments.rb +3 -4
- data/app/models/spree/legacy_user.rb +1 -1
- data/app/models/spree/line_item.rb +6 -13
- data/app/models/spree/log_entry.rb +1 -1
- data/app/models/spree/option_type.rb +1 -1
- data/app/models/spree/option_value.rb +1 -3
- data/app/models/spree/order.rb +52 -70
- data/app/models/spree/order/checkout.rb +17 -10
- data/app/models/spree/order/currency_updater.rb +1 -1
- data/app/models/spree/order_contents.rb +7 -4
- data/app/models/spree/order_populator.rb +1 -1
- data/app/models/spree/order_updater.rb +8 -21
- data/app/models/spree/payment.rb +26 -12
- data/app/models/spree/payment/processing.rb +5 -16
- data/app/models/spree/payment_capture_event.rb +1 -1
- data/app/models/spree/payment_method.rb +2 -2
- data/app/models/spree/payment_method/check.rb +0 -2
- data/app/models/spree/preference.rb +1 -31
- data/app/models/spree/preferences/configuration.rb +2 -6
- data/app/models/spree/preferences/preferable.rb +46 -74
- data/app/models/spree/preferences/preferable_class_methods.rb +11 -46
- data/app/models/spree/preferences/scoped_store.rb +33 -0
- data/app/models/spree/preferences/store.rb +8 -7
- data/app/models/spree/price.rb +1 -3
- data/app/models/spree/product.rb +59 -87
- data/app/models/spree/product/scopes.rb +22 -13
- data/app/models/spree/product_option_type.rb +1 -1
- data/app/models/spree/product_property.rb +1 -3
- data/app/models/spree/product_scope/scopes.rb +1 -1
- data/app/models/spree/promotion.rb +4 -5
- data/app/models/spree/promotion/actions/create_adjustment.rb +11 -2
- data/app/models/spree/promotion/actions/create_item_adjustments.rb +19 -2
- data/app/models/spree/promotion/actions/create_line_items.rb +2 -12
- data/app/models/spree/promotion/rules/user.rb +5 -1
- data/app/models/spree/promotion_action.rb +1 -1
- data/app/models/spree/promotion_action_line_item.rb +1 -1
- data/app/models/spree/promotion_handler/cart.rb +2 -14
- data/app/models/spree/promotion_handler/coupon.rb +3 -13
- data/app/models/spree/promotion_rule.rb +1 -1
- data/app/models/spree/property.rb +1 -3
- data/app/models/spree/prototype.rb +1 -1
- data/app/models/spree/return_authorization.rb +4 -10
- data/app/models/spree/role.rb +1 -1
- data/app/models/spree/shipment.rb +1 -9
- data/app/models/spree/shipping_category.rb +3 -3
- data/app/models/spree/shipping_method.rb +1 -1
- data/app/models/spree/shipping_method_category.rb +2 -2
- data/app/models/spree/shipping_rate.rb +3 -3
- data/app/models/spree/state.rb +1 -1
- data/app/models/spree/state_change.rb +1 -1
- data/app/models/spree/stock/availability_validator.rb +7 -3
- data/app/models/spree/stock/package.rb +0 -23
- data/app/models/spree/stock/splitter/backordered.rb +1 -1
- data/app/models/spree/stock/splitter/shipping_category.rb +1 -1
- data/app/models/spree/stock/splitter/weight.rb +1 -1
- data/app/models/spree/stock_item.rb +7 -10
- data/app/models/spree/stock_location.rb +2 -6
- data/app/models/spree/stock_movement.rb +1 -3
- data/app/models/spree/stock_transfer.rb +1 -3
- data/app/models/spree/store.rb +33 -0
- data/app/models/spree/tax_category.rb +2 -2
- data/app/models/spree/tax_rate.rb +21 -52
- data/app/models/spree/taxon.rb +9 -8
- data/app/models/spree/taxonomy.rb +1 -1
- data/app/models/spree/tracker.rb +1 -1
- data/app/models/spree/variant.rb +13 -15
- data/app/models/spree/variant/scopes.rb +1 -1
- data/app/models/spree/zone.rb +22 -22
- data/app/models/spree/zone_member.rb +2 -2
- data/config/initializers/user_class_extensions.rb +0 -8
- data/config/locales/en.yml +7 -42
- data/db/default/spree/countries.rb +2 -3
- data/db/default/spree/stores.rb +9 -0
- data/db/migrate/20130611054351_rename_shipping_methods_zones_to_spree_shipping_methods_zones.rb +0 -5
- data/db/migrate/20130807024301_upgrade_adjustments.rb +4 -5
- data/db/migrate/20130807024302_rename_adjustment_fields.rb +5 -2
- data/db/migrate/20131118183431_add_line_item_id_to_spree_inventory_units.rb +1 -1
- data/db/migrate/20140106065820_remove_value_type_from_spree_preferences.rb +8 -0
- data/db/migrate/20140227112348_add_preference_store_to_everything.rb +8 -0
- data/db/migrate/20140309023735_migrate_old_preferences.rb +23 -0
- data/db/migrate/20140309024355_create_spree_stores.rb +25 -0
- data/db/migrate/20140309033438_create_store_from_preferences.rb +30 -0
- data/db/migrate/20140315053743_add_timestamps_to_spree_assets.rb +6 -0
- data/db/migrate/20140331100557_add_additional_store_fields.rb +8 -0
- data/db/migrate/20140410141842_add_many_missing_indexes.rb +18 -0
- data/db/migrate/20140410150358_correct_some_polymorphic_index_and_add_more_missing.rb +66 -0
- data/db/migrate/20140508151342_change_spree_price_amount_precision.rb +1 -1
- data/db/migrate/20140518174634_add_token_to_spree_orders.rb +5 -0
- data/db/migrate/20140530024945_move_order_token_from_tokenized_permission.rb +29 -0
- data/db/migrate/20140601011216_set_shipment_total_for_users_upgrading.rb +5 -3
- data/db/migrate/20140604135309_drop_credit_card_first_name_and_last_name.rb +6 -0
- data/lib/generators/spree/dummy/dummy_generator.rb +1 -0
- data/lib/generators/spree/dummy/templates/initializers/devise.rb +3 -0
- data/lib/generators/spree/dummy/templates/rails/routes.rb +0 -1
- data/lib/generators/spree/install/install_generator.rb +8 -17
- data/lib/generators/spree/install/templates/config/initializers/spree.rb +2 -2
- data/lib/spree/core.rb +13 -9
- data/lib/spree/core/calculated_adjustments.rb +1 -1
- data/lib/spree/core/controller_helpers/auth.rb +27 -18
- data/lib/spree/core/controller_helpers/common.rb +2 -2
- data/lib/spree/core/controller_helpers/order.rb +15 -24
- data/lib/spree/core/controller_helpers/store.rb +19 -0
- data/lib/spree/core/delegate_belongs_to.rb +2 -2
- data/lib/spree/core/engine.rb +0 -10
- data/lib/spree/core/importer.rb +1 -0
- data/lib/spree/core/importer/order.rb +16 -44
- data/lib/spree/core/importer/product.rb +62 -0
- data/lib/spree/core/product_filters.rb +0 -4
- data/lib/spree/core/routes.rb +4 -6
- data/lib/spree/core/validators/email.rb +23 -1
- data/lib/spree/core/version.rb +1 -1
- data/lib/spree/money.rb +1 -169
- data/lib/spree/permitted_attributes.rb +6 -4
- data/lib/spree/testing_support/authorization_helpers.rb +23 -21
- data/lib/spree/testing_support/capybara_ext.rb +11 -21
- data/lib/spree/testing_support/common_rake.rb +3 -1
- data/lib/spree/testing_support/controller_requests.rb +0 -2
- data/lib/spree/testing_support/factories/credit_card_factory.rb +1 -1
- data/lib/spree/testing_support/factories/line_item_factory.rb +4 -1
- data/lib/spree/testing_support/factories/order_factory.rb +5 -4
- data/lib/spree/testing_support/factories/product_factory.rb +0 -4
- data/lib/spree/testing_support/factories/promotion_factory.rb +5 -7
- data/lib/spree/testing_support/factories/shipment_factory.rb +0 -1
- data/lib/spree/testing_support/factories/stock_factory.rb +2 -2
- data/lib/spree/testing_support/factories/store_factory.rb +8 -0
- data/lib/spree/testing_support/preferences.rb +3 -3
- data/lib/tasks/core.rake +2 -2
- metadata +48 -39
- data/app/models/spree/stock/order_counter.rb +0 -55
- data/app/models/spree/tokenized_permission.rb +0 -6
- data/app/views/spree/shared/_routes.html.erb +0 -13
- data/db/migrate/20140804185157_add_default_to_shipment_cost.rb +0 -10
- data/db/migrate/20141021194502_add_state_lock_version_to_order.rb +0 -5
- data/lib/spree/core/adjustment_source.rb +0 -26
- data/lib/spree/core/mail_interceptor.rb +0 -22
- data/lib/spree/core/mail_method.rb +0 -27
- data/lib/spree/core/mail_settings.rb +0 -55
- data/lib/spree/core/ransackable_attributes.rb +0 -15
- data/lib/spree/core/token_resource.rb +0 -27
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f36768d9e812dac5278cad4d5d1ff827fbd70c0e
|
4
|
+
data.tar.gz: 89173525bdf6d17811cfa3f56d9171bed41ee706
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 736e2e5fe347e4bced168f0829d3122572c09c578796d106380714881bd596548968cac77646f40ae246740a5535b70e1c1f1a04446ebb120054ee1d43dccdd7
|
7
|
+
data.tar.gz: ec2a0650143117254b28401f5c24d0ca2514ff443d7536c7a16e80c450a92745d9f81be46632c6ab1d3cd5227cf9a95d0b9cb72db83f8eeac27386590c1785be
|
@@ -3,6 +3,12 @@ class window.Spree
|
|
3
3
|
@ready: (callback) ->
|
4
4
|
jQuery(document).ready(callback)
|
5
5
|
|
6
|
+
@mountedAt: ->
|
7
|
+
"<%= Rails.application.routes.url_helpers.spree_path %>"
|
8
|
+
|
9
|
+
@pathFor: (path) ->
|
10
|
+
"#{window.location.origin}#{@mountedAt()}#{path}"
|
11
|
+
|
6
12
|
# Helper function to take a URL and add query parameters to it
|
7
13
|
# Uses the JSUri library from here: https://code.google.com/p/jsuri/
|
8
14
|
# Thanks to Jake Moffat for the suggestion: https://twitter.com/jakeonrails/statuses/321776992221544449
|
@@ -12,8 +18,6 @@ class window.Spree
|
|
12
18
|
if query
|
13
19
|
$.each query, (key, value) ->
|
14
20
|
uri.addQueryParam(key, value)
|
15
|
-
if Spree.api_key
|
16
|
-
uri.addQueryParam('token', Spree.api_key)
|
17
21
|
return uri
|
18
22
|
|
19
23
|
# Helper method in case people want to call uri rather than url
|
@@ -38,3 +42,8 @@ class window.Spree
|
|
38
42
|
url = url_or_settings['url']
|
39
43
|
delete url_or_settings['url']
|
40
44
|
$.ajax(Spree.url(url).toString(), url_or_settings)
|
45
|
+
|
46
|
+
@routes:
|
47
|
+
states_search: @pathFor('api/states')
|
48
|
+
apply_coupon_code: (order_id) ->
|
49
|
+
Spree.pathFor("api/orders/#{order_id}/apply_coupon_code")
|
@@ -7,6 +7,7 @@ class Spree::BaseController < ApplicationController
|
|
7
7
|
include Spree::Core::ControllerHelpers::SSL
|
8
8
|
include Spree::Core::ControllerHelpers::Common
|
9
9
|
include Spree::Core::ControllerHelpers::Search
|
10
|
+
include Spree::Core::ControllerHelpers::Store
|
10
11
|
include Spree::Core::ControllerHelpers::StrongParameters
|
11
12
|
|
12
13
|
respond_to :html
|
@@ -46,8 +46,8 @@ module Spree
|
|
46
46
|
end
|
47
47
|
|
48
48
|
meta.reverse_merge!({
|
49
|
-
keywords:
|
50
|
-
description:
|
49
|
+
keywords: current_store.meta_keywords,
|
50
|
+
description: current_store.meta_description,
|
51
51
|
})
|
52
52
|
meta
|
53
53
|
end
|
@@ -68,7 +68,7 @@ module Spree
|
|
68
68
|
end
|
69
69
|
|
70
70
|
def flash_messages(opts = {})
|
71
|
-
opts[:ignore_types] = [:
|
71
|
+
opts[:ignore_types] = [:order_completed].concat(Array(opts[:ignore_types]) || [])
|
72
72
|
|
73
73
|
flash.each do |msg_type, text|
|
74
74
|
unless opts[:ignore_types].include?(msg_type)
|
@@ -118,7 +118,7 @@ module Spree
|
|
118
118
|
countries.collect do |country|
|
119
119
|
country.name = Spree.t(country.iso, scope: 'country_names', default: country.name)
|
120
120
|
country
|
121
|
-
end.
|
121
|
+
end.sort { |a, b| a.name.parameterize <=> b.name.parameterize }
|
122
122
|
end
|
123
123
|
|
124
124
|
def seo_url(taxon)
|
@@ -162,10 +162,9 @@ module Spree
|
|
162
162
|
end
|
163
163
|
|
164
164
|
private
|
165
|
-
|
166
165
|
# Returns style of image or nil
|
167
166
|
def image_style_from_method_name(method_name)
|
168
|
-
if
|
167
|
+
if style = method_name.to_s.sub(/_image$/, '')
|
169
168
|
possible_styles = Spree::Image.attachment_definitions[:attachment][:styles]
|
170
169
|
style if style.in? possible_styles.with_indifferent_access
|
171
170
|
end
|
@@ -11,13 +11,14 @@ module Spree
|
|
11
11
|
|
12
12
|
# returns the formatted price for the specified variant as a difference from product price
|
13
13
|
def variant_price_diff(variant)
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
diff
|
18
|
-
|
19
|
-
|
20
|
-
|
14
|
+
diff = variant.amount_in(current_currency) - variant.product.amount_in(current_currency)
|
15
|
+
return nil if diff == 0
|
16
|
+
amount = Spree::Money.new(diff.abs, { currency: current_currency }).to_html
|
17
|
+
if diff > 0
|
18
|
+
"(#{Spree.t(:add)}: #{amount})".html_safe
|
19
|
+
else
|
20
|
+
"(#{Spree.t(:subtract)}: #{amount})".html_safe
|
21
|
+
end
|
21
22
|
end
|
22
23
|
|
23
24
|
# returns the formatted full price for the variant, if at least one variant price differs from product price
|
@@ -3,14 +3,14 @@ module Spree
|
|
3
3
|
def confirm_email(order, resend = false)
|
4
4
|
@order = order.respond_to?(:id) ? order : Spree::Order.find(order)
|
5
5
|
subject = (resend ? "[#{Spree.t(:resend).upcase}] " : '')
|
6
|
-
subject += "#{Spree::
|
6
|
+
subject += "#{Spree::Store.current.name} #{Spree.t('order_mailer.confirm_email.subject')} ##{@order.number}"
|
7
7
|
mail(to: @order.email, from: from_address, subject: subject)
|
8
8
|
end
|
9
9
|
|
10
10
|
def cancel_email(order, resend = false)
|
11
11
|
@order = order.respond_to?(:id) ? order : Spree::Order.find(order)
|
12
12
|
subject = (resend ? "[#{Spree.t(:resend).upcase}] " : '')
|
13
|
-
subject += "#{Spree::
|
13
|
+
subject += "#{Spree::Store.current.name} #{Spree.t('order_mailer.cancel_email.subject')} ##{@order.number}"
|
14
14
|
mail(to: @order.email, from: from_address, subject: subject)
|
15
15
|
end
|
16
16
|
end
|
@@ -3,7 +3,7 @@ module Spree
|
|
3
3
|
def shipped_email(shipment, resend = false)
|
4
4
|
@shipment = shipment.respond_to?(:id) ? shipment : Spree::Shipment.find(shipment)
|
5
5
|
subject = (resend ? "[#{Spree.t(:resend).upcase}] " : '')
|
6
|
-
subject += "#{Spree::
|
6
|
+
subject += "#{Spree::Store.current.name} #{Spree.t('shipment_mailer.shipped_email.subject')} ##{@shipment.order.number}"
|
7
7
|
mail(to: @shipment.order.email, from: from_address, subject: subject)
|
8
8
|
end
|
9
9
|
end
|
@@ -2,7 +2,7 @@ module Spree
|
|
2
2
|
class TestMailer < BaseMailer
|
3
3
|
def test_email(user)
|
4
4
|
recipient = user.respond_to?(:id) ? user : Spree.user_class.find(user)
|
5
|
-
subject = "#{Spree::
|
5
|
+
subject = "#{Spree::Store.current.name} #{Spree.t('test_mailer.test_email.subject')}"
|
6
6
|
mail(to: recipient.email, from: from_address, subject: subject)
|
7
7
|
end
|
8
8
|
end
|
data/app/models/spree/ability.rb
CHANGED
@@ -31,36 +31,35 @@ module Spree
|
|
31
31
|
alias_action :new, to: :create
|
32
32
|
alias_action :new_action, to: :create
|
33
33
|
alias_action :show, to: :read
|
34
|
+
alias_action :index, :read, to: :display
|
35
|
+
|
34
36
|
|
35
37
|
user ||= Spree.user_class.new
|
36
38
|
|
37
39
|
if user.respond_to?(:has_spree_role?) && user.has_spree_role?('admin')
|
38
40
|
can :manage, :all
|
39
41
|
else
|
40
|
-
can
|
41
|
-
can
|
42
|
-
can
|
42
|
+
can :display, Country
|
43
|
+
can :display, OptionType
|
44
|
+
can :display, OptionValue
|
43
45
|
can :create, Order
|
44
|
-
can :read, Order do |order, token|
|
45
|
-
order.user == user || order.
|
46
|
-
end
|
47
|
-
can :update, Order do |order, token|
|
48
|
-
order.user == user || order.token && token == order.token
|
46
|
+
can [:read, :update], Order do |order, token|
|
47
|
+
order.user == user || order.guest_token && token == order.guest_token
|
49
48
|
end
|
50
49
|
can [:create, :read], Address
|
51
50
|
can :update, Address do |address|
|
52
51
|
user.bill_address == address || user.ship_address == address
|
53
52
|
end
|
54
|
-
can
|
55
|
-
can
|
56
|
-
can
|
53
|
+
can :display, Product
|
54
|
+
can :display, ProductProperty
|
55
|
+
can :display, Property
|
57
56
|
can :create, Spree.user_class
|
58
57
|
can [:read, :update, :destroy], Spree.user_class, id: user.id
|
59
|
-
can
|
60
|
-
can
|
61
|
-
can
|
62
|
-
can
|
63
|
-
can
|
58
|
+
can :display, State
|
59
|
+
can :display, Taxon
|
60
|
+
can :display, Taxonomy
|
61
|
+
can :display, Variant
|
62
|
+
can :display, Zone
|
64
63
|
end
|
65
64
|
|
66
65
|
# Include any abilities registered by extensions, etc.
|
data/app/models/spree/address.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
module Spree
|
2
|
-
class Address <
|
2
|
+
class Address < Spree::Base
|
3
3
|
belongs_to :country, class_name: "Spree::Country"
|
4
4
|
belongs_to :state, class_name: "Spree::State"
|
5
5
|
|
@@ -14,17 +14,14 @@ module Spree
|
|
14
14
|
alias_attribute :first_name, :firstname
|
15
15
|
alias_attribute :last_name, :lastname
|
16
16
|
|
17
|
-
|
18
|
-
self.whitelisted_ransackable_attributes = %w[firstname lastname]
|
19
|
-
|
20
17
|
def self.build_default
|
21
18
|
country = Spree::Country.find(Spree::Config[:default_country_id]) rescue Spree::Country.first
|
22
19
|
new(country: country)
|
23
20
|
end
|
24
21
|
|
25
22
|
def self.default(user = nil, kind = "bill")
|
26
|
-
if user
|
27
|
-
|
23
|
+
if user
|
24
|
+
user.send(:"#{kind}_address") || build_default
|
28
25
|
else
|
29
26
|
build_default
|
30
27
|
end
|
@@ -21,8 +21,8 @@
|
|
21
21
|
# total. This allows an adjustment to be preserved if it becomes ineligible so
|
22
22
|
# it might be reinstated.
|
23
23
|
module Spree
|
24
|
-
class Adjustment <
|
25
|
-
belongs_to :adjustable, polymorphic: true
|
24
|
+
class Adjustment < Spree::Base
|
25
|
+
belongs_to :adjustable, polymorphic: true
|
26
26
|
belongs_to :source, polymorphic: true
|
27
27
|
belongs_to :order, class_name: "Spree::Order"
|
28
28
|
|
data/app/models/spree/alert.rb
CHANGED
@@ -19,7 +19,6 @@ require "spree/core/search/base"
|
|
19
19
|
|
20
20
|
module Spree
|
21
21
|
class AppConfiguration < Preferences::Configuration
|
22
|
-
|
23
22
|
# Alphabetized to more easily lookup particular preferences
|
24
23
|
preference :address_requires_state, :boolean, default: true # should state/state_name be required
|
25
24
|
preference :admin_interface_logo, :string, default: 'logo/spree_50.png'
|
@@ -46,9 +45,6 @@ module Spree
|
|
46
45
|
preference :currency_thousands_separator, :string, default: ","
|
47
46
|
preference :display_currency, :boolean, default: false
|
48
47
|
preference :default_country_id, :integer
|
49
|
-
preference :default_meta_description, :string, default: 'Spree demo site'
|
50
|
-
preference :default_meta_keywords, :string, default: 'spree, demo'
|
51
|
-
preference :default_seo_title, :string, default: ''
|
52
48
|
preference :dismissed_spree_alerts, :string, default: ''
|
53
49
|
preference :hide_cents, :boolean, default: false
|
54
50
|
preference :last_check_for_spree_alerts, :string, default: nil
|
@@ -56,7 +52,6 @@ module Spree
|
|
56
52
|
preference :logo, :string, default: 'logo/spree_50.png'
|
57
53
|
preference :max_level_in_taxons_menu, :integer, default: 1 # maximum nesting level in taxons menu
|
58
54
|
preference :orders_per_page, :integer, default: 15
|
59
|
-
preference :prices_inc_tax, :boolean, default: false
|
60
55
|
preference :properties_per_page, :integer, default: 15
|
61
56
|
preference :products_per_page, :integer, default: 12
|
62
57
|
preference :promotions_per_page, :integer, default: 15
|
@@ -68,27 +63,12 @@ module Spree
|
|
68
63
|
preference :show_variant_full_price, :boolean, default: false #Displays variant full price or difference with product price. Default false to be compatible with older behavior
|
69
64
|
preference :show_products_without_price, :boolean, default: false
|
70
65
|
preference :show_raw_product_description, :boolean, :default => false
|
71
|
-
preference :site_name, :string, default: 'Spree Demo Site'
|
72
|
-
preference :site_url, :string, default: 'demo.spreecommerce.com'
|
73
66
|
preference :tax_using_ship_address, :boolean, default: true
|
74
67
|
preference :track_inventory_levels, :boolean, default: true # Determines whether to track on_hand values for variants / products.
|
75
68
|
|
76
69
|
# Default mail headers settings
|
77
|
-
preference :enable_mail_delivery, :boolean, :default => false
|
78
70
|
preference :send_core_emails, :boolean, :default => true
|
79
71
|
preference :mails_from, :string, :default => 'spree@example.com'
|
80
|
-
preference :mail_bcc, :string, :default => 'spree@example.com'
|
81
|
-
preference :intercept_email, :string, :default => nil
|
82
|
-
|
83
|
-
# Default smtp settings
|
84
|
-
preference :override_actionmailer_config, :boolean, :default => true
|
85
|
-
preference :mail_host, :string, :default => 'localhost'
|
86
|
-
preference :mail_domain, :string, :default => 'localhost'
|
87
|
-
preference :mail_port, :integer, :default => 25
|
88
|
-
preference :secure_connection_type, :string, :default => Core::MailSettings::SECURE_CONNECTION_TYPES[0]
|
89
|
-
preference :mail_auth_type, :string, :default => Core::MailSettings::MAIL_AUTH[0]
|
90
|
-
preference :smtp_username, :string
|
91
|
-
preference :smtp_password, :string
|
92
72
|
|
93
73
|
# searcher_class allows spree extension writers to provide their own Search class
|
94
74
|
def searcher_class
|
@@ -98,5 +78,22 @@ module Spree
|
|
98
78
|
def searcher_class=(sclass)
|
99
79
|
@searcher_class = sclass
|
100
80
|
end
|
81
|
+
|
82
|
+
# all the following can be deprecated when store prefs are no longer supported
|
83
|
+
DEPRECATED_STORE_PREFERENCES = {
|
84
|
+
site_name: :name,
|
85
|
+
site_url: :url,
|
86
|
+
default_meta_description: :meta_description,
|
87
|
+
default_meta_keywords: :meta_keywords,
|
88
|
+
default_seo_title: :seo_title,
|
89
|
+
}
|
90
|
+
|
91
|
+
DEPRECATED_STORE_PREFERENCES.each do |old_preference_name, store_method|
|
92
|
+
# support all the old preference methods with a warning
|
93
|
+
define_method "preferred_#{old_preference_name}" do
|
94
|
+
ActiveSupport::Deprecation.warn("#{old_preference_name} is no longer supported on Spree::Config, please access it through #{store_method} on Spree::Store")
|
95
|
+
Store.default.send(store_method)
|
96
|
+
end
|
97
|
+
end
|
101
98
|
end
|
102
99
|
end
|
data/app/models/spree/asset.rb
CHANGED
@@ -0,0 +1,9 @@
|
|
1
|
+
class Spree::Base < ActiveRecord::Base
|
2
|
+
include Spree::Preferences::Preferable
|
3
|
+
serialize :preferences, Hash
|
4
|
+
after_initialize do
|
5
|
+
self.preferences = default_preferences.merge(preferences) if has_attribute?(:preferences)
|
6
|
+
end
|
7
|
+
|
8
|
+
self.abstract_class = true
|
9
|
+
end
|
@@ -3,7 +3,7 @@ require_dependency 'spree/calculator'
|
|
3
3
|
module Spree
|
4
4
|
class Calculator::FlatRate < Calculator
|
5
5
|
preference :amount, :decimal, default: 0
|
6
|
-
preference :currency, :string, default: Spree::Config[:currency]
|
6
|
+
preference :currency, :string, default: ->{ Spree::Config[:currency] }
|
7
7
|
|
8
8
|
def self.description
|
9
9
|
Spree.t(:flat_rate_per_order)
|
@@ -5,7 +5,7 @@ module Spree
|
|
5
5
|
preference :first_item, :decimal, default: 0.0
|
6
6
|
preference :additional_item, :decimal, default: 0.0
|
7
7
|
preference :max_items, :integer, default: 0
|
8
|
-
preference :currency, :string, default: Spree::Config[:currency]
|
8
|
+
preference :currency, :string, default: ->{ Spree::Config[:currency] }
|
9
9
|
|
10
10
|
def self.description
|
11
11
|
Spree.t(:flexible_rate)
|
@@ -1,13 +1,11 @@
|
|
1
1
|
require_dependency 'spree/calculator'
|
2
|
-
# For #to_d method on Ruby 1.8
|
3
|
-
require 'bigdecimal/util'
|
4
2
|
|
5
3
|
module Spree
|
6
4
|
class Calculator::PriceSack < Calculator
|
7
5
|
preference :minimal_amount, :decimal, default: 0
|
8
6
|
preference :normal_amount, :decimal, default: 0
|
9
7
|
preference :discount_amount, :decimal, default: 0
|
10
|
-
preference :currency, :string, default: Spree::Config[:currency]
|
8
|
+
preference :currency, :string, default: ->{ Spree::Config[:currency] }
|
11
9
|
|
12
10
|
def self.description
|
13
11
|
Spree.t(:price_sack)
|
@@ -4,7 +4,7 @@ module Spree
|
|
4
4
|
module Calculator::Shipping
|
5
5
|
class FlatRate < ShippingCalculator
|
6
6
|
preference :amount, :decimal, default: 0
|
7
|
-
preference :currency, :string, default: Spree::Config[:currency]
|
7
|
+
preference :currency, :string, default: ->{ Spree::Config[:currency] }
|
8
8
|
|
9
9
|
def self.description
|
10
10
|
Spree.t(:shipping_flat_rate_per_order)
|
@@ -6,7 +6,7 @@ module Spree
|
|
6
6
|
preference :first_item, :decimal, default: 0.0
|
7
7
|
preference :additional_item, :decimal, default: 0.0
|
8
8
|
preference :max_items, :integer, default: 0
|
9
|
-
preference :currency, :string, default: Spree::Config[:currency]
|
9
|
+
preference :currency, :string, default: ->{ Spree::Config[:currency] }
|
10
10
|
|
11
11
|
def self.description
|
12
12
|
Spree.t(:shipping_flexible_rate)
|
@@ -4,7 +4,7 @@ module Spree
|
|
4
4
|
module Calculator::Shipping
|
5
5
|
class PerItem < ShippingCalculator
|
6
6
|
preference :amount, :decimal, default: 0
|
7
|
-
preference :currency, :string, default: Spree::Config[:currency]
|
7
|
+
preference :currency, :string, default: ->{ Spree::Config[:currency] }
|
8
8
|
|
9
9
|
def self.description
|
10
10
|
Spree.t(:shipping_flat_rate_per_item)
|