spree_core 0.60.6 → 0.70.RC1
Sign up to get free protection for your applications and to get access to all the features.
- data/{public → app/assets}/images/admin/bg/active-tab.png +0 -0
- data/{public → app/assets}/images/admin/bg/admin_tab_back.png +0 -0
- data/{public → app/assets}/images/admin/bg/admin_tab_selected_back.png +0 -0
- data/{public → app/assets}/images/admin/bg/content-back-blue.png +0 -0
- data/{public → app/assets}/images/admin/bg/content-back-green.png +0 -0
- data/{public → app/assets}/images/admin/bg/content-back.png +0 -0
- data/{public → app/assets}/images/admin/bg/flash-error.png +0 -0
- data/{public → app/assets}/images/admin/bg/flash-notice.png +0 -0
- data/{public → app/assets}/images/admin/bg/green-stripes.gif +0 -0
- data/{public → app/assets}/images/admin/bg/green-stripes.png +0 -0
- data/{public → app/assets}/images/admin/bg/grid_header_back.png +0 -0
- data/{public → app/assets}/images/admin/bg/grid_header_back_green.png +0 -0
- data/{public → app/assets}/images/admin/bg/header-bg.png +0 -0
- data/{public → app/assets}/images/admin/bg/header.png +0 -0
- data/{public → app/assets}/images/admin/bg/header_bg.jpg +0 -0
- data/{public → app/assets}/images/admin/bg/menu-current.png +0 -0
- data/{public → app/assets}/images/admin/bg/red-stripes.gif +0 -0
- data/{public → app/assets}/images/admin/bg/red-stripes.png +0 -0
- data/{public → app/assets}/images/admin/bg/spree_50.png +0 -0
- data/{public → app/assets}/images/admin/bg/subnav-divider.png +0 -0
- data/{public → app/assets}/images/admin/bg/subnav.png +0 -0
- data/{public → app/assets}/images/admin/bg/tab-back.png +0 -0
- data/{public → app/assets}/images/admin/buttons/blue/left_01.png +0 -0
- data/{public → app/assets}/images/admin/buttons/blue/right_01.png +0 -0
- data/{public → app/assets}/images/admin/buttons/drag-handle-green.png +0 -0
- data/{public → app/assets}/images/admin/buttons/green/left_01.png +0 -0
- data/{public → app/assets}/images/admin/buttons/green/right_01.png +0 -0
- data/{public → app/assets}/images/admin/buttons/left_01.png +0 -0
- data/{public → app/assets}/images/admin/buttons/left_01_small.png +0 -0
- data/{public → app/assets}/images/admin/buttons/orange/left_03.png +0 -0
- data/{public → app/assets}/images/admin/buttons/orange/right_03.png +0 -0
- data/{public → app/assets}/images/admin/buttons/right_01.png +0 -0
- data/{public → app/assets}/images/admin/buttons/right_01_small.png +0 -0
- data/{public → app/assets}/images/admin/icons/16x16/1.png +0 -0
- data/{public → app/assets}/images/admin/icons/16x16/10.png +0 -0
- data/{public → app/assets}/images/admin/icons/16x16/2.png +0 -0
- data/{public → app/assets}/images/admin/icons/16x16/3.png +0 -0
- data/{public → app/assets}/images/admin/icons/16x16/4.png +0 -0
- data/{public → app/assets}/images/admin/icons/16x16/5.png +0 -0
- data/{public → app/assets}/images/admin/icons/16x16/6.png +0 -0
- data/{public → app/assets}/images/admin/icons/16x16/7.png +0 -0
- data/{public → app/assets}/images/admin/icons/16x16/8.png +0 -0
- data/{public → app/assets}/images/admin/icons/16x16/9.png +0 -0
- data/{public → app/assets}/images/admin/icons/32x32/1.png +0 -0
- data/{public → app/assets}/images/admin/icons/32x32/10.png +0 -0
- data/{public → app/assets}/images/admin/icons/32x32/11.png +0 -0
- data/{public → app/assets}/images/admin/icons/32x32/2.png +0 -0
- data/{public → app/assets}/images/admin/icons/32x32/3.png +0 -0
- data/{public → app/assets}/images/admin/icons/32x32/4.png +0 -0
- data/{public → app/assets}/images/admin/icons/32x32/5.png +0 -0
- data/{public → app/assets}/images/admin/icons/32x32/6.png +0 -0
- data/{public → app/assets}/images/admin/icons/32x32/7.png +0 -0
- data/{public → app/assets}/images/admin/icons/32x32/8.png +0 -0
- data/{public → app/assets}/images/admin/icons/32x32/9.png +0 -0
- data/{public → app/assets}/images/admin/icons/accept.png +0 -0
- data/{public → app/assets}/images/admin/icons/add.gif +0 -0
- data/{public → app/assets}/images/admin/icons/add.png +0 -0
- data/{public → app/assets}/images/admin/icons/arrow-down.gif +0 -0
- data/{public → app/assets}/images/admin/icons/cross.png +0 -0
- data/{public → app/assets}/images/admin/icons/delete.gif +0 -0
- data/{public → app/assets}/images/admin/icons/delete.png +0 -0
- data/{public → app/assets}/images/admin/icons/drag.gif +0 -0
- data/{public → app/assets}/images/admin/icons/edit.gif +0 -0
- data/{public → app/assets}/images/admin/icons/edit.png +0 -0
- data/{public → app/assets}/images/admin/icons/email.png +0 -0
- data/{public → app/assets}/images/admin/icons/error.png +0 -0
- data/{public → app/assets}/images/admin/icons/exclamation.png +0 -0
- data/{public → app/assets}/images/admin/icons/feed.png +0 -0
- data/{public → app/assets}/images/admin/icons/pdf.png +0 -0
- data/{public → app/assets}/images/admin/icons/reorder.gif +0 -0
- data/{public → app/assets}/images/admin/icons/search.gif +0 -0
- data/{public → app/assets}/images/admin/icons/send-email.png +0 -0
- data/{public → app/assets}/images/admin/icons/stop.png +0 -0
- data/app/assets/images/admin/icons/switch.png +0 -0
- data/{public → app/assets}/images/admin/icons/tick.png +0 -0
- data/{public → app/assets}/images/admin/icons/up.gif +0 -0
- data/{public → app/assets}/images/admin/icons/xls.png +0 -0
- data/{public/images → app/assets/images/admin}/progress.gif +0 -0
- data/{public/images → app/assets/images/creditcards}/amex_cid.gif +0 -0
- data/{public/images → app/assets/images/creditcards}/creditcard.gif +0 -0
- data/{public/images → app/assets/images/creditcards}/discover_cid.gif +0 -0
- data/{public/images → app/assets/images/creditcards}/master_cid.jpg +0 -0
- data/{public/images → app/assets/images/creditcards}/visa_cid.gif +0 -0
- data/{public → app/assets}/images/favicon.ico +0 -0
- data/{public/images → app/assets/images/icons}/add-to-cart.png +0 -0
- data/{public/images → app/assets/images/icons}/checkout.png +0 -0
- data/app/assets/images/icons/delete.png +0 -0
- data/{public/images → app/assets/images/icons}/update.png +0 -0
- data/app/assets/images/noimage/mini.png +0 -0
- data/app/assets/images/noimage/product.png +0 -0
- data/app/assets/images/noimage/small.png +0 -0
- data/{public → app/assets}/images/spinner.gif +0 -0
- data/{public → app/assets}/javascripts/admin/address_states.js +4 -4
- data/{public/javascripts/admin.js → app/assets/javascripts/admin/admin.js.erb} +90 -93
- data/app/assets/javascripts/admin/calculator.js +15 -0
- data/{public → app/assets}/javascripts/admin/checkouts/edit.js +13 -13
- data/app/assets/javascripts/admin/gateway.js +13 -0
- data/app/assets/javascripts/admin/images/index.js +10 -0
- data/app/assets/javascripts/admin/images/new.js +5 -0
- data/app/assets/javascripts/admin/nested-attribute.js +23 -0
- data/app/assets/javascripts/admin/orders/edit.js +15 -0
- data/app/assets/javascripts/admin/orders/edit_form.js +16 -0
- data/{public → app/assets}/javascripts/admin/payments/new.js +0 -0
- data/app/assets/javascripts/admin/products.js +23 -0
- data/app/assets/javascripts/admin/spree_core.js +10 -0
- data/app/assets/javascripts/admin/taxonomy.js +206 -0
- data/app/assets/javascripts/admin/underscore-min.js +26 -0
- data/app/assets/javascripts/admin/zone.js +44 -0
- data/app/assets/javascripts/store/cart.js +11 -0
- data/app/assets/javascripts/store/checkout.js +77 -0
- data/app/assets/javascripts/store/product.js +49 -0
- data/app/assets/javascripts/store/spree_core.js +6 -0
- data/{public/stylesheets/admin/admin-forms.css → app/assets/stylesheets/admin/admin-form.css.erb} +27 -16
- data/{public → app/assets}/stylesheets/admin/admin-reset.css +0 -0
- data/{public/stylesheets/admin/admin-tables.css → app/assets/stylesheets/admin/admin-tables.css.erb} +3 -2
- data/{public → app/assets}/stylesheets/admin/admin-typography.css +2 -2
- data/{public/stylesheets/admin/admin.css → app/assets/stylesheets/admin/admin.css.erb} +22 -46
- data/{public/stylesheets/admin/autocomplete.css → app/assets/stylesheets/admin/edit_checkouts.css} +6 -7
- data/{public → app/assets}/stylesheets/admin/grids.css +107 -107
- data/app/assets/stylesheets/admin/spree_core.css +16 -0
- data/{public → app/assets}/stylesheets/admin/token-input.css +0 -0
- data/app/assets/stylesheets/store/reset.css +175 -0
- data/app/assets/stylesheets/store/screen.css +122 -0
- data/app/assets/stylesheets/store/spree_core.css +5 -0
- data/app/controllers/admin/base_controller.rb +3 -32
- data/app/controllers/admin/general_settings_controller.rb +14 -15
- data/app/controllers/admin/line_items_controller.rb +1 -1
- data/app/controllers/admin/mail_methods_controller.rb +13 -0
- data/app/controllers/admin/option_types_controller.rb +1 -2
- data/app/controllers/admin/orders_controller.rb +9 -8
- data/app/controllers/admin/product_groups_controller.rb +1 -2
- data/app/controllers/admin/products_controller.rb +4 -6
- data/app/controllers/admin/prototypes_controller.rb +1 -0
- data/app/controllers/admin/resource_controller.rb +7 -1
- data/app/controllers/admin/shipments_controller.rb +1 -1
- data/app/controllers/admin/states_controller.rb +1 -1
- data/app/controllers/admin/tax_categories_controller.rb +6 -0
- data/app/controllers/admin/taxons_controller.rb +0 -9
- data/app/controllers/admin/users_controller.rb +9 -5
- data/app/controllers/admin/variants_controller.rb +22 -0
- data/app/controllers/admin/zones_controller.rb +1 -1
- data/app/controllers/checkout_controller.rb +6 -0
- data/app/controllers/content_controller.rb +1 -1
- data/app/controllers/home_controller.rb +10 -0
- data/app/controllers/orders_controller.rb +11 -7
- data/app/controllers/products_controller.rb +0 -1
- data/app/helpers/admin/base_helper.rb +4 -8
- data/app/helpers/admin/navigation_helper.rb +9 -2
- data/app/helpers/checkout_helper.rb +7 -3
- data/app/helpers/hook_helper.rb +5 -15
- data/app/helpers/products_helper.rb +4 -0
- data/app/helpers/spree/base_helper.rb +55 -12
- data/app/helpers/taxons_helper.rb +0 -16
- data/app/mailers/test_mailer.rb +10 -0
- data/app/models/activator.rb +27 -0
- data/app/models/adjustment.rb +32 -12
- data/app/models/app_configuration.rb +7 -6
- data/app/models/calculator/vat.rb +27 -43
- data/app/models/creditcard.rb +23 -34
- data/app/models/gateway.rb +1 -0
- data/app/models/image.rb +7 -2
- data/app/models/order.rb +30 -17
- data/app/models/payment.rb +5 -11
- data/app/models/payment_method.rb +0 -4
- data/app/models/payment_method/check.rb +0 -4
- data/app/models/product.rb +22 -9
- data/app/models/product_group.rb +4 -8
- data/app/models/product_scope.rb +1 -1
- data/app/models/shipment.rb +1 -6
- data/app/models/tax_category.rb +6 -0
- data/app/models/tax_rate.rb +10 -0
- data/app/models/taxon.rb +3 -3
- data/app/models/zone.rb +4 -4
- data/app/views/admin/adjustments/_adjustments_table.html.erb +3 -3
- data/app/views/admin/adjustments/edit.html.erb +1 -1
- data/app/views/admin/adjustments/new.html.erb +1 -1
- data/app/views/admin/configurations/index.html.erb +54 -56
- data/app/views/admin/general_settings/edit.html.erb +13 -38
- data/app/views/admin/general_settings/show.html.erb +13 -23
- data/app/views/admin/images/_form.html.erb +4 -4
- data/app/views/admin/images/edit.html.erb +4 -4
- data/app/views/admin/images/index.html.erb +7 -21
- data/app/views/admin/images/new.html.erb +8 -18
- data/app/views/admin/inventory_settings/edit.html.erb +3 -3
- data/app/views/admin/inventory_units/adjust.html.erb +2 -2
- data/app/views/admin/line_items/create.js.erb +4 -0
- data/app/views/admin/mail_methods/_form.html.erb +3 -6
- data/app/views/admin/mail_methods/edit.html.erb +3 -3
- data/app/views/admin/mail_methods/index.html.erb +17 -21
- data/app/views/admin/mail_methods/new.html.erb +3 -3
- data/app/views/admin/option_types/_available.html.erb +5 -4
- data/app/views/admin/option_types/_option_value_fields.html.erb +1 -1
- data/app/views/admin/option_types/_selected.html.erb +6 -6
- data/app/views/admin/option_types/edit.html.erb +4 -4
- data/app/views/admin/option_types/index.html.erb +6 -6
- data/app/views/admin/option_types/{new.erb → new.html.erb} +1 -1
- data/app/views/admin/option_types/new.js.erb +2 -0
- data/app/views/admin/option_types/selected.html.erb +1 -1
- data/app/views/admin/orders/_add_product.html.erb +4 -4
- data/app/views/admin/orders/_form.html.erb +31 -42
- data/app/views/admin/orders/_line_item.html.erb +10 -15
- data/app/views/admin/orders/_user_form.html.erb +11 -6
- data/app/views/admin/orders/edit.html.erb +12 -16
- data/app/views/admin/orders/history.html.erb +3 -3
- data/app/views/admin/orders/index.html.erb +33 -45
- data/app/views/admin/orders/new.html.erb +5 -6
- data/app/views/admin/orders/show.html.erb +7 -9
- data/app/views/admin/orders/user.html.erb +2 -7
- data/app/views/admin/payment_methods/_form.html.erb +8 -8
- data/app/views/admin/payment_methods/edit.html.erb +1 -1
- data/app/views/admin/payment_methods/index.html.erb +19 -28
- data/app/views/admin/payment_methods/new.html.erb +2 -2
- data/app/views/admin/payments/_form.html.erb +1 -1
- data/app/views/admin/payments/_list.html.erb +2 -2
- data/app/views/admin/payments/_transaction_list.html.erb +3 -3
- data/app/views/admin/payments/credit.html.erb +1 -1
- data/app/views/admin/payments/index.html.erb +1 -1
- data/app/views/admin/payments/new.html.erb +2 -2
- data/app/views/admin/payments/show.html.erb +1 -1
- data/app/views/admin/payments/source_forms/_gateway.html.erb +6 -6
- data/app/views/admin/payments/source_views/_gateway.html.erb +1 -1
- data/app/views/admin/product_groups/_preview.html.erb +8 -8
- data/app/views/admin/product_groups/_product_scope.html.erb +5 -5
- data/app/views/admin/product_groups/edit.html.erb +6 -9
- data/app/views/admin/product_groups/index.html.erb +6 -6
- data/app/views/admin/product_groups/new.html.erb +2 -2
- data/app/views/admin/product_groups/show.html.erb +4 -4
- data/app/views/admin/product_groups/update.js.erb +5 -1
- data/app/views/admin/product_properties/_product_property_fields.html.erb +1 -1
- data/app/views/admin/product_properties/index.html.erb +11 -11
- data/app/views/admin/products/_form.html.erb +75 -72
- data/app/views/admin/products/_option_types.html.erb +34 -34
- data/app/views/admin/products/_properties_form.erb +2 -2
- data/app/views/admin/products/edit.html.erb +2 -3
- data/app/views/admin/products/index.html.erb +25 -34
- data/app/views/admin/products/{new.erb → new.html.erb} +4 -5
- data/app/views/admin/products/new.js.erb +3 -0
- data/app/views/admin/properties/_form.html.erb +13 -10
- data/app/views/admin/properties/edit.html.erb +1 -1
- data/app/views/admin/properties/index.html.erb +5 -5
- data/app/views/admin/properties/{new.erb → new.html.erb} +2 -2
- data/app/views/admin/properties/new.js.erb +2 -0
- data/app/views/admin/prototypes/_form.html.erb +18 -18
- data/app/views/admin/prototypes/_prototypes.html.erb +22 -0
- data/app/views/admin/prototypes/available.js.erb +2 -0
- data/app/views/admin/prototypes/edit.html.erb +1 -1
- data/app/views/admin/prototypes/index.html.erb +6 -6
- data/app/views/admin/prototypes/{new.erb → new.html.erb} +2 -2
- data/app/views/admin/prototypes/new.js.erb +2 -0
- data/app/views/admin/reports/index.html.erb +2 -2
- data/app/views/admin/reports/sales_total.html.erb +1 -1
- data/app/views/admin/return_authorizations/_form.html.erb +2 -2
- data/app/views/admin/return_authorizations/edit.html.erb +4 -4
- data/app/views/admin/return_authorizations/index.html.erb +5 -5
- data/app/views/admin/return_authorizations/new.html.erb +2 -2
- data/app/views/admin/shared/_address.html.erb +1 -1
- data/app/views/admin/shared/_address_form.html.erb +3 -4
- data/app/views/admin/shared/_calculator_fields.html.erb +3 -3
- data/app/views/admin/shared/_configuration_menu.html.erb +13 -14
- data/app/views/admin/shared/_destroy.js.erb +1 -1
- data/app/views/admin/shared/_edit_resource_links.html.erb +1 -1
- data/app/views/admin/shared/_group_from_products_form.html.erb +1 -1
- data/app/views/admin/shared/_head.html.erb +26 -0
- data/app/views/admin/shared/_new_adjustment_button.html.erb +4 -4
- data/app/views/admin/shared/_new_resource_links.html.erb +1 -1
- data/app/views/admin/shared/_order_details.html.erb +0 -1
- data/app/views/admin/shared/_order_tabs.html.erb +42 -47
- data/app/views/admin/shared/_product_sub_menu.html.erb +6 -8
- data/app/views/admin/shared/_product_tabs.html.erb +19 -23
- data/app/views/admin/shared/_report_criteria.html.erb +2 -2
- data/app/views/admin/shared/_show_resource_links.html.erb +2 -2
- data/app/views/admin/shared/_tabs.html.erb +1 -1
- data/app/views/admin/shipments/_form.html.erb +37 -41
- data/app/views/admin/shipments/edit.html.erb +13 -15
- data/app/views/admin/shipments/index.html.erb +21 -30
- data/app/views/admin/shipments/new.html.erb +6 -6
- data/app/views/admin/shipping_categories/_form.html.erb +2 -2
- data/app/views/admin/shipping_categories/edit.html.erb +1 -1
- data/app/views/admin/shipping_categories/index.html.erb +5 -5
- data/app/views/admin/shipping_categories/new.html.erb +1 -1
- data/app/views/admin/shipping_methods/_form.html.erb +4 -5
- data/app/views/admin/shipping_methods/edit.html.erb +7 -7
- data/app/views/admin/shipping_methods/index.html.erb +13 -22
- data/app/views/admin/shipping_methods/new.html.erb +7 -7
- data/app/views/admin/states/_state_list.html.erb +6 -6
- data/app/views/admin/states/edit.html.erb +1 -1
- data/app/views/admin/states/index.html.erb +3 -3
- data/app/views/admin/states/{new.erb → new.html.erb} +1 -1
- data/app/views/admin/states/new.js.erb +2 -0
- data/app/views/admin/tax_categories/index.html.erb +7 -7
- data/app/views/admin/tax_categories/new.html.erb +1 -1
- data/app/views/admin/tax_rates/_form.html.erb +5 -5
- data/app/views/admin/tax_rates/edit.html.erb +1 -1
- data/app/views/admin/tax_rates/index.html.erb +5 -5
- data/app/views/admin/tax_rates/new.html.erb +1 -1
- data/app/views/admin/tax_settings/edit.html.erb +10 -4
- data/app/views/admin/tax_settings/show.html.erb +8 -4
- data/app/views/admin/taxonomies/_form.html.erb +2 -2
- data/app/views/admin/taxonomies/_js_head.html.erb +0 -1
- data/app/views/admin/taxonomies/_list.html.erb +3 -3
- data/app/views/admin/taxonomies/edit.erb +2 -2
- data/app/views/admin/taxonomies/index.html.erb +4 -4
- data/app/views/admin/taxonomies/new.html.erb +2 -2
- data/app/views/admin/taxons/_form.html.erb +2 -2
- data/app/views/admin/taxons/_taxon_table.html.erb +10 -10
- data/app/views/admin/taxons/available.js.erb +7 -14
- data/app/views/admin/taxons/edit.html.erb +2 -2
- data/app/views/admin/taxons/selected.html.erb +9 -9
- data/app/views/admin/trackers/_form.html.erb +7 -6
- data/app/views/admin/trackers/edit.html.erb +1 -1
- data/app/views/admin/trackers/index.html.erb +8 -13
- data/app/views/admin/trackers/new.html.erb +1 -1
- data/app/views/admin/users/_form.html.erb +13 -14
- data/app/views/admin/users/edit.html.erb +7 -7
- data/app/views/admin/users/index.html.erb +20 -34
- data/app/views/admin/users/new.html.erb +7 -7
- data/app/views/admin/users/show.html.erb +2 -2
- data/app/views/admin/variants/_form.html.erb +6 -6
- data/app/views/admin/variants/edit.html.erb +3 -3
- data/app/views/admin/variants/index.html.erb +6 -6
- data/app/views/admin/variants/new.html.erb +8 -0
- data/app/views/admin/variants/new.js.erb +2 -0
- data/app/views/admin/zones/_country_member.html.erb +1 -1
- data/app/views/admin/zones/_form.html.erb +1 -1
- data/app/views/admin/zones/_member_type.html.erb +2 -2
- data/app/views/admin/zones/_state_member.html.erb +2 -2
- data/app/views/admin/zones/_zone_member.html.erb +2 -2
- data/app/views/admin/zones/edit.html.erb +1 -1
- data/app/views/admin/zones/index.html.erb +8 -9
- data/app/views/admin/zones/new.html.erb +1 -1
- data/app/views/checkout/_address.html.erb +125 -134
- data/app/views/checkout/_confirm.html.erb +2 -2
- data/app/views/checkout/_delivery.html.erb +8 -4
- data/app/views/checkout/_payment.html.erb +7 -7
- data/app/views/checkout/_summary.html.erb +6 -5
- data/app/views/checkout/edit.html.erb +6 -8
- data/app/views/checkout/payment/_gateway.html.erb +5 -5
- data/app/views/checkout/registration.html.erb +3 -3
- data/app/views/content/cvv.html.erb +5 -5
- data/app/views/home/index.html.erb +10 -0
- data/app/views/layouts/admin.html.erb +16 -23
- data/app/views/layouts/spree_application.html.erb +30 -44
- data/app/views/orders/_form.html.erb +8 -10
- data/app/views/orders/_line_item.html.erb +17 -32
- data/app/views/orders/edit.html.erb +20 -18
- data/app/views/orders/show.html.erb +2 -2
- data/app/views/products/_cart_form.html.erb +42 -47
- data/app/views/products/_properties.html.erb +5 -4
- data/app/views/products/_taxons.html.erb +10 -12
- data/app/views/products/_thumbnails.html.erb +14 -35
- data/app/views/products/index.html.erb +6 -9
- data/app/views/products/show.html.erb +18 -23
- data/app/views/shared/_error_messages.html.erb +1 -1
- data/app/views/shared/_filters.html.erb +1 -1
- data/app/views/shared/_head.html.erb +3 -6
- data/app/views/shared/_nav_bar.html.erb +3 -2
- data/app/views/shared/_order_details.html.erb +31 -41
- data/app/views/shared/_products.html.erb +10 -16
- data/app/views/shared/_store_menu.html.erb +2 -2
- data/app/views/shared/_taxonomies.html.erb +3 -14
- data/app/views/taxons/_taxon.html.erb +1 -1
- data/app/views/taxons/show.html.erb +6 -6
- data/app/views/test_mailer/test_email.text.erb +4 -0
- data/config/initializers/deprecation_checker.rb +7 -0
- data/config/initializers/disable_paperclip_log.rb +2 -0
- data/config/initializers/form_builder.rb +0 -4
- data/config/initializers/sprockets_precompile_patch.rb +16 -0
- data/config/initializers/workarounds_for_ruby19.rb +1 -1
- data/config/locales/en.yml +55 -24
- data/config/routes.rb +9 -8
- data/db/default/roles.yml +1 -3
- data/db/migrate/20100419194457_fix_existing_coupon_credits.rb +9 -0
- data/db/migrate/20110329141434_create_activators.rb +21 -0
- data/db/migrate/20110418151136_eligible_for_adjustments.rb +9 -0
- data/db/seeds.rb +4 -2
- data/lib/custom_fixtures.rb +64 -3
- data/lib/generators/spree/dummy/dummy_generator.rb +105 -0
- data/lib/generators/spree/dummy/templates/cucumber/cucumber.rb +38 -0
- data/lib/generators/spree/dummy/templates/rails/application.rb +10 -0
- data/lib/generators/spree/dummy/templates/rails/boot.rb +6 -0
- data/lib/generators/spree/dummy/templates/rails/database.yml +30 -0
- data/lib/generators/spree/dummy/templates/rails/routes.rb +3 -0
- data/lib/generators/spree/sandbox/sandbox_generator.rb +27 -0
- data/lib/generators/spree/site/site_generator.rb +79 -0
- data/lib/generators/spree/site/templates/app/assets/javascripts/admin/all.js +16 -0
- data/lib/generators/spree/site/templates/app/assets/javascripts/store/all.js +16 -0
- data/lib/generators/spree/site/templates/app/assets/stylesheets/admin/all.css +17 -0
- data/lib/generators/spree/site/templates/app/assets/stylesheets/store/all.css +17 -0
- data/lib/scopes.rb +1 -1
- data/lib/spree/calculated_adjustments.rb +8 -3
- data/lib/spree/search/base.rb +1 -5
- data/lib/spree_base.rb +12 -0
- data/lib/spree_core.rb +9 -6
- data/lib/spree_core/ext/active_record.rb +1 -1
- data/lib/spree_core/preferences/model_hooks.rb +7 -3
- data/lib/spree_core/railtie.rb +19 -3
- data/lib/spree_core/testing_support/common_rake.rb +12 -0
- data/lib/spree_core/testing_support/factories/activator_factory.rb +6 -0
- data/lib/spree_core/testing_support/factories/adjustment_factory.rb +1 -0
- data/lib/spree_core/testing_support/factories/calculator_factory.rb +6 -0
- data/lib/spree_core/testing_support/factories/order_factory.rb +7 -6
- data/lib/spree_core/testing_support/factories/product_factory.rb +6 -0
- data/lib/spree_core/testing_support/factories/user_factory.rb +14 -10
- data/lib/spree_core/testing_support/factories/zone_factory.rb +1 -1
- data/lib/spree_core/theme_support.rb +0 -3
- data/lib/spree_core/theme_support/hook_listener.rb +112 -35
- data/lib/spree_core/version.rb +1 -1
- data/lib/subclass_registration.rb +21 -0
- data/lib/tasks/assets.rake +58 -0
- data/lib/tasks/core.rake +18 -11
- data/lib/tasks/install.rake +4 -12
- data/{public → vendor/assets}/images/datepicker/cal.gif +0 -0
- data/vendor/assets/images/jquery-ui/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
- data/vendor/assets/images/jquery-ui/ui-bg_flat_0_eeeeee_40x100.png +0 -0
- data/vendor/assets/images/jquery-ui/ui-bg_flat_55_ffffff_40x100.png +0 -0
- data/vendor/assets/images/jquery-ui/ui-bg_flat_75_ffffff_40x100.png +0 -0
- data/vendor/assets/images/jquery-ui/ui-bg_glass_65_ffffff_1x400.png +0 -0
- data/vendor/assets/images/jquery-ui/ui-bg_highlight-soft_100_f6f6f6_1x100.png +0 -0
- data/vendor/assets/images/jquery-ui/ui-bg_highlight-soft_25_0073ea_1x100.png +0 -0
- data/vendor/assets/images/jquery-ui/ui-bg_highlight-soft_50_dddddd_1x100.png +0 -0
- data/vendor/assets/images/jquery-ui/ui-icons_0073ea_256x240.png +0 -0
- data/vendor/assets/images/jquery-ui/ui-icons_454545_256x240.png +0 -0
- data/vendor/assets/images/jquery-ui/ui-icons_666666_256x240.png +0 -0
- data/vendor/assets/images/jquery-ui/ui-icons_ff0084_256x240.png +0 -0
- data/vendor/assets/images/jquery-ui/ui-icons_ffffff_256x240.png +0 -0
- data/{public → vendor/assets}/javascripts/jquery.alerts/images/help.gif +0 -0
- data/{public → vendor/assets}/javascripts/jquery.alerts/images/important.gif +0 -0
- data/{public → vendor/assets}/javascripts/jquery.alerts/images/info.gif +0 -0
- data/{public → vendor/assets}/javascripts/jquery.alerts/images/title.gif +0 -0
- data/{public → vendor/assets}/javascripts/jquery.alerts/jquery.alerts.css +0 -0
- data/{public → vendor/assets}/javascripts/jquery.alerts/jquery.alerts.js +0 -0
- data/{public → vendor/assets}/javascripts/jquery.alerts/jquery.alerts.spree.css +0 -0
- data/{public → vendor/assets}/javascripts/jquery.autocomplete.min.js +0 -0
- data/vendor/assets/javascripts/jquery.cookie.js +41 -0
- data/{public → vendor/assets}/javascripts/jquery.delayedobserver.js +0 -0
- data/{public/javascripts/jsTree → vendor/assets/javascripts/jquery.jstree}/jquery.jstree.js +4544 -3510
- data/{public/javascripts/jsTree → vendor/assets/javascripts/jquery.jstree}/themes/apple/bg.jpg +0 -0
- data/{public/javascripts/jsTree → vendor/assets/javascripts/jquery.jstree}/themes/apple/d.png +0 -0
- data/{public/javascripts/jsTree → vendor/assets/javascripts/jquery.jstree}/themes/apple/dot_for_ie.gif +0 -0
- data/{public/javascripts/jsTree → vendor/assets/javascripts/jquery.jstree}/themes/apple/style.css +2 -1
- data/{public/javascripts/jsTree → vendor/assets/javascripts/jquery.jstree}/themes/apple/throbber.gif +0 -0
- data/vendor/assets/javascripts/jquery.tokeninput.js +860 -0
- data/vendor/assets/javascripts/jquery.validate/additional-methods.min.js +28 -0
- data/vendor/assets/javascripts/jquery.validate/jquery.validate.min.js +51 -0
- data/vendor/assets/javascripts/jquery.validate/localization/messages_ar.js +24 -0
- data/vendor/assets/javascripts/jquery.validate/localization/messages_bg.js +23 -0
- data/vendor/assets/javascripts/jquery.validate/localization/messages_ca.js +23 -0
- data/vendor/assets/javascripts/jquery.validate/localization/messages_cn.js +23 -0
- data/vendor/assets/javascripts/jquery.validate/localization/messages_cs.js +23 -0
- data/vendor/assets/javascripts/jquery.validate/localization/messages_da.js +20 -0
- data/vendor/assets/javascripts/jquery.validate/localization/messages_de.js +21 -0
- data/vendor/assets/javascripts/jquery.validate/localization/messages_el.js +24 -0
- data/{public/javascripts → vendor/assets/javascripts/jquery.validate}/localization/messages_es.js +22 -23
- data/vendor/assets/javascripts/jquery.validate/localization/messages_fa.js +23 -0
- data/vendor/assets/javascripts/jquery.validate/localization/messages_fi.js +21 -0
- data/vendor/assets/javascripts/jquery.validate/localization/messages_fr.js +23 -0
- data/vendor/assets/javascripts/jquery.validate/localization/messages_ge.js +23 -0
- data/vendor/assets/javascripts/jquery.validate/localization/messages_he.js +23 -0
- data/vendor/assets/javascripts/jquery.validate/localization/messages_hu.js +21 -0
- data/vendor/assets/javascripts/jquery.validate/localization/messages_it.js +23 -0
- data/vendor/assets/javascripts/jquery.validate/localization/messages_ja.js +23 -0
- data/vendor/assets/javascripts/jquery.validate/localization/messages_kk.js +23 -0
- data/vendor/assets/javascripts/jquery.validate/localization/messages_lt.js +23 -0
- data/vendor/assets/javascripts/jquery.validate/localization/messages_lv.js +23 -0
- data/vendor/assets/javascripts/jquery.validate/localization/messages_nl.js +23 -0
- data/vendor/assets/javascripts/jquery.validate/localization/messages_no.js +23 -0
- data/vendor/assets/javascripts/jquery.validate/localization/messages_pl.js +23 -0
- data/vendor/assets/javascripts/jquery.validate/localization/messages_ptbr.js +30 -0
- data/vendor/assets/javascripts/jquery.validate/localization/messages_ptpt.js +23 -0
- data/{public/javascripts → vendor/assets/javascripts/jquery.validate}/localization/messages_ro.js +22 -23
- data/vendor/assets/javascripts/jquery.validate/localization/messages_ru.js +23 -0
- data/vendor/assets/javascripts/jquery.validate/localization/messages_se.js +23 -0
- data/vendor/assets/javascripts/jquery.validate/localization/messages_si.js +23 -0
- data/vendor/assets/javascripts/jquery.validate/localization/messages_sk.js +21 -0
- data/vendor/assets/javascripts/jquery.validate/localization/messages_sr.js +23 -0
- data/vendor/assets/javascripts/jquery.validate/localization/messages_th.js +23 -0
- data/vendor/assets/javascripts/jquery.validate/localization/messages_tr.js +24 -0
- data/vendor/assets/javascripts/jquery.validate/localization/messages_tw.js +24 -0
- data/vendor/assets/javascripts/jquery.validate/localization/messages_ua.js +24 -0
- data/vendor/assets/javascripts/jquery.validate/localization/messages_vi.js +23 -0
- data/vendor/assets/javascripts/jquery.validate/localization/methods_de.js +12 -0
- data/vendor/assets/javascripts/jquery.validate/localization/methods_nl.js +9 -0
- data/vendor/assets/javascripts/jquery.validate/localization/methods_pt.js +9 -0
- data/vendor/assets/stylesheets/jquery-ui.datepicker.css.erb +357 -0
- metadata +358 -462
- data/app/models/spree/alert.rb +0 -13
- data/app/stylesheets/_buttons.less +0 -80
- data/app/stylesheets/_cart.less +0 -24
- data/app/stylesheets/_checkout.less +0 -76
- data/app/stylesheets/_checkout_progress.less +0 -62
- data/app/stylesheets/_colors.less +0 -16
- data/app/stylesheets/_forms.less +0 -50
- data/app/stylesheets/_layout.less +0 -77
- data/app/stylesheets/_messages.less +0 -32
- data/app/stylesheets/_mixins.less +0 -71
- data/app/stylesheets/_navigation.less +0 -130
- data/app/stylesheets/_prices.less +0 -18
- data/app/stylesheets/_product_details.less +0 -56
- data/app/stylesheets/_product_lists.less +0 -66
- data/app/stylesheets/_registration.less +0 -24
- data/app/stylesheets/_reset.less +0 -69
- data/app/stylesheets/_typography.less +0 -158
- data/app/stylesheets/screen.less +0 -13
- data/app/views/admin/extensions/index.html.erb +0 -23
- data/app/views/admin/product_scopes/_form.html.erb +0 -106
- data/app/views/admin/prototypes/available.html.erb +0 -22
- data/app/views/admin/shared/_alert.html.erb +0 -6
- data/app/views/admin/variants/new.erb +0 -11
- data/app/views/shared/_additional_field.html.erb +0 -7
- data/app/views/shared/_admin_head.html.erb +0 -34
- data/app/views/shared/_basic_layout.html.erb +0 -44
- data/app/views/shared/_edit_resource_links.html.erb +0 -1
- data/app/views/shared/_footer.html.erb +0 -13
- data/app/views/shared/_method_error_message.html.erb +0 -4
- data/app/views/shared/_new_resource_links.html.erb +0 -1
- data/app/views/shared/_show_resource_links.html.erb +0 -3
- data/app/views/shared/_test_hook.html.erb +0 -1
- data/config/initializers/load_unobtrusive_date_picker.rb +0 -8
- data/db/migrate/20101026184833_migrate_adjustments.rb +0 -9
- data/lib/generators/spree_core/upgrade_generator.rb +0 -23
- data/lib/generators/templates/config/initializers/%file_name%.rb.tt +0 -1
- data/lib/generators/templates/config/locales/%current_locale%.yml.tt +0 -2
- data/lib/generators/templates/config/routes.rb +0 -3
- data/lib/spree_core/theme_support/hook.rb +0 -51
- data/lib/spree_core/theme_support/hook_modifier.rb +0 -35
- data/lib/spree_core/theme_support/more_patches.rb +0 -118
- data/lib/tasks/common.rb +0 -30
- data/lib/tasks/themes.rake +0 -34
- data/public/images/admin/tabs/off-left.png +0 -0
- data/public/images/admin/tabs/off-right.png +0 -0
- data/public/images/admin/tabs/on-left.png +0 -0
- data/public/images/admin/tabs/on-right.png +0 -0
- data/public/images/ajax_loader.gif +0 -0
- data/public/images/bg-button-hover.png +0 -0
- data/public/images/bg-button-pressed.png +0 -0
- data/public/images/bg-button.gif +0 -0
- data/public/images/bg-button.png +0 -0
- data/public/images/blue/left_01.png +0 -0
- data/public/images/blue/right_01.png +0 -0
- data/public/images/body-back.png +0 -0
- data/public/images/bottom_shine.png +0 -0
- data/public/images/breadcrumb.gif +0 -0
- data/public/images/button-dark-hover.png +0 -0
- data/public/images/button-dark.png +0 -0
- data/public/images/buttons/bg-button-hover.png +0 -0
- data/public/images/buttons/bg-button-pressed.png +0 -0
- data/public/images/buttons/bg-button.gif +0 -0
- data/public/images/buttons/bg-button.png +0 -0
- data/public/images/buttons/blue/left_01.png +0 -0
- data/public/images/buttons/blue/right_01.png +0 -0
- data/public/images/buttons/button-dark-hover.png +0 -0
- data/public/images/buttons/button-dark.png +0 -0
- data/public/images/buttons/drag-handle-green.png +0 -0
- data/public/images/buttons/green/left_01.png +0 -0
- data/public/images/buttons/green/right_01.png +0 -0
- data/public/images/buttons/left_01.png +0 -0
- data/public/images/buttons/left_01_small.png +0 -0
- data/public/images/buttons/orange/left_03.png +0 -0
- data/public/images/buttons/orange/right_03.png +0 -0
- data/public/images/buttons/right_01.png +0 -0
- data/public/images/buttons/right_01_small.png +0 -0
- data/public/images/buttons/sxsw-ribbon-v1.png +0 -0
- data/public/images/buttons/top-shine.png +0 -0
- data/public/images/calendar_date_select/calendar.gif +0 -0
- data/public/images/cart-empty.png +0 -0
- data/public/images/cart-empty_x32.png +0 -0
- data/public/images/cart-full.png +0 -0
- data/public/images/cart-full_x32.png +0 -0
- data/public/images/datepicker/backstripes.gif +0 -0
- data/public/images/datepicker/bg_header.jpg +0 -0
- data/public/images/datepicker/bullet1.gif +0 -0
- data/public/images/datepicker/bullet2.gif +0 -0
- data/public/images/datepicker/gradient-e5e5e5-ffffff.gif +0 -0
- data/public/images/drag-handle-green.png +0 -0
- data/public/images/green/left_01.png +0 -0
- data/public/images/green/right_01.png +0 -0
- data/public/images/grid.png +0 -0
- data/public/images/left_01.png +0 -0
- data/public/images/left_01_small.png +0 -0
- data/public/images/menu-current.png +0 -0
- data/public/images/menu-hover.png +0 -0
- data/public/images/noimage/mini.jpg +0 -0
- data/public/images/noimage/product.jpg +0 -0
- data/public/images/noimage/small.jpg +0 -0
- data/public/images/openid-inputicon.gif +0 -0
- data/public/images/orange/left_03.png +0 -0
- data/public/images/orange/right_03.png +0 -0
- data/public/images/reorder.jpg +0 -0
- data/public/images/right_01.png +0 -0
- data/public/images/right_01_small.png +0 -0
- data/public/images/separator.png +0 -0
- data/public/images/shadow-top.png +0 -0
- data/public/images/shadow_top.png +0 -0
- data/public/images/spree.jpg +0 -0
- data/public/images/spree/progress.gif +0 -0
- data/public/images/spree/spinner.gif +0 -0
- data/public/images/spree/spree.jpg +0 -0
- data/public/images/step-progress/completed-completed.gif +0 -0
- data/public/images/step-progress/completed-current.gif +0 -0
- data/public/images/step-progress/completed-first.gif +0 -0
- data/public/images/step-progress/current-first.gif +0 -0
- data/public/images/step-progress/current-incomplete.gif +0 -0
- data/public/images/step-progress/current-right.gif +0 -0
- data/public/images/step-progress/incomplete-incomplete.gif +0 -0
- data/public/images/step-progress/incomplete-right.gif +0 -0
- data/public/images/steps/1.png +0 -0
- data/public/images/steps/1_small.png +0 -0
- data/public/images/steps/2.png +0 -0
- data/public/images/steps/2_small.png +0 -0
- data/public/images/steps/3.png +0 -0
- data/public/images/steps/3_small.png +0 -0
- data/public/images/steps/4.png +0 -0
- data/public/images/steps/4_small.png +0 -0
- data/public/images/steps/5.png +0 -0
- data/public/images/steps/5_small.png +0 -0
- data/public/images/steps/6.png +0 -0
- data/public/images/steps/6_small.png +0 -0
- data/public/images/sxsw-ribbon-v1.png +0 -0
- data/public/images/tab_bottom.gif +0 -0
- data/public/images/tile-header.png +0 -0
- data/public/images/tile-slider.png +0 -0
- data/public/images/top-shine.png +0 -0
- data/public/images/tree-nav-icons/bullet.gif +0 -0
- data/public/images/tree-nav-icons/minus.gif +0 -0
- data/public/images/tree-nav-icons/plus.gif +0 -0
- data/public/images/tree-nav-icons/treeview-loading.gif +0 -0
- data/public/images/tree-nav-icons/treeview-sprite.gif +0 -0
- data/public/images/wrapper-back-2.png +0 -0
- data/public/images/wrapper-back.png +0 -0
- data/public/images/yui-menubaritem_submenuindicator.png +0 -0
- data/public/images/yui-menubaritem_submenuindicator_disabled.png +0 -0
- data/public/images/yui-menuitem_checkbox.png +0 -0
- data/public/images/yui-menuitem_checkbox_disabled.png +0 -0
- data/public/images/yui-menuitem_submenuindicator.png +0 -0
- data/public/images/yui-menuitem_submenuindicator_disabled.png +0 -0
- data/public/images/yui-sprite.png +0 -0
- data/public/javascripts/additional-methods.js +0 -236
- data/public/javascripts/admin/orders/edit.js +0 -23
- data/public/javascripts/admin/orders/edit_form.js +0 -16
- data/public/javascripts/admin/unobtrusive_handlers.js +0 -43
- data/public/javascripts/application.js +0 -12
- data/public/javascripts/calculator.js +0 -15
- data/public/javascripts/checkout.js +0 -75
- data/public/javascripts/datepicker.js +0 -1445
- data/public/javascripts/gateway.js +0 -13
- data/public/javascripts/jquery-1.4.2.min.js +0 -154
- data/public/javascripts/jquery-ui.js +0 -188
- data/public/javascripts/jquery.cookie.js +0 -96
- data/public/javascripts/jquery.suggest.js +0 -276
- data/public/javascripts/jquery.template.js +0 -255
- data/public/javascripts/jquery.tokeninput.js +0 -618
- data/public/javascripts/jquery.validate.min.js +0 -16
- data/public/javascripts/lang/af.js +0 -40
- data/public/javascripts/lang/ar.js +0 -50
- data/public/javascripts/lang/de.js +0 -40
- data/public/javascripts/lang/du.js +0 -40
- data/public/javascripts/lang/en.js +0 -42
- data/public/javascripts/lang/es.js +0 -41
- data/public/javascripts/lang/fi.js +0 -40
- data/public/javascripts/lang/fr.js +0 -44
- data/public/javascripts/lang/gr.js +0 -40
- data/public/javascripts/lang/he.js +0 -49
- data/public/javascripts/lang/it.js +0 -13
- data/public/javascripts/lang/nl.js +0 -40
- data/public/javascripts/lang/no.js +0 -40
- data/public/javascripts/lang/pt.js +0 -50
- data/public/javascripts/lang/ro.js +0 -40
- data/public/javascripts/lang/ru.js +0 -40
- data/public/javascripts/lang/sp.js +0 -40
- data/public/javascripts/lang/sv.js +0 -41
- data/public/javascripts/lang/ua.js +0 -40
- data/public/javascripts/localization/messages_cn.js +0 -24
- data/public/javascripts/localization/messages_cs.js +0 -23
- data/public/javascripts/localization/messages_da.js +0 -21
- data/public/javascripts/localization/messages_de.js +0 -21
- data/public/javascripts/localization/messages_fr.js +0 -23
- data/public/javascripts/localization/messages_hu.js +0 -21
- data/public/javascripts/localization/messages_it.js +0 -26
- data/public/javascripts/localization/messages_kk.js +0 -23
- data/public/javascripts/localization/messages_nl.js +0 -23
- data/public/javascripts/localization/messages_no.js +0 -23
- data/public/javascripts/localization/messages_pl.js +0 -23
- data/public/javascripts/localization/messages_ptbr.js +0 -30
- data/public/javascripts/localization/messages_ru.js +0 -23
- data/public/javascripts/localization/messages_se.js +0 -23
- data/public/javascripts/localization/messages_sk.js +0 -21
- data/public/javascripts/localization/messages_tr.js +0 -24
- data/public/javascripts/localization/messages_tw.js +0 -24
- data/public/javascripts/localization/messages_ua.js +0 -24
- data/public/javascripts/nested-attribute.js +0 -26
- data/public/javascripts/open_id.js +0 -15
- data/public/javascripts/product.js +0 -49
- data/public/javascripts/rails.js +0 -127
- data/public/javascripts/taxonomy.js +0 -201
- data/public/javascripts/zone.js +0 -39
- data/public/stylesheets/admin/dashboard.css +0 -143
- data/public/stylesheets/admin/edit_checkouts.css +0 -57
- data/public/stylesheets/admin/reset-fonts-grids-2-6-0.css +0 -7
- data/public/stylesheets/admin/yui-includes.css +0 -14
- data/public/stylesheets/datepicker.css +0 -263
- data/public/stylesheets/jquery.autocomplete.css +0 -48
- data/public/stylesheets/screen.css +0 -916
data/app/models/product.rb
CHANGED
@@ -59,6 +59,11 @@ class Product < ActiveRecord::Base
|
|
59
59
|
:dependent => :destroy
|
60
60
|
|
61
61
|
|
62
|
+
def variant_images
|
63
|
+
Image.find_by_sql("SELECT assets.* FROM assets LEFT JOIN variants ON (variants.id = assets.viewable_id) WHERE (variants.product_id = #{self.id})")
|
64
|
+
end
|
65
|
+
|
66
|
+
|
62
67
|
validates :name, :price, :permalink, :presence => true
|
63
68
|
|
64
69
|
accepts_nested_attributes_for :product_properties, :allow_destroy => true, :reject_if => lambda { |pp| pp[:property_name].blank? }
|
@@ -82,7 +87,7 @@ class Product < ActiveRecord::Base
|
|
82
87
|
|
83
88
|
if (ActiveRecord::Base.connection.adapter_name == 'PostgreSQL')
|
84
89
|
if ActiveRecord::Base.connection.tables.include?("products")
|
85
|
-
scope :group_by_products_id, { :group =>
|
90
|
+
scope :group_by_products_id, { :group => Product.column_names.map{|col_name| "products.#{col_name}"} }
|
86
91
|
end
|
87
92
|
else
|
88
93
|
scope :group_by_products_id, { :group => "products.id" }
|
@@ -175,30 +180,30 @@ class Product < ActiveRecord::Base
|
|
175
180
|
# for adding products which are closely related to existing ones
|
176
181
|
# define "duplicate_extra" for site-specific actions, eg for additional fields
|
177
182
|
def duplicate
|
178
|
-
p = self.
|
183
|
+
p = self.dup
|
179
184
|
p.name = 'COPY OF ' + self.name
|
180
185
|
p.deleted_at = nil
|
181
186
|
p.created_at = p.updated_at = nil
|
182
187
|
p.taxons = self.taxons
|
183
188
|
|
184
|
-
p.product_properties = self.product_properties.map {|q| r = q.
|
189
|
+
p.product_properties = self.product_properties.map {|q| r = q.dup; r.created_at = r.updated_at = nil; r}
|
185
190
|
|
186
|
-
|
187
|
-
p.images = self.images.map {|i|
|
191
|
+
image_dup = lambda {|i| j = i.dup; j.attachment = i.attachment.clone; j}
|
192
|
+
p.images = self.images.map {|i| image_dup.call i}
|
188
193
|
|
189
|
-
variant = self.master.
|
194
|
+
variant = self.master.dup
|
190
195
|
variant.sku = 'COPY OF ' + self.master.sku
|
191
196
|
variant.deleted_at = nil
|
192
|
-
variant.images = self.master.images.map {|i|
|
197
|
+
variant.images = self.master.images.map {|i| image_dup.call i}
|
193
198
|
p.master = variant
|
194
199
|
|
195
200
|
if self.has_variants?
|
196
|
-
# don't
|
201
|
+
# don't dup the actual variants, just the characterising types
|
197
202
|
p.option_types = self.option_types
|
198
203
|
else
|
199
204
|
end
|
200
205
|
# allow site to do some customization
|
201
|
-
p.send(:duplicate_extra) if p.respond_to?(:duplicate_extra)
|
206
|
+
p.send(:duplicate_extra, self) if p.respond_to?(:duplicate_extra)
|
202
207
|
p.save!
|
203
208
|
p
|
204
209
|
end
|
@@ -217,6 +222,14 @@ class Product < ActiveRecord::Base
|
|
217
222
|
variants.active.group_by {|v| v.option_values.detect {|o| o.option_type == opt_type} }
|
218
223
|
end
|
219
224
|
|
225
|
+
def effective_tax_rate
|
226
|
+
if self.tax_category
|
227
|
+
tax_category.effective_amount
|
228
|
+
else
|
229
|
+
TaxRate.default
|
230
|
+
end
|
231
|
+
end
|
232
|
+
|
220
233
|
def self.like_any(fields, values)
|
221
234
|
where_str = fields.map{|field| Array.new(values.size, "products.#{field} #{LIKE} ?").join(' OR ') }.join(' OR ')
|
222
235
|
self.where([where_str, values.map{|value| "%#{value}%"} * fields.size].flatten)
|
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/product_scope.rb
CHANGED
@@ -31,7 +31,7 @@ class ProductScope < ActiveRecord::Base
|
|
31
31
|
Product.send(self.name.intern, *array)
|
32
32
|
end
|
33
33
|
else
|
34
|
-
relation2 = Product.
|
34
|
+
relation2 = Product.search({self.name.intern => array}).relation
|
35
35
|
end
|
36
36
|
unless another_scope.class == ActiveRecord::Relation
|
37
37
|
another_scope = another_scope.send(:relation)
|
data/app/models/shipment.rb
CHANGED
@@ -4,11 +4,10 @@ class Shipment < ActiveRecord::Base
|
|
4
4
|
belongs_to :shipping_method
|
5
5
|
belongs_to :address
|
6
6
|
has_many :state_events, :as => :stateful
|
7
|
-
has_many :inventory_units
|
7
|
+
has_many :inventory_units, :dependent => :nullify
|
8
8
|
has_one :adjustment, :as => :source
|
9
9
|
|
10
10
|
before_create :generate_shipment_number
|
11
|
-
after_destroy :release_inventory_units
|
12
11
|
after_save :ensure_correct_adjustment, :update_order
|
13
12
|
|
14
13
|
attr_accessor :special_instructions
|
@@ -113,10 +112,6 @@ class Shipment < ActiveRecord::Base
|
|
113
112
|
end
|
114
113
|
end
|
115
114
|
|
116
|
-
def release_inventory_units
|
117
|
-
inventory_units.each {|unit| unit.update_attribute(:shipment_id, nil)}
|
118
|
-
end
|
119
|
-
|
120
115
|
# Determines the appropriate +state+ according to the following logic:
|
121
116
|
#
|
122
117
|
# pending unless +order.payment_state+ is +paid+
|
data/app/models/tax_category.rb
CHANGED
@@ -12,4 +12,10 @@ class TaxCategory < ActiveRecord::Base
|
|
12
12
|
tax_category.update_attribute(:is_default, false)
|
13
13
|
end
|
14
14
|
end
|
15
|
+
|
16
|
+
def effective_amount(address=nil)
|
17
|
+
address ||= Address.new(:country_id => Spree::Config[:default_country_id])
|
18
|
+
|
19
|
+
self.tax_rates.detect{|rate| rate.zone.include? address }.try(:amount)
|
20
|
+
end
|
15
21
|
end
|
data/app/models/tax_rate.rb
CHANGED
@@ -13,4 +13,14 @@ class TaxRate < ActiveRecord::Base
|
|
13
13
|
def self.match(address)
|
14
14
|
TaxRate.all.select { |rate| rate.zone.include? address }
|
15
15
|
end
|
16
|
+
|
17
|
+
# For Vat the default rate is the rate that is configured for the default category
|
18
|
+
# It is needed for every price calculation (as all customer facing prices include vat )
|
19
|
+
# The function returns the actual amount, which may be 0 in case of wrong setup, but is never nil
|
20
|
+
def self.default
|
21
|
+
category = TaxCategory.includes(:tax_rates).where(:is_default => true).first
|
22
|
+
return 0 unless category
|
23
|
+
|
24
|
+
category.effective_amount || 0
|
25
|
+
end
|
16
26
|
end
|
data/app/models/taxon.rb
CHANGED
@@ -9,9 +9,9 @@ class Taxon < ActiveRecord::Base
|
|
9
9
|
has_attached_file :icon,
|
10
10
|
:styles => { :mini => '32x32>', :normal => '128x128>' },
|
11
11
|
:default_style => :mini,
|
12
|
-
:url => "/
|
13
|
-
:path => ":rails_root/public/
|
14
|
-
:default_url => "/
|
12
|
+
:url => "/spree/taxons/:id/:style/:basename.:extension",
|
13
|
+
:path => ":rails_root/public/spree/taxons/:id/:style/:basename.:extension",
|
14
|
+
:default_url => "/assets/default_taxon.png"
|
15
15
|
|
16
16
|
|
17
17
|
include ::ProductFilters # for detailed defs of filters
|
data/app/models/zone.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
class Zone < ActiveRecord::Base
|
2
|
-
has_many :zone_members
|
2
|
+
has_many :zone_members, :dependent => :destroy
|
3
3
|
has_many :tax_rates, :dependent => :destroy
|
4
|
-
has_many :shipping_methods
|
4
|
+
has_many :shipping_methods, :dependent => :nullify
|
5
5
|
|
6
6
|
validates :name, :presence => true, :uniqueness => true
|
7
7
|
after_save :remove_defunct_members
|
@@ -41,9 +41,9 @@ class Zone < ActiveRecord::Base
|
|
41
41
|
when "Zone"
|
42
42
|
zone_member.zoneable.include?(address)
|
43
43
|
when "Country"
|
44
|
-
zone_member.
|
44
|
+
zone_member.zoneable_id == address.country_id
|
45
45
|
when "State"
|
46
|
-
zone_member.
|
46
|
+
zone_member.zoneable_id == address.state_id
|
47
47
|
else
|
48
48
|
false
|
49
49
|
end
|
@@ -1,5 +1,5 @@
|
|
1
|
-
<table class="index">
|
2
|
-
<tr>
|
1
|
+
<table class="index" data-hook="adjustments">
|
2
|
+
<tr data-hook="adjustmment_head">
|
3
3
|
<th><%= "#{t('spree.date')}/#{t('spree.time')}" %></th>
|
4
4
|
<th><%= t("description") %></th>
|
5
5
|
<th><%= t("amount") %></th>
|
@@ -9,7 +9,7 @@
|
|
9
9
|
@edit_url = edit_admin_order_adjustment_path(@order, adjustment)
|
10
10
|
@delete_url = admin_order_adjustment_path(@order, adjustment)
|
11
11
|
%>
|
12
|
-
<tr id="<%= dom_id(adjustment) %>">
|
12
|
+
<tr id="<%= dom_id(adjustment) %>" data-hook="adjustment_row">
|
13
13
|
<td><%= adjustment.created_at.to_s(:date_time24) %></td>
|
14
14
|
<td><%= adjustment.label %></td>
|
15
15
|
<td><%= number_to_currency(adjustment.amount) %></td>
|
@@ -6,7 +6,7 @@
|
|
6
6
|
<%= form_for(@adjustment, :url => admin_order_adjustment_path(@order, @adjustment), :html => { :method => :put}) do |f| %>
|
7
7
|
<%= render :partial => "form", :locals => {:f => f} %>
|
8
8
|
|
9
|
-
<p class="form-buttons">
|
9
|
+
<p class="form-buttons" data-hook="buttons">
|
10
10
|
<%= button t('continue') %>
|
11
11
|
<%= t("or") %> <%= link_to t("actions.cancel"), admin_order_adjustments_url(@order) %>
|
12
12
|
</p>
|
@@ -7,7 +7,7 @@
|
|
7
7
|
<%= form_for @adjustment, :url => admin_order_adjustments_path do |f| %>
|
8
8
|
<%= render :partial => "form", :locals => {:f => f} %>
|
9
9
|
|
10
|
-
<p class="form-buttons">
|
10
|
+
<p class="form-buttons" data-hook="buttons">
|
11
11
|
<%= button t('continue') %>
|
12
12
|
<%= t("or") %> <%= link_to t("actions.cancel"), admin_order_adjustments_url(@order) %>
|
13
13
|
</p>
|
@@ -1,66 +1,64 @@
|
|
1
1
|
<h1><%= t("configurations") %></h1>
|
2
2
|
|
3
|
-
<table class="index">
|
3
|
+
<table class="index" data-hook="configuration">
|
4
4
|
<thead>
|
5
5
|
<tr>
|
6
6
|
<th><%= t("system") %></th>
|
7
7
|
<th><%= t("description") %></th>
|
8
8
|
</tr>
|
9
9
|
</thead>
|
10
|
-
<tbody>
|
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
|
-
|
58
|
-
|
59
|
-
|
60
|
-
<
|
61
|
-
|
62
|
-
|
63
|
-
</tr>
|
64
|
-
<% end %>
|
10
|
+
<tbody data-hook="admin_configurations_menu">
|
11
|
+
<tr>
|
12
|
+
<td><%= link_to t("general_settings"), admin_general_settings_path %></td>
|
13
|
+
<td><%= t("general_settings_description") %></td>
|
14
|
+
</tr>
|
15
|
+
<tr>
|
16
|
+
<td><%= link_to t("mail_methods"), admin_mail_methods_path %></td>
|
17
|
+
<td><%= t("email_server_settings_description") %></td>
|
18
|
+
</tr>
|
19
|
+
<tr>
|
20
|
+
<td><%= link_to t("tax_categories"), admin_tax_categories_path %></td>
|
21
|
+
<td><%= t("tax_categories_setting_description") %></td>
|
22
|
+
</tr>
|
23
|
+
<tr>
|
24
|
+
<td><%= link_to t("zones"), admin_zones_path %></td>
|
25
|
+
<td><%= t("zone_setting_description") %></td>
|
26
|
+
</tr>
|
27
|
+
<tr>
|
28
|
+
<td><%= link_to t("states"), admin_country_states_path(Spree::Config[:default_country_id]) %></td>
|
29
|
+
<td><%= t("state_setting_description") %></td>
|
30
|
+
</tr>
|
31
|
+
<tr>
|
32
|
+
<td><%= link_to t("payment_methods"), admin_payment_methods_path %></td>
|
33
|
+
<td><%= t("payment_methods_setting_description") %></td>
|
34
|
+
</tr>
|
35
|
+
<tr>
|
36
|
+
<td><%= link_to t("taxonomies"), admin_taxonomies_path %></td>
|
37
|
+
<td><%= t("taxonomies_setting_description") %></td>
|
38
|
+
</tr>
|
39
|
+
<tr>
|
40
|
+
<td><%= link_to t("shipping_methods"), admin_shipping_methods_path %></td>
|
41
|
+
<td><%= t("shipping_methods_description") %></td>
|
42
|
+
</tr>
|
43
|
+
<tr>
|
44
|
+
<td><%= link_to t("shipping_categories"), admin_shipping_categories_path %></td>
|
45
|
+
<td><%= t("shipping_categories_description") %></td>
|
46
|
+
</tr>
|
47
|
+
<tr>
|
48
|
+
<td><%= link_to t("inventory_settings"), admin_inventory_settings_path %></td>
|
49
|
+
<td><%= t("inventory_setting_description") %></td>
|
50
|
+
</tr>
|
51
|
+
<tr>
|
52
|
+
<td><%= link_to t("tax_rates"), admin_tax_rates_path %></td>
|
53
|
+
<td><%= t("tax_rates_description") %></td>
|
54
|
+
</tr>
|
55
|
+
<tr>
|
56
|
+
<td><%= link_to t("tax_settings"), admin_tax_settings_path %></td>
|
57
|
+
<td><%= t("tax_settings_description") %></td>
|
58
|
+
</tr>
|
59
|
+
<tr>
|
60
|
+
<td><%= link_to t("analytics_trackers"), admin_trackers_path %></td>
|
61
|
+
<td><%= t("google_analytics_setting_description") %></td>
|
62
|
+
</tr>
|
65
63
|
</tbody>
|
66
64
|
</table>
|
@@ -2,44 +2,19 @@
|
|
2
2
|
|
3
3
|
<h1><%= t('edit_general_settings') %></h1>
|
4
4
|
|
5
|
-
<%=
|
6
|
-
<
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
<p>
|
19
|
-
<label>
|
20
|
-
<input name="preferences[allow_ssl_in_production]" type="hidden" value="0" />
|
21
|
-
<%= check_box_tag('preferences[allow_ssl_in_production]', "1", Spree::Config[:allow_ssl_in_production]) %>
|
22
|
-
<%= t('allow_ssl_to_be_used_when_in_production_mode') %>
|
23
|
-
</label>
|
24
|
-
</p>
|
25
|
-
|
26
|
-
<p>
|
27
|
-
<label>
|
28
|
-
<input name="preferences[allow_ssl_in_development_and_test]" type="hidden" value="0" />
|
29
|
-
<%= check_box_tag('preferences[allow_ssl_in_development_and_test]', "1", Spree::Config[:allow_ssl_in_development_and_test]) %>
|
30
|
-
<%= t('allow_ssl_to_be_used_when_in_developement_and_test_modes') %>
|
31
|
-
</label>
|
32
|
-
</p>
|
33
|
-
|
34
|
-
<p>
|
35
|
-
<label>
|
36
|
-
<input name="preferences[check_for_spree_alerts]" type="hidden" value="0" />
|
37
|
-
<%= check_box_tag('preferences[check_for_spree_alerts]', "1", Spree::Config[:check_for_spree_alerts]) %>
|
38
|
-
<%= t('spree_alert_checking') %>
|
39
|
-
</label>
|
40
|
-
</p>
|
41
|
-
|
42
|
-
<p class="form-buttons">
|
5
|
+
<%= form_for(Spree::Config.instance, :url => admin_general_settings_path) do |form| %>
|
6
|
+
<fieldset id="preferences" data-hook>
|
7
|
+
<% @preferences.each do |key|
|
8
|
+
type = AppConfiguration.preference_definitions[key].instance_eval{@type}.to_sym
|
9
|
+
field = "preferred_#{key}" %>
|
10
|
+
<%= form.field_container field do %>
|
11
|
+
<%= form.label(field, t(key)+": ") + tag(:br) if type != :boolean %>
|
12
|
+
<%= preference_field(form, field, :type => type) %>
|
13
|
+
<%= form.label(field, t(key)) if type == :boolean %>
|
14
|
+
<% end %>
|
15
|
+
<% end %>
|
16
|
+
</fieldset>
|
17
|
+
<p class="form-buttons" data-hook="buttons">
|
43
18
|
<%= button t('update') %>
|
44
19
|
<%= t("or") %> <%= link_to t("cancel"), admin_general_settings_url %>
|
45
20
|
</p>
|
@@ -2,32 +2,22 @@
|
|
2
2
|
|
3
3
|
<h1><%= t("general_settings") %></h1>
|
4
4
|
|
5
|
-
<table>
|
5
|
+
<table data-hook="preferences">
|
6
|
+
<% @preferences.each do |key| %>
|
7
|
+
<tr>
|
8
|
+
<th scope="row"><%= t(key) %>:</th>
|
9
|
+
<td><%= Spree::Config[key] %></td>
|
10
|
+
</tr>
|
11
|
+
<% end %>
|
6
12
|
<tr>
|
7
|
-
<
|
8
|
-
|
13
|
+
<td colspan="2">
|
14
|
+
<%= (Spree::Config[:allow_ssl_in_production] ? t("ssl_will_be_used_in_production_mode") : t("ssl_will_not_be_used_in_production_mode")) %>
|
15
|
+
</td>
|
9
16
|
</tr>
|
10
17
|
<tr>
|
11
|
-
<
|
12
|
-
|
13
|
-
|
14
|
-
<tr>
|
15
|
-
<th scope="row"><%= t("site_url") %>:</th>
|
16
|
-
<td><%= Spree::Config[:site_url] %></td>
|
17
|
-
</tr>
|
18
|
-
<tr>
|
19
|
-
<td colspan="2">
|
20
|
-
<%= (Spree::Config[:allow_ssl_in_production] ? t("ssl_will_be_used_in_production_mode") : t("ssl_will_not_be_used_in_production_mode")) %>
|
21
|
-
</td>
|
22
|
-
</tr>
|
23
|
-
<tr>
|
24
|
-
<td colspan="2">
|
25
|
-
<%= (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")) %>
|
26
|
-
</td>
|
27
|
-
</tr>
|
28
|
-
<tr>
|
29
|
-
<td colspan="2">
|
30
|
-
<%= (Spree::Config[:check_for_spree_alerts] ? t("spree_alert_checking") : t("spree_alert_not_checking")) %>
|
18
|
+
<td colspan="2">
|
19
|
+
<%= (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")) %>
|
20
|
+
</td>
|
31
21
|
</tr>
|
32
22
|
</table>
|
33
23
|
|