Django Workflow Library
Project description
Contributors are welcome. Come and give a hand :-)
River is an open source workflow framework for Django which support on the fly changes instead of hardcoding states, transitions and authorization rules.
The main goal of developing this framework is to be able to edit any workflow item on the fly. This means that all the elements in a workflow like states, transitions or authorizations rules are editable at any time so that no changes requires a re-deploying of your application anymore.
Playground: There is a fake jira example repository as a playground of django-river. https://github.com/javrasya/fakejira
Documentation
Online documentation is available at http://django-river.rtfd.org/.
Requirements
Python (2.7, 3.4, 3.5, 3.6)
Django (1.7, 1.8, 1.9, 1.10, 1.11, 2.0, 2.1)
Django >= 2.0 is supported for Python >= 3.5
Django == 1.7 is only supported for Python == 2.7 and Python == 3.4
Usage
Install and enable it
pip install django-river
INSTALLED_APPS=[ ... river ... ]
Create your first state machine in your model and migrate your db
from django.db import models from river.models.fields.state import StateField class MyModel(models.Model): my_state_field = StateField()
Create your states as one of them will be your initial state on the admin page
Create your transition approval metadata with your model (MyModel - my_state_field) information and authorization rules along with their priority on the admin page
Enjoy your django-river journey.
my_model=MyModel.objects.get(....) my_model.river.my_state_field.approve(as_user=transactioner_user) my_model.river.my_state_field.approve(as_user=transactioner_user,next_state=State.objects.get(label='re-opened')) # and much more. Check the documentation
Contribute
Contributions are welcome! Please join making always totally free django-river better.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.