spree_core 1.2.0.rc2 → 1.2.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.
- data/app/assets/images/noimage/large.png +0 -0
- data/app/assets/javascripts/admin/admin.js.erb +1 -0
- data/app/assets/javascripts/admin/product_autocomplete.js.erb +1 -0
- data/app/assets/javascripts/admin/shipping_methods.js.coffee +10 -0
- data/app/assets/javascripts/admin/zone.js.coffee +39 -0
- data/app/assets/javascripts/store/cart.js.coffee +4 -5
- data/app/assets/javascripts/store/product.js.coffee +1 -2
- data/app/controllers/spree/admin/general_settings_controller.rb +1 -1
- data/app/controllers/spree/admin/images_controller.rb +5 -13
- data/app/controllers/spree/admin/orders_controller.rb +3 -1
- data/app/controllers/spree/admin/products_controller.rb +2 -6
- data/app/controllers/spree/admin/prototypes_controller.rb +2 -2
- data/app/controllers/spree/checkout_controller.rb +12 -23
- data/app/controllers/spree/orders_controller.rb +1 -0
- data/app/helpers/spree/admin/general_settings_helper.rb +13 -0
- data/app/helpers/spree/admin/users_helper.rb +1 -1
- data/app/helpers/spree/base_helper.rb +9 -24
- data/app/helpers/spree/products_helper.rb +2 -6
- data/app/models/spree/ability.rb +3 -3
- data/app/models/spree/address.rb +1 -1
- data/app/models/spree/adjustment.rb +4 -0
- data/app/models/spree/app_configuration.rb +3 -1
- data/app/models/spree/credit_card.rb +1 -1
- data/app/models/spree/inventory_unit.rb +1 -1
- data/app/models/spree/line_item.rb +1 -1
- data/app/models/spree/order.rb +14 -1
- data/app/models/spree/order/checkout.rb +19 -5
- data/app/models/spree/product.rb +37 -29
- data/app/models/spree/product/scopes.rb +2 -2
- data/app/models/spree/shipping_rate.rb +10 -0
- data/app/models/spree/variant.rb +14 -8
- data/app/views/spree/admin/adjustments/_adjustments_table.html.erb +1 -1
- data/app/views/spree/admin/general_settings/edit.html.erb +15 -6
- data/app/views/spree/admin/general_settings/show.html.erb +6 -0
- data/app/views/spree/admin/images/_form.html.erb +4 -8
- data/app/views/spree/admin/orders/_form.html.erb +3 -3
- data/app/views/spree/admin/orders/_line_item.html.erb +2 -2
- data/app/views/spree/admin/orders/index.html.erb +5 -1
- data/app/views/spree/admin/payments/_list.html.erb +1 -1
- data/app/views/spree/admin/payments/index.html.erb +1 -1
- data/app/views/spree/admin/products/index.html.erb +1 -1
- data/app/views/spree/admin/reports/sales_total.html.erb +3 -3
- data/app/views/spree/admin/return_authorizations/_form.html.erb +1 -1
- data/app/views/spree/admin/return_authorizations/index.html.erb +1 -1
- data/app/views/spree/admin/shared/_order_details.html.erb +6 -6
- data/app/views/spree/admin/shared/_order_tabs.html.erb +2 -1
- data/app/views/spree/admin/shared/_update_order_state.js +1 -1
- data/app/views/spree/admin/shipments/edit.html.erb +1 -1
- data/app/views/spree/admin/shipments/index.html.erb +1 -1
- data/app/views/spree/admin/variants/_form.html.erb +2 -2
- data/app/views/spree/admin/variants/index.html.erb +1 -1
- data/app/views/spree/checkout/_address.html.erb +0 -6
- data/app/views/spree/checkout/_delivery.html.erb +1 -5
- data/app/views/spree/checkout/_summary.html.erb +4 -4
- data/app/views/spree/checkout/edit.html.erb +6 -0
- data/app/views/spree/order_mailer/cancel_email.text.erb +7 -7
- data/app/views/spree/order_mailer/confirm_email.text.erb +9 -8
- data/app/views/spree/orders/_adjustments.html.erb +1 -1
- data/app/views/spree/orders/_line_item.html.erb +2 -2
- data/app/views/spree/orders/edit.html.erb +2 -2
- data/app/views/spree/products/_cart_form.html.erb +1 -1
- data/app/views/spree/shared/_google_analytics.html.erb +16 -15
- data/app/views/spree/shared/_order_details.html.erb +24 -22
- data/app/views/spree/shared/_products.html.erb +1 -1
- data/app/views/spree/shipment_mailer/shipped_email.text.erb +6 -6
- data/config/locales/en.yml +21 -0
- data/config/routes.rb +1 -1
- data/lib/generators/spree/install/templates/config/initializers/spree.rb +1 -1
- data/lib/spree/core.rb +1 -0
- data/lib/spree/core/controller_helpers.rb +19 -1
- data/lib/spree/core/engine.rb +0 -1
- data/lib/spree/core/search/base.rb +5 -2
- data/lib/spree/core/version.rb +1 -1
- data/lib/spree/money.rb +16 -0
- data/lib/spree/product_filters.rb +4 -3
- metadata +64 -129
- data/app/assets/javascripts/admin/shipping_methods.js +0 -15
- data/app/assets/javascripts/admin/zone.js +0 -29
- data/app/views/spree/admin/payments/_transaction_list.html.erb +0 -24
- data/lib/spree/core/relation_serialization.rb +0 -9
|
Binary file
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
$ ->
|
|
2
|
+
($ 'input[type=checkbox]:not(:checked)').attr 'disabled', true if ($ '.categories input:checked').length > 0
|
|
3
|
+
categoryCheckboxes = '.categories input[type=checkbox]'
|
|
4
|
+
$(categoryCheckboxes).change ->
|
|
5
|
+
if ($ this).is(':checked')
|
|
6
|
+
($ categoryCheckboxes + ':not(:checked)').attr 'disabled', true
|
|
7
|
+
($ this).removeAttr 'disabled'
|
|
8
|
+
else
|
|
9
|
+
($ 'input[type=checkbox]').removeAttr 'disabled'
|
|
10
|
+
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
$ ->
|
|
2
|
+
if ($ '#country_based').is(':checked')
|
|
3
|
+
show_country()
|
|
4
|
+
else
|
|
5
|
+
show_state()
|
|
6
|
+
($ '#country_based').click ->
|
|
7
|
+
show_country()
|
|
8
|
+
|
|
9
|
+
($ '#state_based').click ->
|
|
10
|
+
show_state()
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
show_country = ->
|
|
14
|
+
($ '#state_members :input').each ->
|
|
15
|
+
($ this).prop 'disabled', true
|
|
16
|
+
|
|
17
|
+
($ '#state_members').hide()
|
|
18
|
+
($ '#zone_members :input').each ->
|
|
19
|
+
($ this).prop 'disabled', true
|
|
20
|
+
|
|
21
|
+
($ '#zone_members').hide()
|
|
22
|
+
($ '#country_members :input').each ->
|
|
23
|
+
($ this).prop 'disabled', false
|
|
24
|
+
|
|
25
|
+
($ '#country_members').show()
|
|
26
|
+
|
|
27
|
+
show_state = ->
|
|
28
|
+
($ '#country_members :input').each ->
|
|
29
|
+
($ this).prop 'disabled', true
|
|
30
|
+
|
|
31
|
+
($ '#country_members').hide()
|
|
32
|
+
($ '#zone_members :input').each ->
|
|
33
|
+
($ this).prop 'disabled', true
|
|
34
|
+
|
|
35
|
+
($ '#zone_members').hide()
|
|
36
|
+
($ '#state_members :input').each ->
|
|
37
|
+
($ this).prop 'disabled', false
|
|
38
|
+
|
|
39
|
+
($ '#state_members').show()
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
$ ->
|
|
2
2
|
if ($ 'form#update-cart').is('*')
|
|
3
|
-
($ 'form#update-cart a.delete').show().on 'click',
|
|
4
|
-
$
|
|
5
|
-
$
|
|
6
|
-
|
|
7
|
-
return
|
|
3
|
+
($ 'form#update-cart a.delete').show().on 'click', ->
|
|
4
|
+
($ this).parents('.line-item').first().find('input.line_item_quantity').val 0
|
|
5
|
+
($ this).parents('form').first().submit()
|
|
6
|
+
false
|
|
@@ -7,7 +7,6 @@ add_image_handlers = ->
|
|
|
7
7
|
($ this).mouseout ->
|
|
8
8
|
($ 'ul.thumbnails li').removeClass 'selected'
|
|
9
9
|
($ event.currentTarget).parent('li').addClass 'selected'
|
|
10
|
-
|
|
11
10
|
false
|
|
12
11
|
|
|
13
12
|
($ 'ul.thumbnails li').on 'mouseenter', (event) ->
|
|
@@ -31,6 +30,6 @@ show_variant_images = (variant_id) ->
|
|
|
31
30
|
|
|
32
31
|
$ ->
|
|
33
32
|
add_image_handlers()
|
|
34
|
-
show_variant_images ($ '#product-variants input[type="radio"]').eq(0).attr('value') if ($ '#product-variants input[type=radio]').length > 0
|
|
33
|
+
show_variant_images ($ '#product-variants input[type="radio"]').eq(0).attr('value') if ($ '#product-variants input[type="radio"]').length > 0
|
|
35
34
|
($ '#product-variants input[type="radio"]').click (event) ->
|
|
36
35
|
show_variant_images @value
|
|
@@ -10,7 +10,7 @@ module Spree
|
|
|
10
10
|
@preferences = [:site_name, :default_seo_title, :default_meta_keywords,
|
|
11
11
|
:default_meta_description, :site_url, :allow_ssl_in_production,
|
|
12
12
|
:allow_ssl_in_staging, :allow_ssl_in_development_and_test,
|
|
13
|
-
:check_for_spree_alerts]
|
|
13
|
+
:check_for_spree_alerts, :display_currency]
|
|
14
14
|
end
|
|
15
15
|
|
|
16
16
|
def update
|
|
@@ -19,30 +19,22 @@ module Spree
|
|
|
19
19
|
|
|
20
20
|
|
|
21
21
|
private
|
|
22
|
-
|
|
22
|
+
|
|
23
23
|
def location_after_save
|
|
24
24
|
admin_product_images_url(@product)
|
|
25
25
|
end
|
|
26
26
|
|
|
27
27
|
def load_data
|
|
28
|
-
@product = Product.
|
|
28
|
+
@product = Product.where(:permalink => params[:product_id]).first
|
|
29
29
|
@variants = @product.variants.collect do |variant|
|
|
30
30
|
[variant.options_text, variant.id]
|
|
31
31
|
end
|
|
32
|
-
@variants.insert(0, [I18n.t(:all),
|
|
32
|
+
@variants.insert(0, [I18n.t(:all), @product.master.id])
|
|
33
33
|
end
|
|
34
34
|
|
|
35
35
|
def set_viewable
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
@image.viewable = @product.master
|
|
39
|
-
else
|
|
40
|
-
@image.viewable_type = 'Spree::Variant'
|
|
41
|
-
@image.viewable_id = params[:image][:viewable_id]
|
|
42
|
-
end
|
|
43
|
-
else
|
|
44
|
-
@image.viewable = @product.master
|
|
45
|
-
end
|
|
36
|
+
@image.viewable_type = 'Spree::Variant'
|
|
37
|
+
@image.viewable_id = params[:image][:viewable_id]
|
|
46
38
|
end
|
|
47
39
|
|
|
48
40
|
def destroy_before
|
|
@@ -20,6 +20,8 @@ module Spree
|
|
|
20
20
|
created_at_gt = params[:q][:created_at_gt]
|
|
21
21
|
created_at_lt = params[:q][:created_at_lt]
|
|
22
22
|
|
|
23
|
+
params[:q].delete(:inventory_units_shipment_id_null) if params[:q][:inventory_units_shipment_id_null] == "0"
|
|
24
|
+
|
|
23
25
|
if !params[:q][:created_at_gt].blank?
|
|
24
26
|
params[:q][:created_at_gt] = Time.zone.parse(params[:q][:created_at_gt]).beginning_of_day rescue ""
|
|
25
27
|
end
|
|
@@ -34,7 +36,7 @@ module Spree
|
|
|
34
36
|
end
|
|
35
37
|
|
|
36
38
|
@search = Order.ransack(params[:q])
|
|
37
|
-
@orders = @search.result.includes([:user, :shipments, :payments]).page(params[:page]).per(Spree::Config[:orders_per_page])
|
|
39
|
+
@orders = @search.result(:distinct => true).includes([:user, :shipments, :payments]).page(params[:page]).per(Spree::Config[:orders_per_page])
|
|
38
40
|
|
|
39
41
|
# Restore dates
|
|
40
42
|
params[:q][:created_at_gt] = created_at_gt
|
|
@@ -19,13 +19,9 @@ module Spree
|
|
|
19
19
|
end
|
|
20
20
|
end
|
|
21
21
|
|
|
22
|
-
# override the destory method to set deleted_at value
|
|
23
|
-
# instead of actually deleting the product.
|
|
24
22
|
def destroy
|
|
25
|
-
@product = Product.
|
|
26
|
-
@product.
|
|
27
|
-
|
|
28
|
-
@product.variants_including_master.update_all(:deleted_at => Time.now)
|
|
23
|
+
@product = Product.where(:permalink => params[:id]).first!
|
|
24
|
+
@product.delete
|
|
29
25
|
|
|
30
26
|
flash.notice = I18n.t('notice_messages.product_deleted')
|
|
31
27
|
|
|
@@ -29,8 +29,8 @@ module Spree
|
|
|
29
29
|
private
|
|
30
30
|
|
|
31
31
|
def set_habtm_associations
|
|
32
|
-
@prototype.property_ids = params[:
|
|
33
|
-
@prototype.option_type_ids = params[:option_type][
|
|
32
|
+
@prototype.property_ids = params[:option_type].blank? ? [] : params[:property][:id]
|
|
33
|
+
@prototype.option_type_ids = params[:option_type].blank? ? [] : params[:option_type][:id]
|
|
34
34
|
end
|
|
35
35
|
end
|
|
36
36
|
end
|
|
@@ -39,14 +39,21 @@ module Spree
|
|
|
39
39
|
|
|
40
40
|
private
|
|
41
41
|
def ensure_valid_state
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
42
|
+
unless skip_state_validation?
|
|
43
|
+
if (params[:state] && !@order.checkout_steps.include?(params[:state])) ||
|
|
44
|
+
(!params[:state] && !@order.checkout_steps.include?(@order.state))
|
|
45
|
+
@order.state = 'cart'
|
|
46
|
+
redirect_to checkout_state_path(@order.checkout_steps.first)
|
|
47
|
+
end
|
|
47
48
|
end
|
|
48
49
|
end
|
|
49
50
|
|
|
51
|
+
# Should be overriden if you have areas of your checkout that don't match
|
|
52
|
+
# up to a step within checkout_steps, such as a registration step
|
|
53
|
+
def skip_state_validation?
|
|
54
|
+
false
|
|
55
|
+
end
|
|
56
|
+
|
|
50
57
|
def load_order
|
|
51
58
|
@order = current_order
|
|
52
59
|
redirect_to cart_path and return unless @order and @order.checkout_allowed?
|
|
@@ -56,24 +63,6 @@ module Spree
|
|
|
56
63
|
state_callback(:before)
|
|
57
64
|
end
|
|
58
65
|
|
|
59
|
-
def associate_user
|
|
60
|
-
if try_spree_current_user && @order
|
|
61
|
-
if @order.user.blank? || @order.email.blank?
|
|
62
|
-
@order.associate_user!(try_spree_current_user)
|
|
63
|
-
end
|
|
64
|
-
end
|
|
65
|
-
|
|
66
|
-
# This will trigger any "first order" promotions to be triggered
|
|
67
|
-
# Assuming of course that this session variable was set correctly in
|
|
68
|
-
# the authentication provider's registrations controller
|
|
69
|
-
if session[:spree_user_signup]
|
|
70
|
-
fire_event('spree.user.signup', :user => try_spree_current_user, :order => current_order(true))
|
|
71
|
-
end
|
|
72
|
-
|
|
73
|
-
session[:guest_token] = nil
|
|
74
|
-
session[:spree_user_signup] = nil
|
|
75
|
-
end
|
|
76
|
-
|
|
77
66
|
# Provides a route to redirect after order completion
|
|
78
67
|
def completion_route
|
|
79
68
|
order_path(@order)
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
module Spree
|
|
2
|
+
module Admin
|
|
3
|
+
module GeneralSettingsHelper
|
|
4
|
+
def currency_options
|
|
5
|
+
currencies = ::Money::Currency.table.map do |code, details|
|
|
6
|
+
iso = details[:iso_code]
|
|
7
|
+
[iso, "#{details[:name]} (#{iso})"]
|
|
8
|
+
end
|
|
9
|
+
options_from_collection_for_select(currencies, :first, :last)
|
|
10
|
+
end
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
end
|
|
@@ -3,7 +3,7 @@ module Spree
|
|
|
3
3
|
module UsersHelper
|
|
4
4
|
def list_roles(user)
|
|
5
5
|
# while testing spree-core itself user model does not have method roles
|
|
6
|
-
user.respond_to?(:
|
|
6
|
+
user.respond_to?(:spree_roles) ? user.spree_roles.collect { |role| role.name }.join(", ") : []
|
|
7
7
|
end
|
|
8
8
|
end
|
|
9
9
|
end
|
|
@@ -22,22 +22,13 @@ module Spree
|
|
|
22
22
|
text = "#{text}: (#{t('empty')})"
|
|
23
23
|
css_class = 'empty'
|
|
24
24
|
else
|
|
25
|
-
text = "#{text}: (#{current_order.item_count}) <span class='amount'>#{
|
|
25
|
+
text = "#{text}: (#{current_order.item_count}) <span class='amount'>#{current_order.display_total}</span>".html_safe
|
|
26
26
|
css_class = 'full'
|
|
27
27
|
end
|
|
28
28
|
|
|
29
29
|
link_to text, cart_path, :class => css_class
|
|
30
30
|
end
|
|
31
31
|
|
|
32
|
-
def order_subtotal(order, options={})
|
|
33
|
-
options.assert_valid_keys(:format_as_currency, :show_vat_text)
|
|
34
|
-
options.reverse_merge! :format_as_currency => true, :show_vat_text => true
|
|
35
|
-
|
|
36
|
-
amount = order.total
|
|
37
|
-
|
|
38
|
-
options.delete(:format_as_currency) ? number_to_currency(amount) : amount
|
|
39
|
-
end
|
|
40
|
-
|
|
41
32
|
def todays_short_date
|
|
42
33
|
utc_to_local(Time.now.utc).to_ordinalized_s(:stub)
|
|
43
34
|
end
|
|
@@ -96,12 +87,12 @@ module Spree
|
|
|
96
87
|
end
|
|
97
88
|
|
|
98
89
|
def flash_messages(opts = {})
|
|
99
|
-
|
|
100
|
-
opts[:ignore_types] && opts[:ignore_types].include?(msg_type)
|
|
101
|
-
end
|
|
90
|
+
opts[:ignore_types] = [:commerce_tracking].concat(opts[:ignore_types] || [])
|
|
102
91
|
|
|
103
92
|
flash.each do |msg_type, text|
|
|
104
|
-
|
|
93
|
+
unless opts[:ignore_types].include?(msg_type)
|
|
94
|
+
concat(content_tag :div, text, :class => "flash #{msg_type}")
|
|
95
|
+
end
|
|
105
96
|
end
|
|
106
97
|
nil
|
|
107
98
|
end
|
|
@@ -149,16 +140,6 @@ module Spree
|
|
|
149
140
|
end.sort { |a, b| a.name <=> b.name }
|
|
150
141
|
end
|
|
151
142
|
|
|
152
|
-
def format_price(price, options={})
|
|
153
|
-
options.assert_valid_keys(:show_vat_text)
|
|
154
|
-
formatted_price = number_to_currency price
|
|
155
|
-
if options[:show_vat_text]
|
|
156
|
-
I18n.t(:price_with_vat_included, :price => formatted_price)
|
|
157
|
-
else
|
|
158
|
-
formatted_price
|
|
159
|
-
end
|
|
160
|
-
end
|
|
161
|
-
|
|
162
143
|
# generates nested url to product based on supplied taxon
|
|
163
144
|
def seo_url(taxon, product = nil)
|
|
164
145
|
return spree.nested_taxons_path(taxon.permalink) if product.nil?
|
|
@@ -183,6 +164,10 @@ module Spree
|
|
|
183
164
|
Gem.available?(name)
|
|
184
165
|
end
|
|
185
166
|
|
|
167
|
+
def money(amount)
|
|
168
|
+
Spree::Money.new(amount)
|
|
169
|
+
end
|
|
170
|
+
|
|
186
171
|
def method_missing(method_name, *args, &block)
|
|
187
172
|
if image_style = image_style_from_method_name(method_name)
|
|
188
173
|
define_image_method(image_style)
|
|
@@ -6,9 +6,9 @@ module Spree
|
|
|
6
6
|
diff = variant.price - variant.product.price
|
|
7
7
|
return nil if diff == 0
|
|
8
8
|
if diff > 0
|
|
9
|
-
"(#{t(:add)}: #{
|
|
9
|
+
"(#{t(:add)}: #{Spree::Money.new(diff.abs)})"
|
|
10
10
|
else
|
|
11
|
-
"(#{t(:subtract)}: #{
|
|
11
|
+
"(#{t(:subtract)}: #{Spree::Money.new(diff.abs)})"
|
|
12
12
|
end
|
|
13
13
|
end
|
|
14
14
|
|
|
@@ -17,10 +17,6 @@ module Spree
|
|
|
17
17
|
raw(product.description.gsub(/(.*?)\r?\n\r?\n/m, '<p>\1</p>'))
|
|
18
18
|
end
|
|
19
19
|
|
|
20
|
-
def variant_images_hash(product)
|
|
21
|
-
product.variant_images.inject({}) { |h, img| (h[img.viewable_id] ||= []) << img; h }
|
|
22
|
-
end
|
|
23
|
-
|
|
24
20
|
def line_item_description(variant)
|
|
25
21
|
description = variant.product.description
|
|
26
22
|
if description.present?
|
data/app/models/spree/ability.rb
CHANGED
|
@@ -36,13 +36,13 @@ module Spree
|
|
|
36
36
|
can :manage, :all
|
|
37
37
|
else
|
|
38
38
|
#############################
|
|
39
|
-
can :read,
|
|
39
|
+
can :read, Spree.user_class do |resource|
|
|
40
40
|
resource == user
|
|
41
41
|
end
|
|
42
|
-
can :update,
|
|
42
|
+
can :update, Spree.user_class do |resource|
|
|
43
43
|
resource == user
|
|
44
44
|
end
|
|
45
|
-
can :create,
|
|
45
|
+
can :create, Spree.user_class
|
|
46
46
|
#############################
|
|
47
47
|
can :read, Order do |order, token|
|
|
48
48
|
order.user == user || order.token && token == order.token
|
data/app/models/spree/address.rb
CHANGED
|
@@ -41,6 +41,8 @@ module Spree
|
|
|
41
41
|
preference :checkout_zone, :string, :default => nil # replace with the name of a zone if you would like to limit the countries
|
|
42
42
|
preference :company, :boolean, :default => false # Request company field for billing and shipping addr
|
|
43
43
|
preference :create_inventory_units, :boolean, :default => true # should only be false when track_inventory_levels is false, also disables RMA's
|
|
44
|
+
preference :currency, :string, :default => "USD"
|
|
45
|
+
preference :display_currency, :boolean, :default => false
|
|
44
46
|
preference :default_country_id, :integer, :default => 214
|
|
45
47
|
preference :default_locale, :string, :default => Rails.application.config.i18n.default_locale || :en
|
|
46
48
|
preference :default_meta_description, :string, :default => 'Spree demo site'
|
|
@@ -48,7 +50,7 @@ module Spree
|
|
|
48
50
|
preference :default_seo_title, :string, :default => ''
|
|
49
51
|
preference :dismissed_spree_alerts, :string, :default => ''
|
|
50
52
|
preference :last_check_for_spree_alerts, :string, :default => nil
|
|
51
|
-
preference :layout, :string, :default => '
|
|
53
|
+
preference :layout, :string, :default => 'spree/layouts/spree_application'
|
|
52
54
|
preference :logo, :string, :default => 'admin/bg/spree_50.png'
|
|
53
55
|
preference :max_level_in_taxons_menu, :integer, :default => 1 # maximum nesting level in taxons menu
|
|
54
56
|
preference :orders_per_page, :integer, :default => 15
|