spree_core 0.30.2 → 0.40.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/controllers/admin/base_controller.rb +0 -31
- data/app/controllers/admin/orders_controller.rb +10 -9
- data/app/controllers/admin/overview_controller.rb +1 -1
- data/app/controllers/admin/products_controller.rb +8 -8
- data/app/controllers/admin/properties_controller.rb +1 -1
- data/app/controllers/admin/shipments_controller.rb +6 -3
- data/app/controllers/admin/shipping_methods_controller.rb +1 -1
- data/app/controllers/admin/tax_rates_controller.rb +2 -2
- data/app/controllers/admin/taxons_controller.rb +1 -2
- data/app/controllers/admin/users_controller.rb +7 -8
- data/app/controllers/admin/variants_controller.rb +2 -2
- data/app/controllers/countries_controller.rb +1 -1
- data/app/controllers/locale_controller.rb +1 -1
- data/app/controllers/spree/base_controller.rb +1 -117
- data/app/controllers/states_controller.rb +1 -1
- data/app/helpers/spree/base_helper.rb +1 -7
- data/app/helpers/taxons_helper.rb +2 -2
- data/app/models/app_configuration.rb +0 -3
- data/app/models/calculator/flat_percent_item_total.rb +2 -1
- data/app/models/calculator/vat.rb +1 -1
- data/app/models/creditcard.rb +1 -1
- data/app/models/gateway/authorize_net.rb +13 -2
- data/app/models/gateway/authorize_net_cim.rb +11 -0
- data/app/models/gateway/beanstream.rb +30 -7
- data/app/models/inventory_unit.rb +21 -31
- data/app/models/line_item.rb +7 -8
- data/app/models/order.rb +4 -1
- data/app/models/product_group.rb +4 -8
- data/app/models/property.rb +1 -3
- data/app/models/return_authorization.rb +6 -1
- data/app/models/state_event.rb +3 -3
- data/app/models/state_monitor.rb +16 -16
- data/app/models/taxon.rb +6 -7
- data/app/models/user.rb +4 -0
- data/app/views/admin/general_settings/edit.html.erb +0 -8
- data/app/views/admin/general_settings/show.html.erb +5 -10
- data/app/views/admin/images/_form.html.erb +1 -1
- data/app/views/admin/images/index.html.erb +1 -1
- data/app/views/admin/option_types/new.html.erb +1 -1
- data/app/views/admin/orders/_add_product.html.erb +3 -3
- data/app/views/admin/orders/_form.html.erb +3 -0
- data/app/views/admin/orders/_user_form.html.erb +1 -1
- data/app/views/admin/orders/index.html.erb +2 -2
- data/app/views/admin/orders/show.html.erb +3 -8
- data/app/views/admin/orders/user.html.erb +1 -1
- data/app/views/admin/product_groups/index.html.erb +1 -1
- data/app/views/admin/product_groups/show.html.erb +1 -1
- data/app/views/admin/products/index.html.erb +1 -1
- data/app/views/admin/return_authorizations/_form.html.erb +3 -1
- data/app/views/admin/shared/_address_form.html.erb +1 -1
- data/app/views/admin/shared/_configuration_menu.html.erb +11 -11
- data/app/views/admin/shared/_order_tabs.html.erb +12 -12
- data/app/views/admin/shared/_product_tabs.html.erb +6 -6
- data/app/views/admin/states/_state_list.html.erb +2 -2
- data/app/views/admin/taxonomies/_js_head.html.erb +6 -8
- data/app/views/admin/taxonomies/edit.html.erb +11 -11
- data/app/views/admin/taxonomies/get_children.json.erb +5 -5
- data/app/views/admin/taxons/available.js.erb +10 -10
- data/app/views/admin/taxons/selected.html.erb +13 -13
- data/app/views/admin/variants/index.html.erb +1 -1
- data/app/views/checkout/_address.html.erb +2 -2
- data/app/views/layouts/admin.html.erb +1 -2
- data/app/views/layouts/spree_application.html.erb +1 -2
- data/app/views/shared/_admin_head.html.erb +3 -3
- data/app/views/shared/_doc_and_xmlns.html.erb +2 -0
- data/app/views/shared/_filters.html.erb +3 -28
- data/app/views/taxons/show.html.erb +7 -5
- data/config/initializers/spree.rb +1 -19
- data/config/locales/en.yml +0 -2
- data/config/routes.rb +3 -5
- data/db/migrate/20091007134354_change_taxons_to_nested_set.rb +2 -2
- data/lib/product_filters.rb +10 -11
- data/lib/scopes/product.rb +15 -0
- data/lib/spree/mail_settings.rb +2 -4
- data/lib/spree/preference_access.rb +3 -3
- data/lib/spree_base.rb +116 -0
- data/lib/spree_core.rb +3 -1
- data/lib/spree_core/preferences/model_hooks.rb +1 -1
- data/lib/tasks/install.rake +0 -1
- data/public/javascripts/admin.js +0 -6
- data/public/javascripts/admin/checkouts/edit.js +41 -40
- data/public/javascripts/admin/orders/edit_form.js +5 -4
- data/public/javascripts/jquery.cookie.js +96 -0
- data/public/javascripts/jquery.delayedobserver.js +35 -0
- data/public/javascripts/jsTree/jquery.jstree.js +3510 -0
- data/public/javascripts/jsTree/themes/apple/d.png +0 -0
- data/public/javascripts/jsTree/themes/apple/style.css +60 -34
- data/public/javascripts/jsTree/themes/apple/throbber.gif +0 -0
- data/public/javascripts/taxonomy.js +150 -149
- data/public/stylesheets/admin/admin.css +0 -34
- metadata +36 -43
- data/app/controllers/password_resets_controller.rb +0 -48
- data/app/helpers/users_helper.rb +0 -13
- data/app/models/spree/alert.rb +0 -13
- data/app/views/admin/shared/_alert.html.erb +0 -6
- data/app/views/shared/_login.html.erb +0 -21
- data/app/views/shared/_user_form.html.erb +0 -17
- data/lib/spree/i18n_utils.rb +0 -47
- data/public/javascripts/jquery.js +0 -19
- data/public/javascripts/jrails.autocomplete.js +0 -274
- data/public/javascripts/jrails.js +0 -1
- data/public/javascripts/jsTree/jquery.tree.js +0 -2058
- data/public/javascripts/jsTree/plugins/jquery.tree.contextmenu.js +0 -129
- data/public/javascripts/jsTree/themes/apple/icons.png +0 -0
|
@@ -12,7 +12,7 @@ class Calculator::Vat < Calculator
|
|
|
12
12
|
# list the vat rates for the default country
|
|
13
13
|
def self.default_rates
|
|
14
14
|
origin = Country.find(Spree::Config[:default_country_id])
|
|
15
|
-
calcs = Calculator::Vat.
|
|
15
|
+
calcs = Calculator::Vat.includes(:calculable => :zone).select {
|
|
16
16
|
|vat| vat.calculable.zone.country_list.include?(origin)
|
|
17
17
|
}
|
|
18
18
|
calcs.collect { |calc| calc.calculable }
|
data/app/models/creditcard.rb
CHANGED
|
@@ -134,7 +134,7 @@ class Creditcard < ActiveRecord::Base
|
|
|
134
134
|
end
|
|
135
135
|
|
|
136
136
|
def credit(payment)
|
|
137
|
-
amount = payment.credit_allowed >= payment.order.outstanding_balance.abs ? payment.order.outstanding_balance : payment.credit_allowed
|
|
137
|
+
amount = payment.credit_allowed >= payment.order.outstanding_balance.abs ? payment.order.outstanding_balance.abs : payment.credit_allowed.abs
|
|
138
138
|
|
|
139
139
|
if payment_gateway.payment_profiles_supported?
|
|
140
140
|
response = payment_gateway.credit((amount * 100).round, self, payment.response_code, minimal_gateway_options(payment))
|
|
@@ -1,8 +1,19 @@
|
|
|
1
1
|
class Gateway::AuthorizeNet < Gateway
|
|
2
2
|
preference :login, :string
|
|
3
3
|
preference :password, :string
|
|
4
|
-
|
|
4
|
+
|
|
5
5
|
def provider_class
|
|
6
6
|
ActiveMerchant::Billing::AuthorizeNetGateway
|
|
7
|
-
end
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
def options
|
|
10
|
+
# add :test key in the options hash, as that is what the ActiveMerchant::Billing::AuthorizeNetGateway expects
|
|
11
|
+
if self.prefers? :test_mode
|
|
12
|
+
self.class.default_preferences[:test] = true
|
|
13
|
+
else
|
|
14
|
+
self.class.default_preferences.delete(:test)
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
super
|
|
18
|
+
end
|
|
8
19
|
end
|
|
@@ -12,6 +12,17 @@ class Gateway::AuthorizeNetCim < Gateway
|
|
|
12
12
|
self.class
|
|
13
13
|
end
|
|
14
14
|
|
|
15
|
+
def options
|
|
16
|
+
# add :test key in the options hash, as that is what the ActiveMerchant::Billing::AuthorizeNetGateway expects
|
|
17
|
+
if self.prefers? :test_mode
|
|
18
|
+
self.class.default_preferences[:test] = true
|
|
19
|
+
else
|
|
20
|
+
self.class.default_preferences.delete(:test)
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
super
|
|
24
|
+
end
|
|
25
|
+
|
|
15
26
|
def authorize(amount, creditcard, gateway_options)
|
|
16
27
|
create_transaction(amount, creditcard, :auth_only)
|
|
17
28
|
end
|
|
@@ -12,29 +12,52 @@ class Gateway::Beanstream < Gateway
|
|
|
12
12
|
true
|
|
13
13
|
end
|
|
14
14
|
|
|
15
|
-
def create_profile(
|
|
15
|
+
def create_profile(payment)
|
|
16
|
+
creditcard = payment.source
|
|
16
17
|
if creditcard.gateway_customer_profile_id.nil?
|
|
17
|
-
options = options_for_create_customer_profile(creditcard,
|
|
18
|
+
options = options_for_create_customer_profile(creditcard, {})
|
|
18
19
|
verify_creditcard_name!(creditcard)
|
|
19
20
|
result = provider.store(creditcard, options)
|
|
20
21
|
if result.success?
|
|
21
22
|
creditcard.update_attributes(:gateway_customer_profile_id => result.params["customerCode"], :gateway_payment_profile_id => result.params["customer_vault_id"])
|
|
22
23
|
else
|
|
23
|
-
|
|
24
|
+
creditcard.gateway_error(result) if creditcard.respond_to? :gateway_error
|
|
25
|
+
creditcard.source.gateway_error(result)
|
|
24
26
|
end
|
|
25
27
|
end
|
|
26
28
|
end
|
|
29
|
+
|
|
30
|
+
def capture(transaction, creditcard, gateway_options)
|
|
31
|
+
beanstream_gateway.capture((transaction.amount*100).round, transaction.response_code, gateway_options)
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
def void(transaction_response, creditcard, gateway_options)
|
|
35
|
+
beanstream_gateway.void(transaction_response, gateway_options)
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
def credit(amount, creditcard, response_code, gateway_options = {})
|
|
39
|
+
amount = (amount * -1) if amount < 0
|
|
40
|
+
beanstream_gateway.credit(amount, response_code, gateway_options)
|
|
41
|
+
end
|
|
42
|
+
|
|
27
43
|
private
|
|
44
|
+
|
|
45
|
+
def beanstream_gateway
|
|
46
|
+
ActiveMerchant::Billing::Base.gateway_mode = preferred_server.to_sym
|
|
47
|
+
gateway_options = options
|
|
48
|
+
ActiveMerchant::Billing::BeanstreamGateway.new(gateway_options)
|
|
49
|
+
end
|
|
50
|
+
|
|
28
51
|
def verify_creditcard_name!(creditcard)
|
|
29
|
-
bill_address = creditcard.payments.first.
|
|
52
|
+
bill_address = creditcard.payments.first.order.bill_address
|
|
30
53
|
creditcard.first_name = bill_address.firstname unless creditcard.first_name?
|
|
31
54
|
creditcard.last_name = bill_address.lastname unless creditcard.last_name?
|
|
32
55
|
end
|
|
33
56
|
|
|
34
57
|
def options_for_create_customer_profile(creditcard, gateway_options)
|
|
35
|
-
|
|
36
|
-
address =
|
|
37
|
-
{ :email=>
|
|
58
|
+
order = creditcard.payments.first.order
|
|
59
|
+
address = order.bill_address
|
|
60
|
+
{ :email=>order.email,
|
|
38
61
|
:billing_address=>
|
|
39
62
|
{ :name=>address.full_name,
|
|
40
63
|
:phone=>address.phone,
|
|
@@ -34,42 +34,27 @@ class InventoryUnit < ActiveRecord::Base
|
|
|
34
34
|
def self.assign_opening_inventory(order)
|
|
35
35
|
return [] unless order.completed?
|
|
36
36
|
|
|
37
|
-
out_of_stock_items = []
|
|
38
|
-
|
|
39
37
|
#increase inventory to meet initial requirements
|
|
40
38
|
order.line_items.each do |line_item|
|
|
41
|
-
|
|
39
|
+
increase(order, line_item.variant, line_item.quantity)
|
|
42
40
|
end
|
|
43
|
-
|
|
44
|
-
out_of_stock_items
|
|
45
41
|
end
|
|
46
42
|
|
|
47
43
|
# manages both variant.count_on_hand and inventory unit creation
|
|
48
44
|
#
|
|
49
45
|
def self.increase(order, variant, quantity)
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
back_order = quantity
|
|
53
|
-
sold = 0
|
|
54
|
-
elsif variant.count_on_hand < quantity
|
|
55
|
-
back_order = quantity - (variant.count_on_hand < 0 ? 0 : variant.count_on_hand)
|
|
56
|
-
sold = quantity - back_order
|
|
57
|
-
else
|
|
58
|
-
back_order = 0
|
|
59
|
-
sold = quantity
|
|
60
|
-
end
|
|
46
|
+
back_order = determine_backorder(order, variant, quantity)
|
|
47
|
+
sold = quantity - back_order
|
|
61
48
|
|
|
62
49
|
#set on_hand if configured
|
|
63
50
|
if Spree::Config[:track_inventory_levels]
|
|
64
51
|
variant.decrement!(:count_on_hand, quantity)
|
|
65
52
|
end
|
|
66
53
|
|
|
67
|
-
#create units if configured
|
|
68
|
-
out_of_stock_items = []
|
|
54
|
+
#create units if configured
|
|
69
55
|
if Spree::Config[:create_inventory_units]
|
|
70
|
-
|
|
56
|
+
create_units(order, variant, sold, back_order)
|
|
71
57
|
end
|
|
72
|
-
out_of_stock_items
|
|
73
58
|
end
|
|
74
59
|
|
|
75
60
|
def self.decrease(order, variant, quantity)
|
|
@@ -84,9 +69,7 @@ class InventoryUnit < ActiveRecord::Base
|
|
|
84
69
|
|
|
85
70
|
# find the specified quantity of units with the specified status
|
|
86
71
|
def self.find_by_status(variant, quantity, status)
|
|
87
|
-
variant.inventory_units.
|
|
88
|
-
:conditions => ['status = ? ', status],
|
|
89
|
-
:limit => quantity)
|
|
72
|
+
variant.inventory_units.where(:status => status).limit(quantity)
|
|
90
73
|
end
|
|
91
74
|
|
|
92
75
|
private
|
|
@@ -94,6 +77,16 @@ class InventoryUnit < ActiveRecord::Base
|
|
|
94
77
|
Spree::Config[:allow_backorder_shipping] || self.sold?
|
|
95
78
|
end
|
|
96
79
|
|
|
80
|
+
def self.determine_backorder(order, variant, quantity)
|
|
81
|
+
if variant.on_hand == 0
|
|
82
|
+
quantity
|
|
83
|
+
elsif variant.on_hand.present? and variant.on_hand < quantity
|
|
84
|
+
quantity - (variant.on_hand < 0 ? 0 : variant.on_hand)
|
|
85
|
+
else
|
|
86
|
+
0
|
|
87
|
+
end
|
|
88
|
+
end
|
|
89
|
+
|
|
97
90
|
def self.destroy_units(order, variant, quantity)
|
|
98
91
|
variant_units = order.inventory_units.group_by(&:variant_id)[variant.id].sort_by(&:state)
|
|
99
92
|
|
|
@@ -104,17 +97,14 @@ class InventoryUnit < ActiveRecord::Base
|
|
|
104
97
|
end
|
|
105
98
|
|
|
106
99
|
def self.create_units(order, variant, sold, back_order)
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
sold.times do
|
|
110
|
-
order.inventory_units.create(:variant => variant, :state => "sold", :shipment => shipment)
|
|
100
|
+
if back_order > 0 && !Spree::Config[:allow_backorders]
|
|
101
|
+
raise "Cannot request back orders when backordering is disabled"
|
|
111
102
|
end
|
|
112
103
|
|
|
113
|
-
|
|
114
|
-
back_order.times { order.inventory_units.create(:variant => variant, :state => "backordered", :shipment => shipment) }
|
|
115
|
-
end
|
|
104
|
+
shipment = order.shipments.detect {|shipment| !shipment.shipped? }
|
|
116
105
|
|
|
117
|
-
|
|
106
|
+
sold.times { order.inventory_units.create(:variant => variant, :state => "sold", :shipment => shipment) }
|
|
107
|
+
back_order.times { order.inventory_units.create(:variant => variant, :state => "backordered", :shipment => shipment) }
|
|
118
108
|
end
|
|
119
109
|
|
|
120
110
|
def update_order
|
data/app/models/line_item.rb
CHANGED
|
@@ -6,7 +6,6 @@ class LineItem < ActiveRecord::Base
|
|
|
6
6
|
has_one :product, :through => :variant
|
|
7
7
|
|
|
8
8
|
before_validation :copy_price
|
|
9
|
-
#before_destroy :ensure_not_shipped
|
|
10
9
|
|
|
11
10
|
validates :variant, :presence => true
|
|
12
11
|
validates :quantity, :numericality => { :only_integer => true, :message => I18n.t("validation.must_be_int") }
|
|
@@ -16,7 +15,7 @@ class LineItem < ActiveRecord::Base
|
|
|
16
15
|
attr_accessible :quantity
|
|
17
16
|
|
|
18
17
|
before_save :update_inventory
|
|
19
|
-
before_destroy :remove_inventory
|
|
18
|
+
before_destroy :ensure_not_shipped, :remove_inventory
|
|
20
19
|
|
|
21
20
|
after_save :update_order
|
|
22
21
|
after_destroy :update_order
|
|
@@ -86,11 +85,11 @@ class LineItem < ActiveRecord::Base
|
|
|
86
85
|
order.update!
|
|
87
86
|
end
|
|
88
87
|
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
88
|
+
def ensure_not_shipped
|
|
89
|
+
if order.try(:inventory_units).to_a.any?{|unit| unit.variant_id == variant_id && unit.shipped?}
|
|
90
|
+
errors.add :base, I18n.t("cannot_destory_line_item_as_inventory_units_have_shipped")
|
|
91
|
+
return false
|
|
92
|
+
end
|
|
93
|
+
end
|
|
95
94
|
end
|
|
96
95
|
|
data/app/models/order.rb
CHANGED
|
@@ -347,10 +347,13 @@ class Order < ActiveRecord::Base
|
|
|
347
347
|
bill_address.try(:lastname)
|
|
348
348
|
end
|
|
349
349
|
|
|
350
|
+
def products
|
|
351
|
+
line_items.map{|li| li.variant.product}
|
|
352
|
+
end
|
|
350
353
|
|
|
351
354
|
private
|
|
352
355
|
def create_user
|
|
353
|
-
self.email = user.email if self.user and user.
|
|
356
|
+
self.email = user.email if self.user and not user.anonymous?
|
|
354
357
|
self.user ||= User.anonymous!
|
|
355
358
|
end
|
|
356
359
|
|
data/app/models/product_group.rb
CHANGED
|
@@ -90,14 +90,10 @@ class ProductGroup < ActiveRecord::Base
|
|
|
90
90
|
end
|
|
91
91
|
|
|
92
92
|
def add_scope(scope_name, arguments=[])
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
})
|
|
98
|
-
else
|
|
99
|
-
raise ArgumentError.new("'#{scope_name}` can't be used as scope")
|
|
100
|
-
end
|
|
93
|
+
self.product_scopes << ProductScope.new({
|
|
94
|
+
:name => scope_name.to_s,
|
|
95
|
+
:arguments => [*arguments]
|
|
96
|
+
})
|
|
101
97
|
self
|
|
102
98
|
end
|
|
103
99
|
|
data/app/models/property.rb
CHANGED
|
@@ -13,8 +13,6 @@ class Property < ActiveRecord::Base
|
|
|
13
13
|
if prototype.class == Prototype
|
|
14
14
|
id = prototype.id
|
|
15
15
|
end
|
|
16
|
-
|
|
17
|
-
find(:all, :conditions => [ 'prototype_id = ?', id ],
|
|
18
|
-
:joins => 'left join properties_prototypes on property_id = properties.id')
|
|
16
|
+
joins('left join properties_prototypes on property_id = properties.id').where('prototype_id = ?', id)
|
|
19
17
|
end
|
|
20
18
|
end
|
|
@@ -2,6 +2,7 @@ class ReturnAuthorization < ActiveRecord::Base
|
|
|
2
2
|
belongs_to :order
|
|
3
3
|
has_many :inventory_units
|
|
4
4
|
before_create :generate_number
|
|
5
|
+
before_save :force_positive_amount
|
|
5
6
|
|
|
6
7
|
validates :order, :presence => true
|
|
7
8
|
validates :amount, :numericality => true
|
|
@@ -64,11 +65,15 @@ class ReturnAuthorization < ActiveRecord::Base
|
|
|
64
65
|
def process_return
|
|
65
66
|
inventory_units.each &:return!
|
|
66
67
|
|
|
67
|
-
credit = Adjustment.create(:source => self, :order_id => self.order.id, :amount =>
|
|
68
|
+
credit = Adjustment.create(:source => self, :order_id => self.order.id, :amount => self.amount.abs * -1, :label => I18n.t("rma_credit"))
|
|
68
69
|
self.order.update!
|
|
69
70
|
end
|
|
70
71
|
|
|
71
72
|
def allow_receive?
|
|
72
73
|
!inventory_units.empty?
|
|
73
74
|
end
|
|
75
|
+
|
|
76
|
+
def force_positive_amount
|
|
77
|
+
self.amount = self.amount.abs
|
|
78
|
+
end
|
|
74
79
|
end
|
data/app/models/state_event.rb
CHANGED
|
@@ -8,9 +8,9 @@ class StateEvent < ActiveRecord::Base
|
|
|
8
8
|
end
|
|
9
9
|
|
|
10
10
|
def assign_user
|
|
11
|
-
if
|
|
12
|
-
|
|
13
|
-
end
|
|
11
|
+
# if Session.activated? && current_user_session = Session.find
|
|
12
|
+
# self.user_id ||= current_user_session.user.id
|
|
13
|
+
# end
|
|
14
14
|
true # don't stop the filters
|
|
15
15
|
end
|
|
16
16
|
end
|
data/app/models/state_monitor.rb
CHANGED
|
@@ -4,22 +4,22 @@ class StateMonitor < ActiveRecord::Observer
|
|
|
4
4
|
# Generic transition callback *after* the transition is performed
|
|
5
5
|
def after_transition(object, transition)
|
|
6
6
|
|
|
7
|
-
current_user_session =
|
|
8
|
-
|
|
9
|
-
if current_user_session
|
|
10
|
-
|
|
11
|
-
elsif object.respond_to?(:user)
|
|
12
|
-
|
|
13
|
-
end
|
|
14
|
-
|
|
15
|
-
to_state = transition.attributes[:to_name]
|
|
16
|
-
object.state_events.create({
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
ActiveRecord::Base.logger.info("#{object.class}##{object.id}: #{transition.attributes[:from]} => #{transition.attributes[:to]}")
|
|
7
|
+
# current_user_session = Session.activated? ? Session.find : nil
|
|
8
|
+
#
|
|
9
|
+
# if current_user_session
|
|
10
|
+
# author = current_user_session.user
|
|
11
|
+
# elsif object.respond_to?(:user)
|
|
12
|
+
# author = object.user
|
|
13
|
+
# end
|
|
14
|
+
#
|
|
15
|
+
# to_state = transition.attributes[:to_name]
|
|
16
|
+
# object.state_events.create({
|
|
17
|
+
# :previous_state => transition.attributes[:from],
|
|
18
|
+
# :name => transition.attributes[:event].to_s,
|
|
19
|
+
# :user_id => author && author.id
|
|
20
|
+
# })
|
|
21
|
+
#
|
|
22
|
+
# ActiveRecord::Base.logger.info("#{object.class}##{object.id}: #{transition.attributes[:from]} => #{transition.attributes[:to]}")
|
|
23
23
|
end
|
|
24
24
|
|
|
25
25
|
end
|
data/app/models/taxon.rb
CHANGED
|
@@ -18,14 +18,13 @@ class Taxon < ActiveRecord::Base
|
|
|
18
18
|
# this method should be customized to your own site
|
|
19
19
|
include ::ProductFilters # for detailed defs of filters
|
|
20
20
|
def applicable_filters
|
|
21
|
-
fs
|
|
22
|
-
fs << ProductFilters.taxons_below(self)
|
|
21
|
+
fs = []
|
|
22
|
+
# fs << ProductFilters.taxons_below(self)
|
|
23
23
|
## unless it's a root taxon? left open for demo purposes
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
]
|
|
24
|
+
|
|
25
|
+
fs << ProductFilters.price_filter if ProductFilters.respond_to?(:price_filter)
|
|
26
|
+
fs << ProductFilters.brand_filter if ProductFilters.respond_to?(:brand_filter)
|
|
27
|
+
fs
|
|
29
28
|
end
|
|
30
29
|
|
|
31
30
|
# Creates permalink based on .to_url method provided by stringx gem
|
data/app/models/user.rb
CHANGED
|
@@ -5,6 +5,10 @@ class User < ActiveRecord::Base
|
|
|
5
5
|
belongs_to :ship_address, :foreign_key => "ship_address_id", :class_name => "Address"
|
|
6
6
|
belongs_to :bill_address, :foreign_key => "bill_address_id", :class_name => "Address"
|
|
7
7
|
|
|
8
|
+
def anonymous?
|
|
9
|
+
false
|
|
10
|
+
end
|
|
11
|
+
|
|
8
12
|
# Creates an anonymous user
|
|
9
13
|
def self.anonymous!
|
|
10
14
|
User.create
|
|
@@ -28,14 +28,6 @@
|
|
|
28
28
|
</label>
|
|
29
29
|
</p>
|
|
30
30
|
|
|
31
|
-
<p>
|
|
32
|
-
<label>
|
|
33
|
-
<input name="preferences[check_for_spree_alerts]" type="hidden" value="0" />
|
|
34
|
-
<%= check_box_tag('preferences[check_for_spree_alerts]', "1", Spree::Config[:check_for_spree_alerts]) %>
|
|
35
|
-
<%= t('spree_alert_checking') %>
|
|
36
|
-
</label>
|
|
37
|
-
</p>
|
|
38
|
-
|
|
39
31
|
<p class="form-buttons">
|
|
40
32
|
<%= button t('update') %>
|
|
41
33
|
<%= t("or") %> <%= link_to t("cancel"), admin_general_settings_url %>
|
|
@@ -4,30 +4,25 @@
|
|
|
4
4
|
|
|
5
5
|
<table>
|
|
6
6
|
<tr>
|
|
7
|
-
<th scope="row"><%= t("site_name") %>:</th>
|
|
7
|
+
<th scope="row"><%= t("site_name") %>:</th>
|
|
8
8
|
<td><%= Spree::Config[:site_name] %></td>
|
|
9
9
|
</tr>
|
|
10
10
|
<tr>
|
|
11
|
-
<th scope="row"><%= t("site_url") %>:</th>
|
|
11
|
+
<th scope="row"><%= t("site_url") %>:</th>
|
|
12
12
|
<td><%= Spree::Config[:site_url] %></td>
|
|
13
13
|
</tr>
|
|
14
14
|
<tr>
|
|
15
15
|
<td colspan="2">
|
|
16
|
-
<%= (Spree::Config[:allow_ssl_in_production] ? t("ssl_will_be_used_in_production_mode") : t("ssl_will_not_be_used_in_production_mode")) %>
|
|
16
|
+
<%= (Spree::Config[:allow_ssl_in_production] ? t("ssl_will_be_used_in_production_mode") : t("ssl_will_not_be_used_in_production_mode")) %>
|
|
17
17
|
</td>
|
|
18
18
|
</tr>
|
|
19
19
|
<tr>
|
|
20
20
|
<td colspan="2">
|
|
21
21
|
<%= (Spree::Config[:allow_ssl_in_development_and_test] ? t("ssl_will_be_used_in_development_and_test_modes") : t("ssl_will_not_be_used_in_development_and_test_modes")) %>
|
|
22
|
-
</td>
|
|
23
|
-
</tr>
|
|
24
|
-
<tr>
|
|
25
|
-
<td colspan="2">
|
|
26
|
-
<%= (Spree::Config[:check_for_spree_alerts] ? t("spree_alert_checking") : t("spree_alert_not_checking")) %>
|
|
27
|
-
</td>
|
|
22
|
+
</td>
|
|
28
23
|
</tr>
|
|
29
24
|
</table>
|
|
30
25
|
|
|
31
|
-
<p><%= link_to_with_icon 'edit', t("edit"), edit_admin_general_settings_path
|
|
26
|
+
<p><%= link_to_with_icon 'edit', t("edit"), edit_admin_general_settings_path %></p>
|
|
32
27
|
|
|
33
28
|
|