import sys try: # New CMF from Products.CMFCore.permissions import setDefaultRoles except ImportError: # Old CMF from Products.CMFCore.CMFCorePermissions import setDefaultRoles import Extensions.appyWrappers # The following imports are here for allowing mixin classes to access those # elements without being statically dependent on Plone/Zope packages. Indeed, # every Archetype instance has a method "getProductConfig" that returns this # module. from persistent.list import PersistentList from OFS.Image import File from DateTime import DateTime from Products.CMFCore.utils import getToolByName from Products.CMFPlone.PloneBatch import Batch from Products.Archetypes.utils import DisplayList import logging logger = logging.getLogger('') # Some global variables -------------------------------------------------------- PROJECTNAME = '' defaultAddRoles = [] DEFAULT_ADD_CONTENT_PERMISSION = "Add portal content" ADD_CONTENT_PERMISSIONS = { } setDefaultRoles(DEFAULT_ADD_CONTENT_PERMISSION, tuple(defaultAddRoles)) product_globals = globals() applicationRoles = [] rootClasses = [] referers = { } # In the following dict, we keep one instance for every Appy workflow defined # in the application. Those prototypical instances will be used for executing # user-defined actions and transitions. For each instance, we add a special # attribute "_transitionsMapping" that allows to get Appy transitions from the # names of DC transitions. workflowInstances = {} # ------------------------------------------------------------------------------