[Zope-Checkins] SVN: Zope/trunk/ - removed old-style product
metadata support
Yvo Schubbe
y.2005- at wcm-solutions.de
Mon Oct 31 05:35:25 EST 2005
Log message for revision 39763:
- removed old-style product metadata support
- removed all dependencies on that support
Changed:
U Zope/trunk/doc/CHANGES.txt
U Zope/trunk/lib/python/OFS/Application.py
UU Zope/trunk/lib/python/OFS/tests/testProductInit.py
UU Zope/trunk/lib/python/Products/ZGadflyDA/__init__.py
UU Zope/trunk/lib/python/Products/ZSQLMethods/__init__.py
-=-
Modified: Zope/trunk/doc/CHANGES.txt
===================================================================
--- Zope/trunk/doc/CHANGES.txt 2005-10-31 10:35:06 UTC (rev 39762)
+++ Zope/trunk/doc/CHANGES.txt 2005-10-31 10:35:24 UTC (rev 39763)
@@ -58,6 +58,9 @@
Other
+ - OFS Application: Removed support for long deprecated old-style product
+ metadata in the __init__.py of products.
+
- ZSQLMethod.manage_main: Moved the error message that warns of a
non-existing or closed database connection next to the Connection ID
dropdown and present it using red to increase its visibility.
Modified: Zope/trunk/lib/python/OFS/Application.py
===================================================================
--- Zope/trunk/lib/python/OFS/Application.py 2005-10-31 10:35:06 UTC (rev 39762)
+++ Zope/trunk/lib/python/OFS/Application.py 2005-10-31 10:35:24 UTC (rev 39763)
@@ -734,7 +734,6 @@
path_join=os.path.join
isdir=os.path.isdir
exists=os.path.exists
- DictType=type({})
global_dict=globals()
silly=('__doc__',)
@@ -755,7 +754,7 @@
# like icon images.
misc_=pgetattr(product, 'misc_', {})
if misc_:
- if type(misc_) is DictType:
+ if isinstance(misc_, dict):
misc_=Misc_(product_name, misc_)
Application.misc_.__dict__[product_name]=misc_
@@ -770,61 +769,11 @@
product, product_name, package_dir, app)
context=ProductContext(productObject, app, product)
- # Look for an 'initialize' method in the product. If it does
- # not exist, then this is an old product that has never been
- # updated. In that case, we will analyze the product and
- # build up enough information to do initialization manually.
+ # Look for an 'initialize' method in the product.
initmethod=pgetattr(product, 'initialize', None)
if initmethod is not None:
initmethod(context)
- # Support old-style product metadata. Older products may
- # define attributes to name their permissions, meta_types,
- # constructors, etc.
- permissions={}
- new_permissions={}
- for p in pgetattr(product, '__ac_permissions__', ()):
- permission, names, default = (
- tuple(p)+('Manager',))[:3]
- if names:
- for name in names:
- permissions[name]=permission
- elif not folder_permissions.has_key(permission):
- new_permissions[permission]=()
-
- for meta_type in pgetattr(product, 'meta_types', ()):
- # Modern product initialization via a ProductContext
- # adds 'product' and 'permission' keys to the meta_type
- # mapping. We have to add these here for old products.
- pname=permissions.get(meta_type['action'], None)
- if pname is not None:
- meta_type['permission']=pname
- meta_type['product']=productObject.id
- meta_type['visibility'] = 'Global'
- meta_types.append(meta_type)
-
- for name,method in pgetattr(
- product, 'methods', {}).items():
- if not hasattr(Folder.Folder, name):
- setattr(Folder.Folder, name, method)
- if name[-9:]!='__roles__': # not Just setting roles
- if (permissions.has_key(name) and
- not folder_permissions.has_key(
- permissions[name])):
- permission=permissions[name]
- if new_permissions.has_key(permission):
- new_permissions[permission].append(name)
- else:
- new_permissions[permission]=[name]
-
- if new_permissions:
- new_permissions=new_permissions.items()
- for permission, names in new_permissions:
- folder_permissions[permission]=names
- new_permissions.sort()
- Folder.Folder.__ac_permissions__=tuple(
- list(Folder.Folder.__ac_permissions__)+new_permissions)
-
if not doInstall():
transaction().abort()
else:
Modified: Zope/trunk/lib/python/OFS/tests/testProductInit.py
===================================================================
--- Zope/trunk/lib/python/OFS/tests/testProductInit.py 2005-10-31 10:35:06 UTC (rev 39762)
+++ Zope/trunk/lib/python/OFS/tests/testProductInit.py 2005-10-31 10:35:24 UTC (rev 39763)
@@ -44,16 +44,18 @@
# backslashes, the backslashes get treated *as* backslashes instead of as
# string escape codes.
dummy_product_init = """
+misc_ = {'a':1}
+def amethod(self):
+ pass
def initialize(context):
f=open(r'%s', 'w')
f.write('didit')
f.close()
-misc_ = {'a':1}
-def amethod(self):
- pass
-methods = {'amethod':amethod}
-__ac_permissions__ = ( ('aPermission', (), () ), )
-meta_types = ( {'name':'grabass', 'action':'amethod'}, )
+ context.registerClass(
+ meta_type='grabass',
+ permission='aPermission',
+ constructors=(amethod,),
+ legacy=(amethod,))
"""
def getSchema():
@@ -195,13 +197,18 @@
self.assert_(os.path.exists(doneflag))
# Methods installed into folder
self.assert_(hasattr(Folder, 'amethod'))
- # __ac_permissions__ put into folder
- self.assert_( ('aPermission', (),) in
- Folder.__ac_permissions__)
+ # permission roles put into folder
+ self.assert_(hasattr(Folder, 'amethod__roles__'))
# Products.meta_types updated
- self.assert_( {'action': 'amethod', 'product': 'abaz',
- 'name': 'grabass', 'visibility': 'Global'}
- in meta_types)
+ self.assert_( {'name': 'grabass',
+ 'action': 'manage_addProduct/abaz/amethod',
+ 'product': 'abaz',
+ 'permission': 'aPermission',
+ 'visibility': 'Global',
+ 'interfaces': (),
+ 'instance': None,
+ 'container_filter': None}
+ in Products.meta_types)
def test_install_products(self):
self.makeFakeProducts()
Property changes on: Zope/trunk/lib/python/OFS/tests/testProductInit.py
___________________________________________________________________
Name: cvs2svn:cvs-rev
- 1.3
Name: svn:keywords
+ Id
Modified: Zope/trunk/lib/python/Products/ZGadflyDA/__init__.py
===================================================================
--- Zope/trunk/lib/python/Products/ZGadflyDA/__init__.py 2005-10-31 10:35:06 UTC (rev 39762)
+++ Zope/trunk/lib/python/Products/ZGadflyDA/__init__.py 2005-10-31 10:35:24 UTC (rev 39763)
@@ -7,13 +7,13 @@
# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
-# FOR A PARTICULAR PURPOSE
+# FOR A PARTICULAR PURPOSE.
#
##############################################################################
-__doc__='''Generic Database Adapter Package Registration
+"""Generic Database Adapter Package Registration.
-$Id$'''
-__version__='$Revision: 1.16 $'[11:-2]
+$Id$
+"""
import Globals, os
@@ -34,12 +34,6 @@
'date','time','datetime'):
misc_[icon]=Globals.ImageFile('icons/%s.gif' % icon, globals())
-meta_types=(
- {'name':'Z %s Database Connection' % database_type,
- 'action':'manage_addZ%sConnectionForm' % database_type,
- },
- )
-
DA=None
def getDA():
global DA
@@ -70,20 +64,17 @@
return getDA().manage_addZGadflyConnection(
self, id, title, connection, check, REQUEST)
-methods={
- 'manage_addZGadflyConnection':
- manage_addZGadflyConnection,
- 'manage_addZGadflyConnectionForm':
- manage_addZGadflyConnectionForm,
- }
+def initialize(context):
-__ac_permissions__=(
- ('Add Z Gadfly Database Connections',
- ('manage_addZGadflyConnectionForm',
- 'manage_addZGadflyConnection')),
+ context.registerClass(
+ DA.Connection,
+ permission='Add Z Gadfly Database Connections',
+ constructors=(manage_addZGadflyConnectionForm,
+ manage_addZGadflyConnection),
+ legacy=(manage_addZGadflyConnectionForm,
+ manage_addZGadflyConnection),
)
-
# from App.config import getConfiguration
# j=os.path.join
# d=j(getConfiguration().clienthome,'gadfly')
Property changes on: Zope/trunk/lib/python/Products/ZGadflyDA/__init__.py
___________________________________________________________________
Name: cvs2svn:cvs-rev
- 1.16
Modified: Zope/trunk/lib/python/Products/ZSQLMethods/__init__.py
===================================================================
--- Zope/trunk/lib/python/Products/ZSQLMethods/__init__.py 2005-10-31 10:35:06 UTC (rev 39762)
+++ Zope/trunk/lib/python/Products/ZSQLMethods/__init__.py 2005-10-31 10:35:24 UTC (rev 39763)
@@ -7,21 +7,19 @@
# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
-# FOR A PARTICULAR PURPOSE
+# FOR A PARTICULAR PURPOSE.
#
##############################################################################
-__doc__='''SQL Method Product
+"""SQL Method Product.
+$Id$
+"""
-$Id$'''
-__version__='$Revision: 1.18 $'[11:-2]
import Shared.DC.ZRDB.Search, Shared.DC.ZRDB.Aqueduct, SQL
import Shared.DC.ZRDB.RDB
import Shared.DC.ZRDB.sqlvar, Shared.DC.ZRDB.sqlgroup, Shared.DC.ZRDB.sqltest
-# This is the new way to initialize products. It is hoped
-# that this more direct mechanism will be more understandable.
def initialize(context):
context.registerClass(
@@ -29,6 +27,9 @@
permission='Add Database Methods',
constructors=(SQL.manage_addZSQLMethodForm, SQL.manage_addZSQLMethod),
icon='sqlmethod.gif',
+ # XXX: can this permission be removed?
+ permissions=('Open/Close Database Connections',),
+ legacy=(SQL.SQLConnectionIDs,)
)
context.registerClass(
@@ -36,25 +37,13 @@
permission='Add Documents, Images, and Files',
constructors=(Shared.DC.ZRDB.Search.addForm,
Shared.DC.ZRDB.Search.manage_addZSearch),
+ legacy=(Shared.DC.ZRDB.Search.ZQueryIds,)
)
context.registerHelp()
context.registerHelpTitle('Zope Help')
-methods={
- # We still need this one, at least for now, for both editing and
- # adding. Ugh.
- 'SQLConnectionIDs': SQL.SQLConnectionIDs,
- # Oh please!
- 'ZQueryIds': Shared.DC.ZRDB.Search.ZQueryIds,
- }
-
-__ac_permissions__=(
- # Ugh. We should get rid of this, but we'll have to revisit connections
- ('Open/Close Database Connections', ()),
- )
-
__module_aliases__=(
('Products.AqueductSQLMethods','Products.ZSQLMethods'),
('Aqueduct', Shared.DC.ZRDB),
Property changes on: Zope/trunk/lib/python/Products/ZSQLMethods/__init__.py
___________________________________________________________________
Name: cvs2svn:cvs-rev
- 1.18
More information about the Zope-Checkins
mailing list