Order/Product approval extension for Django Oscar
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
MANIFEST.in Include all required files Mar 6, 2014
README.rst Tweak README Mar 6, 2014
requirements.txt Skeleton, setup, product model extension Aug 23, 2012
setup.py Include all required files Mar 6, 2014


Order approval for Oscar

This package provides order/product approval functionality for Oscar.

Getting started


Add 'oscar_approval' to INSTALLED_APPS and run:

./manage.py syncdb

to create the new database tables.

Oscar approval requires Oscar 0.6. For older Oscar 0.5 and 0.6, use release 0.1


Edit your settings.py to set the following settings (example):


Include approval urls in your application:

from oscar_approval.apps.approval.app import application as approval_application

(r'^approval/', include(approval_application.urls)),

Integration into the project

You may choose to integrate any of the following components:

  1. Product model extension:

    from oscar_approval.apps.catalogue.abstract_models import AbstractProduct as ApprovalAbstractProduct
    class Product(AbstractProduct, ApprovalAbstractProduct):
  2. Basic behaviour on receiving 'order_placed' signal:

    from oscar.apps.order.signals import order_placed
    from oscar_approval.apps.order.receivers import receive_order_placed

This receiver simply sets OSCAR_LINE_APPROVAL_STATUS and OSCAR_ORDER_APPROVAL_STATUS for lines and orders that require approval.

  1. Pin authorisation tab in the user profile:


  2. Dashboard application for managing reviewers and viewing approval event logs Extend user profile:

    from oscar_approval.apps.customer.abstract_models import AbstractProfile as ApproverProfile
    class Profile(ApproverProfile):

    Include dashboard application urls:

    from oscar_approval.apps.dashboard.app import application as approval_dashboard_application
    (r'^dashboard/approval/', include(approval_dashboard_application.urls))