The openIMIS Backend tasks_management reference module.
Project description
openIMIS Backend tasks_management reference module
This repository holds the files of the openIMIS Backend Task Managemet reference module. It is dedicated to be deployed as a module of openimis-be_py.
ORM mapping:
- task_management_task, task_management_historicaltask > Task
- task_management_taskgroup, task_management_historicaltaskgroup > TaskGroup
- task_management_taskexecutor, task_management_historicaltaskexecutor > TaskExecutor
GraphQl Queries
- task, taskGroup, taskExecutor
Services
- Task
- create
- update
- delete
- complete_task
- resolve_task
- TaskGroup
- create
- update
- delete
- TaskExecutor
- create
- update
- delete
- CheckerLogicServiceMixin
- create
- update
- delete
- on_task_complete_service_handler
Configuration options (can be changed via core.ModuleConfiguration)
- gql_task_group_search_perms: 190001
- gql_task_group_create_perms: 190002
- gql_task_group_update_perms: 190003
- gql_task_group_delete_perms: 190004
- gql_task_search_perms: 191001
- gql_task_create_perms: 191002
- gql_task_update_perms: 191003
- gql_task_delete_perms: 191004
- default_executor_event: default
openIMIS Modules Dependencies
- core
Creating execution action handlers and business event handlers
When user action specified by the task is being passed to backend, the task service sends task_service.resolve_task
signal. The approach for handler is to bind to after
signal and check the specific executor_action_event
of the
task. The same approach is used for business event handlers, being required to bind on task_service.complete_task
.
# in signals.py in any module
def bind_service_signals():
bind_service_signal(
'task_service.resolve_task',
handler_hook,
bind_type=ServiceSignalBindType.AFTER
)
def handler_hook(**kwargs):
pass
Creating tasks for BaseService implementations
CheckerLogicServiceMixin allows implementations of core.services.BaseService
to generate tasks for create, update
and delete actions. this adds create__task methods to the service, with the same API as the methods.
Additionally the on_task_complete_service_handler
service method allows to generate complete_task
handlers for
core.services.BaseService
implementations.
# In service definition
class ExampleService(BaseService, CheckerLogicServiceMixin):
...
# to create a task instead of performing create operation, instead of:
# ExampleService(user).create(data)
ExampleService(user).create_create_task(data)
`
#in signals.py (any module, but the same module as service preferred)
def bind_service_signals():
bind_service_signal(
'task_service.complete_task',
on_task_complete_service_handler(ExampleService),
bind_type=ServiceSignalBindType.AFTER
)
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
Built Distribution
File details
Details for the file openimis_be_tasks_management-1.2.0.tar.gz
.
File metadata
- Download URL: openimis_be_tasks_management-1.2.0.tar.gz
- Upload date:
- Size: 18.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8dab29f7637fb9097e070376b6f2fe524da061990c4ae50bf944e94067025bd4 |
|
MD5 | c79ca22aab18c3b25dcf1074cee1982c |
|
BLAKE2b-256 | f5a0514d396c5ef2d78a017b4e5f37b69986a93ba8f977d19aff9ac5c3892f50 |
File details
Details for the file openimis_be_tasks_management-1.2.0-py3-none-any.whl
.
File metadata
- Download URL: openimis_be_tasks_management-1.2.0-py3-none-any.whl
- Upload date:
- Size: 28.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2c6ec31607e52d355097bc9cb463abd01ed3ae70c097785acbb44a0f97b670b2 |
|
MD5 | e08403bef050451e87c26547d435b093 |
|
BLAKE2b-256 | 2cd6c17fe3aa51fd4adf8d07a2c0f9700df2a05d6637f8aa55888689113c69e4 |