| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101 | =======================================
Installing django-oscar for development
=======================================
Note that these instructions assume you are developing on Ubuntu.
Virtual environment
-------------------
Set up ``pip`` and ``virtualenv`` if you haven't already done so::
    sudo apt-get install python-setuptools
    sudo easy_install pip
    sudo pip install virtualenv virtualenvwrapper
    echo "source `which virtualenvwrapper`" >> ~/.bashrc
Reload bash to add the virtualenvwrapper commands to your path::
    . ~/.bashrc
Create a virtualenv for developement::
    mkvirtualenv --no-site-packages oscar
    workon oscar
Forking django-oscar
--------------------
Sign in to github, navigate to https://github.com/tangentlabs/django-oscar and click "Fork".  This will create a 
copy of the repository in your account.
Now clone the remote repository to your machine::
    cd workspace
    git clone git@github.com:username/django-oscar.git
    
See the github guide to forking for more details (http://help.github.com/fork-a-repo/).      
Install django-oscar and dependencies
-------------------------------------
Install django and the packages from the requirements file, which aren't essential but are useful
for testing and development::
    pip install django
    pip install -r requirements-dev.txt
Install oscar in development mode within your virtualenv::
    cd django-oscar
    python setup.py develop
Note: In case of gcc crashing and complaining in-between installation process,
make sure you have appropriate -devel packages installed (ie. mysql-devel) in
your system.
Now create a ``settings_local.py`` file which contains details of your local database
that you want to use for development.  At a minimum, this needs to define the ``DATABASES`` tuple.
Developing
----------
Developing oscar normally involves working on a django project which uses oscar
as a installed app.  There are several such projects within the ``examples`` folder:
* The ``vanilla`` project does not customise oscar at all and uses everything in its 
  default format.  It represents a blank canvas for an ecommerce shop.
* The ``demo`` project does customise oscar, and is intended to demonstrate the range 
  of features in oscar.   
Each example shop has its own ``manage.py`` executable which you can use to create 
your database::
    ./manage.py syncdb
 
Install sample data
-------------------
Oscar ships with sample data for a simple bookshop.  Load the product data and images using the
following commands::
    cd examples/vanilla
    ./manage.py import_catalogue ../sample-data/books.csv
    ./manage.py import_images ../sample-data/book-images/
    ./manage.py update_index 
 
 
Helper scripts
-------------- 
    
There is a shortcut script for dropping all of a projects's apps and rerunning `syncdb` in
the `examples` folder - you need to specify which project to act on::
    ./recreate_project_tables.sh vanilla
    
There is a similar script for running tests::
    ./run_tests.sh vanilla
    
This specifies a sqlite3 database to use for testing and filters out the useless output.
 |