ExtendedURLValidator does not pass down verify_exist in it's __init__
method. But as it's super class URLValidator then sets self.verify_exists to
False, any passed value was ignored.
Introduces the concept of a "feature" that can be hidden. A list of
features to hide can be supplied in OSCAR_HIDDEN_FEATURES.
Feature hiding is currently supported in two places.
Application instances can carry a "hidable_feature_name". If set and
found in OSCAR_HIDDEN_FEATURES, post_process_urls will return an empty
set of url patterns, hence disabling relevant views.
display_tags also has a new template block tag iffeature.
{% iffeature "feature" %}xxx{% endiffeature %} will hide everything
inside the block if the feature is hidden.
You only want to compile Less files if you are developing the CSS of
Oscar. Most people don't do this and so we default to serving
compressed CSS without Less compilation. This also means that
the many contributors don't need to bother installing node.js and lessc,
which makes the installation process much simpler.
This change also re-introduces the `USE_LESS` setting which controls
whether Less files are used or not.
This involves some changes to the template block structure to make it
easy to compress the correct files.
* A new block cdn_scripts has been introduced as CDN-loaded scripts
can't be compressed.
* A new setting 'USE_LESS' controls whether to use the LESS-generated
files or the compressed files (which will need to be generated
manually as they aren't in source control).
* A fallback for jQuery UI is added
* The CSS block was renamed to be clearer
* The bootstrap CSS was brought out of the LESS file into the page.
This makes it easier to compress.
This helps with views that can return a AJAX response. We store the
messages temporarily then apply them to the request, or serialise to
JSON at the end.
I added a new validator to oscar.core.validators that validates
absolute and relative URL and checks if the URL already exists. We
use this functionality when creating flatpages in the dashboard to
check if the URL can be used.
The validation includes *two* calls to ExtendedURLValidator to
validate the URL in the first run and then check if it already
exists in the second. This might not be the most efficient way
of handling it. The reason to do it that way is that it reduces
the amount of code that has to be replicated.
more updates to the ExtendedURLValidator, missing the '/' is bad. Explicitly set APPEND_SLASH to True in test settings so that it's clear that we expect it to be on