spree_core 0.30.0.beta1 → 0.30.0
Sign up to get free protection for your applications and to get access to all the features.
- data/README.md +3 -12
- data/app/controllers/admin/adjustments_controller.rb +1 -17
- data/app/controllers/admin/base_controller.rb +12 -6
- data/app/controllers/admin/line_items_controller.rb +6 -29
- data/app/controllers/admin/mail_methods_controller.rb +13 -0
- data/app/controllers/admin/orders_controller.rb +32 -10
- data/app/controllers/admin/payments_controller.rb +15 -31
- data/app/controllers/admin/products_controller.rb +40 -41
- data/app/controllers/admin/reports_controller.rb +15 -14
- data/app/controllers/admin/return_authorizations_controller.rb +3 -16
- data/app/controllers/admin/shipments_controller.rb +8 -18
- data/app/controllers/admin/taxons_controller.rb +3 -3
- data/app/controllers/admin/users_controller.rb +5 -4
- data/app/controllers/checkout_controller.rb +26 -8
- data/app/controllers/orders_controller.rb +22 -10
- data/app/controllers/password_resets_controller.rb +0 -1
- data/app/controllers/products_controller.rb +2 -3
- data/app/controllers/spree/base_controller.rb +8 -0
- data/app/controllers/taxons_controller.rb +4 -4
- data/app/helpers/admin/navigation_helper.rb +4 -3
- data/app/helpers/checkout_helper.rb +1 -6
- data/app/helpers/spree/base_helper.rb +2 -0
- data/app/mailers/order_mailer.rb +19 -0
- data/app/mailers/shipment_mailer.rb +11 -0
- data/app/models/address.rb +3 -9
- data/app/models/adjustment.rb +3 -2
- data/app/models/app_configuration.rb +3 -16
- data/app/models/creditcard.rb +51 -45
- data/app/models/inventory_unit.rb +77 -80
- data/app/models/line_item.rb +33 -4
- data/app/models/log_entry.rb +3 -0
- data/app/models/mail_method.rb +23 -0
- data/app/models/order.rb +79 -177
- data/app/models/payment.rb +21 -18
- data/app/models/payment_method.rb +3 -3
- data/app/models/return_authorization.rb +11 -7
- data/app/models/shipment.rb +64 -40
- data/app/models/user.rb +1 -1
- data/app/models/variant.rb +6 -6
- data/app/views/admin/adjustments/index.html.erb +2 -32
- data/app/views/admin/configurations/index.html.erb +3 -3
- data/app/views/admin/mail_methods/_form.html.erb +96 -0
- data/app/views/admin/mail_methods/edit.html.erb +9 -0
- data/app/views/admin/mail_methods/index.html.erb +41 -0
- data/app/views/admin/mail_methods/new.html.erb +9 -0
- data/app/views/admin/orders/_form.html.erb +3 -4
- data/app/views/admin/{checkouts/_form.html.erb → orders/_user_form.html.erb} +10 -10
- data/app/views/admin/orders/edit.html.erb +1 -0
- data/app/views/admin/orders/index.html.erb +10 -6
- data/app/views/admin/orders/new.html.erb +1 -0
- data/app/views/admin/orders/show.html.erb +3 -2
- data/app/views/admin/{checkouts/edit.html.erb → orders/user.html.erb} +8 -5
- data/app/views/admin/payments/_list.html.erb +5 -7
- data/app/views/admin/payments/index.html.erb +3 -8
- data/app/views/admin/payments/new.html.erb +1 -1
- data/app/views/admin/payments/source_views/_gateway.html.erb +0 -1
- data/app/views/admin/reports/sales_total.html.erb +2 -6
- data/app/views/admin/return_authorizations/_form.html.erb +24 -12
- data/app/views/admin/return_authorizations/edit.html.erb +1 -1
- data/app/views/admin/return_authorizations/index.html.erb +6 -4
- data/app/views/admin/shared/_address_form.html.erb +20 -17
- data/app/views/admin/shared/_adjustments_table.html.erb +21 -0
- data/app/views/admin/shared/_configuration_menu.html.erb +1 -1
- data/app/views/admin/shared/_destroy.js.erb +3 -0
- data/app/views/admin/shared/_new_adjustment_button.html.erb +8 -0
- data/app/views/admin/shared/_order_tabs.html.erb +26 -22
- data/app/views/admin/shared/_report_criteria.html.erb +2 -2
- data/app/views/admin/shared/_update_order_state.js +6 -0
- data/app/views/admin/shipments/_form.html.erb +5 -11
- data/app/views/admin/shipments/edit.html.erb +4 -4
- data/app/views/admin/taxons/_form.html.erb +2 -2
- data/app/views/admin/taxons/_taxon_table.html.erb +3 -8
- data/app/views/admin/taxons/available.js.erb +4 -7
- data/app/views/admin/taxons/select.js.erb +2 -0
- data/app/views/admin/variants/index.html.erb +1 -1
- data/app/views/checkout/_address.html.erb +2 -0
- data/app/views/checkout/_delivery.html.erb +3 -3
- data/app/views/checkout/_payment.html.erb +23 -18
- data/app/views/checkout/_summary.html.erb +0 -10
- data/app/views/checkout/payment/_gateway.html.erb +1 -1
- data/app/views/checkout/registration.html.erb +20 -0
- data/app/views/layouts/admin.html.erb +2 -2
- data/app/views/order_mailer/{cancel.html.erb → cancel_email.text.erb} +4 -4
- data/app/views/order_mailer/{confirm.html.erb → confirm_email.text.erb} +3 -3
- data/app/views/orders/_line_item.html.erb +1 -3
- data/app/views/orders/edit.html.erb +1 -1
- data/app/views/shared/_basic_layout.html.erb +44 -0
- data/app/views/shared/_google_analytics.html.erb +23 -22
- data/app/views/shared/_head.html.erb +1 -1
- data/app/views/shared/_products.html.erb +1 -1
- data/app/views/shipment_mailer/shipped_email.text.erb +15 -0
- data/app/views/taxons/_taxon.html.erb +2 -2
- data/config/initializers/spree.rb +6 -2
- data/config/locales/{en_spree.yml → en.yml} +47 -17
- data/config/routes.rb +15 -8
- data/{lib/generators/templates/db → db}/default/countries.yml +0 -0
- data/{lib/generators/templates/db → db}/default/roles.yml +0 -0
- data/{lib/generators/templates/db → db}/default/states.yml +0 -0
- data/{lib/generators/templates/db → db}/default/zone_members.yml +0 -0
- data/{lib/generators/templates/db → db}/default/zones.yml +0 -0
- data/{lib/generators/templates/db → db}/migrate/20090823005402_spree_zero_nine_zero.rb +0 -0
- data/{lib/generators/templates/db → db}/migrate/20090904192342_create_indexes_for_inventory_units.rb +0 -0
- data/{lib/generators/templates/db → db}/migrate/20090923100315_add_count_on_hand_to_variants_and_products.rb +0 -0
- data/{lib/generators/templates/db → db}/migrate/20091007134354_change_taxons_to_nested_set.rb +0 -0
- data/{lib/generators/templates/db → db}/migrate/20091008091614_move_to_configurable_gateways.rb +0 -0
- data/{lib/generators/templates/db → db}/migrate/20091012120519_product_groups_and_scopes.rb +0 -0
- data/{lib/generators/templates/db → db}/migrate/20091015110842_add_open_id_authentication_tables.rb +0 -0
- data/{lib/generators/templates/db → db}/migrate/20091015153048_add_openid_field_to_users.rb +0 -0
- data/{lib/generators/templates/db → db}/migrate/20091016174634_change_preference_value_type.rb +0 -0
- data/{lib/generators/templates/db → db}/migrate/20091017175558_create_billing_integrations.rb +0 -0
- data/{lib/generators/templates/db → db}/migrate/20091021133257_charge_refactoring.rb +7 -4
- data/{lib/generators/templates/db → db}/migrate/20091104151730_add_some_indexes.rb +0 -0
- data/{lib/generators/templates/db → db}/migrate/20091126190904_checkout_state_machine.rb +0 -0
- data/{lib/generators/templates/db → db}/migrate/20091209153045_state_for_shipments.rb +0 -0
- data/{lib/generators/templates/db → db}/migrate/20091209202200_make_state_events_polymorphic.rb +0 -0
- data/{lib/generators/templates/db → db}/migrate/20091211203813_ship_address_id_for_checkouts.rb +0 -0
- data/{lib/generators/templates/db → db}/migrate/20091212161118_shipping_method_id_for_checkouts.rb +0 -0
- data/{lib/generators/templates/db → db}/migrate/20091213222815_creditcard_last_four_digits.rb +0 -0
- data/{lib/generators/templates/db → db}/migrate/20091214183826_populate_legacy_shipment_state.rb +0 -0
- data/{lib/generators/templates/db → db}/migrate/20100105090147_add_cost_price.rb +0 -0
- data/{lib/generators/templates/db → db}/migrate/20100105132138_shipment_id_for_inventory_units.rb +0 -0
- data/{lib/generators/templates/db → db}/migrate/20100111205525_cim_fields_for_creditcards.rb +0 -0
- data/{lib/generators/templates/db → db}/migrate/20100112151511_create_return_authorizations.rb +0 -0
- data/{lib/generators/templates/db → db}/migrate/20100113090919_add_return_authorization_to_inventory_units.rb +0 -0
- data/{lib/generators/templates/db → db}/migrate/20100113203104_create_trackers.rb +0 -0
- data/{lib/generators/templates/db → db}/migrate/20100121160010_creditcard_id_for_creditcard_txns.rb +0 -0
- data/{lib/generators/templates/db → db}/migrate/20100121183934_original_creditcard_txn_id_for_creditcard_txns.rb +0 -0
- data/{lib/generators/templates/db → db}/migrate/20100125145351_add_test_mode_to_billing_integration.rb +0 -0
- data/{lib/generators/templates/db → db}/migrate/20100126103714_create_products_product_groups.rb +0 -0
- data/{lib/generators/templates/db → db}/migrate/20100209025806_create_payment_methods.rb +0 -0
- data/{lib/generators/templates/db → db}/migrate/20100209144531_polymorphic_payments.rb +0 -0
- data/{lib/generators/templates/db → db}/migrate/20100213103131_change_payments_payment_method_to_belongs_to.rb +0 -0
- data/{lib/generators/templates/db → db}/migrate/20100214212536_assign_creditcard_txns_to_payment.rb +0 -0
- data/{lib/generators/templates/db → db}/migrate/20100223170312_sti_for_transactions.rb +0 -0
- data/{lib/generators/templates/db → db}/migrate/20100223183812_drop_billing_integrations.rb +0 -0
- data/{lib/generators/templates/db → db}/migrate/20100224153127_deleted_at_for_payment_methods.rb +0 -0
- data/{lib/generators/templates/db → db}/migrate/20100301163454_add_adjustments_index.rb +0 -0
- data/{lib/generators/templates/db → db}/migrate/20100306153445_fix_by_popularity.rb +0 -0
- data/{lib/generators/templates/db → db}/migrate/20100317120946_add_alt_text_to_images.rb +0 -0
- data/{lib/generators/templates/db → db}/migrate/20100427121301_add_display_to_payment_methods.rb +0 -0
- data/{lib/generators/templates/db → db}/migrate/20100504142133_add_addresses_checkouts_indexes.rb +0 -0
- data/{lib/generators/templates/db → db}/migrate/20100506180619_add_icon_to_taxons.rb +0 -0
- data/{lib/generators/templates/db → db}/migrate/20100506185838_add_description_to_taxons.rb +0 -0
- data/{lib/generators/templates/db → db}/migrate/20100528155333_index_for_shipments_number.rb +0 -0
- data/{lib/generators/templates/db → db}/migrate/20100528185820_add_index_on_users_persistence_token.rb +0 -0
- data/{lib/generators/templates/db → db}/migrate/20100605152042_add_default_to_tax_categories.rb +0 -0
- data/{lib/generators/templates/db → db}/migrate/20100624110730_add_display_to_shipping_methods.rb +0 -0
- data/{lib/generators/templates/db → db}/migrate/20100624123336_rename_payment_method_display.rb +0 -0
- data/{lib/generators/templates/db → db}/migrate/20100624175547_rename_preferences_field.rb +0 -0
- data/{lib/generators/templates/db → db}/migrate/20100811163637_add_guest_flag.rb +0 -0
- data/{lib/generators/templates/db → db}/migrate/20100811205836_drop_order_token.rb +0 -0
- data/{lib/generators/templates/db → db}/migrate/20100812162326_payments_state_and_assigned_to_order_only.rb +0 -0
- data/{lib/generators/templates/db → db}/migrate/20100813023502_create_address_keys_for_order.rb +0 -0
- data/{lib/generators/templates/db → db}/migrate/20100813185745_payment_total_for_orders.rb +0 -0
- data/{lib/generators/templates/db → db}/migrate/20100816212146_shipping_method_id_for_orders.rb +0 -0
- data/{lib/generators/templates/db → db}/migrate/20100817152723_add_shipment_and_payment_state.rb +0 -0
- data/{lib/generators/templates/db → db}/migrate/20100819170125_refactor_adjustments.rb +0 -0
- data/{lib/generators/templates/db → db}/migrate/20100820135707_response_code_and_avs_response_for_payments.rb +0 -0
- data/{lib/generators/templates/db → db}/migrate/20100901171814_change_guest_flag_to_anonymous.rb +0 -0
- data/db/migrate/20100903203949_email_for_orders.rb +9 -0
- data/db/migrate/20100908170204_remove_unique_index_on_users_email.rb +9 -0
- data/db/migrate/20100923162011_create_mail_methods.rb +12 -0
- data/db/migrate/20100929151905_rename_frozen_to_locked.rb +8 -0
- data/db/migrate/20101008190536_move_special_instructions_to_orders.rb +11 -0
- data/db/migrate/20101026184700_create_log_entries.rb +15 -0
- data/db/migrate/20101026184714_migrate_transactions_to_payment_state.rb +94 -0
- data/db/migrate/20101026184746_delete_in_progress_orders.rb +18 -0
- data/db/migrate/20101026184808_migrate_checkout_to_orders.rb +27 -0
- data/db/migrate/20101026184833_migrate_adjustments.rb +9 -0
- data/db/migrate/20101026184855_remove_shipped_state.rb +14 -0
- data/db/migrate/20101026184916_prevent_nil_payment_total.rb +8 -0
- data/db/migrate/20101026184932_prevent_nil_email.rb +9 -0
- data/db/migrate/20101026184959_generate_anonymous_users.rb +14 -0
- data/db/migrate/20101026185022_update_order_state.rb +8 -0
- data/db/migrate/20101026192225_cleanup_legacy_tables.rb +11 -0
- data/db/migrate/20101028151745_remove_number_and_cvv_from_credicard.rb +9 -0
- data/db/migrate/20101103212716_drop_anonymous_field_for_user.rb +8 -0
- data/{lib/generators/templates/db → db}/sample/users.rb +0 -0
- data/db/seeds.rb +3 -0
- data/lib/generators/spree_core/upgrade_generator.rb +23 -0
- data/lib/scopes/product.rb +0 -5
- data/lib/spree/config.rb +4 -4
- data/lib/spree/current_order.rb +11 -3
- data/lib/spree/i18n_utils.rb +47 -0
- data/lib/spree/mail_interceptor.rb +23 -0
- data/lib/spree/mail_settings.rb +34 -0
- data/lib/spree/search/base.rb +50 -6
- data/lib/spree_core.rb +9 -8
- data/lib/{active_merchant/billing/authorize_net_cim.rb → spree_core/authorize_net_cim_hack.rb} +0 -0
- data/lib/spree_core/ext/active_record.rb +2 -0
- data/lib/spree_core/ssl_requirement.rb +9 -15
- data/lib/tasks/core.rake +1 -8
- data/lib/tasks/install.rake +27 -0
- data/{lib/generators/templates/public → public}/images/add-to-cart.png +0 -0
- data/{lib/generators/templates/public → public}/images/admin/bg/active-tab.png +0 -0
- data/{lib/generators/templates/public → public}/images/admin/bg/admin_tab_back.png +0 -0
- data/{lib/generators/templates/public → public}/images/admin/bg/admin_tab_selected_back.png +0 -0
- data/{lib/generators/templates/public → public}/images/admin/bg/content-back-blue.png +0 -0
- data/{lib/generators/templates/public → public}/images/admin/bg/content-back-green.png +0 -0
- data/{lib/generators/templates/public → public}/images/admin/bg/content-back.png +0 -0
- data/{lib/generators/templates/public → public}/images/admin/bg/flash-error.png +0 -0
- data/{lib/generators/templates/public → public}/images/admin/bg/flash-notice.png +0 -0
- data/{lib/generators/templates/public → public}/images/admin/bg/green-stripes.gif +0 -0
- data/{lib/generators/templates/public → public}/images/admin/bg/green-stripes.png +0 -0
- data/{lib/generators/templates/public → public}/images/admin/bg/grid_header_back.png +0 -0
- data/{lib/generators/templates/public → public}/images/admin/bg/grid_header_back_green.png +0 -0
- data/{lib/generators/templates/public → public}/images/admin/bg/header-bg.png +0 -0
- data/{lib/generators/templates/public → public}/images/admin/bg/header.png +0 -0
- data/{lib/generators/templates/public → public}/images/admin/bg/header_bg.jpg +0 -0
- data/{lib/generators/templates/public → public}/images/admin/bg/menu-current.png +0 -0
- data/{lib/generators/templates/public → public}/images/admin/bg/red-stripes.gif +0 -0
- data/{lib/generators/templates/public → public}/images/admin/bg/red-stripes.png +0 -0
- data/{lib/generators/templates/public → public}/images/admin/bg/spree_50.png +0 -0
- data/{lib/generators/templates/public → public}/images/admin/bg/subnav-divider.png +0 -0
- data/{lib/generators/templates/public → public}/images/admin/bg/subnav.png +0 -0
- data/{lib/generators/templates/public → public}/images/admin/bg/tab-back.png +0 -0
- data/{lib/generators/templates/public → public}/images/admin/buttons/blue/left_01.png +0 -0
- data/{lib/generators/templates/public → public}/images/admin/buttons/blue/right_01.png +0 -0
- data/{lib/generators/templates/public → public}/images/admin/buttons/drag-handle-green.png +0 -0
- data/{lib/generators/templates/public → public}/images/admin/buttons/green/left_01.png +0 -0
- data/{lib/generators/templates/public → public}/images/admin/buttons/green/right_01.png +0 -0
- data/{lib/generators/templates/public → public}/images/admin/buttons/left_01.png +0 -0
- data/{lib/generators/templates/public → public}/images/admin/buttons/left_01_small.png +0 -0
- data/{lib/generators/templates/public → public}/images/admin/buttons/orange/left_03.png +0 -0
- data/{lib/generators/templates/public → public}/images/admin/buttons/orange/right_03.png +0 -0
- data/{lib/generators/templates/public → public}/images/admin/buttons/right_01.png +0 -0
- data/{lib/generators/templates/public → public}/images/admin/buttons/right_01_small.png +0 -0
- data/{lib/generators/templates/public → public}/images/admin/icons/16x16/1.png +0 -0
- data/{lib/generators/templates/public → public}/images/admin/icons/16x16/10.png +0 -0
- data/{lib/generators/templates/public → public}/images/admin/icons/16x16/2.png +0 -0
- data/{lib/generators/templates/public → public}/images/admin/icons/16x16/3.png +0 -0
- data/{lib/generators/templates/public → public}/images/admin/icons/16x16/4.png +0 -0
- data/{lib/generators/templates/public → public}/images/admin/icons/16x16/5.png +0 -0
- data/{lib/generators/templates/public → public}/images/admin/icons/16x16/6.png +0 -0
- data/{lib/generators/templates/public → public}/images/admin/icons/16x16/7.png +0 -0
- data/{lib/generators/templates/public → public}/images/admin/icons/16x16/8.png +0 -0
- data/{lib/generators/templates/public → public}/images/admin/icons/16x16/9.png +0 -0
- data/{lib/generators/templates/public → public}/images/admin/icons/32x32/1.png +0 -0
- data/{lib/generators/templates/public → public}/images/admin/icons/32x32/10.png +0 -0
- data/{lib/generators/templates/public → public}/images/admin/icons/32x32/11.png +0 -0
- data/{lib/generators/templates/public → public}/images/admin/icons/32x32/2.png +0 -0
- data/{lib/generators/templates/public → public}/images/admin/icons/32x32/3.png +0 -0
- data/{lib/generators/templates/public → public}/images/admin/icons/32x32/4.png +0 -0
- data/{lib/generators/templates/public → public}/images/admin/icons/32x32/5.png +0 -0
- data/{lib/generators/templates/public → public}/images/admin/icons/32x32/6.png +0 -0
- data/{lib/generators/templates/public → public}/images/admin/icons/32x32/7.png +0 -0
- data/{lib/generators/templates/public → public}/images/admin/icons/32x32/8.png +0 -0
- data/{lib/generators/templates/public → public}/images/admin/icons/32x32/9.png +0 -0
- data/{lib/generators/templates/public → public}/images/admin/icons/accept.png +0 -0
- data/{lib/generators/templates/public → public}/images/admin/icons/add.gif +0 -0
- data/{lib/generators/templates/public → public}/images/admin/icons/add.png +0 -0
- data/{lib/generators/templates/public → public}/images/admin/icons/arrow-down.gif +0 -0
- data/{lib/generators/templates/public → public}/images/admin/icons/cross.png +0 -0
- data/{lib/generators/templates/public → public}/images/admin/icons/delete.gif +0 -0
- data/{lib/generators/templates/public → public}/images/admin/icons/delete.png +0 -0
- data/{lib/generators/templates/public → public}/images/admin/icons/drag.gif +0 -0
- data/{lib/generators/templates/public → public}/images/admin/icons/edit.gif +0 -0
- data/{lib/generators/templates/public → public}/images/admin/icons/edit.png +0 -0
- data/{lib/generators/templates/public → public}/images/admin/icons/email.png +0 -0
- data/{lib/generators/templates/public → public}/images/admin/icons/error.png +0 -0
- data/{lib/generators/templates/public → public}/images/admin/icons/exclamation.png +0 -0
- data/{lib/generators/templates/public → public}/images/admin/icons/feed.png +0 -0
- data/{lib/generators/templates/public → public}/images/admin/icons/pdf.png +0 -0
- data/{lib/generators/templates/public → public}/images/admin/icons/reorder.gif +0 -0
- data/{lib/generators/templates/public → public}/images/admin/icons/search.gif +0 -0
- data/{lib/generators/templates/public → public}/images/admin/icons/send-email.png +0 -0
- data/{lib/generators/templates/public → public}/images/admin/icons/stop.png +0 -0
- data/{lib/generators/templates/public → public}/images/admin/icons/tick.png +0 -0
- data/{lib/generators/templates/public → public}/images/admin/icons/up.gif +0 -0
- data/{lib/generators/templates/public → public}/images/admin/icons/xls.png +0 -0
- data/{lib/generators/templates/public → public}/images/admin/tabs/off-left.png +0 -0
- data/{lib/generators/templates/public → public}/images/admin/tabs/off-right.png +0 -0
- data/{lib/generators/templates/public → public}/images/admin/tabs/on-left.png +0 -0
- data/{lib/generators/templates/public → public}/images/admin/tabs/on-right.png +0 -0
- data/{lib/generators/templates/public → public}/images/ajax_loader.gif +0 -0
- data/{lib/generators/templates/public → public}/images/amex_cid.gif +0 -0
- data/{lib/generators/templates/public → public}/images/bg-button-hover.png +0 -0
- data/{lib/generators/templates/public → public}/images/bg-button-pressed.png +0 -0
- data/{lib/generators/templates/public → public}/images/bg-button.gif +0 -0
- data/{lib/generators/templates/public → public}/images/bg-button.png +0 -0
- data/{lib/generators/templates/public → public}/images/blue/left_01.png +0 -0
- data/{lib/generators/templates/public → public}/images/blue/right_01.png +0 -0
- data/{lib/generators/templates/public → public}/images/body-back.png +0 -0
- data/{lib/generators/templates/public → public}/images/bottom_shine.png +0 -0
- data/{lib/generators/templates/public → public}/images/breadcrumb.gif +0 -0
- data/{lib/generators/templates/public → public}/images/button-dark-hover.png +0 -0
- data/{lib/generators/templates/public → public}/images/button-dark.png +0 -0
- data/{lib/generators/templates/public → public}/images/buttons/bg-button-hover.png +0 -0
- data/{lib/generators/templates/public → public}/images/buttons/bg-button-pressed.png +0 -0
- data/{lib/generators/templates/public → public}/images/buttons/bg-button.gif +0 -0
- data/{lib/generators/templates/public → public}/images/buttons/bg-button.png +0 -0
- data/{lib/generators/templates/public → public}/images/buttons/blue/left_01.png +0 -0
- data/{lib/generators/templates/public → public}/images/buttons/blue/right_01.png +0 -0
- data/{lib/generators/templates/public → public}/images/buttons/button-dark-hover.png +0 -0
- data/{lib/generators/templates/public → public}/images/buttons/button-dark.png +0 -0
- data/{lib/generators/templates/public → public}/images/buttons/drag-handle-green.png +0 -0
- data/{lib/generators/templates/public → public}/images/buttons/green/left_01.png +0 -0
- data/{lib/generators/templates/public → public}/images/buttons/green/right_01.png +0 -0
- data/{lib/generators/templates/public → public}/images/buttons/left_01.png +0 -0
- data/{lib/generators/templates/public → public}/images/buttons/left_01_small.png +0 -0
- data/{lib/generators/templates/public → public}/images/buttons/orange/left_03.png +0 -0
- data/{lib/generators/templates/public → public}/images/buttons/orange/right_03.png +0 -0
- data/{lib/generators/templates/public → public}/images/buttons/right_01.png +0 -0
- data/{lib/generators/templates/public → public}/images/buttons/right_01_small.png +0 -0
- data/{lib/generators/templates/public → public}/images/buttons/sxsw-ribbon-v1.png +0 -0
- data/{lib/generators/templates/public → public}/images/buttons/top-shine.png +0 -0
- data/{lib/generators/templates/public → public}/images/calendar_date_select/calendar.gif +0 -0
- data/{lib/generators/templates/public → public}/images/cart-empty.png +0 -0
- data/{lib/generators/templates/public → public}/images/cart-empty_x32.png +0 -0
- data/{lib/generators/templates/public → public}/images/cart-full.png +0 -0
- data/{lib/generators/templates/public → public}/images/cart-full_x32.png +0 -0
- data/{lib/generators/templates/public → public}/images/checkout.png +0 -0
- data/{lib/generators/templates/public → public}/images/creditcard.gif +0 -0
- data/{lib/generators/templates/public → public}/images/datepicker/backstripes.gif +0 -0
- data/{lib/generators/templates/public → public}/images/datepicker/bg_header.jpg +0 -0
- data/{lib/generators/templates/public → public}/images/datepicker/bullet1.gif +0 -0
- data/{lib/generators/templates/public → public}/images/datepicker/bullet2.gif +0 -0
- data/{lib/generators/templates/public → public}/images/datepicker/cal.gif +0 -0
- data/{lib/generators/templates/public → public}/images/datepicker/gradient-e5e5e5-ffffff.gif +0 -0
- data/{lib/generators/templates/public → public}/images/discover_cid.gif +0 -0
- data/{lib/generators/templates/public → public}/images/drag-handle-green.png +0 -0
- data/{lib/generators/templates/public → public}/images/favicon.ico +0 -0
- data/{lib/generators/templates/public → public}/images/green/left_01.png +0 -0
- data/{lib/generators/templates/public → public}/images/green/right_01.png +0 -0
- data/{lib/generators/templates/public → public}/images/grid.png +0 -0
- data/{lib/generators/templates/public → public}/images/left_01.png +0 -0
- data/{lib/generators/templates/public → public}/images/left_01_small.png +0 -0
- data/{lib/generators/templates/public → public}/images/master_cid.jpg +0 -0
- data/{lib/generators/templates/public → public}/images/menu-current.png +0 -0
- data/{lib/generators/templates/public → public}/images/menu-hover.png +0 -0
- data/{lib/generators/templates/public → public}/images/noimage/mini.jpg +0 -0
- data/{lib/generators/templates/public → public}/images/noimage/product.jpg +0 -0
- data/{lib/generators/templates/public → public}/images/noimage/small.jpg +0 -0
- data/{lib/generators/templates/public → public}/images/openid-inputicon.gif +0 -0
- data/{lib/generators/templates/public → public}/images/orange/left_03.png +0 -0
- data/{lib/generators/templates/public → public}/images/orange/right_03.png +0 -0
- data/{lib/generators/templates/public → public}/images/progress.gif +0 -0
- data/{lib/generators/templates/public → public}/images/right_01.png +0 -0
- data/{lib/generators/templates/public → public}/images/right_01_small.png +0 -0
- data/{lib/generators/templates/public → public}/images/separator.png +0 -0
- data/{lib/generators/templates/public → public}/images/shadow-top.png +0 -0
- data/{lib/generators/templates/public → public}/images/shadow_top.png +0 -0
- data/{lib/generators/templates/public → public}/images/spinner.gif +0 -0
- data/{lib/generators/templates/public → public}/images/spree.jpg +0 -0
- data/{lib/generators/templates/public → public}/images/spree/progress.gif +0 -0
- data/{lib/generators/templates/public → public}/images/spree/spinner.gif +0 -0
- data/{lib/generators/templates/public → public}/images/spree/spree.jpg +0 -0
- data/{lib/generators/templates/public → public}/images/step-progress/completed-completed.gif +0 -0
- data/{lib/generators/templates/public → public}/images/step-progress/completed-current.gif +0 -0
- data/{lib/generators/templates/public → public}/images/step-progress/completed-first.gif +0 -0
- data/{lib/generators/templates/public → public}/images/step-progress/current-first.gif +0 -0
- data/{lib/generators/templates/public → public}/images/step-progress/current-incomplete.gif +0 -0
- data/{lib/generators/templates/public → public}/images/step-progress/current-right.gif +0 -0
- data/{lib/generators/templates/public → public}/images/step-progress/incomplete-incomplete.gif +0 -0
- data/{lib/generators/templates/public → public}/images/step-progress/incomplete-right.gif +0 -0
- data/{lib/generators/templates/public → public}/images/steps/1.png +0 -0
- data/{lib/generators/templates/public → public}/images/steps/1_small.png +0 -0
- data/{lib/generators/templates/public → public}/images/steps/2.png +0 -0
- data/{lib/generators/templates/public → public}/images/steps/2_small.png +0 -0
- data/{lib/generators/templates/public → public}/images/steps/3.png +0 -0
- data/{lib/generators/templates/public → public}/images/steps/3_small.png +0 -0
- data/{lib/generators/templates/public → public}/images/steps/4.png +0 -0
- data/{lib/generators/templates/public → public}/images/steps/4_small.png +0 -0
- data/{lib/generators/templates/public → public}/images/steps/5.png +0 -0
- data/{lib/generators/templates/public → public}/images/steps/5_small.png +0 -0
- data/{lib/generators/templates/public → public}/images/steps/6.png +0 -0
- data/{lib/generators/templates/public → public}/images/steps/6_small.png +0 -0
- data/{lib/generators/templates/public → public}/images/sxsw-ribbon-v1.png +0 -0
- data/{lib/generators/templates/public → public}/images/tab_bottom.gif +0 -0
- data/{lib/generators/templates/public → public}/images/tile-header.png +0 -0
- data/{lib/generators/templates/public → public}/images/tile-slider.png +0 -0
- data/{lib/generators/templates/public → public}/images/top-shine.png +0 -0
- data/{lib/generators/templates/public → public}/images/tree-nav-icons/bullet.gif +0 -0
- data/{lib/generators/templates/public → public}/images/tree-nav-icons/minus.gif +0 -0
- data/{lib/generators/templates/public → public}/images/tree-nav-icons/plus.gif +0 -0
- data/{lib/generators/templates/public → public}/images/tree-nav-icons/treeview-loading.gif +0 -0
- data/{lib/generators/templates/public → public}/images/tree-nav-icons/treeview-sprite.gif +0 -0
- data/{lib/generators/templates/public → public}/images/update.png +0 -0
- data/{lib/generators/templates/public → public}/images/visa_cid.gif +0 -0
- data/{lib/generators/templates/public → public}/images/wrapper-back-2.png +0 -0
- data/{lib/generators/templates/public → public}/images/wrapper-back.png +0 -0
- data/{lib/generators/templates/public → public}/images/yui-menubaritem_submenuindicator.png +0 -0
- data/{lib/generators/templates/public → public}/images/yui-menubaritem_submenuindicator_disabled.png +0 -0
- data/{lib/generators/templates/public → public}/images/yui-menuitem_checkbox.png +0 -0
- data/{lib/generators/templates/public → public}/images/yui-menuitem_checkbox_disabled.png +0 -0
- data/{lib/generators/templates/public → public}/images/yui-menuitem_submenuindicator.png +0 -0
- data/{lib/generators/templates/public → public}/images/yui-menuitem_submenuindicator_disabled.png +0 -0
- data/{lib/generators/templates/public → public}/images/yui-sprite.png +0 -0
- data/{lib/generators/templates/public → public}/javascripts/additional-methods.js +0 -0
- data/{lib/generators/templates/public → public}/javascripts/admin.js +11 -11
- data/{lib/generators/templates/public → public}/javascripts/admin/address_states.js +0 -0
- data/{lib/generators/templates/public → public}/javascripts/admin/checkouts/edit.js +1 -1
- data/{lib/generators/templates/public → public}/javascripts/admin/orders/edit.js +0 -0
- data/{lib/generators/templates/public → public}/javascripts/admin/orders/edit_form.js +0 -0
- data/{lib/generators/templates/public → public}/javascripts/admin/payments/new.js +0 -0
- data/{lib/generators/templates/public → public}/javascripts/admin/unobtrusive_handlers.js +0 -0
- data/{lib/generators/templates/public → public}/javascripts/application.js +3 -3
- data/{lib/generators/templates/public → public}/javascripts/calculator.js +0 -0
- data/{lib/generators/templates/public → public}/javascripts/checkout.js +26 -15
- data/{lib/generators/templates/public → public}/javascripts/datepicker.js +0 -0
- data/{lib/generators/templates/public → public}/javascripts/gateway.js +0 -0
- data/{lib/generators/templates/public → public}/javascripts/jquery-1.4.2.min.js +0 -0
- data/{lib/generators/templates/public → public}/javascripts/jquery-ui.js +0 -0
- data/{lib/generators/templates/public → public}/javascripts/jquery.alerts/images/help.gif +0 -0
- data/{lib/generators/templates/public → public}/javascripts/jquery.alerts/images/important.gif +0 -0
- data/{lib/generators/templates/public → public}/javascripts/jquery.alerts/images/info.gif +0 -0
- data/{lib/generators/templates/public → public}/javascripts/jquery.alerts/images/title.gif +0 -0
- data/{lib/generators/templates/public → public}/javascripts/jquery.alerts/jquery.alerts.css +0 -0
- data/{lib/generators/templates/public → public}/javascripts/jquery.alerts/jquery.alerts.js +0 -0
- data/{lib/generators/templates/public → public}/javascripts/jquery.alerts/jquery.alerts.spree.css +0 -0
- data/{lib/generators/templates/public → public}/javascripts/jquery.autocomplete.min.js +0 -0
- data/{lib/generators/templates/public → public}/javascripts/jquery.js +0 -0
- data/{lib/generators/templates/public → public}/javascripts/jquery.suggest.js +0 -0
- data/{lib/generators/templates/public → public}/javascripts/jquery.template.js +0 -0
- data/{lib/generators/templates/public → public}/javascripts/jquery.tokeninput.js +0 -0
- data/{lib/generators/templates/public → public}/javascripts/jquery.validate.min.js +0 -0
- data/{lib/generators/templates/public → public}/javascripts/jrails.autocomplete.js +0 -0
- data/{lib/generators/templates/public → public}/javascripts/jrails.js +0 -0
- data/{lib/generators/templates/public → public}/javascripts/jsTree/jquery.tree.js +0 -0
- data/{lib/generators/templates/public → public}/javascripts/jsTree/plugins/jquery.tree.contextmenu.js +0 -0
- data/{lib/generators/templates/public → public}/javascripts/jsTree/themes/apple/bg.jpg +0 -0
- data/{lib/generators/templates/public → public}/javascripts/jsTree/themes/apple/dot_for_ie.gif +0 -0
- data/{lib/generators/templates/public → public}/javascripts/jsTree/themes/apple/icons.png +0 -0
- data/{lib/generators/templates/public → public}/javascripts/jsTree/themes/apple/style.css +0 -0
- data/{lib/generators/templates/public → public}/javascripts/jsTree/themes/apple/throbber.gif +0 -0
- data/{lib/generators/templates/public → public}/javascripts/lang/af.js +0 -0
- data/{lib/generators/templates/public → public}/javascripts/lang/ar.js +0 -0
- data/{lib/generators/templates/public → public}/javascripts/lang/de.js +0 -0
- data/{lib/generators/templates/public → public}/javascripts/lang/du.js +0 -0
- data/{lib/generators/templates/public → public}/javascripts/lang/en.js +0 -0
- data/{lib/generators/templates/public → public}/javascripts/lang/es.js +0 -0
- data/{lib/generators/templates/public → public}/javascripts/lang/fi.js +0 -0
- data/{lib/generators/templates/public → public}/javascripts/lang/fr.js +0 -0
- data/{lib/generators/templates/public → public}/javascripts/lang/gr.js +0 -0
- data/{lib/generators/templates/public → public}/javascripts/lang/he.js +0 -0
- data/{lib/generators/templates/public → public}/javascripts/lang/it.js +0 -0
- data/{lib/generators/templates/public → public}/javascripts/lang/nl.js +0 -0
- data/{lib/generators/templates/public → public}/javascripts/lang/no.js +0 -0
- data/{lib/generators/templates/public → public}/javascripts/lang/pt.js +0 -0
- data/{lib/generators/templates/public → public}/javascripts/lang/ro.js +0 -0
- data/{lib/generators/templates/public → public}/javascripts/lang/ru.js +0 -0
- data/{lib/generators/templates/public → public}/javascripts/lang/sp.js +0 -0
- data/{lib/generators/templates/public → public}/javascripts/lang/sv.js +0 -0
- data/{lib/generators/templates/public → public}/javascripts/lang/ua.js +0 -0
- data/{lib/generators/templates/public → public}/javascripts/localization/messages_cn.js +0 -0
- data/{lib/generators/templates/public → public}/javascripts/localization/messages_cs.js +0 -0
- data/{lib/generators/templates/public → public}/javascripts/localization/messages_da.js +0 -0
- data/{lib/generators/templates/public → public}/javascripts/localization/messages_de.js +0 -0
- data/{lib/generators/templates/public → public}/javascripts/localization/messages_es.js +0 -0
- data/{lib/generators/templates/public → public}/javascripts/localization/messages_fr.js +0 -0
- data/{lib/generators/templates/public → public}/javascripts/localization/messages_hu.js +0 -0
- data/{lib/generators/templates/public → public}/javascripts/localization/messages_it.js +0 -0
- data/{lib/generators/templates/public → public}/javascripts/localization/messages_kk.js +0 -0
- data/{lib/generators/templates/public → public}/javascripts/localization/messages_nl.js +0 -0
- data/{lib/generators/templates/public → public}/javascripts/localization/messages_no.js +0 -0
- data/{lib/generators/templates/public → public}/javascripts/localization/messages_pl.js +0 -0
- data/{lib/generators/templates/public → public}/javascripts/localization/messages_ptbr.js +0 -0
- data/{lib/generators/templates/public → public}/javascripts/localization/messages_ro.js +0 -0
- data/{lib/generators/templates/public → public}/javascripts/localization/messages_ru.js +0 -0
- data/{lib/generators/templates/public → public}/javascripts/localization/messages_se.js +0 -0
- data/{lib/generators/templates/public → public}/javascripts/localization/messages_sk.js +0 -0
- data/{lib/generators/templates/public → public}/javascripts/localization/messages_tr.js +0 -0
- data/{lib/generators/templates/public → public}/javascripts/localization/messages_tw.js +0 -0
- data/{lib/generators/templates/public → public}/javascripts/localization/messages_ua.js +0 -0
- data/{lib/generators/templates/public → public}/javascripts/nested-attribute.js +0 -0
- data/{lib/generators/templates/public → public}/javascripts/open_id.js +0 -0
- data/{lib/generators/templates/public → public}/javascripts/product.js +0 -0
- data/{lib/generators/templates/public → public}/javascripts/rails.js +0 -0
- data/{lib/generators/templates/public → public}/javascripts/taxonomy.js +0 -0
- data/{lib/generators/templates/public → public}/javascripts/zone.js +0 -0
- data/{lib/generators/templates/public → public}/stylesheets/admin/admin-forms.css +0 -0
- data/{lib/generators/templates/public → public}/stylesheets/admin/admin-reset.css +0 -0
- data/{lib/generators/templates/public → public}/stylesheets/admin/admin-tables.css +0 -0
- data/{lib/generators/templates/public → public}/stylesheets/admin/admin-typography.css +0 -0
- data/{lib/generators/templates/public → public}/stylesheets/admin/admin.css +21 -18
- data/{lib/generators/templates/public → public}/stylesheets/admin/autocomplete.css +0 -1
- data/{lib/generators/templates/public → public}/stylesheets/admin/dashboard.css +0 -0
- data/{lib/generators/templates/public → public}/stylesheets/admin/edit_checkouts.css +0 -0
- data/{lib/generators/templates/public → public}/stylesheets/admin/grids.css +0 -0
- data/{lib/generators/templates/public → public}/stylesheets/admin/reset-fonts-grids-2-6-0.css +0 -0
- data/{lib/generators/templates/public → public}/stylesheets/admin/token-input.css +0 -0
- data/{lib/generators/templates/public → public}/stylesheets/admin/yui-includes.css +0 -0
- data/{lib/generators/templates/public → public}/stylesheets/datepicker.css +0 -0
- data/{lib/generators/templates/public → public}/stylesheets/jquery.autocomplete.css +0 -0
- data/{lib/generators/templates/public → public}/stylesheets/scaffold.css +0 -0
- data/{lib/generators/templates/public → public}/stylesheets/screen.css +0 -0
- metadata +475 -402
- data/app/controllers/admin/checkouts_controller.rb +0 -58
- data/app/models/checkout.rb +0 -141
- data/app/models/order_mailer.rb +0 -24
- data/app/views/admin/checkouts/show.html.erb +0 -131
- data/app/views/admin/mail_settings/edit.html.erb +0 -114
- data/app/views/admin/mail_settings/show.html.erb +0 -59
- data/app/views/admin/taxons/select.html.erb +0 -1
- data/app/views/checkout/_complete.html.erb +0 -1
- data/app/views/password_resets/edit.html.erb +0 -12
- data/app/views/password_resets/new.html.erb +0 -12
- data/config/initializers/touch.rb +0 -14
- data/lib/generators/spree_core/extension_generator.rb +0 -57
- data/lib/generators/spree_core/install_generator.rb +0 -59
- data/lib/generators/templates/LICENSE +0 -23
- data/lib/generators/templates/README.md +0 -13
- data/lib/generators/templates/Rakefile +0 -1
- data/lib/generators/templates/application_controller.rb +0 -4
- data/lib/generators/templates/extension.gemspec.tt +0 -21
- data/lib/generators/templates/extension/engine.rb.tt +0 -14
- data/lib/generators/templates/extension/extension.rb.tt +0 -1
- data/lib/generators/templates/lib/tasks/%file_name%.rake.tt +0 -1
- data/lib/generators/templates/public/javascripts/jquery-1.3.2.min.js +0 -19
- data/lib/generators/templates/public/javascripts/jquery-and-plugins.js +0 -36
- data/lib/generators/templates/spree_site.rb +0 -8
- data/lib/spree/search.rb +0 -47
- data/lib/spree_core/preferences/mail_settings.rb +0 -57
@@ -0,0 +1,14 @@
|
|
1
|
+
class GenerateAnonymousUsers < ActiveRecord::Migration
|
2
|
+
def self.up
|
3
|
+
User.reset_column_information
|
4
|
+
Order.where(:user_id => nil).each do |order|
|
5
|
+
user = User.anonymous!
|
6
|
+
user.email ||= order.email
|
7
|
+
order.user = user
|
8
|
+
order.save!
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
def self.down
|
13
|
+
end
|
14
|
+
end
|
File without changes
|
data/db/seeds.rb
ADDED
@@ -0,0 +1,23 @@
|
|
1
|
+
module SpreeCore
|
2
|
+
module Generators
|
3
|
+
class UpgradeGenerator < Rails::Generators::Base
|
4
|
+
source_root File.expand_path("../../templates", __FILE__)
|
5
|
+
|
6
|
+
desc "Upgrade an existing Rails application to use with a new version of Spree."
|
7
|
+
|
8
|
+
def copy_migrations
|
9
|
+
directory "db"
|
10
|
+
create_file ".rspec", "--colour"
|
11
|
+
end
|
12
|
+
|
13
|
+
def copy_public
|
14
|
+
directory "public"
|
15
|
+
end
|
16
|
+
|
17
|
+
def config_middleware
|
18
|
+
application 'config.middleware.use "SeoAssist"'
|
19
|
+
application 'config.middleware.use "RedirectLegacyProductUrl"'
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
data/lib/scopes/product.rb
CHANGED
@@ -54,11 +54,6 @@ module Scopes::Product
|
|
54
54
|
# Product.not_deleted.available(args.first).scope(:find)
|
55
55
|
# }
|
56
56
|
|
57
|
-
::Product.scope :keywords, lambda{|query|
|
58
|
-
return {} if query.blank?
|
59
|
-
Spree::Config.searcher.get_products_conditions_for(query)
|
60
|
-
}
|
61
|
-
|
62
57
|
::Product.scope :price_between, lambda {|low,high|
|
63
58
|
{ :joins => :master, :conditions => ["variants.price BETWEEN ? AND ?", low, high] }
|
64
59
|
}
|
data/lib/spree/config.rb
CHANGED
@@ -19,12 +19,12 @@ module Spree
|
|
19
19
|
@configuration
|
20
20
|
end
|
21
21
|
|
22
|
-
def
|
23
|
-
@
|
22
|
+
def searcher_class
|
23
|
+
@searcher_class ||= Spree::Search::Base
|
24
24
|
end
|
25
25
|
|
26
|
-
def
|
27
|
-
@
|
26
|
+
def searcher_class=(sclass)
|
27
|
+
@searcher_class = sclass
|
28
28
|
end
|
29
29
|
end
|
30
30
|
end
|
data/lib/spree/current_order.rb
CHANGED
@@ -1,14 +1,22 @@
|
|
1
1
|
module Spree
|
2
2
|
module CurrentOrder
|
3
|
+
|
4
|
+
# This should be overridden by an auth-related extension which would then have the opporutnity to associate the new order with the
|
5
|
+
# current user before saving.
|
6
|
+
def before_save_new_order
|
7
|
+
end
|
8
|
+
|
3
9
|
# The current incomplete order from the session for use in cart and during checkout
|
4
10
|
def current_order(create_order_if_necessary = false)
|
5
11
|
return @current_order if @current_order
|
6
12
|
@current_order ||= Order.find_by_id(session[:order_id], :include => :adjustments)
|
7
|
-
if create_order_if_necessary and (@current_order.nil? or @current_order.
|
8
|
-
@current_order = Order.
|
13
|
+
if create_order_if_necessary and (@current_order.nil? or @current_order.completed?)
|
14
|
+
@current_order = Order.new
|
15
|
+
before_save_new_order
|
16
|
+
@current_order.save!
|
9
17
|
end
|
10
18
|
session[:order_id] = @current_order ? @current_order.id : nil
|
11
19
|
@current_order
|
12
20
|
end
|
13
21
|
end
|
14
|
-
end
|
22
|
+
end
|
@@ -0,0 +1,47 @@
|
|
1
|
+
require 'rails'
|
2
|
+
|
3
|
+
module Spree
|
4
|
+
module I18nUtils
|
5
|
+
|
6
|
+
# #Retrieve comments, translation data in hash form
|
7
|
+
def read_file(filename, basename)
|
8
|
+
(comments, data) = IO.read(filename).split(/\n#{basename}:\s*\n/) #Add error checking for failed file read?
|
9
|
+
return comments, create_hash(data)
|
10
|
+
end
|
11
|
+
|
12
|
+
#Creates hash of translation data
|
13
|
+
def create_hash(data)
|
14
|
+
words = Hash.new
|
15
|
+
return words if !data
|
16
|
+
parent = Array.new
|
17
|
+
previous_key = 'base'
|
18
|
+
data.split("\n").each do |w|
|
19
|
+
next if w.strip.blank?
|
20
|
+
(key, value) = w.split(':', 2)
|
21
|
+
value ||= ''
|
22
|
+
shift = (key =~ /\w/)/2 - parent.size #Determine level of current key in comparison to parent array
|
23
|
+
key = key.sub(/^\s+/,'')
|
24
|
+
parent << previous_key if shift > 0 #If key is child of previous key, add previous key as parent
|
25
|
+
(shift*-1).times { parent.pop } if shift < 0 #If key is not related to previous key, remove parent keys
|
26
|
+
previous_key = key #Track key in case next key is child of this key
|
27
|
+
words[parent.join(':')+':'+key] = value
|
28
|
+
end
|
29
|
+
words
|
30
|
+
end
|
31
|
+
|
32
|
+
#Writes to file from translation data hash structure
|
33
|
+
def write_file(filename,basename,comments,words,comment_values=true, fallback_values={})
|
34
|
+
File.open(filename, "w") do |log|
|
35
|
+
log.puts(comments+"\n"+basename+": \n")
|
36
|
+
words.sort.each do |k,v|
|
37
|
+
keys = k.split(':')
|
38
|
+
(keys.size-1).times { keys[keys.size-1] = ' ' + keys[keys.size-1] } #Add indentation for children keys
|
39
|
+
value = v.strip
|
40
|
+
value = ("#" + value) if comment_values and not value.blank?
|
41
|
+
log.puts "#{keys[keys.size-1]}: #{value}\n"
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
end
|
47
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
# Allows us to intercept any outbound mail message and make last minute changes (such as specifying a "from" address or
|
2
|
+
# sending to a test email account.)
|
3
|
+
#
|
4
|
+
# See http://railscasts.com/episodes/206-action-mailer-in-rails-3 for more details.
|
5
|
+
module Spree
|
6
|
+
class MailInterceptor
|
7
|
+
|
8
|
+
def self.delivering_email(message)
|
9
|
+
return unless mail_method = MailMethod.current
|
10
|
+
message.from ||= mail_method.preferred_mails_from
|
11
|
+
|
12
|
+
if mail_method.preferred_intercept_email.present?
|
13
|
+
message.subject = "[#{message.to}] #{message.subject}"
|
14
|
+
message.to = mail_method.preferred_intercept_email
|
15
|
+
end
|
16
|
+
|
17
|
+
if mail_method.preferred_mail_bcc.present?
|
18
|
+
message.bcc = mail_method.preferred_mail_bcc
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,34 @@
|
|
1
|
+
module Spree
|
2
|
+
module MailSettings
|
3
|
+
|
4
|
+
# Override the Rails application mail settings based on preference. This makes it possible to configure the mail settings
|
5
|
+
# through an admin interface instead of requiring changes to the Rails envrionment file.
|
6
|
+
def self.init
|
7
|
+
return unless mail_method = MailMethod.current
|
8
|
+
if mail_method.prefers_enable_mail_delivery?
|
9
|
+
mail_server_settings = {
|
10
|
+
:address => mail_method.preferred_mail_host,
|
11
|
+
:domain => mail_method.preferred_mail_domain,
|
12
|
+
:port => mail_method.preferred_mail_port,
|
13
|
+
:authentication => mail_method.preferred_mail_auth_type
|
14
|
+
}
|
15
|
+
|
16
|
+
if mail_method.preferred_mail_auth_type != 'none'
|
17
|
+
mail_server_settings[:user_name] = mail_method.preferred_smtp_username
|
18
|
+
mail_server_settings[:password] = mail_method.preferred_smtp_password
|
19
|
+
end
|
20
|
+
|
21
|
+
ActionMailer::Base.smtp_settings = mail_server_settings
|
22
|
+
ActionMailer::Base.perform_deliveries = true
|
23
|
+
|
24
|
+
if mail_method.preferred_secure_connection_type == 'TLS'
|
25
|
+
mail_server_settings[:enable_starttls_auto] = true
|
26
|
+
end
|
27
|
+
else
|
28
|
+
#logger.warn "NOTICE: Mail not enabled"
|
29
|
+
ActionMailer::Base.perform_deliveries = false
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
end
|
34
|
+
end
|
data/lib/spree/search/base.rb
CHANGED
@@ -2,20 +2,64 @@ module Spree::Search
|
|
2
2
|
class Base
|
3
3
|
attr_accessor :properties
|
4
4
|
|
5
|
-
def initialize
|
5
|
+
def initialize(params)
|
6
6
|
@properties = {}
|
7
|
+
prepare(params)
|
7
8
|
end
|
8
9
|
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
end
|
10
|
+
def retrieve_products
|
11
|
+
base_scope = get_base_scope
|
12
|
+
@products_scope = @product_group.apply_on(base_scope)
|
13
13
|
|
14
|
-
|
14
|
+
curr_page = manage_pagination && keywords ? 1 : page
|
15
|
+
@products = @products_scope.all.paginate({
|
16
|
+
:include => [:images, :master],
|
17
|
+
:per_page => per_page,
|
18
|
+
:page => curr_page
|
19
|
+
})
|
20
|
+
|
21
|
+
return @products
|
15
22
|
end
|
16
23
|
|
17
24
|
def method_missing(name)
|
18
25
|
@properties[name]
|
19
26
|
end
|
27
|
+
|
28
|
+
protected
|
29
|
+
def get_base_scope
|
30
|
+
base_scope = @cached_product_group ? @cached_product_group.products.active : Product.active
|
31
|
+
base_scope = base_scope.in_taxon(taxon) unless taxon.blank?
|
32
|
+
base_scope = get_products_conditions_for(base_scope, keywords) unless keywords.blank?
|
33
|
+
|
34
|
+
base_scope = base_scope.on_hand unless Spree::Config[:show_zero_stock_products]
|
35
|
+
base_scope
|
36
|
+
end
|
37
|
+
|
38
|
+
# method should return new scope based on base_scope
|
39
|
+
def get_products_conditions_for(base_scope, query)
|
40
|
+
base_scope.like_any([:name, :description], query.split)
|
41
|
+
end
|
42
|
+
|
43
|
+
def prepare(params)
|
44
|
+
@properties[:taxon] = params[:taxon].blank? ? nil : Taxon.find(params[:taxon])
|
45
|
+
@properties[:keywords] = params[:keywords]
|
46
|
+
|
47
|
+
per_page = params[:per_page].to_i
|
48
|
+
@properties[:per_page] = per_page > 0 ? per_page : Spree::Config[:products_per_page]
|
49
|
+
@properties[:page] = (params[:page].to_i <= 0) ? 1 : params[:page].to_i
|
50
|
+
|
51
|
+
if !params[:order_by_price].blank?
|
52
|
+
@product_group = ProductGroup.new.from_route([params[:order_by_price]+"_by_master_price"])
|
53
|
+
elsif params[:product_group_name]
|
54
|
+
@cached_product_group = ProductGroup.find_by_permalink(params[:product_group_name])
|
55
|
+
@product_group = ProductGroup.new
|
56
|
+
elsif params[:product_group_query]
|
57
|
+
@product_group = ProductGroup.new.from_route(params[:product_group_query])
|
58
|
+
else
|
59
|
+
@product_group = ProductGroup.new
|
60
|
+
end
|
61
|
+
@product_group = @product_group.from_search(params[:search]) if params[:search]
|
62
|
+
|
63
|
+
end
|
20
64
|
end
|
21
65
|
end
|
data/lib/spree_core.rb
CHANGED
@@ -46,7 +46,6 @@ require 'spree_core/validation_group'
|
|
46
46
|
require 'spree_core/enumerable_constants'
|
47
47
|
require 'spree_core/find_by_param'
|
48
48
|
require 'spree_core/ssl_requirement'
|
49
|
-
require 'spree_core/preferences/mail_settings'
|
50
49
|
require 'spree_core/preferences/model_hooks'
|
51
50
|
require 'spree_core/preferences/preference_definition'
|
52
51
|
require 'store_helpers'
|
@@ -55,12 +54,18 @@ require 'spree/calculated_adjustments'
|
|
55
54
|
require 'spree/current_order'
|
56
55
|
require 'spree/preference_access'
|
57
56
|
require 'spree/config'
|
57
|
+
require 'spree/mail_settings'
|
58
|
+
require 'spree/mail_interceptor'
|
58
59
|
require 'redirect_legacy_product_url'
|
59
60
|
require 'seo_assist'
|
60
61
|
|
62
|
+
silence_warnings do
|
63
|
+
require 'spree_core/authorize_net_cim_hack'
|
64
|
+
end
|
65
|
+
|
61
66
|
module Spree
|
62
67
|
def self.version
|
63
|
-
"0.30.0
|
68
|
+
"0.30.0"
|
64
69
|
end
|
65
70
|
end
|
66
71
|
|
@@ -87,12 +92,7 @@ module SpreeCore
|
|
87
92
|
Gateway::PayPal,
|
88
93
|
Gateway::SagePay,
|
89
94
|
Gateway::Beanstream,
|
90
|
-
PaymentMethod::Check
|
91
|
-
|
92
|
-
Calculator::FlatPercentItemTotal,
|
93
|
-
Calculator::FlexiRate,
|
94
|
-
Calculator::PerItem,
|
95
|
-
Calculator::PriceBucket
|
95
|
+
PaymentMethod::Check
|
96
96
|
].each{|gw|
|
97
97
|
begin
|
98
98
|
gw.register
|
@@ -109,6 +109,7 @@ module SpreeCore
|
|
109
109
|
Calculator::PerItem,
|
110
110
|
Calculator::SalesTax,
|
111
111
|
Calculator::Vat,
|
112
|
+
Calculator::PriceBucket
|
112
113
|
].each{|c_model|
|
113
114
|
begin
|
114
115
|
c_model.register if c_model.table_exists?
|
data/lib/{active_merchant/billing/authorize_net_cim.rb → spree_core/authorize_net_cim_hack.rb}
RENAMED
File without changes
|
@@ -2,11 +2,13 @@ module ActiveRecord::Persistence
|
|
2
2
|
|
3
3
|
# Update attributes of a record in the database without callbacks, validations etc.
|
4
4
|
def update_attributes_without_callbacks(attributes)
|
5
|
+
self.send(:attributes=, attributes, false)
|
5
6
|
self.class.update_all(attributes, { :id => id })
|
6
7
|
end
|
7
8
|
|
8
9
|
# Update a single attribute in the database
|
9
10
|
def update_attribute_without_callbacks(name, value)
|
11
|
+
send("#{name}=", value)
|
10
12
|
update_attributes_without_callbacks(name => value)
|
11
13
|
end
|
12
14
|
|
@@ -71,39 +71,33 @@ module SslRequirement
|
|
71
71
|
protected
|
72
72
|
# Returns true if the current action is supposed to run as SSL
|
73
73
|
def ssl_required?
|
74
|
-
|
74
|
+
actions = self.class.read_inheritable_attribute(:ssl_required_actions)
|
75
|
+
return false if actions.nil?
|
76
|
+
actions.empty? || actions.include?(action_name.to_sym)
|
75
77
|
end
|
76
78
|
|
77
79
|
def ssl_allowed?
|
78
|
-
|
80
|
+
actions = self.class.read_inheritable_attribute(:ssl_allowed_actions)
|
81
|
+
return false if actions.nil?
|
82
|
+
actions.empty? || actions.include?(action_name.to_sym)
|
79
83
|
end
|
80
84
|
|
81
85
|
private
|
82
|
-
def dvp_mode?
|
83
|
-
ENV['RAILS_ENV'] == 'development'
|
84
|
-
end
|
85
|
-
|
86
|
-
def test_mode?
|
87
|
-
ENV['RAILS_ENV'] == 'test' || ENV['RAILS_ENV'] == 'cucumber'
|
88
|
-
end
|
89
86
|
|
90
|
-
# don't require ssl in development or test mode
|
91
87
|
def ssl_supported?
|
92
|
-
(
|
93
|
-
(
|
88
|
+
return true if (Rails.env.development? or Rails.env.test?) and Spree::Config[:allow_ssl_in_development_and_test]
|
89
|
+
(Rails.env.staging? or Rails.env.production?) and Spree::Config[:allow_ssl_in_production]
|
94
90
|
end
|
95
91
|
|
96
92
|
def ensure_proper_protocol
|
97
93
|
return true if ssl_allowed?
|
98
|
-
|
99
94
|
if ssl_required? && !request.ssl? && ssl_supported?
|
100
95
|
redirect_to "https://" + request.host + request.fullpath
|
101
96
|
flash.keep
|
102
|
-
return false
|
103
97
|
elsif request.ssl? && !ssl_required?
|
104
98
|
redirect_to "http://" + request.host + request.fullpath
|
105
99
|
flash.keep
|
106
|
-
return false
|
107
100
|
end
|
101
|
+
|
108
102
|
end
|
109
103
|
end
|