django-workflow-engine


Namedjango-workflow-engine JSON
Version 0.2.1 PyPI version JSON
download
home_page
Summary
upload_time2023-12-21 15:50:27
maintainer
docs_urlNone
authorCameron Lamb
requires_python>=3.9,<4.0
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": "",
    "name": "django-workflow-engine",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.9,<4.0",
    "maintainer_email": "",
    "keywords": "",
    "author": "Cameron Lamb",
    "author_email": "cameron.lamb@digital.trade.gov.uk",
    "download_url": "https://files.pythonhosted.org/packages/f9/41/6eaa9975cc6c809bf90456489af8be4a27a0b3d334e215bc6560e0ba35d7/django_workflow_engine-0.2.1.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": "",
    "version": "0.2.1",
    "project_urls": null,
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "dd310aa9fbf315e4b36fd84e9cfd283641b6eabb26b37e7a5d66ed91afd647cd",
                "md5": "8360b1445259abff2df5928ea6d60cb2",
                "sha256": "fab98cadd8079946267f8d2cfa3ea242339be430537f7a83a6a958121d0dca1c"
            },
            "downloads": -1,
            "filename": "django_workflow_engine-0.2.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "8360b1445259abff2df5928ea6d60cb2",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.9,<4.0",
            "size": 40674,
            "upload_time": "2023-12-21T15:50:26",
            "upload_time_iso_8601": "2023-12-21T15:50:26.116709Z",
            "url": "https://files.pythonhosted.org/packages/dd/31/0aa9fbf315e4b36fd84e9cfd283641b6eabb26b37e7a5d66ed91afd647cd/django_workflow_engine-0.2.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "f9416eaa9975cc6c809bf90456489af8be4a27a0b3d334e215bc6560e0ba35d7",
                "md5": "bd817dc807611e3d994208f0f33db711",
                "sha256": "d6e52dbc262022e802e4e1336f9ffafaef68717e87c54f1570b29f06d6e2f772"
            },
            "downloads": -1,
            "filename": "django_workflow_engine-0.2.1.tar.gz",
            "has_sig": false,
            "md5_digest": "bd817dc807611e3d994208f0f33db711",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.9,<4.0",
            "size": 21248,
            "upload_time": "2023-12-21T15:50:27",
            "upload_time_iso_8601": "2023-12-21T15:50:27.772779Z",
            "url": "https://files.pythonhosted.org/packages/f9/41/6eaa9975cc6c809bf90456489af8be4a27a0b3d334e215bc6560e0ba35d7/django_workflow_engine-0.2.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-12-21 15:50:27",
    "github": false,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "lcname": "django-workflow-engine"
}
        
Elapsed time: 0.15775s