123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164 |
- ===========================================
- Oscar 0.8 release notes - UNDER DEVELOPMENT
- ===========================================
-
- Welcome to Oscar 0.8!
-
- Table of contents:
-
- .. contents::
- :local:
- :depth: 1
-
- .. _overview_of_0.8:
-
- Overview
- ========
-
- Oscar now has a demo site customised for the US!
-
- .. _compatibility_of_0.8:
-
- Compatibility
- =============
-
- Oscar 0.8 is compatible with Django 1.5-1.7.
-
- Support for Python 2.6 has been dropped; Oscar works with Python 2.7, 3.3
- and 3.4.
-
- .. _new_in_0.8:
-
- What's new in Oscar 0.8?
- ========================
-
- Customisation just got easier!
- ------------------------------
-
- * Oscar's views are now dynamically imported. This means that they can be
- overridden like most other classes in Oscar; overriding the related
- Application instance is not necessary any more.
-
- * A new management command, ``oscar_fork_app``, has been introduced to help
- with the all-to-common pattern of forking an Oscar app to override one of
- it's classes.
-
- * The documentation around :doc:`/topics/customisation` has been given an
- overhaul to incorporate the changes.
-
- US demo site
- ------------
-
- To help developers building sites for the US, a new example Oscar site has been
- included in the repo. This customises core Oscar to treat all prices as
- excluding tax and then calculate and apply taxes once the shipping address is
- known.
-
- See :ref:`us_site` for more information.
-
- Cleanup around shipping methods
- -------------------------------
-
- * The models of the shipping app now have abstract base classes, similar to
- the rest of Oscar.
-
- * The legacy ``ShippingMethod`` name of the interface of the shipping app has
- been removed. Inherit from ``shipping.base.Base`` for the class instead, and
- inherit from ``shipping.abstract_models.AbstractBase`` for model-based
- shipping methods.
-
- * ``oscar.apps.shipping.Scales`` has been renamed and moved to
- ``oscar.apps.shipping.scales.Scale``, and is now overridable.
-
- * ``WeightBand.upper_limit`` is now a ``DecimalField``, just like the other
- weight-related fields.
-
- * The Django admin interface for the ``WeightBased`` shipping method has been
- made slightly more useful. Contributions for a dedicated dashboard app are
- most welcome!
-
- .. _minor_changes_in_0.8:
-
- Minor changes
- -------------
-
- * The ``OSCAR_CURRENCY_LOCALE`` setting has been removed. The locale is now
- automatically determined from the current language. This ensures prices are
- always shown in the correct format when switching languages.
-
- * The login and registration view now redirects staff users to the dashboard
- after logging in. It also employs flash messages to welcome returning and
- newly registered users.
-
- * The basket middleware now assigns a ``basket_hash`` attribute to the
- ``request`` instance. This provides a hook for basket caching.
-
- * The tracking pixel now also reports the Oscar version in use. This was
- forgotten when adding tracking of the Python and Django version in 0.7.
- Total information collected now is the versions of Django, Python and Oscar.
-
- Bugfixes
- ~~~~~~~~
-
- .. _incompatible_changes_in_0.8:
-
- Backwards incompatible changes in 0.8
- =====================================
-
- * The ``shipping`` app saw a few renames; please see the section above.
-
- Basket line stockrecords
- ------------------------
-
- The basket line model got a reference to the stockrecord in Oscar 0.6. The
- basket middleware since then updated basket lines to have stockrecords if
- one was missing. If any lines are still missing a stockrecord, we'd expect them
- to be from from submitted baskets or from old, abandoned baskets.
- This updating of basket lines has been removed for 0.8 as it incurs additional
- database queries. Oscar 0.8 now also enforces the stockrecord by making it
- the ``stockrecord`` field of basket ``Line`` model no longer nullable.
-
- There is a migration that makes the appropriate schema change but, before that
- runs, you may need to clean up your ``basket_line`` table to ensure that all
- existing null values are replaced or removed.
-
- Here's a simple script you could run before upgrading which should ensure there
- are no nulls in your ``basket_line`` table:
-
- .. code-block:: python
-
- from oscar.apps.basket import models
- from oscar.apps.partner.strategy import Selector
-
- strategy = Selector().strategy()
-
- lines = models.Line.objects.filter(stockrecord__isnull=True):
- for line in lines:
- info = strategy.fetch_for_product(line.product)
- if line.stockrecord:
- line.stockrecord = info.stockrecord
- line.save()
- else:
- line.delete()
-
- .. _removal_of_deprecated_features:
-
- Migrations
- ~~~~~~~~~~
-
- * Shipping:
-
- - ``0007`` - Change ``WeightBand.upper_limit`` from ``FloatField`` to ``DecimalField``
-
- .. _deprecated_features:
-
- Removal of deprecated features
- ------------------------------
-
- These methods have been removed:
-
- * ``oscar.apps.catalogue.abstract_models.AbstractProduct.has_stockrecord``
- * ``oscar.apps.catalogue.abstract_models.AbstractProduct.stockrecord``
- * ``oscar.apps.catalogue.abstract_models.AbstractProduct.is_available_to_buy``
- * ``oscar.apps.catalogue.abstract_models.AbstractProduct.is_purchase_permitted``
- * ``oscar.apps.catalogue.views.get_product_base_queryset``
|