[Erp5-report] r21119 - /erp5/trunk/products/ERP5Type/DocumentationHelper/

nobody at svn.erp5.org nobody at svn.erp5.org
Mon May 26 11:12:27 CEST 2008


Author: seb
Date: Mon May 26 11:12:26 2008
New Revision: 21119

URL: http://svn.erp5.org?rev=21119&view=rev
Log:
Commit work done by Baye:
- Add Helper at site level
- make it more robust

Added:
    erp5/trunk/products/ERP5Type/DocumentationHelper/ERP5SiteDocumentationHelper.py
Modified:
    erp5/trunk/products/ERP5Type/DocumentationHelper/BusinessTemplateDocumentationHelper.py
    erp5/trunk/products/ERP5Type/DocumentationHelper/CatalogMethodDocumentationHelper.py
    erp5/trunk/products/ERP5Type/DocumentationHelper/DCWorkflowDocumentationHelper.py
    erp5/trunk/products/ERP5Type/DocumentationHelper/DCWorkflowScriptDocumentationHelper.py
    erp5/trunk/products/ERP5Type/DocumentationHelper/DocumentationHelper.py
    erp5/trunk/products/ERP5Type/DocumentationHelper/InteractionWorkflowDocumentationHelper.py
    erp5/trunk/products/ERP5Type/DocumentationHelper/PageTemplateDocumentationHelper.py
    erp5/trunk/products/ERP5Type/DocumentationHelper/PortalTypePropertySheetDocumentationHelper.py
    erp5/trunk/products/ERP5Type/DocumentationHelper/ScriptPythonDocumentationHelper.py
    erp5/trunk/products/ERP5Type/DocumentationHelper/ZSQLMethodDocumentationHelper.py
    erp5/trunk/products/ERP5Type/DocumentationHelper/__init__.py

Modified: erp5/trunk/products/ERP5Type/DocumentationHelper/BusinessTemplateDocumentationHelper.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Type/DocumentationHelper/BusinessTemplateDocumentationHelper.py?rev=21119&r1=21118&r2=21119&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Type/DocumentationHelper/BusinessTemplateDocumentationHelper.py (original)
+++ erp5/trunk/products/ERP5Type/DocumentationHelper/BusinessTemplateDocumentationHelper.py Mon May 26 11:12:26 2008
@@ -162,7 +162,7 @@
   def getPortalTypeIdList(self):
     """
     """
-    return self.getDocumentedObject().template_portal_type_id
+    return getattr(self.getDocumentedObject(), 'template_portal_type_id', [])
 
   security.declareProtected( Permissions.AccessContentsInformation, 'getPortalTypeURIList' )
   def getPortalTypeURIList(self):
@@ -176,7 +176,7 @@
   def getSkinFolderIdList(self):
     """
     """
-    return self.getDocumentedObject().template_skin_id
+    return getattr(self.getDocumentedObject(), 'template_skin_id', [])
 
   security.declareProtected( Permissions.AccessContentsInformation, 'getSkinFolderURIList' )
   def getSkinFolderURIList(self):
@@ -191,7 +191,8 @@
     """
     """
     dc_workflow_list = []
-    for wf in self.getDocumentedObject().template_workflow_id:
+    #for wf in self.getDocumentedObject().template_workflow_id:
+    for wf in getattr(self.getDocumentedObject(), 'template_workflow_id', []):
       url = '/' + self.getPortalObject().id + '/portal_workflow/' + wf 	    
       wf_object = self.getPortalObject().unrestrictedTraverse(url)
       if wf_object.__class__.__name__ == 'DCWorkflowDefinition':
@@ -211,7 +212,7 @@
     """
     """
     workflow_list = []
-    for wf in self.getDocumentedObject().template_workflow_id:
+    for wf in getattr(self.getDocumentedObject(), 'template_workflow_id', []):
       url = '/' + self.getPortalObject().id + '/portal_workflow/' + wf
       wf_object = self.getPortalObject().unrestrictedTraverse(url)
       if wf_object.__class__.__name__ == 'InteractionWorkflowDefinition':
@@ -230,7 +231,7 @@
   def getBaseCategoryList(self):
     """
     """
-    return self.getDocumentedObject().template_base_category
+    return getattr(self.getDocumentedObject(), 'template_base_category', [])
 
   security.declareProtected( Permissions.AccessContentsInformation, 'getPortalTypeURIList' )
   def getBaseCategoryURIList(self):
@@ -244,7 +245,7 @@
   def getModuleIdList(self):
     """
     """
-    return self.getDocumentedObject().template_module_id
+    return getattr(self.getDocumentedObject(), 'template_module_id', [])
 
   security.declareProtected( Permissions.AccessContentsInformation, 'getModuleURIList' )
   def getModuleURIList(self):
@@ -258,7 +259,7 @@
   def getCatalogMethodIdList(self):
     """
     """
-    return self.getDocumentedObject().template_catalog_method_id
+    return getattr(self.getDocumentedObject(), 'template_catalog_method_id', [])
 
   security.declareProtected( Permissions.AccessContentsInformation, 'getCatalogMethodURIList' )
   def getCatalogMethodURIList(self):

Modified: erp5/trunk/products/ERP5Type/DocumentationHelper/CatalogMethodDocumentationHelper.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Type/DocumentationHelper/CatalogMethodDocumentationHelper.py?rev=21119&r1=21118&r2=21119&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Type/DocumentationHelper/CatalogMethodDocumentationHelper.py (original)
+++ erp5/trunk/products/ERP5Type/DocumentationHelper/CatalogMethodDocumentationHelper.py Mon May 26 11:12:26 2008
@@ -68,10 +68,10 @@
     """
     Returns the source code of the documentation helper
     """
+    from zLOG import LOG, INFO
     source_code = self.getDocumentedObject().src
-    if hasattr(self.erp5, 'portal_transforms'):
-      portal_transforms = self.erp5.portal_transforms
-    else:
+    portal_transforms = getattr(self, 'portal_transforms', None)
+    if portal_transforms is None:
       LOG('DCWorkflowScriptDocumentationHelper', INFO,
           'Transformation Tool is not installed. No convertion of text to html')
       return source_code

Modified: erp5/trunk/products/ERP5Type/DocumentationHelper/DCWorkflowDocumentationHelper.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Type/DocumentationHelper/DCWorkflowDocumentationHelper.py?rev=21119&r1=21118&r2=21119&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Type/DocumentationHelper/DCWorkflowDocumentationHelper.py (original)
+++ erp5/trunk/products/ERP5Type/DocumentationHelper/DCWorkflowDocumentationHelper.py Mon May 26 11:12:26 2008
@@ -90,14 +90,16 @@
     """
     Returns the title of the documentation helper
     """
-    return self.getInstance().__dict__["title"]
+    return self.getInstance().title
 
   security.declareProtected( Permissions.AccessContentsInformation, 'getDescription' )
   def getDescription(self):
     """
     Returns the description of the documentation helper
     """
-    return self.getInstance().__dict__["description"]
+    #return self.getInstance().__dict__["description"]
+    return self.getInstance().description
+
 
 
   security.declareProtected( Permissions.AccessContentsInformation, 'getSectionList' )

Modified: erp5/trunk/products/ERP5Type/DocumentationHelper/DCWorkflowScriptDocumentationHelper.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Type/DocumentationHelper/DCWorkflowScriptDocumentationHelper.py?rev=21119&r1=21118&r2=21119&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Type/DocumentationHelper/DCWorkflowScriptDocumentationHelper.py (original)
+++ erp5/trunk/products/ERP5Type/DocumentationHelper/DCWorkflowScriptDocumentationHelper.py Mon May 26 11:12:26 2008
@@ -84,13 +84,16 @@
     """
     Returns the source code the workflow script
     """
+    from zLOG import LOG, INFO
     source_code = ""
     wf_script = self.getDocumentedObject()
-    if hasattr(wf_script, '__dict__'):
-      if '_body' in wf_script.__dict__.keys():
-        source_code = wf_script.__dict__['_body']
-    if hasattr(self.erp5, 'portal_transforms'):	
-      portal_transforms = self.erp5.portal_transforms
+    source_code = wf_script.document_src()
+    portal_transforms = getattr(self, 'portal_transforms', None)
+    if portal_transforms is not None:
+      REQUEST = getattr(self, 'REQUEST', None)
+      if REQUEST is not None:
+        if REQUEST.get('portal_skin', 'View' ) != 'View':
+	  return source_code	
     else:
       LOG('DCWorkflowScriptDocumentationHelper', INFO, 
 	  'Transformation Tool is not installed. No convertion of python script to html')	    

Modified: erp5/trunk/products/ERP5Type/DocumentationHelper/DocumentationHelper.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Type/DocumentationHelper/DocumentationHelper.py?rev=21119&r1=21118&r2=21119&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Type/DocumentationHelper/DocumentationHelper.py (original)
+++ erp5/trunk/products/ERP5Type/DocumentationHelper/DocumentationHelper.py Mon May 26 11:12:26 2008
@@ -58,8 +58,8 @@
 
   def getDocumentedObject(self):
     if self.uri.startswith('portal_classes/temp_instance'):
-      url, method = self.uri.split('#')	   
-      portal_type = url.split('/')[-1] 	  
+      url, method = self.uri.split('#')           
+      portal_type = url.split('/')[-1]           
       temp_folder = self.getPortalObject().portal_classes.newContent(id='temp_instance', portal_type='Folder', temp_object=1)
       temp_object = temp_folder.newContent(id=portal_type, portal_type=portal_type, temp_object=1)
       if '/' not in method:
@@ -76,11 +76,11 @@
       zope_property_sheet = instance_home + '/PropertySheet' 
       list_propertysheets = [zope_property_sheet,]
       for path in list_path:
-	full_path = instance_home+'/Products/'+path      
+        full_path = instance_home+'/Products/'+path      
         if os.path.isdir(full_path) and os.path.exists(full_path+'/PropertySheet'): 
           list_propertysheets.append(full_path+'/PropertySheet')
       for propertysheet_directory in list_propertysheets:
-	if os.path.exists(propertysheet_directory+'/'+file_name):	      
+        if os.path.exists(propertysheet_directory+'/'+file_name):              
           file_url = propertysheet_directory+'/'+file_name
       documented_object = open(file_url)
     elif '/' in self.uri and '#' not in self.uri:
@@ -89,20 +89,20 @@
       try:
         documented_object = self.getPortalObject().portal_categories.resolveCategory(self.uri)
       except:
-	documented_object = None      
+        documented_object = None      
       if documented_object is None:
- 	documented_object = self.getPortalObject().unrestrictedTraverse(self.uri)
+         documented_object = self.getPortalObject().unrestrictedTraverse(self.uri)
     elif '/' in self.uri and '#' in self.uri:
       if '?' in self.uri:
-	base_url, url = self.uri.split('?')
-	type, name = url.split('#')
-	parent_object = self.getPortalObject().unrestrictedTraverse(base_url)
-	object_list = getattr(parent_object, type, None)
-	documented_object = None
-	if object_list is not None:
+        base_url, url = self.uri.split('?')
+        type, name = url.split('#')
+        parent_object = self.getPortalObject().unrestrictedTraverse(base_url)
+        object_list = getattr(parent_object, type, None)
+        documented_object = None
+        if object_list is not None:
           for obj in object_list:
-	    if obj.__name__ == name:
-	      documented_object = obj    
+            if obj.__name__ == name:
+              documented_object = obj    
       else:
         url, method = self.uri.split('#')
         documented_object = self.getPortalObject().unrestrictedTraverse(url)

Added: erp5/trunk/products/ERP5Type/DocumentationHelper/ERP5SiteDocumentationHelper.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Type/DocumentationHelper/ERP5SiteDocumentationHelper.py?rev=21119&view=auto
==============================================================================
--- erp5/trunk/products/ERP5Type/DocumentationHelper/ERP5SiteDocumentationHelper.py (added)
+++ erp5/trunk/products/ERP5Type/DocumentationHelper/ERP5SiteDocumentationHelper.py Mon May 26 11:12:26 2008
@@ -1,0 +1,132 @@
+
+##############################################################################
+#
+# Copyright (c) 2007-2008 Nexedi SA and Contributors. All Rights Reserved.
+#                    Jean-Paul Smets-Solanes <jp at nexedi.com>
+#
+# WARNING: This program as such is intended to be used by professional
+# programmers who take the whole responsability of assessing all potential
+# consequences resulting from its eventual inadequacies and bugs
+# End users who are looking for a ready-to-use solution with commercial
+# garantees and support are strongly adviced to contract a Free Software
+# Service Company
+#
+# This program is Free Software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+#
+##############################################################################
+
+from Acquisition import Implicit
+from AccessControl import ClassSecurityInfo
+from Globals import InitializeClass
+from DocumentationHelper import DocumentationHelper
+from DocumentationSection import DocumentationSection
+from Products.ERP5Type import Permissions
+from zLOG import LOG, INFO
+
+class ERP5SiteDocumentationHelper(DocumentationHelper):
+  """
+    Provides access to all documentation information
+    of an ERP5 Site.
+  """
+
+  security = ClassSecurityInfo()
+  security.declareObjectProtected(Permissions.AccessContentsInformation)
+
+  # API Implementation
+  security.declareProtected( Permissions.AccessContentsInformation, 'getTitle' )
+  def getTitle(self):
+    """
+    Returns the title of the documentation helper
+    """
+    return self.getDocumentedObject().title
+
+  security.declareProtected( Permissions.AccessContentsInformation, 'getType' )
+  def getType(self):
+    """
+    Returns the type of the documentation helper
+    """
+    return "ERP5 Site"
+
+  security.declareProtected( Permissions.AccessContentsInformation, 'getSectionList' )
+  def getSectionList(self):
+    """
+    Returns a list of documentation sections
+    """
+    return map(lambda x: x.__of__(self), [
+      DocumentationSection(
+        id='business_template',
+        title='Business Template',
+        class_name='BusinessTemplateDocumentationHelper',
+        uri_list=self.getBusinessTemplateUriList(),
+      ),
+    ])
+
+  # Specific methods
+  security.declareProtected( Permissions.AccessContentsInformation, 'getDescription' )
+  def getDescription(self):
+    """
+    Returns the description of the documentation helper
+    """
+    return self.getDocumentedObject().description
+  
+  security.declareProtected( Permissions.AccessContentsInformation, 'getBusinessTemplateIdList' )
+  def getBusinessTemplateIdList(self):
+    """
+    """
+    bt_list = []
+    for bt in self.getDocumentedObject().portal_templates.objectValues():
+      current_state = ''
+      for wh in bt.workflow_history['business_template_installation_workflow']:	
+	current_state = wh['installation_state']      
+      if current_state == 'installed': 	      
+        bt_list.append(bt.getId())
+    return bt_list
+
+  security.declareProtected( Permissions.AccessContentsInformation, 'getBusinessTemplateItemList' )
+  def getBusinessTemplateItemList(self):
+    """
+    """
+    bt_list = []
+    for bt in self.getDocumentedObject().portal_templates.objectValues():
+      revision = ""
+      version = "" 	    
+      if hasattr(bt, 'revision'):
+        revision = bt.revision
+      if hasattr(bt, 'version'):
+	version = bt.version   
+      current_state = ''
+      for wh in bt.workflow_history['business_template_installation_workflow']:
+        current_state = wh['installation_state']
+      if current_state == 'installed':	
+        bt_list.append((bt.getId(), bt.title, bt.description, version, revision))
+    return bt_list
+
+  security.declareProtected( Permissions.AccessContentsInformation, 'getBusinessTemplateURIList' )
+  def getBusinessTemplateURIList(self):
+    """
+    """
+    bt_list = self.getBusinessTemplateItemList()
+    base_uri = '/'+self.uri.split('/')[1]
+    return map(lambda x: ('%s/portal_templates/%s' % (base_uri, x[0]),x[1], x[2], x[3], x[4]), bt_list)
+
+  security.declareProtected( Permissions.AccessContentsInformation, 'getBusinessTemplateUriList' )
+  def getBusinessTemplateUriList(self):
+    """
+    """
+    bt_list = self.getBusinessTemplateItemList()
+    base_uri = '/'+self.uri.split('/')[1]
+    return map(lambda x: ('%s/portal_templates/%s' % (base_uri, x[0])), bt_list)
+
+InitializeClass(ERP5SiteDocumentationHelper)

Modified: erp5/trunk/products/ERP5Type/DocumentationHelper/InteractionWorkflowDocumentationHelper.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Type/DocumentationHelper/InteractionWorkflowDocumentationHelper.py?rev=21119&r1=21118&r2=21119&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Type/DocumentationHelper/InteractionWorkflowDocumentationHelper.py (original)
+++ erp5/trunk/products/ERP5Type/DocumentationHelper/InteractionWorkflowDocumentationHelper.py Mon May 26 11:12:26 2008
@@ -90,14 +90,14 @@
     """
     Returns the title of the documentation helper
     """
-    return self.getInstance().__dict__["title"]
+    return self.getInstance().title
 
   security.declareProtected( Permissions.AccessContentsInformation, 'getDescription' )
   def getDescription(self):
     """
     Returns the description of the documentation helper
     """
-    return self.getInstance().__dict__["description"]
+    return self.getInstance().description
 
 
   security.declareProtected( Permissions.AccessContentsInformation, 'getSectionList' )

Modified: erp5/trunk/products/ERP5Type/DocumentationHelper/PageTemplateDocumentationHelper.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Type/DocumentationHelper/PageTemplateDocumentationHelper.py?rev=21119&r1=21118&r2=21119&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Type/DocumentationHelper/PageTemplateDocumentationHelper.py (original)
+++ erp5/trunk/products/ERP5Type/DocumentationHelper/PageTemplateDocumentationHelper.py Mon May 26 11:12:26 2008
@@ -68,10 +68,10 @@
     """
     Returns the source code the script python
     """
+    from zLOG import LOG, INFO
     source_code = self.getDocumentedObject()._text
-    if hasattr(self.erp5, 'portal_transforms'):	
-      portal_transforms = self.erp5.portal_transforms
-    else:
+    portal_transforms = getattr(self, 'portal_transforms', None)
+    if portal_transforms is None:
       LOG('DCWorkflowScriptDocumentationHelper', INFO, 
 	  'Transformation Tool is not installed. No convertion of python script to html')	    
       return source_code

Modified: erp5/trunk/products/ERP5Type/DocumentationHelper/PortalTypePropertySheetDocumentationHelper.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Type/DocumentationHelper/PortalTypePropertySheetDocumentationHelper.py?rev=21119&r1=21118&r2=21119&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Type/DocumentationHelper/PortalTypePropertySheetDocumentationHelper.py (original)
+++ erp5/trunk/products/ERP5Type/DocumentationHelper/PortalTypePropertySheetDocumentationHelper.py Mon May 26 11:12:26 2008
@@ -68,14 +68,14 @@
     """
     Returns the source code the property sheet
     """
+    from zLOG import LOG, INFO
     source_code = ""
     property_sheet_file = self.getDocumentedObject()
     if property_sheet_file is not None:
       property_sheet_file.seek(0)	    
       source_code = property_sheet_file.read()
-      if hasattr(self.erp5, 'portal_transforms'):	
-        portal_transforms = self.erp5.portal_transforms
-      else:
+      portal_transforms = getattr(self, 'portal_transforms', None)
+      if portal_transforms is not None:
         LOG('DCWorkflowScriptDocumentationHelper', INFO, 
 	  'Transformation Tool is not installed. No convertion of python script to html')	    
         return source_code

Modified: erp5/trunk/products/ERP5Type/DocumentationHelper/ScriptPythonDocumentationHelper.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Type/DocumentationHelper/ScriptPythonDocumentationHelper.py?rev=21119&r1=21118&r2=21119&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Type/DocumentationHelper/ScriptPythonDocumentationHelper.py (original)
+++ erp5/trunk/products/ERP5Type/DocumentationHelper/ScriptPythonDocumentationHelper.py Mon May 26 11:12:26 2008
@@ -68,10 +68,10 @@
     """
     Returns the source code the script python
     """
+    from zLOG import LOG, INFO
     source_code = self.getDocumentedObject()._body
-    if hasattr(self.erp5, 'portal_transforms'):	
-      portal_transforms = self.erp5.portal_transforms
-    else:
+    portal_transforms = getattr(self, 'portal_transforms', None)
+    if portal_transforms is None:
       LOG('DCWorkflowScriptDocumentationHelper', INFO, 
 	  'Transformation Tool is not installed. No convertion of python script to html')	    
       return source_code

Modified: erp5/trunk/products/ERP5Type/DocumentationHelper/ZSQLMethodDocumentationHelper.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Type/DocumentationHelper/ZSQLMethodDocumentationHelper.py?rev=21119&r1=21118&r2=21119&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Type/DocumentationHelper/ZSQLMethodDocumentationHelper.py (original)
+++ erp5/trunk/products/ERP5Type/DocumentationHelper/ZSQLMethodDocumentationHelper.py Mon May 26 11:12:26 2008
@@ -68,10 +68,10 @@
     """
     Returns the source code of the documentation helper
     """
+    from zLOG import LOG, INFO
     source_code = self.getDocumentedObject().src
-    if hasattr(self.erp5, 'portal_transforms'):
-      portal_transforms = self.erp5.portal_transforms
-    else:
+    portal_transforms = getattr(self, 'portal_transforms', None)
+    if portal_transforms is None:
       LOG('DCWorkflowScriptDocumentationHelper', INFO,
           'Transformation Tool is not installed. No convertion of text to html')
       return source_code

Modified: erp5/trunk/products/ERP5Type/DocumentationHelper/__init__.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Type/DocumentationHelper/__init__.py?rev=21119&r1=21118&r2=21119&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Type/DocumentationHelper/__init__.py (original)
+++ erp5/trunk/products/ERP5Type/DocumentationHelper/__init__.py Mon May 26 11:12:26 2008
@@ -60,4 +60,5 @@
 from ERP5FormDocumentationHelper import ERP5FormDocumentationHelper
 from PageTemplateDocumentationHelper import PageTemplateDocumentationHelper
 from ZSQLMethodDocumentationHelper import ZSQLMethodDocumentationHelper
+from ERP5SiteDocumentationHelper import ERP5SiteDocumentationHelper
 




More information about the Erp5-report mailing list