| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 | 
							- ==========================
 - How to customise templates
 - ==========================
 - 
 - Assuming you want to use oscar's templates in your project, there are two
 - options.  You don't have to though - you could write all your own templates if
 - you like.  If you do this, it's probably best to start with a straight copy of
 - all of oscar's templates so you know all the files that you need to
 - re-implement.
 - 
 - Anyway - here are the two options for customising.
 - 
 - Method 1 - Forking
 - ------------------
 - 
 - One option is always just to fork the template into your local project so that
 - it comes first in the include path.
 - 
 - Say you want to customise ``base.html``.  First you need a project-specific
 - templates directory that comes first in the include path.  You can set this up
 - as so::
 - 
 -     TEMPLATE_LOADERS = (
 -         'django.template.loaders.filesystem.Loader',
 -         'django.template.loaders.app_directories.Loader',
 -     )
 - 
 -     import os
 -     location = lambda x: os.path.join(os.path.dirname(os.path.realpath(__file__)), '..', x)
 -     TEMPLATE_DIRS = (
 -         location('templates'),
 -     )
 - 
 - Next copy oscar's ``base.html`` into your templates directory and customise it
 - to suit your needs.
 - 
 - The downsides of this method are that it involves duplicating the file from
 - oscar in a way that breaks the link with upstream.  Hence, changes to oscar's
 - ``base.html`` won't be picked up by your project as you will have your own
 - version.
 - 
 - Method 2 - Subclass parent but use same template path
 - -----------------------------------------------------
 - 
 - There is a trick you can perform whereby oscar's templates can be accessed via
 - two paths.  This is outlined in the `django wiki`_.
 - 
 - .. _`django wiki`: https://code.djangoproject.com/wiki/ExtendingTemplates
 - 
 - This basically means you can have a ``base.html`` in your local templates folder
 - that extends oscar's ``base.html`` but only customises the blocks that it needs
 - to.
 - 
 - Oscar provides a helper variable to make this easy.  First, set up your
 - template configuration as so::
 - 
 -     TEMPLATE_LOADERS = (
 -         'django.template.loaders.filesystem.Loader',
 -         'django.template.loaders.app_directories.Loader',
 -     )
 - 
 -     import os
 -     location = lambda x: os.path.join(os.path.dirname(os.path.realpath(__file__)), '..', x)
 -     from oscar import OSCAR_PARENT_TEMPLATE_DIR
 -     TEMPLATE_DIRS = (
 -         location('templates'),
 -         OSCAR_PARENT_TEMPLATE_DIR,
 -     )
 - 
 - The ``OSCAR_PARENT_TEMPLATE_DIR`` points to the directory above oscar's normal
 - templates directory.  This means that ``path/to/oscar/template.html`` can also
 - be reached via ``templates/path/to/oscar/template.html``.
 - 
 - Hence to customise ``base.html``, you can have an implementation like::
 - 
 -     # base.html
 -     {% extends 'templates/base.html' %}
 - 
 -     ...
 - 
 - No real downsides to this one other than getting your front-end people to
 - understand it.
 
 
  |