Reusable workflow library for Django http://viewflow.io.
Viewflow is the workflow library based on BPMN concepts. BPMN - business process modeling and notations - is the wide adopted industry standard for business process modeling. BPMN provides a standard notation readily understandable by all business stakeholders. Viewflow bridging the gap between picture and executable, ready to use web application.
Demo: http://demo.viewflow.io
After over than 10 years history of the BPMN standard, it contains whole set of battle-proven primitives for all occasions, helps you to describe all real life business process scenarios. Viewflow helps you to build a bpmn diagram in code and keep business logic separate from django forms and views code.
Read the documentation at the http://docs.viewflow.io/
Viewflow is an Open Source project licensed under the terms of the AGPL license - The GNU Affero General Public License v3.0
Viewflow Pro has a commercial-friendly license allowing private forks and modifications of Viewflow. You can find the commercial license terms in COMM-LICENSE. Please see FAQ for more detail.
This is the cumulative release with many backward incompatibility changes.
- Django 1.6 now longer supported.
- Frontend now a part of the open-source package.
- Flow chart visualization added
- Every _cls suffix, ex in flow_cls, activation_cls, was renamed to _class. The reason for that is just to be consistent with django naming theme.
- Django-Extra-Views integration is removed. This was a pretty creepy way to handle Formsets and Inlines within django class-based views. Instead, django-material introduce a new way to handle Form Inlines same as a standard form field. See details in the documentation.
- Views are no longer inherits and implement an Activation interface. This change makes things much simple internally, and fixes inconsistency, in different scenarios. @flow_view, @flow_start_view decorators are no longer callable.
- Activation now passed as a request attribute. You need to remove explicit activation parameter from view function signature, and use request.activation instead.
- Built-in class based views are renamed, to be more consistent. Check the documentation to find a new view name.
- If().OnTrue().OnFalse() renamed to If().Then().Else()
- All conditions in If, Switch and other nodes receives now a node activation instance instead of process. So you can gen an access to the current task via activation.task variable.
- Same for callable in the .Assign() and .Permissions definitions.
- task_loader not is the attribute of a flow task. In makes functions and signal handlers reusable over different flows.
- Flow namespace are no longer hardcoded. Flow views now can be attached to any namespace in a URL config.
- flow_start_func, flow_start_signal decorators need to be used for the start nodes handlers. Decorators would establish a proper locking avoids concurrent flow process modifications in the background tasks.
- To use celery job with django 1.8, django-transaction-hooks need to be enabled.