def get_workflow_permissions(permission_list=None): # [('code_name', 'name', 'description'),...] permissions = permission_list or [] from zengine.config import settings from zengine.engine import ZEngine, Current, log engine = ZEngine() for package_dir in settings.WORKFLOW_PACKAGES_PATHS: for bpmn_diagram_path in glob.glob(package_dir + "/*.bpmn"): wf_name = os.path.splitext(os.path.basename(bpmn_diagram_path))[0] permissions.append((wf_name, wf_name, "")) engine.current = Current(workflow_name=wf_name) try: workflow = engine.load_or_create_workflow() except: log.exception("Workflow cannot be created.") # print(wf_name) # pprint(workflow.spec.task_specs) for name, task_spec in workflow.spec.task_specs.items(): if any(no_perm_task in name for no_perm_task in NO_PERM_TASKS): continue permissions.append(("%s.%s" % (wf_name, name), "%s %s of %s" % (name, task_spec.__class__.__name__, wf_name), "")) return permissions
def _get_workflows(): from zengine.engine import ZEngine, WFCurrent from zengine.models import BPMNWorkflow workflows = [] for wf in BPMNWorkflow.objects.all(): engine = ZEngine() engine.current = WFCurrent(workflow_name=wf.name) workflows.append(engine.load_or_create_workflow()) return workflows
def get_workflows(): from zengine.config import settings from zengine.engine import ZEngine, WFCurrent workflows = [] for package_dir in settings.WORKFLOW_PACKAGES_PATHS: for bpmn_diagram_path in glob.glob(package_dir + "/*.bpmn"): wf_name = os.path.splitext(os.path.basename(bpmn_diagram_path))[0] engine = ZEngine() engine.current = WFCurrent(workflow_name=wf_name) workflows.append(engine.load_or_create_workflow()) return workflows