Skip to main content

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

openimis-be-tasks_management-1.0.0.tar.gz (16.2 kB view details)

Uploaded Source

Built Distribution

File details

Details for the file openimis-be-tasks_management-1.0.0.tar.gz.

File metadata

File hashes

Hashes for openimis-be-tasks_management-1.0.0.tar.gz
Algorithm Hash digest
SHA256 65762424e59b7db23374843e5540152332be0706e24c6cbe82f1d08547bcafa3
MD5 9624152fcb856115ac35aa9ac6afa420
BLAKE2b-256 6687d5dd68c7bf2e740988e990bee48e851953c460f26750f88f4df17a424839

See more details on using hashes here.

File details

Details for the file openimis_be_tasks_management-1.0.0-py3-none-any.whl.

File metadata

File hashes

Hashes for openimis_be_tasks_management-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 7023612b057bd89aae71f6099162e1ace950d3384f0e80e20ba043f475410865
MD5 fe21ff487d31990bfebbc9832822e6ca
BLAKE2b-256 c014c04ac10a43dff98ccb8c28f2a11f691438c2489e31925091dba4e629efb8

See more details on using hashes here.

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