CVS: Products/Basket - icon_egg.gif:1.1 __init__.py:1.14 utils.py:1.18

Chris McDonough <[email protected]>
Newsgroups gmane.comp.web.zope.public-cvs
Message-ID <[email protected]>
Update of /cvs-repository/Products/Basket
In directory cvs.zope.org:/tmp/cvs-serv20828

Modified Files:
	__init__.py utils.py 
Added Files:
	icon_egg.gif 
Log Message:
Change meta type of Egg Product, give EggProduct a different "installed" icon, make it possible to point entry points and non-callables.


=== Added File Products/Basket/icon_egg.gif ===
  <Binary-ish file>

=== Products/Basket/__init__.py 1.13 => 1.14 ===
--- Products/Basket/__init__.py:1.13	Tue Nov  8 21:28:02 2005
+++ Products/Basket/__init__.py	Wed Nov  9 14:39:24 2005
@@ -1,8 +1,8 @@
 import sys
 import os
 import pkg_resources
-import inspect
 from utils import EggProductContext
+from utils import EggProduct
 
 entrypoint_group = 'zope2.initialize'
 
@@ -23,6 +23,8 @@
         return L
 
     def initialize(self, context):
+        context.registerClass(EggProduct, constructors = (('dummy',None),),
+                              visibility=None, icon='icon_egg.gif')
         if not self.pre_initialized:
             try:
                 home = INSTANCE_HOME
@@ -34,7 +36,7 @@
         data = []
         points = pkg_resources.iter_entry_points(entrypoint_group)
         # Grab app from Zope product context
-        # It's a "protected" attributes, hence the name mangling
+        # It's a "protected" attribute, hence the name mangling
         app = context._ProductContext__app
         meta_types = []
         for point in points:


=== Products/Basket/utils.py 1.17 => 1.18 ===
--- Products/Basket/utils.py:1.17	Tue Nov  8 22:07:13 2005
+++ Products/Basket/utils.py	Wed Nov  9 14:39:24 2005
@@ -39,6 +39,9 @@
 _marker = ()
 
 class EggProduct(Product):
+
+    meta_type = 'Egg Product'
+
     def __init__(self, id, title, packagename):
         self.id = id
         self.title = title
@@ -117,7 +120,7 @@
                              error=sys.exc_info())
 
         products._setObject(productname, product)
-        product.icon = 'p_/InstalledProduct_icon'
+        product.icon = 'misc_/Basket/icon_egg.gif'
         product.version = fver
         product.home = str(self.package.__path__)
 
@@ -210,7 +213,7 @@
 
         if icon and instance_class is not None:
             setattr(instance_class, 'icon', 'misc_/%s/%s' %
-                    (product.id, os.path.split(icon)[1]))
+                    (product.id, os.basename(icon)))
 
         if permissions:
             self.register_additional_permissions(permissions)
@@ -417,7 +420,11 @@
         try:
             self.set_package_module_aliases()
             self.set_package_misc_attrs()
-            init_data = initializer(self)
+            # allow entry points that are "dummies" (e.g. just the module)
+            # in case the product doesn't have an initialize function that
+            # needs to be called
+            if callable(initializer): 
+                init_data = initializer(self)
             self.set_package_ac_permissions()
             self.munge_package_meta_types()
             self.set_package_methods()

_______________________________________________
Zope-CVS maillist  -  [email protected]
http://mail.zope.org/mailman/listinfo/zope-cvs

Zope CVS instructions: http://dev.zope.org/CVS
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.