[Checkins] SVN: z3ext.product/trunk/ Calculate installed status

Nikolay Kim fafhrd at datacom.kz
Thu Aug 14 08:22:46 EDT 2008


Log message for revision 89835:
  Calculate installed status

Changed:
  U   z3ext.product/trunk/CHANGES.txt
  U   z3ext.product/trunk/src/z3ext/product/browser.zcml
  U   z3ext.product/trunk/src/z3ext/product/configure.zcml
  D   z3ext.product/trunk/src/z3ext/product/i18n.py
  U   z3ext.product/trunk/src/z3ext/product/interfaces.py
  U   z3ext.product/trunk/src/z3ext/product/product.py
  U   z3ext.product/trunk/src/z3ext/product/registry.py
  U   z3ext.product/trunk/src/z3ext/product/utils.py
  U   z3ext.product/trunk/src/z3ext/product/view.pt
  U   z3ext.product/trunk/src/z3ext/product/view.py

-=-
Modified: z3ext.product/trunk/CHANGES.txt
===================================================================
--- z3ext.product/trunk/CHANGES.txt	2008-08-14 12:15:08 UTC (rev 89834)
+++ z3ext.product/trunk/CHANGES.txt	2008-08-14 12:22:45 UTC (rev 89835)
@@ -2,6 +2,12 @@
 CHANGES
 =======
 
+1.1.1 (2008-08-13)
+------------------
+
+- Calculate installed status
+
+
 1.1.0 (2008-08-05)
 ------------------
 

Modified: z3ext.product/trunk/src/z3ext/product/browser.zcml
===================================================================
--- z3ext.product/trunk/src/z3ext/product/browser.zcml	2008-08-14 12:15:08 UTC (rev 89834)
+++ z3ext.product/trunk/src/z3ext/product/browser.zcml	2008-08-14 12:22:45 UTC (rev 89835)
@@ -2,7 +2,7 @@
    xmlns="http://namespaces.zope.org/zope"
    xmlns:z3ext="http://namespaces.zope.org/z3ext"
    xmlns:browser="http://namespaces.zope.org/browser"
-   i18n_domain="z3ext.product">
+   i18n_domain="z3ext">
 
   <browser:icon
      name="zmi_icon"

Modified: z3ext.product/trunk/src/z3ext/product/configure.zcml
===================================================================
--- z3ext.product/trunk/src/z3ext/product/configure.zcml	2008-08-14 12:15:08 UTC (rev 89834)
+++ z3ext.product/trunk/src/z3ext/product/configure.zcml	2008-08-14 12:22:45 UTC (rev 89835)
@@ -2,7 +2,7 @@
    xmlns="http://namespaces.zope.org/zope"
    xmlns:zcml="http://namespaces.zope.org/zcml"
    xmlns:z3ext="http://namespaces.zope.org/z3ext"
-   i18n_domain="z3ext.product">
+   i18n_domain="z3ext">
 
   <includeDependencies package="z3ext.product" />
 

Deleted: z3ext.product/trunk/src/z3ext/product/i18n.py
===================================================================
--- z3ext.product/trunk/src/z3ext/product/i18n.py	2008-08-14 12:15:08 UTC (rev 89834)
+++ z3ext.product/trunk/src/z3ext/product/i18n.py	2008-08-14 12:22:45 UTC (rev 89835)
@@ -1,19 +0,0 @@
-##############################################################################
-#
-# Copyright (c) 2008 Zope Corporation and Contributors.
-# All Rights Reserved.
-#
-# This software is subject to the provisions of the Zope Public License,
-# Version 2.1 (ZPL).  A copy of the ZPL should accompany this distribution.
-# 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.
-#
-##############################################################################
-"""
-
-$Id: interfaces.py 860 2008-01-09 08:48:08Z fafhrd91 $
-"""
-from zope.i18nmessageid import MessageFactory
-_ = MessageFactory('z3ext')

Modified: z3ext.product/trunk/src/z3ext/product/interfaces.py
===================================================================
--- z3ext.product/trunk/src/z3ext/product/interfaces.py	2008-08-14 12:15:08 UTC (rev 89834)
+++ z3ext.product/trunk/src/z3ext/product/interfaces.py	2008-08-14 12:22:45 UTC (rev 89835)
@@ -16,8 +16,11 @@
 $Id: interfaces.py 1843 2008-03-25 18:39:00Z fafhrd91 $
 """
 from zope import schema, interface
+from zope.i18nmessageid import MessageFactory
 
+_ = MessageFactory('z3ext')
 
+
 class ProductError(Exception):
     """ base error class for product management """
 
@@ -45,11 +48,7 @@
         title = u'Product name',
         required = True)
 
-    __installed__ = schema.Bool(
-        title = u'Installed',
-        description = u'Is product installed.',
-        default = False,
-        required = False)
+    __installed__ = interface.Attribute(u'Is product installed.')
 
     def install():
         """ install and configure product """

Modified: z3ext.product/trunk/src/z3ext/product/product.py
===================================================================
--- z3ext.product/trunk/src/z3ext/product/product.py	2008-08-14 12:15:08 UTC (rev 89834)
+++ z3ext.product/trunk/src/z3ext/product/product.py	2008-08-14 12:22:45 UTC (rev 89835)
@@ -26,29 +26,30 @@
 import z3ext.product
 from z3ext.controlpanel.configlettype import ConfigletProperty
 
-from z3ext.product.i18n import _
 from z3ext.product import interfaces
-from z3ext.product.interfaces import IProduct, IProductExtension
+from z3ext.product.interfaces import _, IProduct, IProductExtension
 
 
 class Product(object):
     """ base product class """
     interface.implements(IProduct)
 
-    __installed__ = ConfigletProperty(IProduct['__installed__'])
+    @property
+    def __installed__(self):
+        sm = getSiteManager()
 
+        registry = getattr(z3ext.product, self.__product_name__)
+        return registry in sm.__bases__
+
     def install(self):
         if self.__installed__:
             raise interfaces.ProductAlreadyInstalledError(
                 _('Product already installed.'))
 
-        self.__installed__ = True
-
         sm = getSiteManager()
 
         registry = getattr(z3ext.product, self.__product_name__)
-        if registry not in sm.__bases__:
-            sm.__bases__ = (registry,) + sm.__bases__
+        sm.__bases__ = (registry,) + sm.__bases__
 
         event.notify(interfaces.ProductInstalledEvent(self.__product_name__, self))
 
@@ -57,15 +58,9 @@
     def update(self):
         if not self.__installed__:
             raise interfaces.ProductNotInstalledError(
-                _('Product not installed.'))
+                _('Product is not installed.'))
 
         configure(self, {})
-
-        sm = getSiteManager()
-        registry = getattr(z3ext.product, self.__product_name__)
-        if registry not in sm.__bases__:
-            sm.__bases__ = (registry,) + sm.__bases__
-
         event.notify(
             interfaces.ProductUpdatedEvent(self.__product_name__, self))
 
@@ -78,18 +73,15 @@
             raise interfaces.ProductNotInstalledError(
                 _('Product not installed.'))
 
-        self.__installed__ = False
-
         sm = getSiteManager()
         registry = getattr(z3ext.product, self.__product_name__)
 
-        if registry in sm.__bases__:
-            bases = list(sm.__bases__)
-            bases.remove(registry)
-            sm.__bases__ = tuple(bases)
+        bases = list(sm.__bases__)
+        bases.remove(registry)
+        sm.__bases__ = tuple(bases)
 
-            event.notify(
-                interfaces.ProductUninstalledEvent(self.__product_name__, self))
+        event.notify(
+            interfaces.ProductUninstalledEvent(self.__product_name__, self))
 
     def _checkInstalled(self, sm, registry, seen):
         if sm in seen:

Modified: z3ext.product/trunk/src/z3ext/product/registry.py
===================================================================
--- z3ext.product/trunk/src/z3ext/product/registry.py	2008-08-14 12:15:08 UTC (rev 89834)
+++ z3ext.product/trunk/src/z3ext/product/registry.py	2008-08-14 12:22:45 UTC (rev 89835)
@@ -20,7 +20,7 @@
 from zope.component import globalregistry, globalSiteManager
 
 import z3ext.product
-from z3ext.product.i18n import _
+from z3ext.product.interfaces import _
 
 
 def BC(components, name):

Modified: z3ext.product/trunk/src/z3ext/product/utils.py
===================================================================
--- z3ext.product/trunk/src/z3ext/product/utils.py	2008-08-14 12:15:08 UTC (rev 89834)
+++ z3ext.product/trunk/src/z3ext/product/utils.py	2008-08-14 12:22:45 UTC (rev 89835)
@@ -24,8 +24,7 @@
 from zope.app.component.site import SiteManagementFolder
 from zope.app.component.interfaces import ISite
 
-from z3ext.product.i18n import _
-from z3ext.product.interfaces import IProduct, IProductExtension
+from z3ext.product.interfaces import _, IProduct, IProductExtension
 
 
 def registerUtility(id, factory, ifaces, container='system'):

Modified: z3ext.product/trunk/src/z3ext/product/view.pt
===================================================================
--- z3ext.product/trunk/src/z3ext/product/view.pt	2008-08-14 12:15:08 UTC (rev 89834)
+++ z3ext.product/trunk/src/z3ext/product/view.pt	2008-08-14 12:22:45 UTC (rev 89835)
@@ -1,4 +1,4 @@
-<div i18n:domain="z3ext.product" tal:define="data view/getProducts">
+<div i18n:domain="z3ext" tal:define="data view/getProducts">
   <div class="topframe" tal:condition="data/installed">
     <h1>Installed Products</h1>
 

Modified: z3ext.product/trunk/src/z3ext/product/view.py
===================================================================
--- z3ext.product/trunk/src/z3ext/product/view.py	2008-08-14 12:15:08 UTC (rev 89834)
+++ z3ext.product/trunk/src/z3ext/product/view.py	2008-08-14 12:22:45 UTC (rev 89835)
@@ -22,8 +22,7 @@
 from z3ext.layout.pagelet import BrowserPagelet
 from z3ext.statusmessage.interfaces import IStatusMessage
 
-from z3ext.product.i18n import _
-from z3ext.product.interfaces import IProductExtension
+from z3ext.product.interfaces import _, IProductExtension
 from z3ext.product.interfaces import ProductWarningError
 
 def log_exc(msg=''):



More information about the Checkins mailing list