appy.gen: first Ploneless version.
This commit is contained in:
parent
5672c81553
commit
d0cbe7e573
360 changed files with 1003 additions and 1017 deletions
|
@ -1,34 +1,43 @@
|
|||
<!codeHeader!>
|
||||
from OFS.SimpleItem import SimpleItem
|
||||
from OFS.Folder import Folder
|
||||
from appy.gen.utils import createObject
|
||||
from AccessControl import ClassSecurityInfo
|
||||
from DateTime import DateTime
|
||||
from Products.Archetypes.atapi import *
|
||||
import Products.<!applicationName!>.config
|
||||
from Products.CMFCore.utils import UniqueObject
|
||||
import Products.<!applicationName!>.config as cfg
|
||||
from appy.gen.plone25.mixins import BaseMixin
|
||||
from appy.gen.plone25.mixins.ToolMixin import ToolMixin
|
||||
from Extensions.appyWrappers import <!genClassName!>_Wrapper
|
||||
<!imports!>
|
||||
from Extensions.appyWrappers import <!genClassName!>_Wrapper as Wrapper
|
||||
|
||||
def manage_add<!genClassName!>(self, id, title='', REQUEST=None):
|
||||
'''Creates instances of this class.'''
|
||||
createObject(self, id, '<!genClassName!>', '<!applicationName!>')
|
||||
if REQUEST is not None: return self.manage_main(self, REQUEST)
|
||||
|
||||
class <!genClassName!>(<!parents!>):
|
||||
'''<!classDoc!>'''
|
||||
security = ClassSecurityInfo()
|
||||
__implements__ = <!implements!>
|
||||
archetype_name = '<!genClassName!>'
|
||||
meta_type = '<!genClassName!>'
|
||||
portal_type = '<!genClassName!>'
|
||||
allowed_content_types = ()
|
||||
filter_content_types = 0
|
||||
global_allow = <!global_allow!>
|
||||
immediate_view = 'skyn/view'
|
||||
default_view = 'skyn/view'
|
||||
suppl_views = ()
|
||||
typeDescription = '<!genClassName!>'
|
||||
typeDescMsgId = '<!genClassName!>'
|
||||
i18nDomain = '<!applicationName!>'
|
||||
wrapperClass = <!genClassName!>_Wrapper
|
||||
schema = <!baseSchema!>.copy()
|
||||
global_allow = 1
|
||||
icon = "ui/<!icon!>"
|
||||
wrapperClass = Wrapper
|
||||
for elem in dir(<!baseMixin!>):
|
||||
if not elem.startswith('__'): security.declarePublic(elem)
|
||||
<!static!>
|
||||
<!commonMethods!>
|
||||
def getTool(self): return self.getPhysicalRoot().config
|
||||
def getProductConfig(self): return cfg
|
||||
def index_html(self):
|
||||
"""Redirects to /ui. Transfers the status message if any."""
|
||||
rq = self.REQUEST
|
||||
msg = rq.get('portal_status_message', '')
|
||||
if msg:
|
||||
url = self.getUrl(portal_status_message=msg)
|
||||
else:
|
||||
url = self.getUrl()
|
||||
return rq.RESPONSE.redirect(url)
|
||||
def do(self):
|
||||
'''BaseMixin.do can't be traversed by Zope if this class is the tool.
|
||||
So here, we redefine this method.'''
|
||||
return BaseMixin.do(self)
|
||||
<!methods!>
|
||||
<!register!>
|
||||
|
|
|
@ -58,7 +58,7 @@ fieldset {
|
|||
}
|
||||
|
||||
.fakeButton {
|
||||
background: #ffd5c0 url(&dtml-portal_url;/skyn/fakeTransition.gif) 5px 1px no-repeat;
|
||||
background: #ffd5c0 url(&dtml-portal_url;/ui/fakeTransition.gif) 5px 1px no-repeat;
|
||||
padding: 3px 4px 3px 12px;
|
||||
}
|
||||
|
||||
|
|
|
@ -34,6 +34,5 @@ def initialize(context):
|
|||
# I need to do those imports here; else, types and add permissions will not
|
||||
# be registered.
|
||||
classes = [<!classes!>]
|
||||
ZopeInstaller(context, <!applicationName!>Tool.<!applicationName!>Tool,
|
||||
config, classes).install()
|
||||
ZopeInstaller(context, config, classes).install()
|
||||
# ------------------------------------------------------------------------------
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
<!codeHeader!>
|
||||
import os, os.path, sys, copy
|
||||
import appy.gen
|
||||
from Products.CMFCore.permissions import setDefaultRoles
|
||||
import Extensions.appyWrappers as wraps
|
||||
<!imports!>
|
||||
|
||||
|
@ -12,27 +11,11 @@ import Extensions.appyWrappers as wraps
|
|||
from persistent.list import PersistentList
|
||||
from zExceptions import BadRequest
|
||||
from ZPublisher.HTTPRequest import BaseRequest
|
||||
try:
|
||||
import CustomizationPolicy
|
||||
except ImportError:
|
||||
CustomizationPolicy = None
|
||||
from OFS.Image import File
|
||||
from ZPublisher.HTTPRequest import FileUpload
|
||||
from AccessControl import getSecurityManager
|
||||
from DateTime import DateTime
|
||||
from Products.CMFCore import utils as cmfutils
|
||||
from Products.CMFCore.utils import getToolByName
|
||||
from Products.CMFPlone.PloneBatch import Batch
|
||||
from Products.CMFPlone.utils import ToolInit
|
||||
from Products.CMFPlone.interfaces import IPloneSiteRoot
|
||||
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
|
||||
from Products.GenericSetup import EXTENSION, profile_registry
|
||||
from Products.Transience.Transience import TransientObjectContainer
|
||||
import appy.gen
|
||||
import logging
|
||||
|
@ -42,10 +25,8 @@ logger = logging.getLogger('<!applicationName!>')
|
|||
PROJECTNAME = '<!applicationName!>'
|
||||
diskFolder = os.path.dirname(<!applicationName!>.__file__)
|
||||
defaultAddRoles = [<!defaultAddRoles!>]
|
||||
DEFAULT_ADD_CONTENT_PERMISSION = "Add portal content"
|
||||
ADD_CONTENT_PERMISSIONS = {
|
||||
<!addPermissions!>}
|
||||
setDefaultRoles(DEFAULT_ADD_CONTENT_PERMISSION, tuple(defaultAddRoles))
|
||||
|
||||
# Applications classes, in various formats
|
||||
rootClasses = [<!rootClasses!>]
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<tal:main define="tool python: context.<!toolInstanceName!>">
|
||||
<html metal:use-macro="context/skyn/template/macros/main">
|
||||
<html metal:use-macro="context/ui/template/macros/main">
|
||||
<div metal:fill-slot="content"><!pageContent!></div>
|
||||
</html>
|
||||
</tal:main>
|
||||
|
|
Binary file not shown.
Before Width: | Height: | Size: 339 B |
Loading…
Add table
Add a link
Reference in a new issue