2009-06-29 07:06:01 -05:00
|
|
|
<!codeHeader!>
|
2010-08-05 11:23:17 -05:00
|
|
|
import os, os.path, sys, copy
|
|
|
|
import appy.gen
|
|
|
|
from Products.CMFCore.permissions import setDefaultRoles
|
|
|
|
import Extensions.appyWrappers as wraps
|
2009-06-29 07:06:01 -05:00
|
|
|
<!imports!>
|
2009-11-11 13:22:13 -06:00
|
|
|
|
2009-06-29 07:06:01 -05:00
|
|
|
# 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
|
2010-09-02 09:16:08 -05:00
|
|
|
from zExceptions import BadRequest
|
|
|
|
from ZPublisher.HTTPRequest import BaseRequest
|
|
|
|
try:
|
|
|
|
import CustomizationPolicy
|
|
|
|
except ImportError:
|
|
|
|
CustomizationPolicy = None
|
2009-06-29 07:06:01 -05:00
|
|
|
from OFS.Image import File
|
2010-11-26 10:30:46 -06:00
|
|
|
from ZPublisher.HTTPRequest import FileUpload
|
2009-06-29 07:06:01 -05:00
|
|
|
from DateTime import DateTime
|
2010-09-02 09:16:08 -05:00
|
|
|
from Products.CMFCore import utils as cmfutils
|
2009-06-29 07:06:01 -05:00
|
|
|
from Products.CMFCore.utils import getToolByName
|
|
|
|
from Products.CMFPlone.PloneBatch import Batch
|
2010-09-02 09:16:08 -05:00
|
|
|
from Products.CMFPlone.utils import ToolInit
|
|
|
|
from Products.CMFCore import DirectoryView
|
|
|
|
from Products.CMFCore.DirectoryView import manage_addDirectoryView
|
|
|
|
from Products.ExternalMethod.ExternalMethod import ExternalMethod
|
|
|
|
from Products.Archetypes.Extensions.utils import installTypes
|
|
|
|
from Products.Archetypes.Extensions.utils import install_subskin
|
|
|
|
from Products.Archetypes.config import TOOL_NAME as ARCHETYPETOOLNAME
|
|
|
|
from Products.Archetypes import listTypes, process_types
|
|
|
|
import appy.gen
|
2009-06-29 07:06:01 -05:00
|
|
|
import logging
|
|
|
|
logger = logging.getLogger('<!applicationName!>')
|
|
|
|
|
|
|
|
# Some global variables --------------------------------------------------------
|
2009-10-18 07:52:27 -05:00
|
|
|
PROJECTNAME = '<!applicationName!>'
|
2009-11-11 13:22:13 -06:00
|
|
|
diskFolder = os.path.dirname(<!applicationName!>.__file__)
|
2009-06-29 07:06:01 -05:00
|
|
|
defaultAddRoles = [<!defaultAddRoles!>]
|
|
|
|
DEFAULT_ADD_CONTENT_PERMISSION = "Add portal content"
|
|
|
|
ADD_CONTENT_PERMISSIONS = {
|
|
|
|
<!addPermissions!>}
|
|
|
|
setDefaultRoles(DEFAULT_ADD_CONTENT_PERMISSION, tuple(defaultAddRoles))
|
2010-09-02 09:16:08 -05:00
|
|
|
|
2010-10-14 07:43:56 -05:00
|
|
|
# Applications classes, in various formats
|
2009-10-18 07:52:27 -05:00
|
|
|
rootClasses = [<!rootClasses!>]
|
2010-09-02 09:16:08 -05:00
|
|
|
appClasses = <!appClasses!>
|
|
|
|
appClassNames = [<!appClassNames!>]
|
|
|
|
allClassNames = [<!allClassNames!>]
|
|
|
|
# List of classes that must be hidden from the catalog
|
|
|
|
catalogMap = {}
|
|
|
|
<!catalogMap!>
|
2010-08-05 11:23:17 -05:00
|
|
|
|
2010-09-02 09:16:08 -05:00
|
|
|
# Dict whose keys are class names and whose values are workflow names (=the
|
|
|
|
# workflow used by the content type)
|
|
|
|
workflows = {<!workflows!>}
|
2009-06-29 07:06:01 -05:00
|
|
|
# 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 = {}
|
|
|
|
<!workflowInstancesInit!>
|
2010-01-06 11:36:16 -06:00
|
|
|
|
|
|
|
# In the following dict, we store, for every Appy class, the ordered list of
|
2010-08-05 11:23:17 -05:00
|
|
|
# appy types (included inherited ones).
|
2010-01-06 11:36:16 -06:00
|
|
|
attributes = {<!attributes!>}
|
2010-08-05 11:23:17 -05:00
|
|
|
# In the followinf dict, we store, for every Appy class, a dict of appy types
|
|
|
|
# keyed by their names.
|
|
|
|
attributesDict = {<!attributesDict!>}
|
2010-09-02 09:16:08 -05:00
|
|
|
|
|
|
|
# Application roles
|
|
|
|
applicationRoles = [<!roles!>]
|
|
|
|
applicationGlobalRoles = [<!gRoles!>]
|
|
|
|
grantableRoles = [<!grRoles!>]
|
|
|
|
|
|
|
|
# Configuration options
|
|
|
|
showPortlet = <!showPortlet!>
|
|
|
|
languages = [<!languages!>]
|
|
|
|
languageSelector = <!languageSelector!>
|
|
|
|
minimalistPlone = <!minimalistPlone!>
|
|
|
|
appFrontPage = <!appFrontPage!>
|
2009-06-29 07:06:01 -05:00
|
|
|
# ------------------------------------------------------------------------------
|