Oscar 1.5 release notes


Welcome to Oscar 1.5

Table of contents:


Oscar 1.5 is compatible with Django 1.8, 1.10 and 1.11 as well as Python 2.7, 3.3, 3.4, 3.5 and 3.6. Support for Django 1.9 is no longer officialy supported since it is longer supported by Django (end of life).

What’s new in Oscar 1.5?

  • Support for Django 1.11 (#2221)
  • Google Analytics tracking code has been migrated to Universal Analytics.
  • Passwords are validated using the validators defined in AUTH_PASSWORD_VALIDATORS for Django 1.9 and above.
  • The custom PhoneNumberField implementation has been replaced with the django-phonenumber-field package (#2227)

Removal of deprecated features

These methods/modules have been removed:

  • Profiling middleware. See silk or django-cprofile-middleware for alternatives.
  • Product.min_child_price_incl_tax and Product.min_child_price_excl_tax.
  • oscar.core.logging.handlers.EnvFileHandler()
  • The ellipses_page_range templatetag. See django-rangepaginator for an alternative.
  • oscar.test.decorators module.
  • oscar.core.utils.compose function.
  • oscar.apps.customer.auth_backends.Emailbackend. Use oscar.apps.customer.auth_backends.EmailBackend instead.
  • oscar.apps.catalogue.search_handlers.ProductSearchHandler. Use
  • oscar.apps.catalogue.search_handlers.SolrProductSearchHandler instead.

Minor changes

  • Added billing address to user’s address book during checkout (#1532). Number of usages for billing and shipping addresses tracked separately: billing address in UserAddress.num_orders_as_billing_address field and shipping address in UserAddress.num_order_as_shipping_address accordingly.
  • Fixed logic for determining “hurry mode” on stock alerts. Hurry mode is now set if the number of alerts for a product exceeds the quantity in stock, rather than the other way around.
  • Updated search to use the haystack CharField instead of the EdgeNgramField to fix irrelevant results (#2128)
  • Updated customer.utils.Dispatcher to improve the ability to customise the implementation (#2303)
  • Fixed logic for determining “hurry mode” on stock alerts. Hurry mode is now set if the number of alerts for a product exceeds the quantity in stock, rather than the other way around.
  • Voucher.date_created and VoucherApplication.date_created model fields changed from DateField to DateTimeField. If you use SQLite database, please make sure to backup data before running migrations, since due to limited support of column altering, Django re-creates new SQLite database with new columns and copies into it original data - https://docs.djangoproject.com/en/1.11/topics/migrations/#sqlite
  • Allowed the communication event dispatcher to accept an optional mail_connection to use when sending email messages.
  • Changed product alerts to be sent using the Communication Event framework. The old email templates will continue to be supported until Oscar 2.0.

Backwards incompatible changes in Oscar 1.5

  • Product reviews are now deleted if the associated product is deleted.

  • Formset classes moved to the separate modules, if you import them directly - please update location or use oscar.core.loading.get_classes() for loading classes (#1957).

    Next classes have new locations:

  • BaseBasketLineFormSet, BasketLineFormSet, BaseSavedLineFormSet, SavedLineFormSet moved to oscar.apps.basket.formsets module;
  • BaseStockRecordFormSet, StockRecordFormSet, BaseProductCategoryFormSet, ProductCategoryFormSet, BaseProductImageFormSet, ProductImageFormSet, BaseProductRecommendationFormSet, ProductRecommendationFormSet, ProductAttributesFormSet moved to oscar.apps.dashboard.catalogue.formsets;
  • OrderedProductFormSet moved to oscar.apps.dashboard.promotions.formsets; - LineFormset moved to oscar.apps.wishlists.formsets.
  • SimpleAddToBasketForm doesn’t override the quantity field any more. Instead, it just hides the field declared by AddToBasketForm and sets the quantity to one. This means SimpleAddToBasketForm doesn’t need to be overridden for most cases, but please check things still work as expected for you if you have customized it.
  • OSCAR_CURRENCY_FORMAT setting changed to dictionary form in order to support multi-currency for currency formatting. You can set format, format_type and currency_digits in it. Please refer to documentation for an example.
  • Dashboard order list doesn’t have shortcut filters any more, pass status parameter instead of order_status for the relevant filtering.
  • GOOGLE_ANALYTICS_ID and USE_LESS settings were renamed into OSCAR_GOOGLE_ANALYTICS_ID and OSCAR_USE_LESS respectively in order to keep all Oscar settings under common namespace.
  • Removed display_version and version variables from templates and template context.
  • Offer Applicator is now loaded from the offer.applicator module, instead of offer.utils. Old path is deprecated and won’t be supported in the next Oscar versions.
  • oscar.forms.fields.ExtendedURLField no longer accepts a verify_exists argument.

Dependency changes

The following packages are updated:

  • django>=1.8.8,<1.12
  • django-phonenumber-field>=1.0.0,<2.0.0
  • django-haystack>=2.5.0,<2.7.0