spree_core 1.0.0.rc4 → 1.0.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.
@@ -585,6 +585,7 @@ mark {background-color: $c_colored; color: white; font-style: italic; font-weigh
585
585
  text-align: center;
586
586
  border: 1px solid $c_border;
587
587
  margin-top: 23px;
588
+ margin-left: 0;
588
589
 
589
590
  h3 {
590
591
  text-transform: uppercase;
@@ -816,13 +817,31 @@ mark {background-color: $c_colored; color: white; font-style: italic; font-weigh
816
817
  ================================================== */
817
818
 
818
819
  /* Smaller than standard 960 (devices and browsers) */
819
- @media only screen and (max-width: 959px) {}
820
+ @media only screen and (max-width: 959px) {
821
+
822
+ }
820
823
 
821
824
  /* Tablet Portrait size to standard 960 (devices and browsers) */
822
- @media only screen and (min-width: 768px) and (max-width: 959px) {}
825
+ @media only screen and (min-width: 768px) and (max-width: 959px) {
826
+ .container {
827
+ padding-left: 10px;
828
+ width: 758px;
829
+ }
830
+ footer#footer {
831
+ width: 748px;
832
+ }
833
+ p[data-hook="use_billing"] {
834
+ margin-top: -15px;
835
+ }
836
+ }
823
837
 
824
838
  /* All Mobile Sizes (devices and browser) */
825
- @media only screen and (max-width: 767px) {
839
+ @media only screen and (max-width: 767px) {
840
+
841
+ html {
842
+ -webkit-text-size-adjust: none;
843
+ }
844
+
826
845
  nav#taxonomies {
827
846
  text-align: center;
828
847
 
@@ -861,7 +880,11 @@ mark {background-color: $c_colored; color: white; font-style: italic; font-weigh
861
880
 
862
881
  /* Mobile Landscape Size to Tablet Portrait (devices and browsers) */
863
882
  @media only screen and (min-width: 480px) and (max-width: 767px) {
864
-
883
+
884
+ footer#footer {
885
+ width: auto !important;
886
+ }
887
+
865
888
  input, select {
866
889
  vertical-align: baseline !important;
867
890
  }
@@ -1,11 +1,11 @@
1
1
  module Spree
2
- class Calculator::PriceBucket < Calculator
2
+ class Calculator::PriceSack < Calculator
3
3
  preference :minimal_amount, :decimal, :default => 0
4
4
  preference :normal_amount, :decimal, :default => 0
5
5
  preference :discount_amount, :decimal, :default => 0
6
6
 
7
7
  def self.description
8
- I18n.t(:price_bucket)
8
+ I18n.t(:price_sack)
9
9
  end
10
10
 
11
11
  # as object we always get line items, as calculable we have Coupon, ShippingMethod
@@ -56,7 +56,7 @@ module Spree
56
56
  self.update_hooks.add(hook)
57
57
  end
58
58
 
59
- # For compatiblity with Calculator::PriceBucket
59
+ # For compatiblity with Calculator::PriceSack
60
60
  def amount
61
61
  line_items.map(&:amount).sum
62
62
  end
@@ -128,6 +128,10 @@ module Spree
128
128
  end
129
129
  end
130
130
 
131
+ before_transition :to => ['delivery'] do |order|
132
+ order.shipments.each { |s| s.destroy unless s.shipping_method.available_to_order?(order) }
133
+ end
134
+
131
135
  after_transition :to => 'complete', :do => :finalize!
132
136
  after_transition :to => 'delivery', :do => :create_tax_charge!
133
137
  after_transition :to => 'payment', :do => :create_shipment!
@@ -72,9 +72,15 @@ module Spree
72
72
  end
73
73
 
74
74
  def process!
75
- if !processing? and source and source.respond_to?(:process!)
76
- started_processing!
77
- source.process!(self) # source is responsible for updating the payment state when it's done processing
75
+ if payment_method && payment_method.source_required?
76
+ if source
77
+ if !processing? && source.respond_to?(:process!)
78
+ started_processing!
79
+ source.process!(self) # source is responsible for updating the payment state when it's done processing
80
+ end
81
+ else
82
+ raise Core::GatewayError.new(I18n.t(:payment_processing_failed))
83
+ end
78
84
  end
79
85
  end
80
86
 
@@ -25,5 +25,9 @@ module Spree
25
25
  payment.void
26
26
  true
27
27
  end
28
+
29
+ def source_required?
30
+ false
31
+ end
28
32
  end
29
33
  end
@@ -49,5 +49,9 @@ module Spree
49
49
  def payment_profiles_supported?
50
50
  false
51
51
  end
52
+
53
+ def source_required?
54
+ true
55
+ end
52
56
  end
53
57
  end
@@ -1,31 +1,62 @@
1
1
  class Spree::Preference < ActiveRecord::Base
2
2
 
3
3
  validates :key, :presence => true
4
+ validates :value, :presence => true
5
+ validates :value_type, :presence => true
4
6
 
5
- def value=(value)
6
- self[:value] = value
7
- self[:value_type] = value.class.name
8
- end
7
+ scope :valid, where(Spree::Preference.arel_table[:key].not_eq(nil)).where(Spree::Preference.arel_table[:value_type].not_eq(nil))
9
8
 
9
+ # The type conversions here should match
10
+ # the ones in spree::preferences::preferrable#convert_preference_value
10
11
  def value
11
- return unless self[:value]
12
+ if self[:value_type].present?
13
+ case self[:value_type].to_sym
14
+ when :string
15
+ self[:value].to_s
16
+ when :password
17
+ self[:value].to_s
18
+ when :decimal
19
+ BigDecimal.new(self[:value].to_s).round(2, BigDecimal::ROUND_HALF_UP)
20
+ when :integer
21
+ self[:value].to_i
22
+ when :boolean
23
+ (self[:value].to_s =~ /^t/i) != nil
24
+ end
25
+ else
26
+ self[:value]
27
+ end
28
+ end
12
29
 
13
- case self[:value_type]
30
+ def raw_value
31
+ self[:value]
32
+ end
33
+
34
+ # For the rc releases of 1.0, we stored the object class names, this converts
35
+ # to preferences definition types. This code should eventually be removed.
36
+ # it is called during the load_preferences of the Preferences::Store
37
+ def self.convert_old_value_types(preference)
38
+ return unless [Symbol.to_s, Fixnum.to_s, Bignum.to_s,
39
+ Float.to_s, TrueClass.to_s, FalseClass.to_s].include? preference.value_type
40
+
41
+ case preference.value_type
14
42
  when Symbol.to_s
15
- self[:value].to_sym
43
+ preference.value_type = 'string'
16
44
  when Fixnum.to_s
17
- self[:value].to_i
45
+ preference.value_type = 'integer'
18
46
  when Bignum.to_s
19
- self[:value].to_f.to_i
47
+ preference.value_type = 'integer'
48
+ preference.value = preference.value.to_f.to_i
20
49
  when Float.to_s
21
- self[:value].to_f
50
+ preference.value_type = 'decimal'
22
51
  when TrueClass.to_s
23
- true
52
+ preference.value_type = 'boolean'
53
+ preference.value = "true"
24
54
  when FalseClass.to_s
25
- false
26
- else
27
- self[:value]
55
+ preference.value_type = 'boolean'
56
+ preference.value = "false"
28
57
  end
58
+
59
+ preference.save
29
60
  end
30
61
 
31
62
  end
@@ -104,6 +104,31 @@ module Spree::Preferences::Preferable
104
104
  @pending_preferences[name]
105
105
  end
106
106
 
107
+ def convert_preference_value(value, type)
108
+ case type
109
+ when :string
110
+ value.to_s
111
+ when :password
112
+ value.to_s
113
+ when :decimal
114
+ BigDecimal.new(value.to_s).round(2, BigDecimal::ROUND_HALF_UP)
115
+ when :integer
116
+ value.to_i
117
+ when :boolean
118
+ if value.is_a?(FalseClass) ||
119
+ value.nil? ||
120
+ value == 0 ||
121
+ value =~ /^(f|false|0)$/i ||
122
+ (value.respond_to? :empty? and value.empty?)
123
+ false
124
+ else
125
+ true
126
+ end
127
+ else
128
+ value
129
+ end
130
+ end
131
+
107
132
  def preference_store
108
133
  Spree::Preferences::Store.instance
109
134
  end
@@ -23,20 +23,9 @@ module Spree::Preferences
23
23
  alias_method prefers_getter_method(name), preference_getter_method(name)
24
24
 
25
25
  define_method preference_setter_method(name) do |value|
26
- # Boolean attributes can come back from forms as '0' or '1'
27
- # Convert them to their correct values here
28
- if type == :boolean && !value.is_a?(TrueClass) && !value.is_a?(FalseClass)
29
- value = value.downcase if value.respond_to? :downcase
30
- case value
31
- when 0, '0', 'false', 'f', "", []
32
- value = false
33
- else
34
- value = true
35
- end
36
- end
37
-
26
+ value = convert_preference_value(value, type)
38
27
  if preference_cache_key(name)
39
- preference_store.set preference_cache_key(name), value
28
+ preference_store.set preference_cache_key(name), value, type
40
29
  else
41
30
  add_pending_preference(name, value)
42
31
  end
@@ -17,16 +17,16 @@ module Spree::Preferences
17
17
  load_preferences
18
18
  end
19
19
 
20
- def set(key, value)
20
+ def set(key, value, type)
21
21
  @cache.write(key, value)
22
- persist(key, value)
22
+ persist(key, value, type)
23
23
  end
24
24
 
25
25
  def exist?(key)
26
26
  @cache.exist? key
27
27
  end
28
28
 
29
- def get(key, default_key=nil)
29
+ def get(key)
30
30
  @cache.read(key)
31
31
  end
32
32
 
@@ -37,11 +37,12 @@ module Spree::Preferences
37
37
 
38
38
  private
39
39
 
40
- def persist(cache_key, value)
40
+ def persist(cache_key, value, type)
41
41
  return unless should_persist?
42
42
 
43
43
  preference = Spree::Preference.find_or_initialize_by_key(cache_key)
44
44
  preference.value = value
45
+ preference.value_type = type
45
46
  preference.save
46
47
  end
47
48
 
@@ -55,8 +56,9 @@ module Spree::Preferences
55
56
  def load_preferences
56
57
  return unless should_persist?
57
58
 
58
- Spree::Preference.all.each do |p|
59
- @cache.write(p.key, p.value)
59
+ Spree::Preference.valid.each do |p|
60
+ Spree::Preference.convert_old_value_types(p) # see comment
61
+ @cache.write(p.key, p.value)
60
62
  end
61
63
  end
62
64
 
@@ -78,8 +78,7 @@ module Spree
78
78
  end
79
79
 
80
80
  def to_param
81
- return permalink if permalink.present?
82
- name.to_url
81
+ permalink.present? ? permalink : (permalink_was || name.to_s.to_url)
83
82
  end
84
83
 
85
84
  # returns true if the product has any variants (the master variant is not a member of the variants array)
@@ -185,6 +184,12 @@ module Spree
185
184
  self.where([where_str, values.map { |value| "%#{value}%" } * fields.size].flatten)
186
185
  end
187
186
 
187
+ def empty_option_values?
188
+ options.empty? || options.any? do |opt|
189
+ opt.option_type.option_values.empty?
190
+ end
191
+ end
192
+
188
193
  private
189
194
  def recalculate_count_on_hand
190
195
  product_count_on_hand = has_variants? ?
@@ -28,7 +28,7 @@
28
28
  #
29
29
  module Spree
30
30
  class ProductGroup < ActiveRecord::Base
31
- validates :name, :presence => true # TODO ensure that this field is defined as not_null
31
+ validates :name, :permalink, :presence => true
32
32
  validates_associated :product_scopes
33
33
 
34
34
  after_save :update_memberships
@@ -153,13 +153,10 @@ module Spree
153
153
  result
154
154
  end
155
155
 
156
- # generates ProductGroup url
157
- def permalink
158
- name.to_s.to_url
156
+ def to_param
157
+ permalink.present? ? permalink : (permalink_was || name.to_s.to_url)
159
158
  end
160
159
 
161
- alias_method :to_url, :permalink
162
-
163
160
  def update_memberships
164
161
  # wipe everything directly to avoid expensive in-rails sorting
165
162
  ActiveRecord::Base.connection.execute "DELETE FROM spree_product_groups_products WHERE product_group_id = #{self.id}"
@@ -178,9 +175,6 @@ module Spree
178
175
  "<Spree::ProductGroup" + (id && "[#{id}]").to_s + ":'#{to_url}'>"
179
176
  end
180
177
 
181
- def to_param
182
- self.permalink
183
- end
184
178
 
185
179
  def order_scope
186
180
  if scope = product_scopes.detect {|s| s.is_ordering?}
@@ -4,7 +4,7 @@
4
4
 
5
5
  <fieldset id="product_group_forms_container" data-hook>
6
6
 
7
- <%= form_for [:admin, @product_group], :html => { :id => 'product-group-form', :method => :put, :remote => true } do |f| %>
7
+ <%= form_for [:admin, @product_group], :html => { :id => 'product-group-form', :method => :put } do |f| %>
8
8
 
9
9
  <%= f.field_container :name do %>
10
10
  <%= f.label :name, t(:name) %><br />
@@ -12,6 +12,12 @@
12
12
  <%= f.error_message_on :name %>
13
13
  <% end %>
14
14
 
15
+ <%= f.field_container :permalink do %>
16
+ <%= f.label :permalink, t(:permalink) %><br />
17
+ <%= f.text_field :permalink %>
18
+ <%= f.error_message_on :permalink %>
19
+ <% end %>
20
+
15
21
  <%= f.field_container :order_scope do %>
16
22
  <%= f.label :order_scope, t(:sort_ordering) %><br />
17
23
  <%= f.select(:order_scope, Spree::Product.simple_scopes.collect{|p| [ t(:name, :scope =>[:product_scopes, :scopes, p]), p.to_s ] }) %>
@@ -1,3 +1,6 @@
1
1
  $('#product_scopes').append('<%= escape_javascript( render('spree/admin/product_groups/product_scope', :product_scope => @product_scope) ) %>');
2
2
  $('#<%= dom_id @product_scope %>').hide();
3
3
  $('#<%= dom_id @product_scope %>').fadeIn();
4
+ if(!$('.token-input-list').is('*')){
5
+ $('.tokeninput.products').productPicker();
6
+ }
@@ -36,11 +36,13 @@
36
36
  <% end %>
37
37
  </table>
38
38
 
39
- <% if @product.options.empty? %>
39
+ <% if @product.empty_option_values? %>
40
40
 
41
41
  <p class='first_add_option_types' data-hook="first_add_option_types">
42
42
  <%= t(:to_add_variants_you_must_first_define) %>
43
43
  <%= link_to t(:option_types), selected_admin_product_option_types_url(@product) %>
44
+ <%= t(:and) %>
45
+ <%= link_to t(:option_values), admin_option_types_url %>
44
46
  </p>
45
47
 
46
48
  <% else %>
@@ -0,0 +1,6 @@
1
+ begin
2
+ ActiveRecord::Base.connection.execute("select owner_id, owner_type, name, value from spree_preferences where `key` is null").each do |pref|
3
+ warn "[WARNING] Orphaned preference `#{pref[2]}` with value `#{pref[3]}` for #{pref[1]} with id of: #{pref[0]}, you should reset the preference value manually."
4
+ end
5
+ rescue
6
+ end
@@ -252,6 +252,7 @@ en:
252
252
  alternative_phone: Alternative Phone
253
253
  amount: Amount
254
254
  analytics_trackers: Analytics Trackers
255
+ and: and
255
256
  apply: "Apply"
256
257
  are_you_sure: "Are you sure?"
257
258
  are_you_sure_category: "Are you sure you want to delete this category?"
@@ -672,7 +673,7 @@ en:
672
673
  preview: Preview
673
674
  previous: Previous
674
675
  price: Price
675
- price_bucket: Price Bucket
676
+ price_sack: Price Sack
676
677
  price_range: Price Range
677
678
  problem_authorizing_card: "Problem authorizing credit card"
678
679
  problem_capturing_card: "Problem capturing credit card"
@@ -1,15 +1,14 @@
1
- class NewPreferences < ActiveRecord::Migration
1
+ require 'spree/core/preference_rescue'
2
2
 
3
- class OldPrefs < ActiveRecord::Base
4
- set_table_name "spree_preferences"
5
- belongs_to :owner, :polymorphic => true
6
- end
3
+ class NewPreferences < ActiveRecord::Migration
7
4
 
8
5
  def up
9
6
  add_column :spree_preferences, :key, :string
10
7
  add_column :spree_preferences, :value_type, :string
11
8
  add_index :spree_preferences, :key, :unique => true
12
9
 
10
+ remove_index :spree_preferences, :name => 'ix_prefs_on_owner_attr_pref'
11
+
13
12
  # remove old constraints for migration
14
13
  change_column :spree_preferences, :name, :string, :null => true
15
14
  change_column :spree_preferences, :owner_id, :integer, :null => true
@@ -17,32 +16,23 @@ class NewPreferences < ActiveRecord::Migration
17
16
  change_column :spree_preferences, :group_id, :integer, :null => true
18
17
  change_column :spree_preferences, :group_type, :string, :null => true
19
18
 
20
- OldPrefs.all.each do |old_pref|
21
- begin
22
- begin
23
- owner = old_pref.owner
24
- rescue => e1
25
- # case:
26
- # AppConfiguration is no longer an sti derivative of Configuration
27
- owner_class = old_pref.owner_type.constantize
28
- owner = OldPrefs.connection.select_value("SELECT #{owner_class.inheritance_column} FROM #{owner_class.table_name} WHERE id = #{old_pref.owner_id}").constantize.new
29
- end
30
-
31
- unless old_pref.owner_type.nil?
32
- end
33
-
34
- unless old_pref.owner_type == "Spree::Activator" || old_pref.owner_type == "Spree::PromotionRule"
35
- say "Migrating preference #{old_pref.name}"
36
- owner.set_preference old_pref.name, old_pref.value
37
- end
38
- rescue => e
39
- say "Skipping setting preference #{old_pref.owner_type}::#{old_pref.name}"
40
- end
19
+ cfgs = execute("select id, type from spree_configurations").to_a
20
+ execute("select id, owner_id, name from spree_preferences where owner_type = 'Spree::Configuration'").each do |pref|
21
+ configuration = cfgs.detect { |c| c[0].to_s == pref[1].to_s }
22
+
23
+ value_type = configuration[1].constantize.new.send "preferred_#{pref[2]}_type" rescue 'string'
24
+
25
+ execute "UPDATE spree_preferences set `key` = '#{configuration[1].underscore}/#{pref[2]}', `value_type` = '#{value_type}' where id = #{pref[0]}" rescue nil
26
+ end
27
+
28
+ # remove orphaned calculator preferences
29
+ Spree::Preference.where(:owner_type => 'Spree::Calculator').each do |preference|
30
+ preference.destroy unless Spree::Calculator.exists? preference.owner_id
41
31
  end
42
32
 
43
- # Remove old promotion prefs
44
- Spree::Preference.where(:key => nil).delete_all
33
+ Spree::PreferenceRescue.try
45
34
 
35
+ Spree::Preference.where(:value_type => nil).update_all(:value_type => 'string')
46
36
  end
47
37
 
48
38
  def down
@@ -55,4 +45,4 @@ class NewPreferences < ActiveRecord::Migration
55
45
  add_column :spree_preferences, :group_id, :integer
56
46
  add_column :spree_preferences, :group_type, :string
57
47
  end
58
- end
48
+ end
@@ -51,7 +51,7 @@ module Spree
51
51
  Spree::Calculator::FlatRate,
52
52
  Spree::Calculator::FlexiRate,
53
53
  Spree::Calculator::PerItem,
54
- Spree::Calculator::PriceBucket]
54
+ Spree::Calculator::PriceSack]
55
55
 
56
56
  app.config.spree.calculators.tax_rates = [
57
57
  Spree::Calculator::DefaultTax]
@@ -0,0 +1,21 @@
1
+ module Spree
2
+ class OldPrefs < ActiveRecord::Base
3
+ set_table_name "spree_preferences"
4
+ belongs_to :owner, :polymorphic => true
5
+ attr_accessor :owner_klass
6
+ end
7
+
8
+ class PreferenceRescue
9
+ def self.try
10
+ OldPrefs.where(:key => nil).each do |old_pref|
11
+ next unless owner = (old_pref.owner rescue nil)
12
+ unless old_pref.owner_type == "Spree::Activator" || old_pref.owner_type == "Spree::Configuration"
13
+ old_pref.key = [owner.class.name, old_pref.name, owner.id].join('::').underscore
14
+ old_pref.value_type = owner.preference_type(old_pref.name)
15
+ puts "Migrating Preference: #{old_pref.key}"
16
+ old_pref.save
17
+ end
18
+ end
19
+ end
20
+ end
21
+ end
@@ -5,7 +5,7 @@ module Spree
5
5
  module Core
6
6
  module UserBanners
7
7
  def self.included(base)
8
- base.preference :dismissed_banners, :text, :default => ''
8
+ base.preference :dismissed_banners, :string, :default => ''
9
9
  end
10
10
 
11
11
  def dismissed_banner_ids
@@ -1,5 +1,5 @@
1
1
  module Spree
2
2
  def self.version
3
- "1.0.0.rc4"
3
+ "1.0.0"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,19 +1,19 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: spree_core
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0.rc4
5
- prerelease: 6
4
+ version: 1.0.0
5
+ prerelease:
6
6
  platform: ruby
7
7
  authors:
8
8
  - Sean Schofield
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-02-06 00:00:00.000000000 Z
12
+ date: 2012-02-09 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: acts_as_list
16
- requirement: &70315830659780 !ruby/object:Gem::Requirement
16
+ requirement: &70236783733120 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - =
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: 0.1.4
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70315830659780
24
+ version_requirements: *70236783733120
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: nested_set
27
- requirement: &70315830658700 !ruby/object:Gem::Requirement
27
+ requirement: &70236783732040 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - =
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: 1.6.8
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *70315830658700
35
+ version_requirements: *70236783732040
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: jquery-rails
38
- requirement: &70315830657660 !ruby/object:Gem::Requirement
38
+ requirement: &70236783765860 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
@@ -46,10 +46,10 @@ dependencies:
46
46
  version: 1.0.19
47
47
  type: :runtime
48
48
  prerelease: false
49
- version_requirements: *70315830657660
49
+ version_requirements: *70236783765860
50
50
  - !ruby/object:Gem::Dependency
51
51
  name: highline
52
- requirement: &70315830655400 !ruby/object:Gem::Requirement
52
+ requirement: &70236783764200 !ruby/object:Gem::Requirement
53
53
  none: false
54
54
  requirements:
55
55
  - - =
@@ -57,10 +57,10 @@ dependencies:
57
57
  version: 1.6.8
58
58
  type: :runtime
59
59
  prerelease: false
60
- version_requirements: *70315830655400
60
+ version_requirements: *70236783764200
61
61
  - !ruby/object:Gem::Dependency
62
62
  name: state_machine
63
- requirement: &70315830654520 !ruby/object:Gem::Requirement
63
+ requirement: &70236783763600 !ruby/object:Gem::Requirement
64
64
  none: false
65
65
  requirements:
66
66
  - - =
@@ -68,10 +68,10 @@ dependencies:
68
68
  version: 1.1.1
69
69
  type: :runtime
70
70
  prerelease: false
71
- version_requirements: *70315830654520
71
+ version_requirements: *70236783763600
72
72
  - !ruby/object:Gem::Dependency
73
73
  name: ffaker
74
- requirement: &70315830670300 !ruby/object:Gem::Requirement
74
+ requirement: &70236783762880 !ruby/object:Gem::Requirement
75
75
  none: false
76
76
  requirements:
77
77
  - - ~>
@@ -79,10 +79,10 @@ dependencies:
79
79
  version: 1.12.0
80
80
  type: :runtime
81
81
  prerelease: false
82
- version_requirements: *70315830670300
82
+ version_requirements: *70236783762880
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: paperclip
85
- requirement: &70315830669540 !ruby/object:Gem::Requirement
85
+ requirement: &70236783762380 !ruby/object:Gem::Requirement
86
86
  none: false
87
87
  requirements:
88
88
  - - =
@@ -90,10 +90,10 @@ dependencies:
90
90
  version: 2.5.0
91
91
  type: :runtime
92
92
  prerelease: false
93
- version_requirements: *70315830669540
93
+ version_requirements: *70236783762380
94
94
  - !ruby/object:Gem::Dependency
95
95
  name: meta_search
96
- requirement: &70315830668920 !ruby/object:Gem::Requirement
96
+ requirement: &70236783761800 !ruby/object:Gem::Requirement
97
97
  none: false
98
98
  requirements:
99
99
  - - =
@@ -101,10 +101,10 @@ dependencies:
101
101
  version: 1.1.1
102
102
  type: :runtime
103
103
  prerelease: false
104
- version_requirements: *70315830668920
104
+ version_requirements: *70236783761800
105
105
  - !ruby/object:Gem::Dependency
106
106
  name: activemerchant
107
- requirement: &70315830668060 !ruby/object:Gem::Requirement
107
+ requirement: &70236783761200 !ruby/object:Gem::Requirement
108
108
  none: false
109
109
  requirements:
110
110
  - - =
@@ -112,10 +112,10 @@ dependencies:
112
112
  version: 1.20.1
113
113
  type: :runtime
114
114
  prerelease: false
115
- version_requirements: *70315830668060
115
+ version_requirements: *70236783761200
116
116
  - !ruby/object:Gem::Dependency
117
117
  name: rails
118
- requirement: &70315830667420 !ruby/object:Gem::Requirement
118
+ requirement: &70236783760640 !ruby/object:Gem::Requirement
119
119
  none: false
120
120
  requirements:
121
121
  - - ! '>='
@@ -126,10 +126,10 @@ dependencies:
126
126
  version: 3.1.3
127
127
  type: :runtime
128
128
  prerelease: false
129
- version_requirements: *70315830667420
129
+ version_requirements: *70236783760640
130
130
  - !ruby/object:Gem::Dependency
131
131
  name: kaminari
132
- requirement: &70315830666140 !ruby/object:Gem::Requirement
132
+ requirement: &70236783759600 !ruby/object:Gem::Requirement
133
133
  none: false
134
134
  requirements:
135
135
  - - ! '>='
@@ -137,10 +137,10 @@ dependencies:
137
137
  version: 0.13.0
138
138
  type: :runtime
139
139
  prerelease: false
140
- version_requirements: *70315830666140
140
+ version_requirements: *70236783759600
141
141
  - !ruby/object:Gem::Dependency
142
142
  name: deface
143
- requirement: &70315830665460 !ruby/object:Gem::Requirement
143
+ requirement: &70236783758860 !ruby/object:Gem::Requirement
144
144
  none: false
145
145
  requirements:
146
146
  - - ! '>='
@@ -148,10 +148,10 @@ dependencies:
148
148
  version: 0.7.2
149
149
  type: :runtime
150
150
  prerelease: false
151
- version_requirements: *70315830665460
151
+ version_requirements: *70236783758860
152
152
  - !ruby/object:Gem::Dependency
153
153
  name: stringex
154
- requirement: &70315830664880 !ruby/object:Gem::Requirement
154
+ requirement: &70236783752940 !ruby/object:Gem::Requirement
155
155
  none: false
156
156
  requirements:
157
157
  - - ~>
@@ -159,7 +159,7 @@ dependencies:
159
159
  version: 1.3.0
160
160
  type: :runtime
161
161
  prerelease: false
162
- version_requirements: *70315830664880
162
+ version_requirements: *70236783752940
163
163
  description: Required dependency for Spree
164
164
  email: sean@spreecommerce.com
165
165
  executables: []
@@ -394,7 +394,7 @@ files:
394
394
  - app/models/spree/calculator/flat_rate.rb
395
395
  - app/models/spree/calculator/flexi_rate.rb
396
396
  - app/models/spree/calculator/per_item.rb
397
- - app/models/spree/calculator/price_bucket.rb
397
+ - app/models/spree/calculator/price_sack.rb
398
398
  - app/models/spree/calculator.rb
399
399
  - app/models/spree/configuration.rb
400
400
  - app/models/spree/country.rb
@@ -509,7 +509,6 @@ files:
509
509
  - app/views/spree/admin/product_groups/index.html.erb
510
510
  - app/views/spree/admin/product_groups/new.html.erb
511
511
  - app/views/spree/admin/product_groups/show.html.erb
512
- - app/views/spree/admin/product_groups/update.js.erb
513
512
  - app/views/spree/admin/product_properties/_product_property_fields.html.erb
514
513
  - app/views/spree/admin/product_properties/index.html.erb
515
514
  - app/views/spree/admin/product_scopes/create.js.erb
@@ -671,6 +670,7 @@ files:
671
670
  - app/views/spree/taxons/_taxon.html.erb
672
671
  - app/views/spree/taxons/show.html.erb
673
672
  - app/views/spree/test_mailer/test_email.text.erb
673
+ - config/initializers/check_for_orphaned_preferences.rb
674
674
  - config/initializers/deprecation_checker.rb
675
675
  - config/initializers/form_builder.rb
676
676
  - config/initializers/rails_3_1.rb
@@ -714,6 +714,7 @@ files:
714
714
  - lib/spree/core/middleware/redirect_legacy_product_url.rb
715
715
  - lib/spree/core/middleware/seo_assist.rb
716
716
  - lib/spree/core/permalinks.rb
717
+ - lib/spree/core/preference_rescue.rb
717
718
  - lib/spree/core/respond_with.rb
718
719
  - lib/spree/core/responder.rb
719
720
  - lib/spree/core/scopes.rb
@@ -967,9 +968,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
967
968
  required_rubygems_version: !ruby/object:Gem::Requirement
968
969
  none: false
969
970
  requirements:
970
- - - ! '>'
971
+ - - ! '>='
971
972
  - !ruby/object:Gem::Version
972
- version: 1.3.1
973
+ version: '0'
974
+ segments:
975
+ - 0
976
+ hash: 360601115106515255
973
977
  requirements:
974
978
  - none
975
979
  rubyforge_project: spree_core
@@ -1,12 +0,0 @@
1
- $('#preview_container').html('<%= escape_javascript( render('spree/admin/product_groups/preview') ) %>');
2
- <% notice = flash[:notice] %>
3
- <% flash.delete(:notice) %>
4
- flash_notice = jQuery('.flash.notice');
5
- if (flash_notice.length > 0) {
6
- flash_notice.html('<%= notice %>');
7
- } else {
8
- $('#content h1').before('<div class="flash notice"><%= notice %></div>');
9
- }
10
-
11
- //set form action in case permalink changes
12
- $('form#product-group-form').attr('action', '<%= url_for([:admin, @product_group]) %>');