You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184
  1. =======================
  2. Oscar 1.6 release notes
  3. =======================
  4. :release: tbd
  5. Welcome to Oscar 1.6
  6. Table of contents:
  7. .. contents::
  8. :local:
  9. :depth: 1
  10. .. _compatibility_of_1.6:
  11. Compatibility
  12. -------------
  13. Oscar 1.6 is compatible with Django 1.11 as well as Python 2.7, 3.4,
  14. 3.5 and 3.6. Django 1.8, 1.9 and 1.10 are no longer supported.
  15. Official support for Django 1.8, 1.9 and 1.10 has been dropped.
  16. .. _new_in_1.6:
  17. What's new in Oscar 1.6?
  18. ------------------------
  19. Removal of deprecated features
  20. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  21. - Removed the redundant ``OSCAR_PROMOTION_MERCHANDISING_BLOCK_TYPES`` setting.
  22. Minor changes
  23. ~~~~~~~~~~~~~
  24. - The majority of the Oscar class imports now use dynamic loading, instead of
  25. direct importing, for better extensibility and customizability.
  26. - Customer transaction emails were reworked to use Mailgun templates, so that
  27. they have a more modern appearance.
  28. - ``SearchHandler.get_search_form`` method now accepts additional
  29. keyword arguments, which will be passed on search form class instance
  30. initiation.
  31. - Added ``get_stock_info`` hook to ``oscar.apps.basket.models.Basket`` for
  32. implementing strategies that depend on product options.
  33. - Fixed the page create/update views in the dashboard to correctly validate
  34. URLs. Invalid characters in URLs will raise a validation error, as will
  35. URLs longer than 100 characters.
  36. - The default shipping method
  37. ( ``oscar.apps.basket.views.BasketView.get_default_shipping_address``)
  38. on the basket summary page now uses the user's default shipping address to
  39. calculate an indicative shipping cost.
  40. - Fixed `ExtendedURLValidator` for locale-prefixed URLs for locales, different
  41. from current (see :issue:`1481`). Previously, validation did not pass when
  42. current locale is "en-gb" and URL is "/de/catalogue/" and visa versa due to
  43. default Django URL resolvers behaviour.
  44. - Product attribute value save is now handled by separate methods, to make it
  45. easier to override this behaviour.
  46. - Address hash generation is now separated from the summary in order to
  47. preserve same behavior when summary property customized (see :issue:`1537`).
  48. They can use different field names, listed out in `base_fields` and
  49. `hash_fields` respectively. Also hash generation now became
  50. platform-independent and generates the same for Python 2 and 3.
  51. Corresponding data migration will update hashes automatically. Take it into
  52. account that it will take time to run if you have large user base.
  53. - ``oscar.core.validators.validate_password`` was removed.
  54. Use ``django.contrib.auth.password_validation.validate_password`` instead.
  55. - ``oscar.core.validators.CommonPasswordValidator`` was removed. Use ``django.contrib.auth.password_validation.CommonPasswordValidator`` instead.
  56. - User notifications are marked as read only when viewed in detail, instead of
  57. being marked as read in bulk when the notification list was viewed.
  58. - The Google Analytics tracking code provided by Oscar now uses ``gtag.js`` API
  59. instead of the deprecated ``analytics.js``.
  60. - Oscar's ``ImageInput``, ``TimePickerInput``, ``DatePickerInput`` and
  61. ``DateTimePickerInput`` all use templates for rendering.
  62. - It's now possible to manage images for variant products and their parents.
  63. - For variant products we now display their own images on product detail page
  64. and fallback to parent product images if they don't have any.
  65. - Basket line form quantity field now has "max" attribute with the maximum
  66. allowed quantity in it based on product availability and basket threshold
  67. (see :issue:`1412`).
  68. .. _incompatible_in_1.6:
  69. Backwards incompatible changes in Oscar 1.6
  70. -------------------------------------------
  71. - ``oscar.apps.customer.auth_backends.EmailBackend`` now rejects inactive users
  72. (where ``User.is_active`` is ``False``).
  73. - ``EmailBackend`` no longer enforces its own password strength validation,
  74. and relies instead on the ``AUTH_PASSWORD_VALIDATORS`` setting used by Django.
  75. - ``oscar.apps.basket.middleware.BasketMiddleware`` was rewritten as new-style
  76. middleware for Django 1.11.
  77. - ``oscar.apps.offer.models.ConditionalOffer`` now has a new flag
  78. ``exclusive`` to denote that the offer involved can not be combined on the
  79. same item on the same basket line with another offer.
  80. This flag is used by ``oscar.apps.basket.utils.LineOfferConsumer``, a facade
  81. that supercedes the old ``oscar.apps.basket.models.Line._affected_items`` counter,
  82. and replaces it with a more finegrained approach. This makes it possible to apply
  83. two distinct non-exclusive offers on the same basketline items, for example
  84. multiple distinct vouchers.
  85. A couple of methods on the basketline model have been extended with an
  86. optional ``offer`` argument, i.e. ``discount`` and ``consume``, so if you
  87. are using a customized basketline model, you have to update your methods'
  88. signatures.
  89. - Invalid URL names supplied to the ``OSCAR_DASHBOARD_NAVIGATION`` setting
  90. are now logged as an exception (previously they were silently ignored).
  91. The offending menu item will be skipped during menu rendering.
  92. In Oscar 1.8 the exception will be raised without being intercepted.
  93. - All signals are now loaded directly rather than using dynamic imports.
  94. - Stock manipulation (allocation/consumption/cancellation) now only happens if
  95. the ``track_stock`` property of the product's class is set to true.
  96. - ``oscar.forms.widgets.RemoteSelect`` was updated to work with version 4 of
  97. select2. Instead of rendering a hidden input it now renders a normal
  98. ``select`` element.
  99. - jQuery UI was removed from Oscar's static files. Projects that require it
  100. should install it at the project level.
  101. - Compatibility for Internet Explorer version 9 an lower was dropped from Oscar's
  102. templates and styles.
  103. Dependency changes
  104. ------------------
  105. - Upgraded jQuery to version 3.3.1.
  106. - Upgraded Bootstrap to version 3.3.7.
  107. - Upgraded bootstrap-datetimepicker to v2.4.4.
  108. - Upgraded jQuery-mousewheel to v3.1.13.
  109. - Upgraded inputmask to v3.2.7.
  110. - Upgraded jquery-sortable to v0.9.13.
  111. - Upgraded select2 to v4.0.5.
  112. .. _deprecated_features_in_1.6:
  113. Deprecated features
  114. ~~~~~~~~~~~~~~~~~~~
  115. The following features have been deprecated in this release:
  116. - ``StockRecord.price_excl_tax`` will be renamed into ``StockRecord.price`` in
  117. Oscar 2.0. Please see :issue:`1962` for more details.
  118. - The ``StockRecord.price_retail`` and ``StockRecord.cost_price`` fields are
  119. deprecated and will be removed in Oscar 2.0.
  120. - The ``order.Line.est_dispatch_date``, ``order.Line.line_price_incl_tax``,
  121. ``order.Line.unit_retail_price``, ``order.Line.unit_cost_price`` and
  122. ``order.Line.line_price_excl_tax`` fields are deprecated and will be removed
  123. in Oscar 2.0.
  124. - Support for Django 1.8, 1.9 and 1.10 has been dropped in line with the
  125. Django project recommendation for third party apps.