spree_core 1.2.3 → 1.2.4
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/javascripts/admin/checkouts/edit.js +1 -1
- data/app/assets/javascripts/admin/shipping_methods.js.coffee +1 -1
- data/app/controllers/spree/admin/products_controller.rb +1 -1
- data/app/controllers/spree/locale_controller.rb +2 -2
- data/app/models/spree/payment/processing.rb +1 -1
- data/app/models/spree/payment.rb +19 -0
- data/app/models/spree/variant.rb +1 -1
- data/app/views/spree/admin/shared/_translations.html.erb +1 -1
- data/app/views/spree/admin/taxonomies/get_children.json.erb +1 -1
- data/app/views/spree/shared/_order_details.html.erb +1 -1
- data/db/migrate/20130203232234_add_identifier_to_spree_payments.rb +5 -0
- data/lib/spree/core/controller_helpers.rb +2 -2
- data/lib/spree/core/version.rb +1 -1
- data/lib/tasks/core.rake +3 -3
- metadata +24 -7
@@ -1,5 +1,5 @@
|
|
1
1
|
$ ->
|
2
|
-
($ 'input[type=checkbox]:not(:checked)').attr 'disabled', true if ($ '.categories input:checked').length > 0
|
2
|
+
($ 'fieldset.categories input[type=checkbox]:not(:checked)').attr 'disabled', true if ($ '.categories input:checked').length > 0
|
3
3
|
categoryCheckboxes = '.categories input[type=checkbox]'
|
4
4
|
$(categoryCheckboxes).change ->
|
5
5
|
if ($ this).is(':checked')
|
@@ -108,7 +108,7 @@ module Spree
|
|
108
108
|
|
109
109
|
tmp = super.where(["#{Variant.table_name}.sku #{LIKE} ?", "%#{params[:q]}%"])
|
110
110
|
tmp = tmp.includes(:variants_including_master).limit(params[:limit] || 10)
|
111
|
-
@collection.concat(tmp)
|
111
|
+
@collection.concat(tmp).uniq!
|
112
112
|
end
|
113
113
|
@collection
|
114
114
|
end
|
@@ -4,8 +4,8 @@ module Spree
|
|
4
4
|
if request.referer && request.referer.starts_with?('http://' + request.host)
|
5
5
|
session['user_return_to'] = request.referer
|
6
6
|
end
|
7
|
-
if params[:locale] && I18n.available_locales.include?(params[:locale]
|
8
|
-
session[:locale] = I18n.locale = params[:locale]
|
7
|
+
if params[:locale] && I18n.available_locales.map(&:to_s).include?(params[:locale])
|
8
|
+
session[:locale] = I18n.locale = params[:locale]
|
9
9
|
flash.notice = t(:locale_changed)
|
10
10
|
else
|
11
11
|
flash[:error] = t(:locale_not_changed)
|
@@ -111,7 +111,7 @@ module Spree
|
|
111
111
|
options = { :email => order.email,
|
112
112
|
:customer => order.email,
|
113
113
|
:ip => '192.168.1.100', # TODO: Use an actual IP
|
114
|
-
:order_id => order.number }
|
114
|
+
:order_id => "#{order.number}-#{self.identifier}" }
|
115
115
|
|
116
116
|
options.merge!({ :shipping => order.ship_total * 100,
|
117
117
|
:tax => order.tax_total * 100,
|
data/app/models/spree/payment.rb
CHANGED
@@ -8,6 +8,8 @@ module Spree
|
|
8
8
|
has_many :offsets, :class_name => "Spree::Payment", :foreign_key => :source_id, :conditions => "source_type = 'Spree::Payment' AND amount < 0 AND state = 'completed'"
|
9
9
|
has_many :log_entries, :as => :source
|
10
10
|
|
11
|
+
before_save :set_unique_identifier
|
12
|
+
|
11
13
|
after_save :create_payment_profile, :if => :profiles_supported?
|
12
14
|
|
13
15
|
# update the order totals, etc.
|
@@ -100,5 +102,22 @@ module Spree
|
|
100
102
|
order.payments.reload
|
101
103
|
order.update!
|
102
104
|
end
|
105
|
+
|
106
|
+
# Necessary because some payment gateways will refuse payments with
|
107
|
+
# duplicate IDs. We *were* using the Order number, but that's set once and
|
108
|
+
# is unchanging. What we need is a unique identifier on a per-payment basis,
|
109
|
+
# and this is it. Related to #1998.
|
110
|
+
# See https://github.com/spree/spree/issues/1998#issuecomment-12869105
|
111
|
+
def set_unique_identifier
|
112
|
+
chars = [('A'..'Z').to_a, ('0'..'9').to_a].flatten - %w(0 1 I O)
|
113
|
+
identifier = ''
|
114
|
+
8.times { identifier << chars[rand(chars.length)] }
|
115
|
+
if Spree::Payment.exists?(:identifier => identifier)
|
116
|
+
# Call it again, we've got a duplicate ID.
|
117
|
+
set_unique_identifier
|
118
|
+
else
|
119
|
+
self.identifier = identifier
|
120
|
+
end
|
121
|
+
end
|
103
122
|
end
|
104
123
|
end
|
data/app/models/spree/variant.rb
CHANGED
@@ -67,7 +67,7 @@ module Spree
|
|
67
67
|
end
|
68
68
|
|
69
69
|
def options_text
|
70
|
-
values = self.option_values.
|
70
|
+
values = self.option_values.joins(:option_type).order("#{Spree::OptionType.table_name}.position asc")
|
71
71
|
|
72
72
|
values.map! do |ov|
|
73
73
|
"#{ov.option_type.presentation}: #{ov.presentation}"
|
@@ -4,7 +4,7 @@
|
|
4
4
|
:scope => 'spree.date_picker',
|
5
5
|
:default => 'yy/mm/dd'),
|
6
6
|
:abbr_day_names => I18n.t(:abbr_day_names, :scope => :date),
|
7
|
-
:month_names => I18n.t(:month_names, :scope => :date).
|
7
|
+
:month_names => I18n.t(:month_names, :scope => :date).reject(&:blank?),
|
8
8
|
:previous => I18n.t(:previous),
|
9
9
|
:next => I18n.t(:next),
|
10
10
|
:no_results => I18n.t(:no_results),
|
@@ -76,7 +76,7 @@
|
|
76
76
|
</td>
|
77
77
|
<td data-hook="order_item_description">
|
78
78
|
<h4><%= item.variant.product.name %></h4>
|
79
|
-
<%= truncate(item.variant.product.description, :length => 100, :omission => "...") %>
|
79
|
+
<%= truncate(raw(item.variant.product.description), :length => 100, :omission => "...") %>
|
80
80
|
<%= "(" + item.variant.options_text + ")" unless item.variant.option_values.empty? %>
|
81
81
|
</td>
|
82
82
|
<td data-hook="order_item_price" class="price"><span><%= money item.price %></span></td>
|
@@ -164,8 +164,8 @@ module Spree
|
|
164
164
|
locale = session[:locale]
|
165
165
|
locale ||= Spree::Config[:default_locale] unless Spree::Config[:default_locale].blank?
|
166
166
|
locale ||= Rails.application.config.i18n.default_locale
|
167
|
-
locale ||= I18n.default_locale unless I18n.available_locales.include?(locale
|
168
|
-
I18n.locale = locale
|
167
|
+
locale ||= I18n.default_locale unless I18n.available_locales.map(&:to_s).include?(locale)
|
168
|
+
I18n.locale = locale
|
169
169
|
end
|
170
170
|
|
171
171
|
# Returns which layout to render.
|
data/lib/spree/core/version.rb
CHANGED
data/lib/tasks/core.rake
CHANGED
@@ -3,13 +3,13 @@ require 'spree/core/custom_fixtures'
|
|
3
3
|
|
4
4
|
namespace :db do
|
5
5
|
desc %q{Loads a specified fixture file:
|
6
|
-
For .yml
|
6
|
+
For .yml use rake db:load_file[spree/filename.yml,/absolute/path/to/parent/]
|
7
7
|
For .rb use rake db:load_file[/absolute/path/to/sample/filename.rb]}
|
8
8
|
|
9
9
|
task :load_file , [:file, :dir] => :environment do |t, args|
|
10
10
|
file = Pathname.new(args.file)
|
11
11
|
|
12
|
-
if %w{.
|
12
|
+
if %w{.yml}.include? file.extname
|
13
13
|
puts "loading fixture #{Pathname.new(args.dir).join(file)}"
|
14
14
|
Spree::Core::Fixtures.create_fixtures(args.dir, file.to_s.sub(file.extname, ""))
|
15
15
|
elsif file.exist?
|
@@ -25,7 +25,7 @@ For .rb use rake db:load_file[/absolute/path/to/sample/filename.rb]}
|
|
25
25
|
|
26
26
|
fixtures = ActiveSupport::OrderedHash.new
|
27
27
|
ruby_files = ActiveSupport::OrderedHash.new
|
28
|
-
Dir.glob(File.join(dir , '**/*.{yml,
|
28
|
+
Dir.glob(File.join(dir , '**/*.{yml,rb}')).each do |fixture_file|
|
29
29
|
ext = File.extname fixture_file
|
30
30
|
if ext == ".rb"
|
31
31
|
ruby_files[File.basename(fixture_file, '.*')] = fixture_file
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: spree_core
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.2.
|
4
|
+
version: 1.2.4
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-
|
12
|
+
date: 2013-02-04 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: acts_as_list
|
@@ -50,7 +50,7 @@ dependencies:
|
|
50
50
|
requirements:
|
51
51
|
- - ~>
|
52
52
|
- !ruby/object:Gem::Version
|
53
|
-
version:
|
53
|
+
version: 2.1.4
|
54
54
|
type: :runtime
|
55
55
|
prerelease: false
|
56
56
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -58,7 +58,7 @@ dependencies:
|
|
58
58
|
requirements:
|
59
59
|
- - ~>
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version:
|
61
|
+
version: 2.1.4
|
62
62
|
- !ruby/object:Gem::Dependency
|
63
63
|
name: select2-rails
|
64
64
|
requirement: !ruby/object:Gem::Requirement
|
@@ -75,6 +75,22 @@ dependencies:
|
|
75
75
|
- - ~>
|
76
76
|
- !ruby/object:Gem::Version
|
77
77
|
version: '3.0'
|
78
|
+
- !ruby/object:Gem::Dependency
|
79
|
+
name: select2-rails
|
80
|
+
requirement: !ruby/object:Gem::Requirement
|
81
|
+
none: false
|
82
|
+
requirements:
|
83
|
+
- - ~>
|
84
|
+
- !ruby/object:Gem::Version
|
85
|
+
version: '3.2'
|
86
|
+
type: :runtime
|
87
|
+
prerelease: false
|
88
|
+
version_requirements: !ruby/object:Gem::Requirement
|
89
|
+
none: false
|
90
|
+
requirements:
|
91
|
+
- - ~>
|
92
|
+
- !ruby/object:Gem::Version
|
93
|
+
version: '3.2'
|
78
94
|
- !ruby/object:Gem::Dependency
|
79
95
|
name: highline
|
80
96
|
requirement: !ruby/object:Gem::Requirement
|
@@ -194,7 +210,7 @@ dependencies:
|
|
194
210
|
requirements:
|
195
211
|
- - ~>
|
196
212
|
- !ruby/object:Gem::Version
|
197
|
-
version: 3.2.
|
213
|
+
version: 3.2.11
|
198
214
|
type: :runtime
|
199
215
|
prerelease: false
|
200
216
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -202,7 +218,7 @@ dependencies:
|
|
202
218
|
requirements:
|
203
219
|
- - ~>
|
204
220
|
- !ruby/object:Gem::Version
|
205
|
-
version: 3.2.
|
221
|
+
version: 3.2.11
|
206
222
|
- !ruby/object:Gem::Dependency
|
207
223
|
name: kaminari
|
208
224
|
requirement: !ruby/object:Gem::Requirement
|
@@ -1018,6 +1034,7 @@ files:
|
|
1018
1034
|
- db/migrate/20121009142519_add_lock_version_to_variant.rb
|
1019
1035
|
- db/migrate/20121017010007_remove_not_null_constraint_from_products_on_hand.rb
|
1020
1036
|
- db/migrate/20121124203911_add_position_to_taxonomies.rb
|
1037
|
+
- db/migrate/20130203232234_add_identifier_to_spree_payments.rb
|
1021
1038
|
- db/seeds.rb
|
1022
1039
|
- vendor/assets/images/datepicker/cal.gif
|
1023
1040
|
- vendor/assets/images/jquery-ui/ui-bg_flat_0_aaaaaa_40x100.png
|
@@ -1118,7 +1135,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
1118
1135
|
version: '0'
|
1119
1136
|
segments:
|
1120
1137
|
- 0
|
1121
|
-
hash:
|
1138
|
+
hash: -97604365585348825
|
1122
1139
|
requirements:
|
1123
1140
|
- none
|
1124
1141
|
rubyforge_project: spree_core
|