You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
David Winterbottom 47007b7ea0 Added custom manager for baskets and template params for views 15 yıl önce
examples Added custom manager for baskets and template params for views 15 yıl önce
oscar Added custom manager for baskets and template params for views 15 yıl önce
.gitignore Added add-to-basket view which correctly sets cookies for anon users 15 yıl önce
README.md Updated readme file with guidance on new folder structure. 15 yıl önce
TODO Updated README And TODO files 15 yıl önce
requirements.txt New packages for testing, updated basket models 15 yıl önce
setup.py Updated the abstract models to have translated names. 15 yıl önce
test_settings.py Added required files to the example shops so they can act as standalone django projects 15 yıl önce

README.md

Oscar - Flexible e-commerce on Django

Named after Oscar Peterson (http://en.wikipedia.org/wiki/Oscar_Peterson), oscar is a Django implementation of Taoshop (a product from Tangent Labs). It’s fairly experimental at the moment. It aims to be a flexible ecommerce application, built

Aims of project

  • To be a portable Django application that provides ecommerce functionality.
  • To comprise a set of loosely coupled apps that can be overridden in projects (interdependence is on interfaces only)
  • To allow core objects (eg products, orders) to be extended within a specific project

The central aim is to provide a solid core of an ecommerce project that can be extended and customised to suit the domain at hand. One way to acheive this is to have enormous models that have fields for every possible variation; however, this is unwieldy and ugly. A more elegant solution is to have models where all the fields are meaningful within the ecommerce domain. In general, this means more work up front in terms of creating the right set of models but leads ultimately to a much cleaner and coherent system.

Installation for developers

Set up 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 /usr/local/bin/virtualenvwrapper.sh" >> ~/.bashrc

Reload bash with the following command:

~/.bashrc

Do the following from your workspace folder:

mkdir oscar
cd oscar
mkvirtualenv --no-site-packages oscar

After checking out your fork, install all dependencies:

workon oscar
pip install -r requirements.txt

Now install oscar within your virtual env

python setup.py develop

Now create a local_settings.py file which contains details of your local database that you want to use for development. Be sure to create two databases: one for development and one for running the unit tests (prefix test_ on the normal db name).

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 defaultshop project does not customise oscar at all and uses everything in its default format.

Each example shop has its own manage.py executable which you can use to create your database:

./manage.py syncdb

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 defaultshop

There is a similar script for running tests:

./run_tests.sh defaultshop

This specifies a sqlite3 database to use for testing and filters out the useless output.

You can also use the functionality from django-test-extensions which is one of the installed app

Look in the TODO file for things to hack on…