spree_core 0.60.0 → 0.60.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -6,6 +6,13 @@ class Admin::BaseController < Spree::BaseController
6
6
  layout 'admin'
7
7
 
8
8
  protected
9
+
10
+ def flash_message_for(object, event_sym)
11
+ resource_desc = object.class.model_name.human
12
+ resource_desc += " \"#{object.name}\"" if object.respond_to?(:name)
13
+ I18n.t(event_sym, :resource => resource_desc)
14
+ end
15
+
9
16
  def render_js_for_destroy
10
17
  render :partial => "/admin/shared/destroy"
11
18
  end
@@ -30,7 +30,7 @@ class Admin::PaymentsController < Admin::BaseController
30
30
 
31
31
  if @order.completed?
32
32
  @payment.process!
33
- flash[:notice] = I18n.t(:successfully_created, :resource => 'payment')
33
+ flash[:notice] = flash_message_for(@payment, :successfully_created)
34
34
 
35
35
  respond_with(@payment) { |format| format.html { redirect_to admin_order_payments_path(@order) } }
36
36
  else
@@ -5,6 +5,6 @@ class Admin::ProductPropertiesController < Admin::ResourceController
5
5
  private
6
6
 
7
7
  def find_properties
8
- @properties = Property.all.map(&:name).join(" ")
8
+ @properties = Property.all.map(&:name)
9
9
  end
10
10
  end
@@ -24,9 +24,7 @@ class Admin::ResourceController < Admin::BaseController
24
24
  invoke_callbacks(:update, :before)
25
25
  if @object.update_attributes(params[object_name])
26
26
  invoke_callbacks(:update, :after)
27
- resource_desc = I18n.t(object_name)
28
- resource_desc += " \"#{@object.name}\"" if @object.respond_to?(:name)
29
- flash[:notice] = I18n.t(:successfully_updated, :resource => resource_desc)
27
+ flash[:notice] = flash_message_for(@object, :successfully_updated)
30
28
  respond_with(@object) do |format|
31
29
  format.html { redirect_to location_after_save }
32
30
  format.js { render :layout => false }
@@ -41,9 +39,7 @@ class Admin::ResourceController < Admin::BaseController
41
39
  invoke_callbacks(:create, :before)
42
40
  if @object.save
43
41
  invoke_callbacks(:create, :after)
44
- resource_desc = I18n.t(object_name)
45
- resource_desc += " \"#{@object.name}\"" if @object.respond_to?(:name)
46
- flash[:notice] = I18n.t(:successfully_created, :resource => resource_desc)
42
+ flash[:notice] = flash_message_for(@object, :successfully_created)
47
43
  respond_with(@object) do |format|
48
44
  format.html { redirect_to location_after_save }
49
45
  format.js { render :layout => false }
@@ -58,9 +54,7 @@ class Admin::ResourceController < Admin::BaseController
58
54
  invoke_callbacks(:destroy, :before)
59
55
  if @object.destroy
60
56
  invoke_callbacks(:destroy, :after)
61
- resource_desc = I18n.t(object_name)
62
- resource_desc += " \"#{@object.name}\"" if @object.respond_to?(:name)
63
- flash[:notice] = I18n.t(:successfully_removed, :resource => resource_desc)
57
+ flash[:notice] = flash_message_for(@object, :successfully_removed)
64
58
  respond_with(@object) do |format|
65
59
  format.html { redirect_to collection_url }
66
60
  format.js { render :partial => "/admin/shared/destroy" }
@@ -22,7 +22,7 @@ class Admin::ShipmentsController < Admin::BaseController
22
22
  build_shipment
23
23
  assign_inventory_units
24
24
  if @shipment.save
25
- flash[:notice] = I18n.t(:successfully_created, :resource => 'shipment')
25
+ flash[:notice] = flash_message_for(@shipment, :successfully_created)
26
26
  respond_with(@shipment) do |format|
27
27
  format.html { redirect_to edit_admin_order_shipment_path(@order, @shipment) }
28
28
  end
@@ -44,7 +44,7 @@ class Admin::ShipmentsController < Admin::BaseController
44
44
  @order.shipping_method = @order.shipment.shipping_method
45
45
  @order.save
46
46
 
47
- flash[:notice] = I18n.t(:successfully_updated, :resource => I18n.t('shipment'))
47
+ flash[:notice] = flash_message_for(@shipment, :successfully_updated)
48
48
  return_path = @order.completed? ? edit_admin_order_shipment_path(@order, @shipment) : admin_order_adjustments_path(@order)
49
49
  respond_with(@object) do |format|
50
50
  format.html { redirect_to return_path }
@@ -85,7 +85,7 @@ class Admin::TaxonsController < Admin::BaseController
85
85
  @update_children = true if params[:taxon][:name] != @taxon.name || params[:taxon][:permalink] != @taxon.permalink
86
86
 
87
87
  if @taxon.update_attributes(params[:taxon])
88
- flash[:notice] = I18n.t(:successfully_updated, :resource => I18n.t(:taxon) + " \"#{@taxon.name}\"")
88
+ flash[:notice] = flash_message_for(@taxon, :successfully_updated)
89
89
  end
90
90
 
91
91
  #rename child taxons
@@ -16,7 +16,8 @@ class CheckoutController < Spree::BaseController
16
16
  state_callback(:after)
17
17
  else
18
18
  flash[:error] = I18n.t(:payment_processing_failed)
19
- respond_with(@order, :location => checkout_state_path(@order.state)) and return
19
+ respond_with(@order, :location => checkout_state_path(@order.state))
20
+ return
20
21
  end
21
22
 
22
23
  if @order.state == "complete" || @order.completed?
data/app/models/order.rb CHANGED
@@ -26,7 +26,8 @@ class Order < ActiveRecord::Base
26
26
  before_create :create_user
27
27
  before_create :generate_order_number
28
28
 
29
- validates_presence_of :email, :if => :require_email
29
+ # TODO: validate the format of the email as well (but we can't rely on authlogic anymore to help with validation)
30
+ validates :email, :presence => true, :format => /^([\w\.%\+\-]+)@([\w\-]+\.)+([\w]{2,})$/i, :if => :require_email
30
31
  validate :has_available_shipment
31
32
 
32
33
  #delegate :ip_address, :to => :checkout
@@ -2,6 +2,7 @@ class ShippingMethod < ActiveRecord::Base
2
2
  DISPLAY = [:both, :front_end, :back_end]
3
3
  belongs_to :zone
4
4
  has_many :shipments
5
+ validates :name, :calculator, :zone, :presence => true
5
6
 
6
7
  calculated_adjustments
7
8
 
@@ -42,7 +42,7 @@
42
42
  <% end %>
43
43
 
44
44
  <%= javascript_tag do %>
45
- var properties = "<%=@properties%>".split(' ');
45
+ var properties = [<%= @properties.map{|id| "'#{id}'"}.join(', ') %>];
46
46
 
47
47
  $("#product_properties input.autocomplete").live("keydown", function(){
48
48
  already_auto_completed = $(this).is('ac_input');
@@ -1,6 +1,6 @@
1
1
  <fieldset id="order_details">
2
2
  <div class="clear"></div>
3
- <legend><%= t("confirm") %></legend>
3
+ <legend><%= t(@order.state, :scope => :order_state).titleize %></legend>
4
4
  <%= render :partial => 'shared/order_details', :locals => {:order => @order} %>
5
5
  </fieldset>
6
6
 
@@ -7,9 +7,11 @@
7
7
  <br clear="left" />
8
8
  <%= render "shared/error_messages", :target => @order %>
9
9
  <%= hook :checkout_summary_box do %>
10
- <div id="checkout-summary">
11
- <%= render 'summary', :order => @order %>
12
- </div>
10
+ <% if @order.state != 'confirm' %>
11
+ <div id="checkout-summary">
12
+ <%= render 'summary', :order => @order %>
13
+ </div>
14
+ <% end %>
13
15
  <% end %>
14
16
  <%= form_for @order, :url => update_checkout_path(@order.state), :html => { :id => "checkout_form_#{@order.state}" } do |form| %>
15
17
  <%= render @order.state, :form => form %>
@@ -54,5 +54,10 @@ module SpreeCore
54
54
 
55
55
  config.to_prepare &method(:activate).to_proc
56
56
 
57
+ # filter sensitive information during logging
58
+ initializer "spree.params.filter" do |app|
59
+ app.config.filter_parameters += [:password, :password_confirmation, :number]
60
+ end
61
+
57
62
  end
58
63
  end
@@ -1,7 +1,11 @@
1
1
  Factory.define :shipping_method do |f|
2
2
  f.zone {|a| Zone.find_by_name("GlobalZone") || a.association(:global_zone) }
3
3
  f.name 'UPS Ground'
4
- #f.display_on :back_end
5
- f.after_create {|shipping_method| shipping_method.calculator = Factory(:calculator,
6
- :calculable => shipping_method) }
4
+ f.calculator { |sm| Factory(:calculator, :calculable_id => sm.object_id, :calculable_type => "ShippingMethod") }
5
+ end
6
+
7
+ Factory.define :free_shipping_method, :class => ShippingMethod do |f|
8
+ f.zone {|a| Zone.find_by_name("GlobalZone") || a.association(:global_zone) }
9
+ f.name 'UPS Ground'
10
+ f.calculator { |sm| Factory(:no_amount_calculator, :calculable_id => sm.object_id, :calculable_type => "ShippingMethod") }
7
11
  end
@@ -1,5 +1,5 @@
1
1
  module Spree
2
2
  def self.version
3
- "0.60.0"
3
+ "0.60.1"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: spree_core
3
3
  version: !ruby/object:Gem::Version
4
- hash: 239
5
- prerelease: false
4
+ hash: 237
5
+ prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 60
9
- - 0
10
- version: 0.60.0
9
+ - 1
10
+ version: 0.60.1
11
11
  platform: ruby
12
12
  authors:
13
13
  - Sean Schofield
@@ -15,12 +15,11 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-05-13 00:00:00 -04:00
18
+ date: 2011-06-21 00:00:00 -04:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
22
- name: acts_as_list
23
- prerelease: false
22
+ type: :runtime
24
23
  requirement: &id001 !ruby/object:Gem::Requirement
25
24
  none: false
26
25
  requirements:
@@ -32,27 +31,27 @@ dependencies:
32
31
  - 1
33
32
  - 2
34
33
  version: 0.1.2
35
- type: :runtime
36
34
  version_requirements: *id001
37
- - !ruby/object:Gem::Dependency
38
- name: nested_set
35
+ name: acts_as_list
39
36
  prerelease: false
37
+ - !ruby/object:Gem::Dependency
38
+ type: :runtime
40
39
  requirement: &id002 !ruby/object:Gem::Requirement
41
40
  none: false
42
41
  requirements:
43
42
  - - "="
44
43
  - !ruby/object:Gem::Version
45
- hash: 7
44
+ hash: 3
46
45
  segments:
47
46
  - 1
48
47
  - 6
49
- - 4
50
- version: 1.6.4
51
- type: :runtime
48
+ - 6
49
+ version: 1.6.6
52
50
  version_requirements: *id002
53
- - !ruby/object:Gem::Dependency
54
- name: rd_unobtrusive_date_picker
51
+ name: nested_set
55
52
  prerelease: false
53
+ - !ruby/object:Gem::Dependency
54
+ type: :runtime
56
55
  requirement: &id003 !ruby/object:Gem::Requirement
57
56
  none: false
58
57
  requirements:
@@ -64,11 +63,11 @@ dependencies:
64
63
  - 1
65
64
  - 0
66
65
  version: 0.1.0
67
- type: :runtime
68
66
  version_requirements: *id003
69
- - !ruby/object:Gem::Dependency
70
- name: rd_find_by_param
67
+ name: rd_unobtrusive_date_picker
71
68
  prerelease: false
69
+ - !ruby/object:Gem::Dependency
70
+ type: :runtime
72
71
  requirement: &id004 !ruby/object:Gem::Requirement
73
72
  none: false
74
73
  requirements:
@@ -80,11 +79,11 @@ dependencies:
80
79
  - 1
81
80
  - 1
82
81
  version: 0.1.1
83
- type: :runtime
84
82
  version_requirements: *id004
85
- - !ruby/object:Gem::Dependency
86
- name: highline
83
+ name: rd_find_by_param
87
84
  prerelease: false
85
+ - !ruby/object:Gem::Dependency
86
+ type: :runtime
88
87
  requirement: &id005 !ruby/object:Gem::Requirement
89
88
  none: false
90
89
  requirements:
@@ -96,11 +95,11 @@ dependencies:
96
95
  - 5
97
96
  - 1
98
97
  version: 1.5.1
99
- type: :runtime
100
98
  version_requirements: *id005
101
- - !ruby/object:Gem::Dependency
102
- name: stringex
99
+ name: highline
103
100
  prerelease: false
101
+ - !ruby/object:Gem::Dependency
102
+ type: :runtime
104
103
  requirement: &id006 !ruby/object:Gem::Requirement
105
104
  none: false
106
105
  requirements:
@@ -112,11 +111,11 @@ dependencies:
112
111
  - 0
113
112
  - 3
114
113
  version: 1.0.3
115
- type: :runtime
116
114
  version_requirements: *id006
117
- - !ruby/object:Gem::Dependency
118
- name: state_machine
115
+ name: stringex
119
116
  prerelease: false
117
+ - !ruby/object:Gem::Dependency
118
+ type: :runtime
120
119
  requirement: &id007 !ruby/object:Gem::Requirement
121
120
  none: false
122
121
  requirements:
@@ -128,11 +127,11 @@ dependencies:
128
127
  - 9
129
128
  - 4
130
129
  version: 0.9.4
131
- type: :runtime
132
130
  version_requirements: *id007
133
- - !ruby/object:Gem::Dependency
134
- name: faker
131
+ name: state_machine
135
132
  prerelease: false
133
+ - !ruby/object:Gem::Dependency
134
+ type: :runtime
136
135
  requirement: &id008 !ruby/object:Gem::Requirement
137
136
  none: false
138
137
  requirements:
@@ -144,27 +143,27 @@ dependencies:
144
143
  - 9
145
144
  - 5
146
145
  version: 0.9.5
147
- type: :runtime
148
146
  version_requirements: *id008
149
- - !ruby/object:Gem::Dependency
150
- name: paperclip
147
+ name: faker
151
148
  prerelease: false
149
+ - !ruby/object:Gem::Dependency
150
+ type: :runtime
152
151
  requirement: &id009 !ruby/object:Gem::Requirement
153
152
  none: false
154
153
  requirements:
155
154
  - - "="
156
155
  - !ruby/object:Gem::Version
157
- hash: 19
156
+ hash: 21
158
157
  segments:
159
158
  - 2
160
159
  - 3
161
- - 8
162
- version: 2.3.8
163
- type: :runtime
160
+ - 11
161
+ version: 2.3.11
164
162
  version_requirements: *id009
165
- - !ruby/object:Gem::Dependency
166
- name: rd_resource_controller
163
+ name: paperclip
167
164
  prerelease: false
165
+ - !ruby/object:Gem::Dependency
166
+ type: :runtime
168
167
  requirement: &id010 !ruby/object:Gem::Requirement
169
168
  none: false
170
169
  requirements:
@@ -174,11 +173,11 @@ dependencies:
174
173
  segments:
175
174
  - 0
176
175
  version: "0"
177
- type: :runtime
178
176
  version_requirements: *id010
179
- - !ruby/object:Gem::Dependency
180
- name: meta_search
177
+ name: rd_resource_controller
181
178
  prerelease: false
179
+ - !ruby/object:Gem::Dependency
180
+ type: :runtime
182
181
  requirement: &id011 !ruby/object:Gem::Requirement
183
182
  none: false
184
183
  requirements:
@@ -190,59 +189,60 @@ dependencies:
190
189
  - 0
191
190
  - 5
192
191
  version: 1.0.5
193
- type: :runtime
194
192
  version_requirements: *id011
195
- - !ruby/object:Gem::Dependency
196
- name: activemerchant
193
+ name: meta_search
197
194
  prerelease: false
195
+ - !ruby/object:Gem::Dependency
196
+ type: :runtime
198
197
  requirement: &id012 !ruby/object:Gem::Requirement
199
198
  none: false
200
199
  requirements:
201
200
  - - "="
202
201
  - !ruby/object:Gem::Version
203
- hash: 47
202
+ hash: 43
204
203
  segments:
205
204
  - 1
206
- - 14
205
+ - 15
207
206
  - 0
208
- version: 1.14.0
209
- type: :runtime
207
+ version: 1.15.0
210
208
  version_requirements: *id012
211
- - !ruby/object:Gem::Dependency
212
- name: will_paginate
209
+ name: activemerchant
213
210
  prerelease: false
211
+ - !ruby/object:Gem::Dependency
212
+ type: :runtime
214
213
  requirement: &id013 !ruby/object:Gem::Requirement
215
214
  none: false
216
215
  requirements:
217
216
  - - "="
218
217
  - !ruby/object:Gem::Version
219
- hash: -1876988247
218
+ hash: 1923831917
220
219
  segments:
221
220
  - 3
222
221
  - 0
223
- - pre2
222
+ - pre
223
+ - 2
224
224
  version: 3.0.pre2
225
- type: :runtime
226
225
  version_requirements: *id013
227
- - !ruby/object:Gem::Dependency
228
- name: rails
226
+ name: will_paginate
229
227
  prerelease: false
228
+ - !ruby/object:Gem::Dependency
229
+ type: :runtime
230
230
  requirement: &id014 !ruby/object:Gem::Requirement
231
231
  none: false
232
232
  requirements:
233
233
  - - "="
234
234
  - !ruby/object:Gem::Version
235
- hash: 9
235
+ hash: 21
236
236
  segments:
237
237
  - 3
238
238
  - 0
239
- - 7
240
- version: 3.0.7
241
- type: :runtime
239
+ - 9
240
+ version: 3.0.9
242
241
  version_requirements: *id014
243
- - !ruby/object:Gem::Dependency
244
- name: jquery-rails
242
+ name: rails
245
243
  prerelease: false
244
+ - !ruby/object:Gem::Dependency
245
+ type: :runtime
246
246
  requirement: &id015 !ruby/object:Gem::Requirement
247
247
  none: false
248
248
  requirements:
@@ -254,8 +254,9 @@ dependencies:
254
254
  - 2
255
255
  - 6
256
256
  version: 0.2.6
257
- type: :runtime
258
257
  version_requirements: *id015
258
+ name: jquery-rails
259
+ prerelease: false
259
260
  description: Required dependancy for Spree
260
261
  email: sean@railsdog.com
261
262
  executables: []
@@ -1142,7 +1143,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
1142
1143
  requirements:
1143
1144
  - none
1144
1145
  rubyforge_project: spree_core
1145
- rubygems_version: 1.3.7
1146
+ rubygems_version: 1.6.2
1146
1147
  signing_key:
1147
1148
  specification_version: 3
1148
1149
  summary: Core e-commerce functionality for the Spree project.