Commit bbf200bb authored by wenjie.zheng's avatar wenjie.zheng Committed by Sebastien Robin

ERP5WorkflowTool.py: add bootstrap related functions.

parent 104c6659
......@@ -32,6 +32,7 @@ import shutil
import sys
import subprocess
import time
import transaction
import struct
import cPickle
import urllib2
......@@ -67,6 +68,7 @@ from Products.ERP5Type.DiffUtils import DiffFile
from Products.ERP5Type.Globals import InitializeClass, DTMLFile, PersistentMapping
from Products.ERP5Type.Message import translateString
from Products.ERP5Type.Tool.BaseTool import BaseTool
from Products.ERP5Type.UnrestrictedMethod import unrestricted_apply
from Products.ZSQLCatalog.SQLCatalog import SimpleQuery, AutoQuery, ComplexQuery, NegatedQuery
from sets import ImmutableSet
from tempfile import mkstemp, mkdtemp
......@@ -94,7 +96,7 @@ class ERP5WorkflowTool(BaseTool, OriginalWorkflowTool):
title = 'ERP5 Workflow Tool'
meta_type = 'ERP5 Workflow Tool'
portal_type = 'ERP5 Workflow Tool'
allowed_types = ('Workflow', 'Interaction Workflow', )
allowed_types = ('Workflow', 'Interaction Workflow', 'Configuration Workflow' )
all_meta_types = OriginalWorkflowTool.all_meta_types
# This stores information on repositories.
......@@ -116,6 +118,26 @@ class ERP5WorkflowTool(BaseTool, OriginalWorkflowTool):
PropertySheet.DublinCore,
)
def _isBootstrapRequired(self):
return True
def _bootstrap(self):
bt_name = 'erp5_workflow'
from Products.ERP5.ERP5Site import ERP5Generator
ERP5Generator.bootstrap(self, bt_name, 'WorkflowTemplateItem', [])
def install():
from ZPublisher.BaseRequest import RequestContainer
from Products.ERP5Type.Globals import get_request
portal = self.getPortalObject()
# BusinessTemplate.install needs a request
template_tool = portal.aq_base.__of__(portal.aq_parent.__of__(
RequestContainer(REQUEST=get_request()))).portal_templates
if template_tool.getInstalledBusinessTemplate(bt_name) is None:
from Products.ERP5.ERP5Site import getBootstrapBusinessTemplateUrl
url = getBootstrapBusinessTemplateUrl(bt_name)
template_tool.download(url).install()
transaction.get().addBeforeCommitHook(unrestricted_apply, (install,))
def _jumpToStateFor(self, ob, state_id, wf_id=None, *args, **kw):
"""Inspired from doActionFor.
This is public method to allow passing meta transition (Jump form
......@@ -214,7 +236,8 @@ class ERP5WorkflowTool(BaseTool, OriginalWorkflowTool):
return res
def getWorkflowTempObjectList(self):
""" Return a list of converted temporary workflows.
""" Return a list of converted temporary workflows. Only necessary in
ERP5 Workflow Tool to get temporarilly converted DCWorkflow.
"""
temp_workflow_list = []
temp_workflow_id_list = []
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment