django-workflow-engine


Namedjango-workflow-engine JSON
Version 0.2.2 PyPI version JSON
download
home_pageNone
SummaryNone
upload_time2024-08-13 09:01:30
maintainerNone
docs_urlNone
authorCameron Lamb
requires_python<4.0,>=3.9
licenseMIT
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # 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:

```python
INSTALLED_APPS = [
    ...
    "django_workflow_engine",
]
```

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


```python
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:

```python
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.

```python
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:

```python
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:

```bash
$ ./manage.py migrate
```

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "django-workflow-engine",
    "maintainer": null,
    "docs_url": null,
    "requires_python": "<4.0,>=3.9",
    "maintainer_email": null,
    "keywords": null,
    "author": "Cameron Lamb",
    "author_email": "cameron.lamb@digital.trade.gov.uk",
    "download_url": "https://files.pythonhosted.org/packages/89/0a/b36b66b713530b9f6d4abbfe346388f3c69126583500c6520cc580ed5cea/django_workflow_engine-0.2.2.tar.gz",
    "platform": null,
    "description": "# Django Workflow Engine\n`django-workflow-engine` is a lightweight and reusable workflow engine for\nDjango applications. It enables you to better organise the business logic for\ncollaborating users.\n\n## Installation\n\n    pip install django-workflow-engine\n\n## Getting started\nAdd the application to your Django settings `INSTALLED_APPS` list:\n\n```python\nINSTALLED_APPS = [\n    ...\n    \"django_workflow_engine\",\n]\n```\n\nAdd the built-in `django-workflow-engine` view urls to your project's `urls.py` as follows:\n\n\n```python\nfrom django_workflow_engine import workflow_urls\n...\nurlpatterns = [\n    path(\"workflow/\", workflow_urls()),\n    ...\n]\n```\n\nThis will utilise all `django-workflow-engine` built-in view classes. Default views are:\n\n- `list_view=FlowListView` List of workflow instances view.\n- `view=FlowView` Workflow instance view.\n- `create_view=FlowCreateView` Create workflow view.\n- `continue_view=FlowContinueView` Workflow continuation view.\n- `diagram_view=FlowDiagramView` Workflow diagram view.\n\nYou can override any the built-in view classes with your own, for example to\nprovide your own view classes for flow list and flow view:\n\n```python\nurlpatterns = [\n        path(\"workflow/\",\n             workflow_urls(\n                 list_view=MyFlowListView,\n                 view=MyFlowView,\n            ),\n        ),\n    ]\n```\n\n## Building your first workflow\n\nCreate a `workflows.py` in your project and add your uniquely named workflows.\n\n```python\nfrom django_workflow_engine import Step, Workflow\n\nonboard_contractor = Workflow(\n    name=\"onboard_contractor\",\n    steps=[\n        Step(...),\n        Step(...),\n        Step(...),\n    ],\n)\n\nonboard_perm = Workflow(\n    name=\"onboard_perm\",\n    steps=[\n        ...\n    ],\n)\n```\n\nAdd you workflows to your Django settings as follows:\n\n```python\nDJANGO_WORKFLOWS = {\n    \"onboard_contractor\": \"your_app.workflows.onboard_contractor\",\n    \"onboard_perm\": \"your_app.workflows.onboard_perm\",\n}\n```\n\nEach entry needs to be a valid module path where the final component is the\nname of your workflow class.\n\nFinally, run the `django-workflow-engine` migrations:\n\n```bash\n$ ./manage.py migrate\n```\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": null,
    "version": "0.2.2",
    "project_urls": null,
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "e9677eb7fb84909bf06e1cce63157fa8d7269abaf0446a720eea74f6d814a038",
                "md5": "017cc90c38089140e973727dde6b33eb",
                "sha256": "763559d0c1c7fc3280b729f8f9857b944c2baf518e223a1c747b272bb691d74c"
            },
            "downloads": -1,
            "filename": "django_workflow_engine-0.2.2-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "017cc90c38089140e973727dde6b33eb",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": "<4.0,>=3.9",
            "size": 40674,
            "upload_time": "2024-08-13T09:01:29",
            "upload_time_iso_8601": "2024-08-13T09:01:29.384576Z",
            "url": "https://files.pythonhosted.org/packages/e9/67/7eb7fb84909bf06e1cce63157fa8d7269abaf0446a720eea74f6d814a038/django_workflow_engine-0.2.2-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "890ab36b66b713530b9f6d4abbfe346388f3c69126583500c6520cc580ed5cea",
                "md5": "2b6048a3e1c2a5f47c67941b319433d6",
                "sha256": "4bb14dd3d26f15c723f25904e47f212066ebba132c71548093a6cc26551af580"
            },
            "downloads": -1,
            "filename": "django_workflow_engine-0.2.2.tar.gz",
            "has_sig": false,
            "md5_digest": "2b6048a3e1c2a5f47c67941b319433d6",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": "<4.0,>=3.9",
            "size": 21264,
            "upload_time": "2024-08-13T09:01:30",
            "upload_time_iso_8601": "2024-08-13T09:01:30.933063Z",
            "url": "https://files.pythonhosted.org/packages/89/0a/b36b66b713530b9f6d4abbfe346388f3c69126583500c6520cc580ed5cea/django_workflow_engine-0.2.2.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-08-13 09:01:30",
    "github": false,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "lcname": "django-workflow-engine"
}
        
Elapsed time: 1.21072s