Name | django-workflow-engine JSON |
Version |
0.2.1
JSON |
| download |
home_page | |
Summary | |
upload_time | 2023-12-21 15:50:27 |
maintainer | |
docs_url | None |
author | Cameron Lamb |
requires_python | >=3.9,<4.0 |
license | MIT |
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"
}