This change handles the backwards compatiblity issue of adding a
required stockrecord field onto the basket line model.
When a basket in encountered which has a line without a stockrecord, we
delete it and attempt to re-add it to the basket.
We also merge the middleware together for simplicity.
This is to support US-like sites where sales taxes are only known once
the customer enters their shipping address.
This requires several changes to templates to show prices exclusive of
tax when tax isn't known.
Offers are currently now applied until taxes are known as it is unclear
to me whether to use the tax-exclusive prices to determine whether
customer's meet value conditions. This may change later.
Hmmm, this turned out to be a monster commit. This change allows the
basket to be able to correctly calculate prices including tax.
It also requires a whole load of test changes since all baskets now
require a strategy instance to be assigned.
This change adds a uniqueness constraint on user addresses to prevent
duplicates. A few changes follow:
- The user address forms in account and checkout are modified to take a
user as a constructor arg so uniqueness can be checked.
- The assignment of a user when creating a new address has been moved
into the form.
This allows updating code in both places, if necessary. Getting Django
1.5 support would be painful otherwise. This also removes the circular
dependency of django-oscar-testsupport on Oscar.
The requirements were merged. The imports were updated
accordingly. Unused imports in the touched files were removed. No
further changes.
When adding to the basket, products with options were treated as
different products for each combination of options. This allowed adding
more products into the basket than are available for purchase.
The handling has been updated to sum up the already added quantity of
the product regardless of options.
Fixes #665
By adding the __setstate__ method an infinite loop is avoided regarding
the use of __getattr__ on the ProductAttributesContainer model.
Moving tests into appropriate folder