Used get_username() instead of referencing the username attribute directly
Drop unused OSCAR_BASKET_COOKIE_SAVED setting

It must be left over from more glorious times.
get_cookie_key method for BasketMiddleware for multi-sites

In a multi-site scenario, one might want different cookie baskets
per site. In that case, an easy way to achieve this is to set different
cookie keys per site. The introduced method provides an easy hook to do
just that.
Add docstring for product validation

I created this table to get my head around the product validation, and
figured it's probably useful for others.
Merge pull request #1418 from oscaro/fix/username

Used get_username() instead of referencing the username attribute
Simplify shipping template tags

This commit simplifies yet another set of template tags by using
Django's helpers.

Closes #1419.
Make it optional to redirect to the parent

Fixes #1420
Rename template references to variants

Where I previously thought that renaming HTML/CSS is more hassle than
it's worth, @mbertheau convinced me that to update a codebase, a general
search-and-replace is the best approach already and will catch any
HTML/CSS changes.

I also missed to deprecate the min_variant_price properties.
Ignore capitalisation of local part of email address

Most email servers don't respect capitalisation, and many users don't
know about it. So Oscar now does what the rest of the world does, and
ignores the capitalisation when looking up an email address.

Fixes #1179.
Correct import path

A gremlin spawned in 860fab7ba770dbaf12564ec8434b65323e616ae1. This was
bringing down the sandbox site.
Add robots.txt files to latest/demo sites
Ensure only signed-in users can vote

Not sure how this bug has survived this long - it was well masked as the
template will hide voting buttons for unauthenticated users.
Correct proxy IP in nginx config
Allow specifying other model attributes when creating custom benefits or conditions

For example, a custom benefit class might want to make use of
get_applicable_lines, which needs a range on the benefit.
Don't break sentence spelling/grammar in German.
Make Benefit classes more reusable

Custom Benefit classes can now derive from PercentageDiscountBenefit or
AbsoluteDiscountBenefit and dynamically pass a discount value resp.
percentage as well as a maximum total discount amount.
The code handles the no applicable lines case well without this statement

At also allows me to remove the complexity exemption.
applies_to_tax_exclusive_prices has been removed in f03a7e8
Remove conditions and benefits

Remove the conditions Coverage, Value and Count and the benefits
AbsoluteDiscount, FixedPrice and Multibuy. Add NoneCondition for offers that
apply to all baskets.

Reason is that the correct semantics are unclear and we don't need them now
and I don't want to spend time fixing the tests for them. I'll refactor
offers without them.

Example for unclear semantics:
https://groups.google.com/forum/#!topic/django-oscar/vceEpy889O4
https://groups.google.com/forum/#!topic/django-oscar/XMuhEBLbv-U
Don't create objects in the database unless necessary