Add compatibility for Django 2.1, and drop support for Python 3.4.
Django 2.1 works fine - the only issue was that more passwords
have been added to the CommonPasswordValidator which caused some tests
to fail. I've removed that validator from the test settings.
Fix validation of required phone_number field in PhoneNumberMixin.
If a phone_number field is required, and empty, then PhoneNumberMixin.clean() fails with a key error because the field does not exist in cleaned_data.
This patch fixes the clean() method to only attempt to clean a field if it exists in cleaned_data. If it doesn't then allow Django to raise a validation error for a missing required field.
Also added more comprehensive tests for the validation logic in the mixin.
Decouple price and availability in base strategies.
Revert changes in #1913 and #2294 that required a stock record to have price_excl_tax set in order to report the product as available.
Add separate checks to the basket form/add logic that checks at the time of
adding a product to the basket whether a price exists, and report an error if it doesn't.
Fixes #2664.
Add backward compatible order verification hash checking.
This can be enabled by specifying a `OSCAR_DEPRECATED_ORDER_VERIFY_KEY` setting, which is not set by default.
This allows projects to continue validating old order verification hashes while still changing the `SECRET_KEY`.
during development of large ecommerce site we ran into an exception
when accessing the list of offers and ranges:
AttributeError 'NoneType' object has no attribute 'paginator'
django_rangepaginator/templatetags/rangepaginator.py in paginate at line 12
This PR fixes all cases I could find where this happens, but chances are
some views need the same fix.
- split out the queryset filters into separate methods for easy overloading
in subclasses, i.e. have the keyword search in product titles as well.
- cleanup the get_date_from_to_queryset method a little to make it more dry.
- expand test-coverage for the affected code.