Install the package via pypi:
pip install django-workflow-activity
Add the installed application in the django settings file:
INSTALLED_APPS = ( ... 'workflow_activity' )
Migrate the database:
python manage.py migrate
To create workflows and permissions, see the following documentations:
To use workflow activity methods on a class :
from workflow_activity.models import WorkflowManagedInstance class MyClass(WorkflowManagedInstance): ...
To add a workflow to an object:
myobj = MyClass() myobj.set_workflow('My workflow')
Now, you can use methods on your object like:
myobj.last_state() myobj.last_transition() myobj.last_actor() myobj.last_action() myobj.allowed_transitions(request.user) myobj.is_editable_by(request.user, permission='edit') myobj.state() myobj.change_state(transition, request.user) ...
And managers like:
MyClass.objects.filter() MyClass.pending.filter() MyClass.ended.filter() ...