[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