[Checkins] SVN: z3ext.product/trunk/ Implemented product management for enclosed site objects

Nikolay Kim fafhrd at datacom.kz
Tue Aug 5 10:36:48 EDT 2008


Log message for revision 89394:
  Implemented product management for enclosed site objects

Changed:
  U   z3ext.product/trunk/buildout.cfg
  U   z3ext.product/trunk/src/z3ext/product/product.py
  U   z3ext.product/trunk/src/z3ext/product/view.pt
  U   z3ext.product/trunk/src/z3ext/product/view.py

-=-
Modified: z3ext.product/trunk/buildout.cfg
===================================================================
--- z3ext.product/trunk/buildout.cfg	2008-08-05 14:17:31 UTC (rev 89393)
+++ z3ext.product/trunk/buildout.cfg	2008-08-05 14:36:48 UTC (rev 89394)
@@ -1,6 +1,8 @@
 [buildout]
 develop = .
 parts = test coverage-test coverage-report
+versions = versions
+extends = http://download.zope.org/zope3.4/versions.cfg
 
 [test]
 recipe = zc.recipe.testrunner

Modified: z3ext.product/trunk/src/z3ext/product/product.py
===================================================================
--- z3ext.product/trunk/src/z3ext/product/product.py	2008-08-05 14:17:31 UTC (rev 89393)
+++ z3ext.product/trunk/src/z3ext/product/product.py	2008-08-05 14:36:48 UTC (rev 89394)
@@ -94,7 +94,7 @@
     def _checkInstalled(self, sm, registry, seen):
         if sm in seen:
             return False
-        seen.insert(sm)
+        seen.add(sm)
 
         if registry in sm.__bases__:
             return True

Modified: z3ext.product/trunk/src/z3ext/product/view.pt
===================================================================
--- z3ext.product/trunk/src/z3ext/product/view.pt	2008-08-05 14:17:31 UTC (rev 89393)
+++ z3ext.product/trunk/src/z3ext/product/view.pt	2008-08-05 14:36:48 UTC (rev 89394)
@@ -6,8 +6,11 @@
       <ul class="listing">
 	<li tal:repeat="product data/installed">
 	  <div class="icon">
-	    <input class="noborder" type="checkbox"
-                   name="products:list" tal:attributes="value product/name" />
+	    <input class="noborder" type="checkbox" name="products:list" 
+		   tal:attributes="value product/name"
+		   tal:condition="product/uninstallable" />
+	    <tal:block tal:condition="not:product/uninstallable">
+	      &nbsp;&nbsp;&nbsp;&nbsp;</tal:block>
 	    <img tal:replace="structure product/product/@@zmi_icon" />
 	  </div>
 	  <div class="details">
@@ -51,7 +54,7 @@
 	</li>
       </ul>
 
-      <div class="formControls">
+      <div class="formControls" tal:condition="data/hasUninstallable">
 	<input type="submit" class="z-form-button" name="update" value="Update" />
 	<input type="submit" class="z-form-removebutton" name="uninstall" value="Uninstall" />
       </div>

Modified: z3ext.product/trunk/src/z3ext/product/view.py
===================================================================
--- z3ext.product/trunk/src/z3ext/product/view.py	2008-08-05 14:17:31 UTC (rev 89393)
+++ z3ext.product/trunk/src/z3ext/product/view.py	2008-08-05 14:36:48 UTC (rev 89394)
@@ -38,16 +38,20 @@
 
         installed = []
         notinstalled = []
+        hasUninstallable = False
 
         for name, product in context.items():
             info = {'name': name,
                     'product': product,
                     'title': product.__title__,
-                    'description': product.__description__}
+                    'description': product.__description__,
+                    'uninstallable': product.isUninstallable()}
 
             if product.isInstalled():
                 info['configlet'] = product.isAvailable()
                 installed.append((product.__title__, info))
+                if info['uninstallable']:
+                    hasUninstallable = True
             else:
                 notinstalled.append((product.__title__, info))
 
@@ -57,7 +61,8 @@
         notinstalled.sort()
         notinstalled = [info for t, info in notinstalled]
 
-        return {'installed': installed, 'notinstalled': notinstalled}
+        return {'installed': installed, 'notinstalled': notinstalled,
+                'hasUninstallable': hasUninstallable}
 
     def getExtensions(self, product):
         extensions = []



More information about the Checkins mailing list