[Checkins] SVN: z3ext.product/trunk/ - Install product registry after base registries

Nikolay Kim fafhrd at datacom.kz
Fri Nov 21 06:16:43 EST 2008


Log message for revision 93236:
  - Install product registry after base registries
  
  - Removed product extension system
  
  
  

Changed:
  U   z3ext.product/trunk/CHANGES.txt
  U   z3ext.product/trunk/setup.py
  U   z3ext.product/trunk/src/z3ext/product/README.txt
  U   z3ext.product/trunk/src/z3ext/product/__init__.py
  U   z3ext.product/trunk/src/z3ext/product/browser.zcml
  U   z3ext.product/trunk/src/z3ext/product/interfaces.py
  U   z3ext.product/trunk/src/z3ext/product/locales/nl/LC_MESSAGES/z3ext.product.mo
  U   z3ext.product/trunk/src/z3ext/product/locales/nl/LC_MESSAGES/z3ext.product.po
  U   z3ext.product/trunk/src/z3ext/product/locales/ru/LC_MESSAGES/z3ext.product.mo
  U   z3ext.product/trunk/src/z3ext/product/locales/ru/LC_MESSAGES/z3ext.product.po
  U   z3ext.product/trunk/src/z3ext/product/locales/z3ext.product.pot
  U   z3ext.product/trunk/src/z3ext/product/product.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
  U   z3ext.product/trunk/src/z3ext/product/zcml.py

-=-
Modified: z3ext.product/trunk/CHANGES.txt
===================================================================
--- z3ext.product/trunk/CHANGES.txt	2008-11-21 10:45:58 UTC (rev 93235)
+++ z3ext.product/trunk/CHANGES.txt	2008-11-21 11:16:43 UTC (rev 93236)
@@ -2,7 +2,14 @@
 CHANGES
 =======
 
+1.3.0 (2008-11-21)
+------------------
 
+- Install product registry after base registries
+
+- Removed product extension system
+
+
 1.2.2 (2008-10-28)
 ------------------
 

Modified: z3ext.product/trunk/setup.py
===================================================================
--- z3ext.product/trunk/setup.py	2008-11-21 10:45:58 UTC (rev 93235)
+++ z3ext.product/trunk/setup.py	2008-11-21 11:16:43 UTC (rev 93236)
@@ -21,7 +21,7 @@
 def read(*rnames):
     return open(os.path.join(os.path.dirname(__file__), *rnames)).read()
 
-version = '1.2.3dev'
+version = '1.3.0dev'
 
 
 setup(name='z3ext.product',
@@ -65,6 +65,7 @@
                           'zope.app.component',
 			  'z3c.autoinclude',
 			  'z3c.baseregistry',
+			  'z3c.configurator',
 			  'z3ext.layout',
 			  'z3ext.controlpanel',
                           'z3ext.statusmessage',

Modified: z3ext.product/trunk/src/z3ext/product/README.txt
===================================================================
--- z3ext.product/trunk/src/z3ext/product/README.txt	2008-11-21 10:45:58 UTC (rev 93235)
+++ z3ext.product/trunk/src/z3ext/product/README.txt	2008-11-21 11:16:43 UTC (rev 93236)
@@ -140,80 +140,6 @@
   ProductNotInstalledError: Product is not installed.
 
 
-Product extension
------------------
-
-We can create product extension
-
-  >>> class IMyProductExtension(interface.Interface):
-  ...     """Basic User Preferences"""
-
-  >>> context = xmlconfig.string('''
-  ... <configure
-  ...    xmlns:z3ext="http://namespaces.zope.org/z3ext" i18n_domain="test">
-  ... 
-  ...   <z3ext:product
-  ...     name="my-product.ext"
-  ...     title="Product extension"
-  ...     schema="z3ext.product.README.IMyProductExtension" />
-  ...
-  ... </configure>''', context)
-
-  >>> ext = component.getUtility(IMyProductExtension)
-  >>> ext
-  <z3ext.controlpanel.configlettype.Configlet<product.my-product.ext> ...>
-
-  >>> ext.__installed__
-  False
-
-  >>> ext.isInstalled()
-  False
-
-  >>> component.getUtility(IProduct, 'my-product.ext') is ext
-  True
-  
-  >>> component.getUtility(IConfiglet, 'product.my-product.ext') is ext
-  True
-
-We have to install product first, then we can install product extension
-
-  >>> ext.install()
-  Traceback (most recent call last):
-  ...
-  ProductNotInstalledError: my-product
-
-  >>> ext.update()
-  Traceback (most recent call last):
-  ...
-  ProductNotInstalledError: my-product
-
-  >>> product.install()
-  >>> ext.install()
-
-  >>> ext = component.getUtility(IMyProductExtension)
-  >>> ext.__installed__
-  True
-
-  >>> ext.isInstalled()
-  True
-
-  >>> ext.update()
-
-  >>> ext.uninstall()
-  >>> ext.__installed__
-  False
-
-If we uninstall product, extension will uninstall also
-
-  >>> ext.install()
-  >>> product.uninstall()
-  >>> ext.__installed__
-  False
-
-  >>> product.listExtensions()
-  [u'ext']
-
-
 Product dependencies
 --------------------
 Product can depends on other products.

Modified: z3ext.product/trunk/src/z3ext/product/__init__.py
===================================================================
--- z3ext.product/trunk/src/z3ext/product/__init__.py	2008-11-21 10:45:58 UTC (rev 93235)
+++ z3ext.product/trunk/src/z3ext/product/__init__.py	2008-11-21 11:16:43 UTC (rev 93236)
@@ -2,4 +2,4 @@
 
 registries = {}
 
-from z3ext.product.product import Product, ProductExtension
+from z3ext.product.product import Product

Modified: z3ext.product/trunk/src/z3ext/product/browser.zcml
===================================================================
--- z3ext.product/trunk/src/z3ext/product/browser.zcml	2008-11-21 10:45:58 UTC (rev 93235)
+++ z3ext.product/trunk/src/z3ext/product/browser.zcml	2008-11-21 11:16:43 UTC (rev 93236)
@@ -16,12 +16,6 @@
      for=".interfaces.IProductInstaller"
      file="product_icon.gif" />
 
-  <browser:icon
-     name="zmi_icon"
-     title="Product extension"
-     for=".interfaces.IProductExtension"
-     file="product_icon.gif" />
-
   <z3ext:pagelet
      name="index.html"
      for=".interfaces.IProductInstaller"

Modified: z3ext.product/trunk/src/z3ext/product/interfaces.py
===================================================================
--- z3ext.product/trunk/src/z3ext/product/interfaces.py	2008-11-21 10:45:58 UTC (rev 93235)
+++ z3ext.product/trunk/src/z3ext/product/interfaces.py	2008-11-21 11:16:43 UTC (rev 93236)
@@ -68,17 +68,10 @@
     def isInstalled():
         """ is product installed """
 
-    def listExtensions():
-        """ list IProductExtension for this product """
-
     def isUninstallable():
         """ is product uninstallable """
-        
 
-class IProductExtension(interface.Interface):
-    """ product extension """
 
-
 class IProductInstaller(interface.Interface):
     """ installer for external products """
 

Modified: z3ext.product/trunk/src/z3ext/product/locales/nl/LC_MESSAGES/z3ext.product.mo
===================================================================
(Binary files differ)

Modified: z3ext.product/trunk/src/z3ext/product/locales/nl/LC_MESSAGES/z3ext.product.po
===================================================================
--- z3ext.product/trunk/src/z3ext/product/locales/nl/LC_MESSAGES/z3ext.product.po	2008-11-21 10:45:58 UTC (rev 93235)
+++ z3ext.product/trunk/src/z3ext/product/locales/nl/LC_MESSAGES/z3ext.product.po	2008-11-21 11:16:43 UTC (rev 93236)
@@ -14,7 +14,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: Development/Unknown\n"
-"POT-Creation-Date: Thu Oct 23 12:08:54 2008\n"
+"POT-Creation-Date: Fri Nov 21 17:10:38 2008\n"
 "PO-Revision-Date: 2008-10-23 10:18+0100\n"
 "Last-Translator: F. Kooman <fkooman at tuxed.net>\n"
 "Language-Team: Zope 3 Developers <zope3-dev at zope.org>\n"
@@ -23,10 +23,6 @@
 "Content-Transfer-Encoding: 8bit\n"
 "Generated-By: zope/app/locales/extract.py\n"
 
-#: src/z3ext/product/browser.zcml:19
-msgid "Product extension"
-msgstr "Productuitbreiding"
-
 #: src/z3ext/product/browser.zcml:7
 msgid "Product"
 msgstr "Product"
@@ -35,9 +31,8 @@
 msgid "This is the Add-on Products install section."
 msgstr "Dit is de product installatiemodule."
 
-#: src/z3ext/product/configure.zcml:13
-#: src/z3ext/product/browser.zcml:13
-#: src/z3ext/product/browser.zcml:32
+#: src/z3ext/product/configure.zcml:13 src/z3ext/product/browser.zcml:13
+#: src/z3ext/product/browser.zcml:26
 msgid "Products management"
 msgstr "Productbeheer"
 
@@ -45,8 +40,7 @@
 msgid "Manage products"
 msgstr "Beheer producten"
 
-#: src/z3ext/product/product.py:50
-#: src/z3ext/product/product.py:59
+#: src/z3ext/product/product.py:50 src/z3ext/product/product.py:59
 msgid "Required product is not found."
 msgstr "Vereist product is niet gevonden."
 
@@ -54,8 +48,7 @@
 msgid "Product already installed."
 msgstr "Product is al geïnstalleerd."
 
-#: src/z3ext/product/product.py:88
-#: src/z3ext/product/product.py:103
+#: src/z3ext/product/product.py:88 src/z3ext/product/product.py:99
 msgid "Product is not installed."
 msgstr "Product is niet geïnstalleerd."
 
@@ -67,55 +60,64 @@
 msgid "Can't create utility."
 msgstr "Kan utility niet aanmaken."
 
-#: src/z3ext/product/view.pt:3
-msgid "Installed Products"
-msgstr "Geïnstalleerde producten"
-
-#: src/z3ext/product/view.pt:38
-msgid "(Installed)"
-msgstr "(Geïnstalleerd)"
-
-#: src/z3ext/product/view.pt:43
-msgid "(Not installed)"
-msgstr "(Niet geïnstalleerd)"
-
-#: src/z3ext/product/view.pt:58
+#: src/z3ext/product/view.pt:27
 msgid "Update"
 msgstr "Bijwerken"
 
-#: src/z3ext/product/view.pt:60
+#: src/z3ext/product/view.pt:29
 msgid "Uninstall"
 msgstr "Verwijderen"
 
-#: src/z3ext/product/view.pt:68
+#: src/z3ext/product/view.pt:3
+msgid "Installed Products"
+msgstr "Geïnstalleerde producten"
+
+#: src/z3ext/product/view.pt:37
 msgid "Products available for install"
 msgstr "Producten beschikbaar voor installatie"
 
-#: src/z3ext/product/view.pt:69
-msgid "This is the Add-on Products install section, you can add products in the lists below."
-msgstr "Dit is de product installatiemodule, u kunt producten selecteren in de onderstaande lijst."
+#: src/z3ext/product/view.pt:38
+msgid ""
+"This is the Add-on Products install section, you can add products in the "
+"lists below."
+msgstr ""
+"Dit is de product installatiemodule, u kunt producten selecteren in de "
+"onderstaande lijst."
 
-#: src/z3ext/product/view.pt:87
+#: src/z3ext/product/view.pt:56
 msgid "Install"
 msgstr "Installeren"
 
-#: src/z3ext/product/view.py:102
-msgid "Select one or more products to update."
-msgstr "Selecteer één of meer producten om bij te werken."
-
-#: src/z3ext/product/view.py:117
+#: src/z3ext/product/view.py:107
 msgid "Select one or more products to uninstall."
 msgstr "Selecteer één of meer producten om te verwijderen."
 
-#: src/z3ext/product/view.py:124
+#: src/z3ext/product/view.py:114
 msgid "Selected products has been uninstalled."
 msgstr "Geselecteerde producten zijn verwijderd."
 
-#: src/z3ext/product/view.py:84
+#: src/z3ext/product/view.py:72
 msgid "Select one or more products to install."
 msgstr "Selecteer één of meer producten om te installeren."
 
-#: src/z3ext/product/view.py:91
+#: src/z3ext/product/view.py:79
 msgid "Selected products has been installed."
 msgstr "Geselecteerde producten zijn geïnstalleerd."
 
+#: src/z3ext/product/view.py:91
+msgid "Select one or more products to update."
+msgstr "Selecteer één of meer producten om bij te werken."
+
+#: src/z3ext/product/view.py:98
+#, fuzzy
+msgid "Selected products has been updated."
+msgstr "Geselecteerde producten zijn verwijderd."
+
+#~ msgid "Product extension"
+#~ msgstr "Productuitbreiding"
+
+#~ msgid "(Installed)"
+#~ msgstr "(Geïnstalleerd)"
+
+#~ msgid "(Not installed)"
+#~ msgstr "(Niet geïnstalleerd)"

Modified: z3ext.product/trunk/src/z3ext/product/locales/ru/LC_MESSAGES/z3ext.product.mo
===================================================================
(Binary files differ)

Modified: z3ext.product/trunk/src/z3ext/product/locales/ru/LC_MESSAGES/z3ext.product.po
===================================================================
--- z3ext.product/trunk/src/z3ext/product/locales/ru/LC_MESSAGES/z3ext.product.po	2008-11-21 10:45:58 UTC (rev 93235)
+++ z3ext.product/trunk/src/z3ext/product/locales/ru/LC_MESSAGES/z3ext.product.po	2008-11-21 11:16:43 UTC (rev 93236)
@@ -1,4 +1,4 @@
-##############################################################################
+# #############################################################################
 #
 # Copyright (c) 2003-2004 Zope Corporation and Contributors.
 # All Rights Reserved.
@@ -10,12 +10,12 @@
 # WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
 # FOR A PARTICULAR PURPOSE.
 #
-##############################################################################
+# #############################################################################
 msgid ""
 msgstr ""
 "Project-Id-Version: Development/Unknown\n"
-"POT-Creation-Date: Thu Oct 23 12:08:54 2008\n"
-"PO-Revision-Date: 2008-10-28 11:28+0600\n"
+"POT-Creation-Date: Fri Nov 21 17:10:38 2008\n"
+"PO-Revision-Date: 2008-11-21 17:12+0600\n"
 "Last-Translator: Nikolay Kim <fafhrd91 at gmail.com>\n"
 "Language-Team: Zope 3 Developers <zope3-dev at zope.org>\n"
 "MIME-Version: 1.0\n"
@@ -23,10 +23,6 @@
 "Content-Transfer-Encoding: 8bit\n"
 "Generated-By: zope/app/locales/extract.py\n"
 
-#: src/z3ext/product/browser.zcml:19
-msgid "Product extension"
-msgstr "Расширение продукта"
-
 #: src/z3ext/product/browser.zcml:7
 msgid "Product"
 msgstr "Продукт"
@@ -35,9 +31,8 @@
 msgid "This is the Add-on Products install section."
 msgstr "Панель управления дополнительными продуктами."
 
-#: src/z3ext/product/configure.zcml:13
-#: src/z3ext/product/browser.zcml:13
-#: src/z3ext/product/browser.zcml:32
+#: src/z3ext/product/configure.zcml:13 src/z3ext/product/browser.zcml:13
+#: src/z3ext/product/browser.zcml:26
 msgid "Products management"
 msgstr "Управление продуктами"
 
@@ -45,8 +40,7 @@
 msgid "Manage products"
 msgstr "Управление продуктами"
 
-#: src/z3ext/product/product.py:50
-#: src/z3ext/product/product.py:59
+#: src/z3ext/product/product.py:50 src/z3ext/product/product.py:59
 msgid "Required product is not found."
 msgstr "Необходимый продукт не найден."
 
@@ -54,8 +48,7 @@
 msgid "Product already installed."
 msgstr "Продукт уже установлен."
 
-#: src/z3ext/product/product.py:88
-#: src/z3ext/product/product.py:103
+#: src/z3ext/product/product.py:88 src/z3ext/product/product.py:99
 msgid "Product is not installed."
 msgstr "Продукт не установлен."
 
@@ -67,55 +60,61 @@
 msgid "Can't create utility."
 msgstr "Невозможно создать утилиту."
 
-#: src/z3ext/product/view.pt:3
-msgid "Installed Products"
-msgstr "Установленные продукты"
-
-#: src/z3ext/product/view.pt:38
-msgid "(Installed)"
-msgstr "(Установленный)"
-
-#: src/z3ext/product/view.pt:43
-msgid "(Not installed)"
-msgstr "(Не установленный)"
-
-#: src/z3ext/product/view.pt:58
+#: src/z3ext/product/view.pt:27
 msgid "Update"
 msgstr "Обновить"
 
-#: src/z3ext/product/view.pt:60
+#: src/z3ext/product/view.pt:29
 msgid "Uninstall"
 msgstr "Деинсталлировать"
 
-#: src/z3ext/product/view.pt:68
+#: src/z3ext/product/view.pt:3
+msgid "Installed Products"
+msgstr "Установленные продукты"
+
+#: src/z3ext/product/view.pt:37
 msgid "Products available for install"
 msgstr "Доступные продукты"
 
-#: src/z3ext/product/view.pt:69
-msgid "This is the Add-on Products install section, you can add products in the lists below."
+#: src/z3ext/product/view.pt:38
+msgid ""
+"This is the Add-on Products install section, you can add products in the "
+"lists below."
 msgstr "Вы можете установить продукты из последующего списка."
 
-#: src/z3ext/product/view.pt:87
+#: src/z3ext/product/view.pt:56
 msgid "Install"
 msgstr "Установить"
 
-#: src/z3ext/product/view.py:102
-msgid "Select one or more products to update."
-msgstr "Выбирите один или более продуктов для обновления."
-
-#: src/z3ext/product/view.py:117
+#: src/z3ext/product/view.py:107
 msgid "Select one or more products to uninstall."
 msgstr "Выбирите один или более продуктов для деинсталлирования.\""
 
-#: src/z3ext/product/view.py:124
+#: src/z3ext/product/view.py:114
 msgid "Selected products has been uninstalled."
 msgstr "Выбранные продукты были деинсталлированы."
 
-#: src/z3ext/product/view.py:84
+#: src/z3ext/product/view.py:72
 msgid "Select one or more products to install."
 msgstr "Выбирите один или более продуктов для установки."
 
-#: src/z3ext/product/view.py:91
+#: src/z3ext/product/view.py:79
 msgid "Selected products has been installed."
 msgstr "Выбранные продукты были установлены."
 
+#: src/z3ext/product/view.py:91
+msgid "Select one or more products to update."
+msgstr "Выбирите один или более продуктов для обновления."
+
+#: src/z3ext/product/view.py:98
+msgid "Selected products has been updated."
+msgstr "Выбранные продукты обновлены."
+
+#~ msgid "Product extension"
+#~ msgstr "Расширение продукта"
+
+#~ msgid "(Installed)"
+#~ msgstr "(Установленный)"
+
+#~ msgid "(Not installed)"
+#~ msgstr "(Не установленный)"

Modified: z3ext.product/trunk/src/z3ext/product/locales/z3ext.product.pot
===================================================================
--- z3ext.product/trunk/src/z3ext/product/locales/z3ext.product.pot	2008-11-21 10:45:58 UTC (rev 93235)
+++ z3ext.product/trunk/src/z3ext/product/locales/z3ext.product.pot	2008-11-21 11:16:43 UTC (rev 93236)
@@ -14,7 +14,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: Development/Unknown\n"
-"POT-Creation-Date: Tue Oct 28 11:28:30 2008\n"
+"POT-Creation-Date: Fri Nov 21 17:10:38 2008\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
 "Language-Team: Zope 3 Developers <zope3-dev at zope.org>\n"
@@ -23,10 +23,6 @@
 "Content-Transfer-Encoding: 8bit\n"
 "Generated-By: zope/app/locales/extract.py\n"
 
-#: src/z3ext/product/browser.zcml:19
-msgid "Product extension"
-msgstr ""
-
 #: src/z3ext/product/browser.zcml:7
 msgid "Product"
 msgstr ""
@@ -37,7 +33,7 @@
 
 #: src/z3ext/product/configure.zcml:13
 #: src/z3ext/product/browser.zcml:13
-#: src/z3ext/product/browser.zcml:32
+#: src/z3ext/product/browser.zcml:26
 msgid "Products management"
 msgstr ""
 
@@ -55,7 +51,7 @@
 msgstr ""
 
 #: src/z3ext/product/product.py:88
-#: src/z3ext/product/product.py:103
+#: src/z3ext/product/product.py:99
 msgid "Product is not installed."
 msgstr ""
 
@@ -67,55 +63,51 @@
 msgid "Can't create utility."
 msgstr ""
 
-#: src/z3ext/product/view.pt:3
-msgid "Installed Products"
-msgstr ""
-
-#: src/z3ext/product/view.pt:38
-msgid "(Installed)"
-msgstr ""
-
-#: src/z3ext/product/view.pt:43
-msgid "(Not installed)"
-msgstr ""
-
-#: src/z3ext/product/view.pt:58
+#: src/z3ext/product/view.pt:27
 msgid "Update"
 msgstr ""
 
-#: src/z3ext/product/view.pt:60
+#: src/z3ext/product/view.pt:29
 msgid "Uninstall"
 msgstr ""
 
-#: src/z3ext/product/view.pt:68
+#: src/z3ext/product/view.pt:3
+msgid "Installed Products"
+msgstr ""
+
+#: src/z3ext/product/view.pt:37
 msgid "Products available for install"
 msgstr ""
 
-#: src/z3ext/product/view.pt:69
+#: src/z3ext/product/view.pt:38
 msgid "This is the Add-on Products install section, you can add products in the lists below."
 msgstr ""
 
-#: src/z3ext/product/view.pt:87
+#: src/z3ext/product/view.pt:56
 msgid "Install"
 msgstr ""
 
-#: src/z3ext/product/view.py:102
-msgid "Select one or more products to update."
-msgstr ""
-
-#: src/z3ext/product/view.py:117
+#: src/z3ext/product/view.py:107
 msgid "Select one or more products to uninstall."
 msgstr ""
 
-#: src/z3ext/product/view.py:124
+#: src/z3ext/product/view.py:114
 msgid "Selected products has been uninstalled."
 msgstr ""
 
-#: src/z3ext/product/view.py:84
+#: src/z3ext/product/view.py:72
 msgid "Select one or more products to install."
 msgstr ""
 
-#: src/z3ext/product/view.py:91
+#: src/z3ext/product/view.py:79
 msgid "Selected products has been installed."
 msgstr ""
 
+#: src/z3ext/product/view.py:91
+msgid "Select one or more products to update."
+msgstr ""
+
+#: src/z3ext/product/view.py:98
+msgid "Selected products has been updated."
+msgstr ""
+

Modified: z3ext.product/trunk/src/z3ext/product/product.py
===================================================================
--- z3ext.product/trunk/src/z3ext/product/product.py	2008-11-21 10:45:58 UTC (rev 93235)
+++ z3ext.product/trunk/src/z3ext/product/product.py	2008-11-21 11:16:43 UTC (rev 93236)
@@ -28,7 +28,7 @@
 from z3ext.controlpanel.configlettype import ConfigletProperty
 
 from z3ext.product import interfaces
-from z3ext.product.interfaces import _, IProduct, IProductExtension
+from z3ext.product.interfaces import _, IProduct
 
 
 class Product(object):
@@ -94,10 +94,6 @@
         self._checkRequiredUpdate()
 
     def uninstall(self):
-        for name, ext in self.items():
-            if IProductExtension.providedBy(ext) and ext.__installed__:
-                ext.uninstall()
-
         if not self.__installed__:
             raise interfaces.ProductNotInstalledError(
                 _('Product is not installed.'))
@@ -136,37 +132,7 @@
         seen = set()
         return self._checkInstalled(sm, registry, seen)
 
-    def listExtensions(self):
-        exts = []
-        for name, ext in self.items():
-            if IProductExtension.providedBy(ext):
-                exts.append(name)
-
-        return exts
-
     def isUninstallable(self):
         sm = getSiteManager()
         registry = getattr(z3ext.product, self.__product_name__)
         return registry in sm.__bases__
-
-
-class ProductExtension(Product):
-    interface.implements(IProductExtension)
-
-    def install(self):
-        if not self.__parent__.__installed__:
-            raise interfaces.ProductNotInstalledError(
-                self.__parent__.__product_name__)
-        super(ProductExtension, self).install()
-
-    def update(self):
-        if not self.__parent__.__installed__:
-            raise interfaces.ProductNotInstalledError(
-                self.__parent__.__product_name__)
-        super(ProductExtension, self).update()
-
-    def isInstalled(self):
-        if self.__parent__.__installed__:
-            return self.__installed__
-        else:
-            return False

Modified: z3ext.product/trunk/src/z3ext/product/utils.py
===================================================================
--- z3ext.product/trunk/src/z3ext/product/utils.py	2008-11-21 10:45:58 UTC (rev 93235)
+++ z3ext.product/trunk/src/z3ext/product/utils.py	2008-11-21 11:16:43 UTC (rev 93236)
@@ -24,7 +24,7 @@
 from zope.app.component.site import SiteManagementFolder
 from zope.app.component.interfaces import ISite
 
-from z3ext.product.interfaces import _, IProduct, IProductExtension
+from z3ext.product.interfaces import _, IProduct
 
 
 def registerUtility(id, factory, ifaces, container='system'):
@@ -90,8 +90,4 @@
         if product is not None:
             return product.__installed__
 
-        product = queryUtility(IProductExtension, self.product)
-        if product is not None:
-            return product.__installed__
-
         return False

Modified: z3ext.product/trunk/src/z3ext/product/view.pt
===================================================================
--- z3ext.product/trunk/src/z3ext/product/view.pt	2008-11-21 10:45:58 UTC (rev 93235)
+++ z3ext.product/trunk/src/z3ext/product/view.pt	2008-11-21 11:16:43 UTC (rev 93236)
@@ -6,7 +6,7 @@
       <ul class="z-listing">
 	<li tal:repeat="product data/installed">
 	  <div class="z-listing-icon">
-	    <input class="noborder" type="checkbox" name="products:list" 
+	    <input class="noborder" type="checkbox" name="products:list"
 		   tal:attributes="value product/name"
 		   tal:condition="product/uninstallable" />
 	    <tal:block tal:condition="not:product/uninstallable">
@@ -20,37 +20,6 @@
 	    </a>
 	    <div tal:content="product/description"></div>
 	  </div>
-	  <div class="small"
-	       tal:define="name product/name;
-			   extensions python:view.getExtensions(product['product'])"
-	       tal:condition="extensions">
-	    <ul class="z-listing-listing">
-	      <li tal:repeat="product extensions">
-		<div class="z-listing-icon">
-		  <img tal:replace="structure product/@@zmi_icon" />
-		</div>
-		<div class="z-listing-details">
-		  <span>
-		    <a tal:omit-tag="not:product/isAvailable"
-		       tal:attributes="href string:${product/__parent__/__name__}/${product/__name__}/">
-		      <span tal:content="product/__title__"></span>
-		    </a>
-		    <a tal:attributes="href 
-		         string:${context/@@absolute_url}/?extension=${product/__id__}"
-		       tal:condition="product/__installed__" i18n:translate="">
-		      (Installed)
-		    </a>
-		    <a tal:attributes="href
-		         string:${context/@@absolute_url}/?extension=${product/__id__}"
-		       tal:condition="not:product/__installed__" i18n:translate="">
-		      (Not installed)
-		    </a>
-		  </span>
-		  <div tal:content="product/__description__"></div>
-		</div>
-	      </li>
-	    </ul>
-	  </div>
 	</li>
       </ul>
 
@@ -73,7 +42,7 @@
 	<li tal:repeat="product data/notinstalled">
 	  <div class="z-listing-icon">
 	    <input class="noborder" type="checkbox"
-                   name="products:list" tal:attributes="value product/name" />
+                   name="availproducts:list" tal:attributes="value product/name" />
 	    <img tal:replace="structure product/product/@@zmi_icon" />
 	  </div>
 	  <div class="z-listing-details">
@@ -84,7 +53,7 @@
       </ul>
 
       <div class="z-form-controls">
-	<input type="submit" class="context" name="install" 
+	<input type="submit" class="z-form-button" name="install" 
 	       value="Install" i18n:attributes="value" />
       </div>
     </form>

Modified: z3ext.product/trunk/src/z3ext/product/view.py
===================================================================
--- z3ext.product/trunk/src/z3ext/product/view.py	2008-11-21 10:45:58 UTC (rev 93235)
+++ z3ext.product/trunk/src/z3ext/product/view.py	2008-11-21 11:16:43 UTC (rev 93236)
@@ -18,19 +18,16 @@
 import logging, sys
 from transaction import abort
 from zope.component import getUtility, queryUtility, getUtilitiesFor
-
-from z3ext.layout.pagelet import BrowserPagelet
 from z3ext.statusmessage.interfaces import IStatusMessage
 
-from z3ext.product.interfaces import _, IProductExtension
-from z3ext.product.interfaces import ProductWarningError
+from z3ext.product.interfaces import _, ProductWarningError
 
 def log_exc(msg=''):
     log = logging.getLogger(u'z3ext.product')
     log.log(logging.ERROR, msg, exc_info=sys.exc_info())
 
 
-class InstallerView(BrowserPagelet):
+class InstallerView(object):
 
     def getProducts(self):
         context = self.context
@@ -63,23 +60,14 @@
         return {'installed': installed, 'notinstalled': notinstalled,
                 'hasUninstallable': hasUninstallable}
 
-    def getExtensions(self, product):
-        extensions = []
-
-        for name in product.listExtensions():
-            ext = product.get(name)
-            extensions.append((ext.__title__, ext))
-        extensions.sort()
-        return [ext for t, ext in extensions]
-
     def update(self, *args, **kw):
         request = self.request
         context = self.context
 
         service = IStatusMessage(request)
-        products = request.get('products', ())
-
+        
         if request.has_key('install'):
+            products = request.get('availproducts', ())
             if not products:
                 service.add(_('Select one or more products to install.'), 'warning')
             else:
@@ -98,6 +86,7 @@
                     service.add(e, 'error')
 
         elif request.has_key('update'):
+            products = request.get('products', ())
             if not products:
                 service.add(_('Select one or more products to update.'), 'warning')
             else:
@@ -106,13 +95,14 @@
                         product = context.get(product_id)
                         product.update()
 
-                    service.add('Selected products has been updated.')
+                    service.add(_('Selected products has been updated.'))
                 except Exception, e:
                     abort()
                     log_exc(str(e))
                     service.add(e, 'error')
 
         elif request.has_key('uninstall'):
+            products = request.get('products', ())
             if not products:
                 service.add(_('Select one or more products to uninstall.'), 'warning')
             else:
@@ -126,29 +116,3 @@
                     abort()
                     log_exc(str(e))
                     service.add(e, 'error')
-
-        elif request.has_key('extension'):
-            try:
-                product = ''
-                extension = request.get('extension', '')
-                if '.' in extension:
-                    c, product, extension = extension.split('.', 2)
-
-                product = context.get(product)
-                if product is not None:
-                    extension = product.get(extension)
-                
-                if not IProductExtension.providedBy(extension):
-                    extension = None
-
-                if extension is None:
-                    service.add("Can't fine extension.", 'error')
-                else:
-                    if extension.__installed__:
-                        extension.uninstall()
-                    else:
-                        extension.install()
-            except Exception, e:
-                abort()
-                log_exc(str(e))
-                service.add(e, 'error')

Modified: z3ext.product/trunk/src/z3ext/product/zcml.py
===================================================================
--- z3ext.product/trunk/src/z3ext/product/zcml.py	2008-11-21 10:45:58 UTC (rev 93235)
+++ z3ext.product/trunk/src/z3ext/product/zcml.py	2008-11-21 11:16:43 UTC (rev 93236)
@@ -26,8 +26,8 @@
 from z3ext.controlpanel.zcml import IConfigletDirective, ConfigletDirective
 
 from interfaces import IProduct
+from product import Product
 from registry import ProductRegistry
-from product import Product, ProductExtension
 
 
 class IProductDirective(IConfigletDirective):
@@ -50,11 +50,7 @@
                  permission='z3ext.ManageProducts', tests=(),
                  configurable=False, require = ()):
 
-        if '.' not in name:
-            product_class = Product
-        else:
-            product_class = ProductExtension
-
+        product_class = Product
         if class_ is None:
             class_ = product_class
         else:



More information about the Checkins mailing list