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 ...@@ -32,6 +32,7 @@ import shutil
import sys import sys
import subprocess import subprocess
import time import time
import transaction
import struct import struct
import cPickle import cPickle
import urllib2 import urllib2
...@@ -67,6 +68,7 @@ from Products.ERP5Type.DiffUtils import DiffFile ...@@ -67,6 +68,7 @@ from Products.ERP5Type.DiffUtils import DiffFile
from Products.ERP5Type.Globals import InitializeClass, DTMLFile, PersistentMapping from Products.ERP5Type.Globals import InitializeClass, DTMLFile, PersistentMapping
from Products.ERP5Type.Message import translateString from Products.ERP5Type.Message import translateString
from Products.ERP5Type.Tool.BaseTool import BaseTool from Products.ERP5Type.Tool.BaseTool import BaseTool
from Products.ERP5Type.UnrestrictedMethod import unrestricted_apply
from Products.ZSQLCatalog.SQLCatalog import SimpleQuery, AutoQuery, ComplexQuery, NegatedQuery from Products.ZSQLCatalog.SQLCatalog import SimpleQuery, AutoQuery, ComplexQuery, NegatedQuery
from sets import ImmutableSet from sets import ImmutableSet
from tempfile import mkstemp, mkdtemp from tempfile import mkstemp, mkdtemp
...@@ -94,7 +96,7 @@ class ERP5WorkflowTool(BaseTool, OriginalWorkflowTool): ...@@ -94,7 +96,7 @@ class ERP5WorkflowTool(BaseTool, OriginalWorkflowTool):
title = 'ERP5 Workflow Tool' title = 'ERP5 Workflow Tool'
meta_type = 'ERP5 Workflow Tool' meta_type = 'ERP5 Workflow Tool'
portal_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 all_meta_types = OriginalWorkflowTool.all_meta_types
# This stores information on repositories. # This stores information on repositories.
...@@ -116,6 +118,26 @@ class ERP5WorkflowTool(BaseTool, OriginalWorkflowTool): ...@@ -116,6 +118,26 @@ class ERP5WorkflowTool(BaseTool, OriginalWorkflowTool):
PropertySheet.DublinCore, 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): def _jumpToStateFor(self, ob, state_id, wf_id=None, *args, **kw):
"""Inspired from doActionFor. """Inspired from doActionFor.
This is public method to allow passing meta transition (Jump form This is public method to allow passing meta transition (Jump form
...@@ -214,7 +236,8 @@ class ERP5WorkflowTool(BaseTool, OriginalWorkflowTool): ...@@ -214,7 +236,8 @@ class ERP5WorkflowTool(BaseTool, OriginalWorkflowTool):
return res return res
def getWorkflowTempObjectList(self): 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_list = []
temp_workflow_id_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