Du kannst nicht mehr als 25 Themen auswählen Themen müssen mit entweder einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.

v1.6.rst 8.3KB

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