spree_core 2.2.14 → 2.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (172) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/{spree.js.coffee → spree.js.coffee.erb} +11 -2
  3. data/app/controllers/spree/base_controller.rb +1 -0
  4. data/app/helpers/spree/base_helper.rb +5 -6
  5. data/app/helpers/spree/orders_helper.rb +4 -0
  6. data/app/helpers/spree/products_helper.rb +8 -7
  7. data/app/mailers/spree/base_mailer.rb +2 -2
  8. data/app/mailers/spree/order_mailer.rb +2 -2
  9. data/app/mailers/spree/shipment_mailer.rb +1 -1
  10. data/app/mailers/spree/test_mailer.rb +1 -1
  11. data/app/models/spree/ability.rb +15 -16
  12. data/app/models/spree/address.rb +3 -6
  13. data/app/models/spree/adjustment.rb +2 -2
  14. data/app/models/spree/alert.rb +1 -1
  15. data/app/models/spree/app_configuration.rb +17 -20
  16. data/app/models/spree/asset.rb +2 -2
  17. data/app/models/spree/base.rb +9 -0
  18. data/app/models/spree/calculator.rb +1 -1
  19. data/app/models/spree/calculator/flat_rate.rb +1 -1
  20. data/app/models/spree/calculator/flexi_rate.rb +1 -1
  21. data/app/models/spree/calculator/price_sack.rb +1 -3
  22. data/app/models/spree/calculator/shipping/flat_rate.rb +1 -1
  23. data/app/models/spree/calculator/shipping/flexi_rate.rb +1 -1
  24. data/app/models/spree/calculator/shipping/per_item.rb +1 -1
  25. data/app/models/spree/calculator/shipping/price_sack.rb +1 -3
  26. data/app/models/spree/classification.rb +1 -1
  27. data/app/models/spree/configuration.rb +1 -1
  28. data/app/models/spree/country.rb +1 -1
  29. data/app/models/spree/credit_card.rb +8 -12
  30. data/app/models/spree/gateway.rb +0 -3
  31. data/app/models/spree/gateway/bogus.rb +2 -3
  32. data/app/models/spree/image.rb +3 -1
  33. data/app/models/spree/inventory_unit.rb +5 -6
  34. data/app/models/spree/item_adjustments.rb +3 -4
  35. data/app/models/spree/legacy_user.rb +1 -1
  36. data/app/models/spree/line_item.rb +6 -13
  37. data/app/models/spree/log_entry.rb +1 -1
  38. data/app/models/spree/option_type.rb +1 -1
  39. data/app/models/spree/option_value.rb +1 -3
  40. data/app/models/spree/order.rb +52 -70
  41. data/app/models/spree/order/checkout.rb +17 -10
  42. data/app/models/spree/order/currency_updater.rb +1 -1
  43. data/app/models/spree/order_contents.rb +7 -4
  44. data/app/models/spree/order_populator.rb +1 -1
  45. data/app/models/spree/order_updater.rb +8 -21
  46. data/app/models/spree/payment.rb +26 -12
  47. data/app/models/spree/payment/processing.rb +5 -16
  48. data/app/models/spree/payment_capture_event.rb +1 -1
  49. data/app/models/spree/payment_method.rb +2 -2
  50. data/app/models/spree/payment_method/check.rb +0 -2
  51. data/app/models/spree/preference.rb +1 -31
  52. data/app/models/spree/preferences/configuration.rb +2 -6
  53. data/app/models/spree/preferences/preferable.rb +46 -74
  54. data/app/models/spree/preferences/preferable_class_methods.rb +11 -46
  55. data/app/models/spree/preferences/scoped_store.rb +33 -0
  56. data/app/models/spree/preferences/store.rb +8 -7
  57. data/app/models/spree/price.rb +1 -3
  58. data/app/models/spree/product.rb +59 -87
  59. data/app/models/spree/product/scopes.rb +22 -13
  60. data/app/models/spree/product_option_type.rb +1 -1
  61. data/app/models/spree/product_property.rb +1 -3
  62. data/app/models/spree/product_scope/scopes.rb +1 -1
  63. data/app/models/spree/promotion.rb +4 -5
  64. data/app/models/spree/promotion/actions/create_adjustment.rb +11 -2
  65. data/app/models/spree/promotion/actions/create_item_adjustments.rb +19 -2
  66. data/app/models/spree/promotion/actions/create_line_items.rb +2 -12
  67. data/app/models/spree/promotion/rules/user.rb +5 -1
  68. data/app/models/spree/promotion_action.rb +1 -1
  69. data/app/models/spree/promotion_action_line_item.rb +1 -1
  70. data/app/models/spree/promotion_handler/cart.rb +2 -14
  71. data/app/models/spree/promotion_handler/coupon.rb +3 -13
  72. data/app/models/spree/promotion_rule.rb +1 -1
  73. data/app/models/spree/property.rb +1 -3
  74. data/app/models/spree/prototype.rb +1 -1
  75. data/app/models/spree/return_authorization.rb +4 -10
  76. data/app/models/spree/role.rb +1 -1
  77. data/app/models/spree/shipment.rb +1 -9
  78. data/app/models/spree/shipping_category.rb +3 -3
  79. data/app/models/spree/shipping_method.rb +1 -1
  80. data/app/models/spree/shipping_method_category.rb +2 -2
  81. data/app/models/spree/shipping_rate.rb +3 -3
  82. data/app/models/spree/state.rb +1 -1
  83. data/app/models/spree/state_change.rb +1 -1
  84. data/app/models/spree/stock/availability_validator.rb +7 -3
  85. data/app/models/spree/stock/package.rb +0 -23
  86. data/app/models/spree/stock/splitter/backordered.rb +1 -1
  87. data/app/models/spree/stock/splitter/shipping_category.rb +1 -1
  88. data/app/models/spree/stock/splitter/weight.rb +1 -1
  89. data/app/models/spree/stock_item.rb +7 -10
  90. data/app/models/spree/stock_location.rb +2 -6
  91. data/app/models/spree/stock_movement.rb +1 -3
  92. data/app/models/spree/stock_transfer.rb +1 -3
  93. data/app/models/spree/store.rb +33 -0
  94. data/app/models/spree/tax_category.rb +2 -2
  95. data/app/models/spree/tax_rate.rb +21 -52
  96. data/app/models/spree/taxon.rb +9 -8
  97. data/app/models/spree/taxonomy.rb +1 -1
  98. data/app/models/spree/tracker.rb +1 -1
  99. data/app/models/spree/variant.rb +13 -15
  100. data/app/models/spree/variant/scopes.rb +1 -1
  101. data/app/models/spree/zone.rb +22 -22
  102. data/app/models/spree/zone_member.rb +2 -2
  103. data/config/initializers/user_class_extensions.rb +0 -8
  104. data/config/locales/en.yml +7 -42
  105. data/db/default/spree/countries.rb +2 -3
  106. data/db/default/spree/stores.rb +9 -0
  107. data/db/migrate/20130611054351_rename_shipping_methods_zones_to_spree_shipping_methods_zones.rb +0 -5
  108. data/db/migrate/20130807024301_upgrade_adjustments.rb +4 -5
  109. data/db/migrate/20130807024302_rename_adjustment_fields.rb +5 -2
  110. data/db/migrate/20131118183431_add_line_item_id_to_spree_inventory_units.rb +1 -1
  111. data/db/migrate/20140106065820_remove_value_type_from_spree_preferences.rb +8 -0
  112. data/db/migrate/20140227112348_add_preference_store_to_everything.rb +8 -0
  113. data/db/migrate/20140309023735_migrate_old_preferences.rb +23 -0
  114. data/db/migrate/20140309024355_create_spree_stores.rb +25 -0
  115. data/db/migrate/20140309033438_create_store_from_preferences.rb +30 -0
  116. data/db/migrate/20140315053743_add_timestamps_to_spree_assets.rb +6 -0
  117. data/db/migrate/20140331100557_add_additional_store_fields.rb +8 -0
  118. data/db/migrate/20140410141842_add_many_missing_indexes.rb +18 -0
  119. data/db/migrate/20140410150358_correct_some_polymorphic_index_and_add_more_missing.rb +66 -0
  120. data/db/migrate/20140508151342_change_spree_price_amount_precision.rb +1 -1
  121. data/db/migrate/20140518174634_add_token_to_spree_orders.rb +5 -0
  122. data/db/migrate/20140530024945_move_order_token_from_tokenized_permission.rb +29 -0
  123. data/db/migrate/20140601011216_set_shipment_total_for_users_upgrading.rb +5 -3
  124. data/db/migrate/20140604135309_drop_credit_card_first_name_and_last_name.rb +6 -0
  125. data/lib/generators/spree/dummy/dummy_generator.rb +1 -0
  126. data/lib/generators/spree/dummy/templates/initializers/devise.rb +3 -0
  127. data/lib/generators/spree/dummy/templates/rails/routes.rb +0 -1
  128. data/lib/generators/spree/install/install_generator.rb +8 -17
  129. data/lib/generators/spree/install/templates/config/initializers/spree.rb +2 -2
  130. data/lib/spree/core.rb +13 -9
  131. data/lib/spree/core/calculated_adjustments.rb +1 -1
  132. data/lib/spree/core/controller_helpers/auth.rb +27 -18
  133. data/lib/spree/core/controller_helpers/common.rb +2 -2
  134. data/lib/spree/core/controller_helpers/order.rb +15 -24
  135. data/lib/spree/core/controller_helpers/store.rb +19 -0
  136. data/lib/spree/core/delegate_belongs_to.rb +2 -2
  137. data/lib/spree/core/engine.rb +0 -10
  138. data/lib/spree/core/importer.rb +1 -0
  139. data/lib/spree/core/importer/order.rb +16 -44
  140. data/lib/spree/core/importer/product.rb +62 -0
  141. data/lib/spree/core/product_filters.rb +0 -4
  142. data/lib/spree/core/routes.rb +4 -6
  143. data/lib/spree/core/validators/email.rb +23 -1
  144. data/lib/spree/core/version.rb +1 -1
  145. data/lib/spree/money.rb +1 -169
  146. data/lib/spree/permitted_attributes.rb +6 -4
  147. data/lib/spree/testing_support/authorization_helpers.rb +23 -21
  148. data/lib/spree/testing_support/capybara_ext.rb +11 -21
  149. data/lib/spree/testing_support/common_rake.rb +3 -1
  150. data/lib/spree/testing_support/controller_requests.rb +0 -2
  151. data/lib/spree/testing_support/factories/credit_card_factory.rb +1 -1
  152. data/lib/spree/testing_support/factories/line_item_factory.rb +4 -1
  153. data/lib/spree/testing_support/factories/order_factory.rb +5 -4
  154. data/lib/spree/testing_support/factories/product_factory.rb +0 -4
  155. data/lib/spree/testing_support/factories/promotion_factory.rb +5 -7
  156. data/lib/spree/testing_support/factories/shipment_factory.rb +0 -1
  157. data/lib/spree/testing_support/factories/stock_factory.rb +2 -2
  158. data/lib/spree/testing_support/factories/store_factory.rb +8 -0
  159. data/lib/spree/testing_support/preferences.rb +3 -3
  160. data/lib/tasks/core.rake +2 -2
  161. metadata +48 -39
  162. data/app/models/spree/stock/order_counter.rb +0 -55
  163. data/app/models/spree/tokenized_permission.rb +0 -6
  164. data/app/views/spree/shared/_routes.html.erb +0 -13
  165. data/db/migrate/20140804185157_add_default_to_shipment_cost.rb +0 -10
  166. data/db/migrate/20141021194502_add_state_lock_version_to_order.rb +0 -5
  167. data/lib/spree/core/adjustment_source.rb +0 -26
  168. data/lib/spree/core/mail_interceptor.rb +0 -22
  169. data/lib/spree/core/mail_method.rb +0 -27
  170. data/lib/spree/core/mail_settings.rb +0 -55
  171. data/lib/spree/core/ransackable_attributes.rb +0 -15
  172. data/lib/spree/core/token_resource.rb +0 -27
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 9abfcb6e2a1a2ca7ab2c85a969e20adf636c1d99
4
- data.tar.gz: bc242bb55726abd8ade2e39ab0c916b8f55dcc0b
3
+ metadata.gz: f36768d9e812dac5278cad4d5d1ff827fbd70c0e
4
+ data.tar.gz: 89173525bdf6d17811cfa3f56d9171bed41ee706
5
5
  SHA512:
6
- metadata.gz: 8a647ec37f24df8c6263501ef76128452751fb2afc06c5734b36fcb37732f4cbfe6bea13ae6f5ad3d4c33d1fcbe72aeb330252c8d412b9e6e816d045ec341f70
7
- data.tar.gz: 8c39cb145273c64b9c6fc7f6f01b6222f3b6c235d151e85e2937bb217eab3861a4ec41bc7cebab3b1533eb03bfd89fe826f2096ea5df2ae93259fc3e2d2d59e4
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: Spree::Config[:default_meta_keywords],
50
- description: Spree::Config[:default_meta_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] = [:commerce_tracking].concat(Array(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.sort_by { |c| c.name.parameterize }
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 method_name.to_s.match(/_image$/) && style = method_name.to_s.sub(/_image$/, '')
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
@@ -8,6 +8,10 @@ module Spree
8
8
  def truncated_product_description(product)
9
9
  truncate_html(raw(product.description))
10
10
  end
11
+
12
+ def order_just_completed?(order)
13
+ flash[:order_completed] && order.present?
14
+ end
11
15
  end
12
16
  end
13
17
 
@@ -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
- variant_amount = variant.amount_in(current_currency)
15
- product_amount = variant.product.amount_in(current_currency)
16
- return if variant_amount == product_amount || product_amount.nil?
17
- diff = variant.amount_in(current_currency) - product_amount
18
- amount = Spree::Money.new(diff.abs, currency: current_currency).to_html
19
- label = diff > 0 ? :add : :subtract
20
- "(#{Spree.t(label)}: #{amount})".html_safe
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
@@ -4,8 +4,8 @@ module Spree
4
4
  Spree::Config[:mails_from]
5
5
  end
6
6
 
7
- def money(amount)
8
- Spree::Money.new(amount).to_s
7
+ def money(amount, currency = Spree::Config[:currency])
8
+ Spree::Money.new(amount, currency: currency).to_s
9
9
  end
10
10
  helper_method :money
11
11
 
@@ -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::Config[:site_name]} #{Spree.t('order_mailer.confirm_email.subject')} ##{@order.number}"
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::Config[:site_name]} #{Spree.t('order_mailer.cancel_email.subject')} ##{@order.number}"
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::Config[:site_name]} #{Spree.t('shipment_mailer.shipped_email.subject')} ##{@shipment.order.number}"
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::Config[:site_name]} #{Spree.t('test_mailer.test_email.subject')}"
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
@@ -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 [:index, :read], Country
41
- can [:index, :read], OptionType
42
- can [:index, :read], OptionValue
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.token && token == order.token
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 [:index, :read], Product
55
- can [:index, :read], ProductProperty
56
- can [:index, :read], Property
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 [:index, :read], State
60
- can [:index, :read], Taxon
61
- can [:index, :read], Taxonomy
62
- can [:index, :read], Variant
63
- can [:index, :read], Zone
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.
@@ -1,5 +1,5 @@
1
1
  module Spree
2
- class Address < ActiveRecord::Base
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 && user_address = user.send(:"#{kind}_address")
27
- user_address.clone
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 < ActiveRecord::Base
25
- belongs_to :adjustable, polymorphic: true, touch: 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
 
@@ -5,7 +5,7 @@ module Spree
5
5
  def self.current(host)
6
6
  params = {
7
7
  version: Spree.version,
8
- name: Spree::Config[:site_name],
8
+ name: Spree::Store.current.name,
9
9
  host: host,
10
10
  rails_env: Rails.env,
11
11
  rails_version: Rails.version
@@ -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
@@ -1,6 +1,6 @@
1
1
  module Spree
2
- class Asset < ActiveRecord::Base
2
+ class Asset < Spree::Base
3
3
  belongs_to :viewable, polymorphic: true, touch: true
4
- acts_as_list scope: [:viewable_id, :viewable_type]
4
+ acts_as_list scope: :viewable
5
5
  end
6
6
  end
@@ -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
@@ -1,5 +1,5 @@
1
1
  module Spree
2
- class Calculator < ActiveRecord::Base
2
+ class Calculator < Spree::Base
3
3
  belongs_to :calculable, polymorphic: true
4
4
 
5
5
  # This method calls a compute_<computable> method. must be overriden in concrete calculator.
@@ -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)