spree_core 2.0.13 → 2.1.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.
- checksums.yaml +4 -4
- data/app/controllers/spree/base_controller.rb +3 -0
- data/app/helpers/spree/base_helper.rb +6 -16
- data/app/helpers/spree/products_helper.rb +3 -8
- data/app/helpers/spree/taxons_helper.rb +1 -1
- data/app/mailers/spree/base_mailer.rb +0 -5
- data/app/models/spree/ability.rb +10 -7
- data/app/models/spree/address.rb +7 -17
- data/app/models/spree/adjustment.rb +15 -11
- data/app/models/spree/app_configuration.rb +0 -5
- data/app/models/spree/billing_integration.rb +0 -1
- data/app/models/spree/calculator/flat_percent_item_total.rb +1 -3
- data/app/models/spree/calculator/flat_rate.rb +2 -4
- data/app/models/spree/calculator/flexi_rate.rb +6 -9
- data/app/models/spree/calculator/per_item.rb +2 -4
- data/app/models/spree/calculator/percent_per_item.rb +1 -3
- data/app/models/spree/calculator/price_sack.rb +4 -9
- data/app/models/spree/calculator/shipping/flat_percent_item_total.rb +1 -2
- data/app/models/spree/calculator/shipping/flat_rate.rb +2 -4
- data/app/models/spree/calculator/shipping/flexi_rate.rb +4 -9
- data/app/models/spree/calculator/shipping/per_item.rb +2 -3
- data/app/models/spree/calculator/shipping/price_sack.rb +4 -9
- data/app/models/spree/classification.rb +0 -3
- data/app/models/spree/country.rb +1 -3
- data/app/models/spree/credit_card.rb +37 -38
- data/app/models/spree/gateway/bogus_simple.rb +0 -8
- data/app/models/spree/gateway.rb +1 -3
- data/app/models/spree/image.rb +1 -3
- data/app/models/spree/inventory_unit.rb +5 -8
- data/app/models/spree/legacy_user.rb +0 -4
- data/app/models/spree/line_item.rb +2 -15
- data/app/models/spree/option_type.rb +2 -5
- data/app/models/spree/option_value.rb +1 -3
- data/app/models/spree/order/checkout.rb +4 -13
- data/app/models/spree/order.rb +47 -99
- data/app/models/spree/order_contents.rb +4 -7
- data/app/models/spree/order_inventory.rb +4 -8
- data/app/models/spree/order_updater.rb +13 -12
- data/app/models/spree/payment/processing.rb +12 -19
- data/app/models/spree/payment.rb +17 -30
- data/app/models/spree/payment_method.rb +2 -3
- data/app/models/spree/preference.rb +1 -1
- data/app/models/spree/preferences/configuration.rb +1 -1
- data/app/models/spree/preferences/preferable.rb +1 -1
- data/app/models/spree/preferences/store.rb +1 -1
- data/app/models/spree/price.rb +0 -7
- data/app/models/spree/product/scopes.rb +16 -17
- data/app/models/spree/product.rb +27 -62
- data/app/models/spree/product_property.rb +3 -5
- data/app/models/spree/promotion/actions/create_adjustment.rb +9 -8
- data/app/models/spree/promotion/actions/create_line_items.rb +1 -2
- data/app/models/spree/promotion/rules/first_order.rb +1 -1
- data/app/models/spree/promotion/rules/item_total.rb +2 -4
- data/app/models/spree/promotion/rules/product.rb +2 -2
- data/app/models/spree/promotion/rules/user.rb +1 -3
- data/app/models/spree/promotion.rb +23 -24
- data/app/models/spree/promotion_action.rb +0 -2
- data/app/models/spree/promotion_action_line_item.rb +1 -3
- data/app/models/spree/promotion_rule.rb +0 -2
- data/app/models/spree/property.rb +2 -4
- data/app/models/spree/prototype.rb +0 -2
- data/app/models/spree/return_authorization.rb +6 -9
- data/app/models/spree/role.rb +0 -2
- data/app/models/spree/shipment.rb +19 -25
- data/app/models/spree/shipping_calculator.rb +0 -2
- data/app/models/spree/shipping_category.rb +0 -2
- data/app/models/spree/shipping_method.rb +6 -20
- data/app/models/spree/shipping_rate.rb +12 -10
- data/app/models/spree/state.rb +2 -4
- data/app/models/spree/stock/availability_validator.rb +2 -2
- data/app/models/spree/stock/estimator.rb +6 -20
- data/app/models/spree/stock/packer.rb +1 -1
- data/app/models/spree/stock/quantifier.rb +2 -3
- data/app/models/spree/stock/splitter/base.rb +1 -1
- data/app/models/spree/stock_item.rb +8 -18
- data/app/models/spree/stock_location.rb +2 -11
- data/app/models/spree/stock_movement.rb +2 -5
- data/app/models/spree/stock_transfer.rb +0 -2
- data/app/models/spree/tax_category.rb +0 -2
- data/app/models/spree/tax_rate.rb +12 -12
- data/app/models/spree/taxon.rb +1 -13
- data/app/models/spree/taxonomy.rb +3 -6
- data/app/models/spree/tracker.rb +0 -2
- data/app/models/spree/variant/scopes.rb +2 -2
- data/app/models/spree/variant.rb +13 -31
- data/app/models/spree/zone.rb +2 -7
- data/app/models/spree/zone_member.rb +0 -2
- data/app/views/spree/payments/_payment.html.erb +1 -3
- data/config/locales/en.yml +11 -26
- data/db/default/spree/countries.rb +230 -229
- data/db/default/spree/states.rb +57 -56
- data/db/default/spree/zones.rb +5 -5
- data/db/migrate/20130213191427_create_default_stock.rb +4 -7
- data/db/migrate/20130417120035_update_adjustment_states.rb +2 -2
- data/db/migrate/20130417123427_add_shipping_rates_to_shipments.rb +1 -1
- data/db/migrate/20130509115210_add_number_to_stock_transfer.rb +1 -1
- data/db/migrate/20130611054351_rename_shipping_methods_zones_to_spree_shipping_methods_zones.rb +0 -5
- data/db/migrate/20130611185927_add_user_id_index_to_spree_orders.rb +5 -0
- data/db/migrate/20130618041418_add_updated_at_to_spree_countries.rb +9 -0
- data/db/migrate/20130619012236_add_updated_at_to_spree_states.rb +9 -0
- data/db/migrate/20130802022321_migrate_tax_categories_to_line_items.rb +4 -5
- data/db/migrate/20130806145853_set_default_stock_location_on_shipments.rb +1 -1
- data/lib/generators/spree/dummy/dummy_generator.rb +3 -14
- data/lib/generators/spree/dummy/templates/rails/database.yml +0 -10
- data/lib/generators/spree/dummy/templates/rails/test.rb +2 -7
- data/lib/generators/spree/install/install_generator.rb +11 -8
- data/lib/spree/core/calculated_adjustments.rb +9 -8
- data/lib/spree/core/controller_helpers/auth.rb +2 -3
- data/lib/spree/core/controller_helpers/order.rb +8 -13
- data/lib/spree/core/controller_helpers/ssl.rb +13 -22
- data/lib/spree/core/controller_helpers/strong_parameters.rb +36 -0
- data/lib/spree/core/delegate_belongs_to.rb +0 -2
- data/lib/spree/core/engine.rb +1 -5
- data/lib/spree/core/ext/active_record.rb +2 -9
- data/lib/spree/core/permalinks.rb +1 -5
- data/lib/spree/core/product_duplicator.rb +2 -16
- data/lib/spree/core/product_filters.rb +37 -33
- data/lib/spree/core/search/base.rb +1 -1
- data/lib/spree/core/version.rb +1 -1
- data/lib/spree/core.rb +3 -31
- data/lib/spree/i18n.rb +0 -1
- data/lib/spree/money.rb +2 -177
- data/lib/spree/permitted_attributes.rb +95 -0
- data/lib/spree/promo/coupon_applicator.rb +4 -12
- data/lib/spree/testing_support/capybara_ext.rb +13 -17
- data/lib/spree/testing_support/common_rake.rb +1 -1
- data/lib/spree/testing_support/controller_requests.rb +3 -3
- data/lib/spree/testing_support/factories/credit_card_factory.rb +1 -1
- data/lib/spree/testing_support/factories/product_factory.rb +0 -4
- data/lib/spree/testing_support/factories/shipping_method_factory.rb +1 -3
- data/lib/spree/testing_support/factories/user_factory.rb +1 -1
- data/lib/spree/testing_support/factories/variant_factory.rb +0 -15
- data/lib/spree/testing_support/factories.rb +1 -1
- data/lib/spree/testing_support/order_walkthrough.rb +1 -1
- data/lib/tasks/core.rake +2 -2
- data/vendor/assets/javascripts/jquery.payment.js +497 -0
- metadata +166 -172
- data/app/views/spree/admin/shared/_report_order_criteria.html.erb +0 -17
- data/db/migrate/20130417120034_add_index_to_source_columns_on_adjustments.rb +0 -5
- data/db/migrate/20130830001033_add_shipping_category_to_shipping_methods_and_products.rb +0 -15
- data/db/migrate/20130830001159_migrate_old_shipping_calculators.rb +0 -19
- data/db/migrate/20130909115621_change_states_required_for_countries.rb +0 -9
- data/db/migrate/20131001013410_remove_unused_credit_card_fields.rb +0 -12
- data/db/migrate/20131026154747_add_track_inventory_to_variant.rb +0 -5
- data/db/migrate/20131113035136_add_channel_to_spree_orders.rb +0 -5
- data/db/migrate/20140120160805_add_index_to_variant_id_and_currency_on_prices.rb +0 -5
- data/db/migrate/20140205181631_default_variant_weight_to_zero.rb +0 -11
- data/db/migrate/20140415041315_add_user_id_created_by_id_index_to_order.rb +0 -5
- data/lib/spree/core/preference_rescue.rb +0 -25
data/db/default/spree/states.rb
CHANGED
|
@@ -1,57 +1,58 @@
|
|
|
1
|
-
|
|
2
|
-
country = Spree::Country.find_by_name('United States')
|
|
1
|
+
country = Spree::Country.find_by(name: 'United States')
|
|
3
2
|
|
|
4
|
-
Spree::State.create!(
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
3
|
+
Spree::State.create!([
|
|
4
|
+
{ name: 'Michigan', abbr: 'MI', country: country },
|
|
5
|
+
{ name: 'South Dakota', abbr: 'SD', country: country },
|
|
6
|
+
{ name: 'Washington', abbr: 'WA', country: country },
|
|
7
|
+
{ name: 'Wisconsin', abbr: 'WI', country: country },
|
|
8
|
+
{ name: 'Arizona', abbr: 'AZ', country: country },
|
|
9
|
+
{ name: 'Illinois', abbr: 'IL', country: country },
|
|
10
|
+
{ name: 'New Hampshire', abbr: 'NH', country: country },
|
|
11
|
+
{ name: 'North Carolina', abbr: 'NC', country: country },
|
|
12
|
+
{ name: 'Kansas', abbr: 'KS', country: country },
|
|
13
|
+
{ name: 'Missouri', abbr: 'MO', country: country },
|
|
14
|
+
{ name: 'Arkansas', abbr: 'AR', country: country },
|
|
15
|
+
{ name: 'Nevada', abbr: 'NV', country: country },
|
|
16
|
+
{ name: 'District of Columbia', abbr: 'DC', country: country },
|
|
17
|
+
{ name: 'Idaho', abbr: 'ID', country: country },
|
|
18
|
+
{ name: 'Nebraska', abbr: 'NE', country: country },
|
|
19
|
+
{ name: 'Pennsylvania', abbr: 'PA', country: country },
|
|
20
|
+
{ name: 'Hawaii', abbr: 'HI', country: country },
|
|
21
|
+
{ name: 'Utah', abbr: 'UT', country: country },
|
|
22
|
+
{ name: 'Vermont', abbr: 'VT', country: country },
|
|
23
|
+
{ name: 'Delaware', abbr: 'DE', country: country },
|
|
24
|
+
{ name: 'Rhode Island', abbr: 'RI', country: country },
|
|
25
|
+
{ name: 'Oklahoma', abbr: 'OK', country: country },
|
|
26
|
+
{ name: 'Louisiana', abbr: 'LA', country: country },
|
|
27
|
+
{ name: 'Montana', abbr: 'MT', country: country },
|
|
28
|
+
{ name: 'Tennessee', abbr: 'TN', country: country },
|
|
29
|
+
{ name: 'Maryland', abbr: 'MD', country: country },
|
|
30
|
+
{ name: 'Florida', abbr: 'FL', country: country },
|
|
31
|
+
{ name: 'Virginia', abbr: 'VA', country: country },
|
|
32
|
+
{ name: 'Minnesota', abbr: 'MN', country: country },
|
|
33
|
+
{ name: 'New Jersey', abbr: 'NJ', country: country },
|
|
34
|
+
{ name: 'Ohio', abbr: 'OH', country: country },
|
|
35
|
+
{ name: 'California', abbr: 'CA', country: country },
|
|
36
|
+
{ name: 'North Dakota', abbr: 'ND', country: country },
|
|
37
|
+
{ name: 'Maine', abbr: 'ME', country: country },
|
|
38
|
+
{ name: 'Indiana', abbr: 'IN', country: country },
|
|
39
|
+
{ name: 'Texas', abbr: 'TX', country: country },
|
|
40
|
+
{ name: 'Oregon', abbr: 'OR', country: country },
|
|
41
|
+
{ name: 'Wyoming', abbr: 'WY', country: country },
|
|
42
|
+
{ name: 'Alabama', abbr: 'AL', country: country },
|
|
43
|
+
{ name: 'Iowa', abbr: 'IA', country: country },
|
|
44
|
+
{ name: 'Mississippi', abbr: 'MS', country: country },
|
|
45
|
+
{ name: 'Kentucky', abbr: 'KY', country: country },
|
|
46
|
+
{ name: 'New Mexico', abbr: 'NM', country: country },
|
|
47
|
+
{ name: 'Georgia', abbr: 'GA', country: country },
|
|
48
|
+
{ name: 'Colorado', abbr: 'CO', country: country },
|
|
49
|
+
{ name: 'Massachusetts', abbr: 'MA', country: country },
|
|
50
|
+
{ name: 'Connecticut', abbr: 'CT', country: country },
|
|
51
|
+
{ name: 'New York', abbr: 'NY', country: country },
|
|
52
|
+
{ name: 'South Carolina', abbr: 'SC', country: country },
|
|
53
|
+
{ name: 'Alaska', abbr: 'AK', country: country },
|
|
54
|
+
{ name: 'West Virginia', abbr: 'WV', country: country },
|
|
55
|
+
{ name: 'U.S. Armed Forces - Americas', abbr: 'AA', country: country },
|
|
56
|
+
{ name: 'U.S. Armed Forces - Europe', abbr: 'AE', country: country },
|
|
57
|
+
{ name: 'U.S. Armed Forces - Pacific', abbr: 'AP', country: country }
|
|
58
|
+
])
|
data/db/default/spree/zones.rb
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
eu_vat = Spree::Zone.create!(:
|
|
2
|
-
north_america = Spree::Zone.create!(:
|
|
1
|
+
eu_vat = Spree::Zone.create!(name: "EU_VAT", description: "Countries that make up the EU VAT zone.")
|
|
2
|
+
north_america = Spree::Zone.create!(name: "North America", description: "USA + Canada")
|
|
3
3
|
|
|
4
4
|
["Poland", "Finland", "Portugal", "Romania", "Germany", "France",
|
|
5
5
|
"Slovakia", "Hungary", "Slovenia", "Ireland", "Austria", "Spain",
|
|
6
6
|
"Italy", "Belgium", "Sweden", "Latvia", "Bulgaria", "United Kingdom",
|
|
7
7
|
"Lithuania", "Cyprus", "Luxembourg", "Malta", "Denmark", "Netherlands",
|
|
8
8
|
"Estonia"].
|
|
9
|
-
each do |name|
|
|
10
|
-
eu_vat.zone_members.create!(:
|
|
9
|
+
each do |name|
|
|
10
|
+
eu_vat.zone_members.create!(zoneable: Spree::Country.find_by!(name: name))
|
|
11
11
|
end
|
|
12
12
|
|
|
13
13
|
["United States", "Canada"].each do |name|
|
|
14
|
-
north_america.zone_members.create!(:
|
|
14
|
+
north_america.zone_members.create!(zoneable: Spree::Country.find_by!(name: name))
|
|
15
15
|
end
|
|
16
16
|
|
|
17
17
|
|
|
@@ -4,13 +4,10 @@ class CreateDefaultStock < ActiveRecord::Migration
|
|
|
4
4
|
Spree::StockItem.skip_callback(:save, :after, :process_backorders)
|
|
5
5
|
location = Spree::StockLocation.new(name: 'default')
|
|
6
6
|
location.save(validate: false)
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
stock_item = Spree::StockItem.unscoped.build(stock_location: location, variant: variant)
|
|
7
|
+
Spree::Variant.all.each do |variant|
|
|
8
|
+
stock_item = location.stock_items.build(variant: variant)
|
|
10
9
|
stock_item.send(:count_on_hand=, variant.count_on_hand)
|
|
11
|
-
|
|
12
|
-
# validations would run a query with a delete_at column that might not be present yet
|
|
13
|
-
stock_item.save! validate: false
|
|
10
|
+
stock_item.save!
|
|
14
11
|
end
|
|
15
12
|
|
|
16
13
|
remove_column :spree_variants, :count_on_hand
|
|
@@ -19,7 +16,7 @@ class CreateDefaultStock < ActiveRecord::Migration
|
|
|
19
16
|
def down
|
|
20
17
|
add_column :spree_variants, :count_on_hand, :integer
|
|
21
18
|
|
|
22
|
-
Spree::StockItem.
|
|
19
|
+
Spree::StockItem.all.each do |stock_item|
|
|
23
20
|
stock_item.variant.update_column :count_on_hand, stock_item.count_on_hand
|
|
24
21
|
end
|
|
25
22
|
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
class UpdateAdjustmentStates < ActiveRecord::Migration
|
|
2
2
|
def up
|
|
3
|
-
Spree::Order.complete.
|
|
3
|
+
Spree::Order.complete.each do |order|
|
|
4
4
|
order.adjustments.update_all(:state => 'closed')
|
|
5
5
|
end
|
|
6
6
|
|
|
7
|
-
Spree::Shipment.shipped.
|
|
7
|
+
Spree::Shipment.shipped.each do |shipment|
|
|
8
8
|
shipment.adjustment.update_column(:state, 'finalized') if shipment.adjustment
|
|
9
9
|
end
|
|
10
10
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
class AddShippingRatesToShipments < ActiveRecord::Migration
|
|
2
2
|
def up
|
|
3
|
-
Spree::Shipment.
|
|
3
|
+
Spree::Shipment.all.each do |shipment|
|
|
4
4
|
shipment.shipping_rates.create(:shipping_method_id => shipment.shipping_method_id,
|
|
5
5
|
:cost => shipment.cost,
|
|
6
6
|
:selected => true)
|
|
@@ -6,7 +6,7 @@ class AddNumberToStockTransfer < ActiveRecord::Migration
|
|
|
6
6
|
rename_column :spree_stock_transfers, :reference_number, :reference
|
|
7
7
|
add_column :spree_stock_transfers, :number, :string
|
|
8
8
|
|
|
9
|
-
Spree::StockTransfer.
|
|
9
|
+
Spree::StockTransfer.all.each do |transfer|
|
|
10
10
|
transfer.send(:generate_stock_transfer_number)
|
|
11
11
|
transfer.save!
|
|
12
12
|
end
|
data/db/migrate/20130611054351_rename_shipping_methods_zones_to_spree_shipping_methods_zones.rb
CHANGED
|
@@ -1,10 +1,5 @@
|
|
|
1
1
|
class RenameShippingMethodsZonesToSpreeShippingMethodsZones < ActiveRecord::Migration
|
|
2
2
|
def change
|
|
3
3
|
rename_table :shipping_methods_zones, :spree_shipping_methods_zones
|
|
4
|
-
# If Spree::ShippingMethod zones association was patched in
|
|
5
|
-
# CreateShippingMethodZone migrations, it needs to be patched back
|
|
6
|
-
Spree::ShippingMethod.has_and_belongs_to_many :zones, :join_table => 'spree_shipping_methods_zones',
|
|
7
|
-
:class_name => 'Spree::Zone',
|
|
8
|
-
:foreign_key => 'shipping_method_id'
|
|
9
4
|
end
|
|
10
5
|
end
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
class MigrateTaxCategoriesToLineItems < ActiveRecord::Migration
|
|
2
2
|
def change
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
line_item.update_column(:tax_category_id, line_item.product.tax_category_id)
|
|
3
|
+
Spree::LineItem.includes(:variant => { :product => :tax_category }).find_in_batches do |line_items|
|
|
4
|
+
line_items.each do |line_item|
|
|
5
|
+
line_item.update_column(:tax_category_id, line_item.product.tax_category_id)
|
|
6
|
+
end
|
|
8
7
|
end
|
|
9
8
|
end
|
|
10
9
|
end
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
class SetDefaultStockLocationOnShipments < ActiveRecord::Migration
|
|
2
2
|
def change
|
|
3
3
|
if Spree::Shipment.where('stock_location_id IS NULL').count > 0
|
|
4
|
-
location = Spree::StockLocation.
|
|
4
|
+
location = Spree::StockLocation.find_by(name: 'default') || Spree::StockLocation.first
|
|
5
5
|
Spree::Shipment.where('stock_location_id IS NULL').update_all(stock_location_id: location.id)
|
|
6
6
|
end
|
|
7
7
|
end
|
|
@@ -53,9 +53,9 @@ module Spree
|
|
|
53
53
|
def test_dummy_inject_extension_requirements
|
|
54
54
|
if DummyGeneratorHelper.inject_extension_requirements
|
|
55
55
|
inside dummy_path do
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
56
|
+
%w(spree_frontend spree_backend spree_api).each do |requirement|
|
|
57
|
+
inject_into_file 'config/application.rb', "require '#{requirement}'\n", :before => /require '#{@lib_name}'/, :verbose => true
|
|
58
|
+
end
|
|
59
59
|
end
|
|
60
60
|
end
|
|
61
61
|
end
|
|
@@ -82,17 +82,6 @@ module Spree
|
|
|
82
82
|
attr :database
|
|
83
83
|
|
|
84
84
|
protected
|
|
85
|
-
|
|
86
|
-
def inject_require_for(requirement)
|
|
87
|
-
inject_into_file 'config/application.rb', %Q[
|
|
88
|
-
begin
|
|
89
|
-
require '#{requirement}'
|
|
90
|
-
rescue LoadError
|
|
91
|
-
# #{requirement} is not available.
|
|
92
|
-
end
|
|
93
|
-
], :before => /require '#{@lib_name}'/, :verbose => true
|
|
94
|
-
end
|
|
95
|
-
|
|
96
85
|
def dummy_path
|
|
97
86
|
ENV['DUMMY_PATH'] || 'spec/dummy'
|
|
98
87
|
end
|
|
@@ -27,31 +27,21 @@ production:
|
|
|
27
27
|
database: <%= database_prefix %>spree_production
|
|
28
28
|
encoding: utf8
|
|
29
29
|
<% when 'postgres' %>
|
|
30
|
-
<% db_host = ENV['DB_HOST'] -%>
|
|
31
30
|
development:
|
|
32
31
|
adapter: postgresql
|
|
33
32
|
database: <%= database_prefix %>spree_development
|
|
34
33
|
username: postgres
|
|
35
34
|
min_messages: warning
|
|
36
|
-
<% unless db_host.blank? %>
|
|
37
|
-
host: <%= db_host %>
|
|
38
|
-
<% end %>
|
|
39
35
|
test:
|
|
40
36
|
adapter: postgresql
|
|
41
37
|
database: <%= database_prefix %>spree_test
|
|
42
38
|
username: postgres
|
|
43
39
|
min_messages: warning
|
|
44
|
-
<% unless db_host.blank? %>
|
|
45
|
-
host: <%= db_host %>
|
|
46
|
-
<% end %>
|
|
47
40
|
production:
|
|
48
41
|
adapter: postgresql
|
|
49
42
|
database: <%= database_prefix %>spree_production
|
|
50
43
|
username: postgres
|
|
51
44
|
min_messages: warning
|
|
52
|
-
<% unless db_host.blank? %>
|
|
53
|
-
host: <%= db_host %>
|
|
54
|
-
<% end %>
|
|
55
45
|
<% else %>
|
|
56
46
|
development:
|
|
57
47
|
adapter: sqlite3
|
|
@@ -11,13 +11,12 @@ Dummy::Application.configure do
|
|
|
11
11
|
config.serve_static_assets = true
|
|
12
12
|
config.static_cache_control = "public, max-age=3600"
|
|
13
13
|
|
|
14
|
-
# Log error messages when you accidentally call methods on nil
|
|
15
|
-
config.whiny_nils = true
|
|
16
|
-
|
|
17
14
|
# Show full error reports and disable caching
|
|
18
15
|
config.consider_all_requests_local = true
|
|
19
16
|
config.action_controller.perform_caching = false
|
|
20
17
|
|
|
18
|
+
config.eager_load = false
|
|
19
|
+
|
|
21
20
|
# Raise exceptions instead of rendering exception templates
|
|
22
21
|
config.action_dispatch.show_exceptions = false
|
|
23
22
|
|
|
@@ -30,10 +29,6 @@ Dummy::Application.configure do
|
|
|
30
29
|
config.action_mailer.delivery_method = :test
|
|
31
30
|
ActionMailer::Base.default :from => "spree@example.com"
|
|
32
31
|
|
|
33
|
-
# Raise exception on mass assignment protection for Active Record models
|
|
34
|
-
config.active_record.mass_assignment_sanitizer = :strict
|
|
35
|
-
|
|
36
32
|
# Print deprecation notices to the stderr
|
|
37
33
|
config.active_support.deprecation = :stderr
|
|
38
34
|
end
|
|
39
|
-
|
|
@@ -70,14 +70,19 @@ Disallow: /account
|
|
|
70
70
|
def setup_assets
|
|
71
71
|
@lib_name = 'spree'
|
|
72
72
|
%w{javascripts stylesheets images}.each do |path|
|
|
73
|
-
empty_directory "app/assets/#{path}/store"
|
|
74
|
-
empty_directory "app/assets/#{path}/admin"
|
|
73
|
+
empty_directory "app/assets/#{path}/store" if defined? Spree::Frontend || Rails.env.test?
|
|
74
|
+
empty_directory "app/assets/#{path}/admin" if defined? Spree::Backend || Rails.env.test?
|
|
75
75
|
end
|
|
76
76
|
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
77
|
+
if defined? Spree::Frontend || Rails.env.test?
|
|
78
|
+
template "app/assets/javascripts/store/all.js"
|
|
79
|
+
template "app/assets/stylesheets/store/all.css"
|
|
80
|
+
end
|
|
81
|
+
|
|
82
|
+
if defined? Spree::Backend || Rails.env.test?
|
|
83
|
+
template "app/assets/javascripts/admin/all.js"
|
|
84
|
+
template "app/assets/stylesheets/admin/all.css"
|
|
85
|
+
end
|
|
81
86
|
end
|
|
82
87
|
|
|
83
88
|
def create_overrides_directory
|
|
@@ -99,8 +104,6 @@ Disallow: /account
|
|
|
99
104
|
end
|
|
100
105
|
end
|
|
101
106
|
APP
|
|
102
|
-
|
|
103
|
-
append_file "config/environment.rb", "\nActiveRecord::Base.include_root_in_json = false\n"
|
|
104
107
|
end
|
|
105
108
|
|
|
106
109
|
def include_seed_data
|
|
@@ -5,7 +5,6 @@ module Spree
|
|
|
5
5
|
klass.class_eval do
|
|
6
6
|
has_one :calculator, :class_name => "Spree::Calculator", :as => :calculable, :dependent => :destroy
|
|
7
7
|
accepts_nested_attributes_for :calculator
|
|
8
|
-
attr_accessible :calculator_type, :calculator_attributes
|
|
9
8
|
validates :calculator, :presence => true
|
|
10
9
|
|
|
11
10
|
def self.calculators
|
|
@@ -33,12 +32,14 @@ module Spree
|
|
|
33
32
|
calculable = calculable.to_package if calculable.is_a?(Spree::Shipment)
|
|
34
33
|
amount = compute_amount(calculable)
|
|
35
34
|
return if amount == 0 && !mandatory
|
|
36
|
-
target.adjustments.create(
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
35
|
+
target.adjustments.create(
|
|
36
|
+
:amount => amount,
|
|
37
|
+
:source => old_calculable,
|
|
38
|
+
:originator => self,
|
|
39
|
+
:label => label,
|
|
40
|
+
:mandatory => mandatory,
|
|
41
|
+
:state => state
|
|
42
|
+
)
|
|
42
43
|
end
|
|
43
44
|
|
|
44
45
|
# Updates the amount of the adjustment using our Calculator and calling the +compute+ method with the +calculable+
|
|
@@ -49,7 +50,7 @@ module Spree
|
|
|
49
50
|
# It's only the package that contains the correct information.
|
|
50
51
|
# See https://github.com/spree/spree_active_shipping/pull/96 et. al
|
|
51
52
|
calculable = calculable.to_package if calculable.is_a?(Spree::Shipment)
|
|
52
|
-
adjustment.
|
|
53
|
+
adjustment.update_column(:amount, compute_amount(calculable))
|
|
53
54
|
end
|
|
54
55
|
|
|
55
56
|
# Calculate the amount to be used when creating an adjustment
|
|
@@ -9,7 +9,7 @@ module Spree
|
|
|
9
9
|
helper_method :try_spree_current_user
|
|
10
10
|
|
|
11
11
|
rescue_from CanCan::AccessDenied do |exception|
|
|
12
|
-
|
|
12
|
+
unauthorized
|
|
13
13
|
end
|
|
14
14
|
end
|
|
15
15
|
|
|
@@ -27,8 +27,7 @@ module Spree
|
|
|
27
27
|
redirect_to '/unauthorized'
|
|
28
28
|
else
|
|
29
29
|
store_location
|
|
30
|
-
|
|
31
|
-
redirect_to url
|
|
30
|
+
redirect_to respond_to?(:spree_login_path) ? spree_login_path : spree.root_path
|
|
32
31
|
end
|
|
33
32
|
end
|
|
34
33
|
|
|
@@ -11,16 +11,13 @@ module Spree
|
|
|
11
11
|
end
|
|
12
12
|
|
|
13
13
|
# The current incomplete order from the session for use in cart and during checkout
|
|
14
|
-
def current_order(
|
|
15
|
-
options[:create_order_if_necessary] ||= false
|
|
16
|
-
options[:lock] ||= false
|
|
14
|
+
def current_order(create_order_if_necessary = false)
|
|
17
15
|
return @current_order if @current_order
|
|
18
16
|
if session[:order_id]
|
|
19
|
-
current_order = Spree::Order.includes(:adjustments).
|
|
17
|
+
current_order = Spree::Order.includes(:adjustments).find_by(id: session[:order_id], currency: current_currency)
|
|
20
18
|
@current_order = current_order unless current_order.try(:completed?)
|
|
21
19
|
end
|
|
22
|
-
|
|
23
|
-
if options[:create_order_if_necessary] and (@current_order.nil? or @current_order.completed?)
|
|
20
|
+
if create_order_if_necessary and (@current_order.nil? or @current_order.completed?)
|
|
24
21
|
@current_order = Spree::Order.new(currency: current_currency)
|
|
25
22
|
@current_order.user ||= try_spree_current_user
|
|
26
23
|
# See issue #3346 for reasons why this line is here
|
|
@@ -42,16 +39,14 @@ module Spree
|
|
|
42
39
|
def associate_user
|
|
43
40
|
@order ||= current_order
|
|
44
41
|
if try_spree_current_user && @order
|
|
45
|
-
if @order.user.blank? || @order.email.blank?
|
|
46
|
-
@order.associate_user!(try_spree_current_user)
|
|
47
|
-
end
|
|
42
|
+
@order.associate_user!(try_spree_current_user) if @order.user.blank? || @order.email.blank?
|
|
48
43
|
end
|
|
49
44
|
|
|
50
45
|
# This will trigger any "first order" promotions to be triggered
|
|
51
46
|
# Assuming of course that this session variable was set correctly in
|
|
52
47
|
# the authentication provider's registrations controller
|
|
53
48
|
if session[:spree_user_signup] && @order
|
|
54
|
-
fire_event('spree.user.signup', :
|
|
49
|
+
fire_event('spree.user.signup', user: try_spree_current_user, order: @order)
|
|
55
50
|
session[:spree_user_signup] = nil
|
|
56
51
|
end
|
|
57
52
|
|
|
@@ -63,8 +58,8 @@ module Spree
|
|
|
63
58
|
last_incomplete_order = user.last_incomplete_spree_order
|
|
64
59
|
if session[:order_id].nil? && last_incomplete_order
|
|
65
60
|
session[:order_id] = last_incomplete_order.id
|
|
66
|
-
elsif current_order(
|
|
67
|
-
current_order.merge!(last_incomplete_order
|
|
61
|
+
elsif current_order(true) && last_incomplete_order && current_order != last_incomplete_order
|
|
62
|
+
current_order.merge!(last_incomplete_order)
|
|
68
63
|
end
|
|
69
64
|
end
|
|
70
65
|
end
|
|
@@ -74,7 +69,7 @@ module Spree
|
|
|
74
69
|
end
|
|
75
70
|
|
|
76
71
|
def ip_address
|
|
77
|
-
request.
|
|
72
|
+
request.env['HTTP_X_REAL_IP'] || request.env['REMOTE_ADDR']
|
|
78
73
|
end
|
|
79
74
|
end
|
|
80
75
|
end
|
|
@@ -6,20 +6,20 @@ module Spree
|
|
|
6
6
|
|
|
7
7
|
included do
|
|
8
8
|
before_filter :force_non_ssl_redirect, :if => Proc.new { Spree::Config[:redirect_https_to_http] }
|
|
9
|
-
class_attribute :ssl_allowed_actions
|
|
10
9
|
|
|
11
10
|
def self.ssl_allowed(*actions)
|
|
12
|
-
|
|
13
|
-
self.ssl_allowed_actions
|
|
11
|
+
class_attribute :ssl_allowed_actions
|
|
12
|
+
self.ssl_allowed_actions = actions
|
|
14
13
|
end
|
|
15
14
|
|
|
16
15
|
def self.ssl_required(*actions)
|
|
17
|
-
|
|
16
|
+
class_attribute :ssl_required_actions
|
|
17
|
+
self.ssl_required_actions = actions
|
|
18
18
|
if ssl_supported?
|
|
19
|
-
if
|
|
19
|
+
if ssl_required_actions.empty? or Rails.application.config.force_ssl
|
|
20
20
|
force_ssl
|
|
21
21
|
else
|
|
22
|
-
force_ssl :only =>
|
|
22
|
+
force_ssl :only => ssl_required_actions
|
|
23
23
|
end
|
|
24
24
|
end
|
|
25
25
|
end
|
|
@@ -31,28 +31,19 @@ module Spree
|
|
|
31
31
|
end
|
|
32
32
|
|
|
33
33
|
private
|
|
34
|
-
def ssl_allowed?
|
|
35
|
-
(!ssl_allowed_actions.nil? && (ssl_allowed_actions.empty? || ssl_allowed_actions.include?(action_name.to_sym)))
|
|
36
|
-
end
|
|
37
34
|
|
|
38
35
|
# Redirect the existing request to use the HTTP protocol.
|
|
39
36
|
#
|
|
40
37
|
# ==== Parameters
|
|
41
38
|
# * <tt>host</tt> - Redirect to a different host name
|
|
42
39
|
def force_non_ssl_redirect(host = nil)
|
|
43
|
-
if
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
flash.keep if respond_to?(:flash)
|
|
51
|
-
insecure_url = ActionDispatch::Http::URL.url_for(redirect_options)
|
|
52
|
-
redirect_to insecure_url, :status => :moved_permanently
|
|
53
|
-
else
|
|
54
|
-
render :text => Spree.t(:change_protocol, :scope => :ssl), :status => :upgrade_required
|
|
55
|
-
end
|
|
40
|
+
return true if defined?(ssl_allowed_actions) and ssl_allowed_actions.include?(action_name.to_sym)
|
|
41
|
+
if request.ssl? and (!defined?(ssl_required_actions) or !ssl_required_actions.include?(action_name.to_sym))
|
|
42
|
+
redirect_options = {:protocol => 'http://', :status => :moved_permanently}
|
|
43
|
+
redirect_options.merge!(:host => host) if host
|
|
44
|
+
redirect_options.merge!(:params => request.query_parameters)
|
|
45
|
+
flash.keep if respond_to?(:flash)
|
|
46
|
+
redirect_to redirect_options
|
|
56
47
|
end
|
|
57
48
|
end
|
|
58
49
|
end
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
module Spree
|
|
2
|
+
module Core
|
|
3
|
+
module ControllerHelpers
|
|
4
|
+
module StrongParameters
|
|
5
|
+
def permitted_attributes
|
|
6
|
+
Spree::PermittedAttributes
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
delegate *Spree::PermittedAttributes::ATTRIBUTES,
|
|
10
|
+
:to => :permitted_attributes,
|
|
11
|
+
:prefix => :permitted
|
|
12
|
+
|
|
13
|
+
def permitted_payment_attributes
|
|
14
|
+
permitted_attributes.payment_attributes + [
|
|
15
|
+
:source_attributes => permitted_source_attributes
|
|
16
|
+
]
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
def permitted_checkout_attributes
|
|
20
|
+
permitted_attributes.checkout_attributes + [
|
|
21
|
+
:bill_address_attributes => permitted_address_attributes,
|
|
22
|
+
:ship_address_attributes => permitted_address_attributes,
|
|
23
|
+
:payments_attributes => permitted_payment_attributes,
|
|
24
|
+
:shipments_attributes => permitted_shipment_attributes
|
|
25
|
+
]
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
def permitted_order_attributes
|
|
29
|
+
permitted_checkout_attributes + [
|
|
30
|
+
:line_items_attributes => permitted_line_item_attributes
|
|
31
|
+
]
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
end
|