Skip to main content

No project description provided

Project description

Django Workflow Engine

django-workflow-engine is a lightweight and reusable workflow engine for Django applications. It enables you to better organise the business logic for collaborating users.

Installation

pip install django-workflow-engine

Getting started

Add the application to your Django settings INSTALLED_APPS list:

INSTALLED_APPS = [
    ...
    "django_workflow_engine",
]

Add the built-in django-workflow-engine view urls to your project's urls.py as follows:

from django_workflow_engine import workflow_urls
...
urlpatterns = [
    path("workflow/", workflow_urls()),
    ...
]

This will utilise all django-workflow-engine built-in view classes. Default views are:

  • list_view=FlowListView List of workflow instances view.
  • view=FlowView Workflow instance view.
  • create_view=FlowCreateView Create workflow view.
  • continue_view=FlowContinueView Workflow continuation view.
  • diagram_view=FlowDiagramView Workflow diagram view.

You can override any the built-in view classes with your own, for example to provide your own view classes for flow list and flow view:

urlpatterns = [
        path("workflow/",
             workflow_urls(
                 list_view=MyFlowListView,
                 view=MyFlowView,
            ),
        ),
    ]

Building your first workflow

Create a workflows.py in your project and add your uniquely named workflows.

from django_workflow_engine import Step, Workflow

onboard_contractor = Workflow(
    name="onboard_contractor",
    steps=[
        Step(...),
        Step(...),
        Step(...),
    ],
)

onboard_perm = Workflow(
    name="onboard_perm",
    steps=[
        ...
    ],
)

Add you workflows to your Django settings as follows:

DJANGO_WORKFLOWS = {
    "onboard_contractor": "your_app.workflows.onboard_contractor",
    "onboard_perm": "your_app.workflows.onboard_perm",
}

Each entry needs to be a valid module path where the final component is the name of your workflow class.

Finally, run the django-workflow-engine migrations:

$ ./manage.py migrate

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

django_workflow_engine-0.2.1.tar.gz (21.2 kB view hashes)

Uploaded Source

Built Distribution

django_workflow_engine-0.2.1-py3-none-any.whl (40.7 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page