#coding:utf-8 import initcontext from common.navigator import navigatorsParts from common.grainssettings import SettingsManager from workflow.navigator import manageProcessesNav, navSettings, testNavigator from workflow.other.triggers import matchingCircuitPreInsert from workflow.tables.tablesInit import initTables from . import _workflow_orm navigatorsParts['54'] = manageProcessesNav #navigatorsParts['55'] = testNavigator navigatorsParts['__header__'] = navSettings context = initcontext() #Заполнение таблиц начальными данными, производится только в случае первого разворачивания решения initTables(context) #Заполнение версии активити. Необходим для коррекной работы activiti #coding:utf-8 from workflow._workflow_orm import act_ge_propertyCursor act_property = act_ge_propertyCursor(context) if not act_property.tryGet('schema.version'): if not act_property.tryGet('schema.history'): if not act_property.tryGet('next.dbid'): act_property.name_ = 'schema.version' act_property.value_ = '5.16' act_property.rev_ = 1 act_property.insert() act_property.name_ = 'schema.history' act_property.value_ = 'create(5.16)' act_property.rev_ = 1 act_property.insert() act_property.name_ = 'next.dbid' act_property.value_ = '1' act_property.rev_ = 1 act_property.insert() #Настройка обработчиков событий activiti try: from org.activiti.engine.delegate.event import ActivitiEventType from java.util import ArrayList from ru.curs.showcase.runtime import AppInfoSingleton settingsManager = SettingsManager() eventsList = settingsManager.getGrainSettings('activitiEvents/event/@name','workflow') handlersList = settingsManager.getGrainSettings('activitiEvents/event/@script','workflow') eventsDict = dict() for i in range(len(eventsList)): if eventsList[i] not in eventsDict: eventsDict[eventsList[i]] = ArrayList() eventsDict[eventsList[i]].add(handlersList[i]) if 'TASK_CREATED' not in eventsDict: eventsDict['TASK_CREATED'] = ArrayList() eventsDict['TASK_CREATED'].add('workflow.eventHandler.taskCreatedHandler.cl') for eventType in eventsDict: AppInfoSingleton.getAppInfo().\ getActivitiEventScriptDictionary().\ put(getattr(ActivitiEventType,eventType), eventsDict[eventType]) except: pass _workflow_orm.matchingCircuitCursor.onPreInsert.append(matchingCircuitPreInsert) _workflow_orm.matchingCircuitCursor.onPreUpdate.append(matchingCircuitPreInsert) _workflow_orm.groupsCursor.onPreInsert.append(matchingCircuitPreInsert) _workflow_orm.groupsCursor.onPreUpdate.append(matchingCircuitPreInsert)