diff --git a/product/ERP5Type/DocumentationHelper/AccessorMethodDocumentationHelper.py b/product/ERP5Type/DocumentationHelper/AccessorMethodDocumentationHelper.py index fdf96543dc7cb11b8016d8f276e9abce5e2ca485..132e4175210d8f7cd9c24e8abff24a005384c0ab 100644 --- a/product/ERP5Type/DocumentationHelper/AccessorMethodDocumentationHelper.py +++ b/product/ERP5Type/DocumentationHelper/AccessorMethodDocumentationHelper.py @@ -26,48 +26,11 @@ # ############################################################################## -from Acquisition import Implicit from AccessControl import ClassSecurityInfo from Globals import InitializeClass -from DocumentationHelper import DocumentationHelper +from DocumentationHelper import DocumentationHelper, getCallableSignatureString from Products.ERP5Type import Permissions -#return the definition string of an object representing a workflow method or a class method or an accessor -def getDefinitionString(obj=None): - if obj is None: - return "" - func_code = getattr(obj, "func_code", None) - if func_code is None: - return "" - fc_var_names = getattr(func_code, "co_varnames", []) - fc = [] - for i in range(len(fc_var_names)): - if fc_var_names[i] == 'args': - fc.append('*args') - elif fc_var_names[i] == 'kw': - fc.append('**kw') - else: - fc.append(fc_var_names[i]) - fd = obj.func_defaults - acc_def = obj.__name__ + ' (' - if fd == None: - acc_def += ', '.join(fc) - else: - for x in range(len(fc)): - if (len(fc)-(x+1)<len(fd)): - if (x == len(fc)-1): - acc_def += " "+str(fc[x])+"='"+str(fd[x-len(fd)])+"'" - else: - acc_def += " "+str(fc[x])+"='"+str(fd[x-len(fd)])+"'," - else: - if (x == len(fc)-1): - acc_def += " "+str(fc[x]) - else: - acc_def += " "+str(fc[x])+"," - acc_def += ")" - return acc_def - - class AccessorMethodDocumentationHelper(DocumentationHelper): """ Provides documentation about an accessor @@ -75,54 +38,55 @@ class AccessorMethodDocumentationHelper(DocumentationHelper): security = ClassSecurityInfo() security.declareObjectProtected(Permissions.AccessContentsInformation) - def __init__(self, uri): - self.uri = uri + security.declareProtected(Permissions.AccessContentsInformation, 'getTitle') + def getTitle(self): + """ + """ + obj = self.getDocumentedObject() + if obj is not None: + return obj.__name__ security.declareProtected(Permissions.AccessContentsInformation, 'getDescription') def getDescription(self): - return getattr(self.getDocumentedObject(), "__doc__", "") + """ + """ + obj = self.getDocumentedObject() + if obj is not None: + return obj.__doc__ - security.declareProtected( Permissions.AccessContentsInformation, 'getType' ) + security.declareProtected(Permissions.AccessContentsInformation, 'getType') def getType(self): """ Returns the type of the documentation helper """ return "Accessor Method" - security.declareProtected( Permissions.AccessContentsInformation, 'getTitle' ) - def getTitle(self): - """ - Returns the title of the documentation helper - """ - return getattr(self.getDocumentedObject(), "__name__", "") - - security.declareProtected(Permissions.AccessContentsInformation, 'getSectionList') - def getSectionList(self): - """ - Returns a list of documentation sections for accessors - """ - return [] - - security.declareProtected( Permissions.AccessContentsInformation, 'getArgCount' ) + security.declareProtected(Permissions.AccessContentsInformation, 'getArgCount') def getArgCount(self): """ Returns the number of args of the accessor """ - return self.getDocumentedObject().func_code.co_argcount + obj = self.getDocumentedObject() + if obj is not None: + return obj.func_code.co_argcount - security.declareProtected( Permissions.AccessContentsInformation, 'getVarNames' ) + security.declareProtected(Permissions.AccessContentsInformation, 'getVarNames') def getVarNames(self): """ Returns the list of args of the accessor """ - return self.getDocumentedObject().func_code.co_varnames + obj = self.getDocumentedObject() + if obj is not None: + return obj.func_code.co_varnames - security.declareProtected( Permissions.AccessContentsInformation, 'getDefinition' ) + security.declareProtected(Permissions.AccessContentsInformation, 'getDefinition') def getDefinition(self): """ Returns the definition of the accessor_method with the name and arguments """ - return getDefinitionString(self.getDocumentedObject()) + obj = self.getDocumentedObject() + if obj is not None: + return getCallableSignatureString(obj) InitializeClass(AccessorMethodDocumentationHelper) diff --git a/product/ERP5Type/DocumentationHelper/BaseCategoryDocumentationHelper.py b/product/ERP5Type/DocumentationHelper/BaseCategoryDocumentationHelper.py index a7d5e715813f80e683bfc96910be1d94e5fc12ac..7f55e24e8d0a4d184054d304bc1e547fa3f7ba3a 100644 --- a/product/ERP5Type/DocumentationHelper/BaseCategoryDocumentationHelper.py +++ b/product/ERP5Type/DocumentationHelper/BaseCategoryDocumentationHelper.py @@ -26,7 +26,6 @@ # ############################################################################## -from Acquisition import Implicit from AccessControl import ClassSecurityInfo from Globals import InitializeClass from DocumentationHelper import DocumentationHelper @@ -38,32 +37,28 @@ class BaseCategoryDocumentationHelper(DocumentationHelper): Provides access to all documentation information of a portal type instance. """ - security = ClassSecurityInfo() security.declareObjectProtected(Permissions.AccessContentsInformation) - def __init__(self, uri): - self.uri = uri - - def getInstance(self): - return self.getPortalObject().restrictedTraverse(self.uri) - - # API Implementation - security.declareProtected( Permissions.AccessContentsInformation, 'getTitle' ) - def getTitle(self): - """ - Returns the title of the documentation helper - """ - return self.getInstance().getTitleOrId() - - security.declareProtected( Permissions.AccessContentsInformation, 'getDescription' ) - def getDescription(self): - """ - Returns the title of the documentation helper - """ - return getattr(self.getInstance(), 'description', '') - - security.declareProtected( Permissions.AccessContentsInformation, 'getType' ) + _section_list = ( + dict( + id='workflow_method', + title='Workflow Method', + class_name='WorkflowMethodDocumentationHelper', + ), + dict( + id='accessor_method', + title='Accessor', + class_name='AccessorMethodDocumentationHelper', + ), + dict( + id='class_method', + title='Class Methods', + class_name='ClassMethodDocumentationHelper', + ), + ) + + security.declareProtected(Permissions.AccessContentsInformation, 'getType') def getType(self): """ Returns the type of the documentation helper @@ -75,208 +70,173 @@ class BaseCategoryDocumentationHelper(DocumentationHelper): """ Returns the value of acquisition append value of the documented base category """ - return self.getInstance().getAcquisitionAppendValue() and 'True' or 'False' + return self.getDocumentedObject().getAcquisitionAppendValue() and 'True' or 'False' security.declareProtected(Permissions.AccessContentsInformation, 'getAcquisitionMaskValue') def getAcquisitionMaskValue(self): """ Returns the value of acquisition mask value of the documented base category """ - return self.getInstance().getAcquisitionMaskValue() and 'True' or 'False' + return self.getDocumentedObject().getAcquisitionMaskValue() and 'True' or 'False' security.declareProtected(Permissions.AccessContentsInformation, 'getAcquisitionCopyValue') def getAcquisitionCopyValue(self): """ Returns the value of acquisition copy value of the documented base category """ - return self.getInstance().getAcquisitionCopyValue() and 'True' or 'False' + return self.getDocumentedObject().getAcquisitionCopyValue() and 'True' or 'False' security.declareProtected(Permissions.AccessContentsInformation, 'getAcquisitionSyncValue') def getAcquisitionSyncValue(self): """ Returns the value of acquisition sync value of the documented base category """ - return self.getInstance().getAcquisitionSyncValue() and 'True' or 'False' + return self.getDocumentedObject().getAcquisitionSyncValue() and 'True' or 'False' security.declareProtected(Permissions.AccessContentsInformation, 'getAcquisitionBaseCategoryList') def getAcquisitionBaseCategoryList(self): """ Returns the acquisition base categories of the documented base category """ - return getattr(self.getInstance(), 'acquisition_base_category', []) + return getattr(self.getDocumentedObject(), 'acquisition_base_category', []) security.declareProtected(Permissions.AccessContentsInformation, 'getAcquisitionObjectIds') def getAcquisitionObjectIds(self): """ Returns the acquisitions ids of the documented base category """ - return getattr(self.getInstance(), 'acquisition_object_id', []) + return getattr(self.getDocumentedObject(), 'acquisition_object_id', []) security.declareProtected(Permissions.AccessContentsInformation, 'getAcquisitionPortalType') def getAcquisitionPortalType(self): """ Returns the acquisitions ids of the documented base category """ - return getattr(self.getInstance(), 'acquisition_portal_type', '') + return getattr(self.getDocumentedObject(), 'acquisition_portal_type', '') security.declareProtected(Permissions.AccessContentsInformation, 'getAcquisitionCategoryType') def getAcquisitionCategoryType(self): """ Returns the acquisitions ids of the documented base category """ - return getattr(self.getInstance(), 'category_type', []) - - security.declareProtected( Permissions.AccessContentsInformation, 'getSectionList' ) - def getSectionList(self): - """ - Returns a list of documentation sections - """ - return [ - DocumentationSection( - id='workflow_method', - title='Workflow Method', - class_name='WorkflowMethodDocumentationHelper', - uri_list=self.getWorkflowMethodURIList(inherited=0), - ), - DocumentationSection( - id='accessor', - title='Accessor', - class_name='AccessorMethodDocumentationHelper', - uri_list=self.getAccessorMethodURIList(inherited=0), - ), - DocumentationSection( - id='class_method', - title='Class Methods', - class_name='ClassMethodDocumentationHelper', - uri_list=self.getClassMethodURIList(inherited=0), - ).__of__(self.getInstance()), - ] + return getattr(self.getDocumentedObject(), 'category_type', []) # Specific methods - security.declareProtected( Permissions.AccessContentsInformation, 'getPortalType' ) + security.declareProtected(Permissions.AccessContentsInformation, 'getPortalType') def getPortalType(self): """ """ - return self.getInstance().getPortalType() - - def _getPropertyHolder(self): - from Products.ERP5Type.Base import Base - property_holder = None - key = (self.getPortalType(), self.getInstance().__class__) - if not(Base.aq_portal_type.has_key(key)): - self.getInstance().initializePortalTypeDynamicProperties() - property_holder = Base.aq_portal_type[(self.getPortalType(), self.getInstance().__class__)] - return property_holder + return self.getDocumentedObject().getPortalType() - security.declareProtected( Permissions.AccessContentsInformation, 'getAccessorMethodItemList' ) + security.declareProtected(Permissions.AccessContentsInformation, 'getAccessorMethodItemList') def getAccessorMethodItemList(self): """ """ return self._getPropertyHolder().getAccessorMethodItemList() - security.declareProtected( Permissions.AccessContentsInformation, 'getAccessorMethodIdList' ) - def getAccessorMethodIdList(self, inherited=1): + security.declareProtected(Permissions.AccessContentsInformation, 'getAccessorMethodIdList') + def getAccessorMethodIdList(self): """ """ return self._getPropertyHolder().getAccessorMethodIdList() - security.declareProtected( Permissions.AccessContentsInformation, 'getAccessorMethodURIList' ) - def getAccessorMethodURIList(self, inherited=1, local=1): + security.declareProtected(Permissions.AccessContentsInformation, 'getAccessorMethodUriList') + def getAccessorMethodUriList(self): """ Returns a list of URIs to accessor methods """ - method_id_list = self.getAccessorMethodIdList(inherited=inherited) - klass = self.getInstance().__class__ + method_id_list = self.getAccessorMethodIdList() + klass = self.getDocumentedObject().__class__ class_name = klass.__name__ module = klass.__module__ uri_prefix = '%s.%s.' % (module, class_name) return map(lambda x: '%s%s' % (uri_prefix, x), method_id_list) - security.declareProtected(Permissions.AccessContentsInformation, 'getWorkflowMethodItemList' ) + security.declareProtected(Permissions.AccessContentsInformation, 'getWorkflowMethodItemList') def getWorkflowMethodItemList(self): """ """ return self._getPropertyHolder().getWorkflowMethodItemList() - security.declareProtected(Permissions.AccessContentsInformation, 'getWorkflowObject' ) + security.declareProtected(Permissions.AccessContentsInformation, 'getWorkflowObject') def getWorkflowObject(self): """ """ return self._getPropertyHolder() - security.declareProtected(Permissions.AccessContentsInformation, 'getWorkflowMethodIdList' ) - def getWorkflowMethodIdList(self, inherited=1): + security.declareProtected(Permissions.AccessContentsInformation, 'getWorkflowMethodIdList') + def getWorkflowMethodIdList(self): """ """ return self._getPropertyHolder().getWorkflowMethodIdList() - security.declareProtected(Permissions.AccessContentsInformation, 'getWorkflowMethodURIList' ) - def getWorkflowMethodURIList(self, inherited=1, local=1): + security.declareProtected(Permissions.AccessContentsInformation, 'getWorkflowMethodUriList') + def getWorkflowMethodUriList(self): """ Returns a list of URIs to workflow methods """ method_id_list = self.getWorkflowMethodIdList() - klass = self.getInstance().__class__ + klass = self.getDocumentedObject().__class__ class_name = klass.__name__ module = klass.__module__ uri_prefix = '' #'%s.%s.' % (module, class_name) return map(lambda x: '%s%s' % (uri_prefix, x), method_id_list) - security.declareProtected(Permissions.AccessContentsInformation, 'getActionMethodItemList' ) + security.declareProtected(Permissions.AccessContentsInformation, 'getActionMethodItemList') def getActionMethodItemList(self): """ """ return self._getPropertyHolder().getActionMethodItemList() - security.declareProtected( Permissions.AccessContentsInformation, 'getActionMethodIdList' ) + security.declareProtected(Permissions.AccessContentsInformation, 'getActionMethodIdList') def getActionMethodIdList(self): """ """ return self._getPropertyHolder().getActionMethodIdList() - security.declareProtected( Permissions.AccessContentsInformation, 'getClassMethodItemList' ) - def getClassMethodItemList(self, inherited=1, local=1): + security.declareProtected(Permissions.AccessContentsInformation, 'getClassMethodItemList') + def getClassMethodItemList(self, **kw): """ Return a list of tuple (id, method) for every class method """ - klass = self.getInstance().__class__ - return self._getPropertyHolder().getClassMethodItemList(klass, inherited=inherited, local=local) + klass = self.getDocumentedObject().__class__ + return self._getPropertyHolder().getClassMethodItemList(klass, **kw) - security.declareProtected( Permissions.AccessContentsInformation, 'getClassMethodIdList' ) - def getClassMethodIdList(self, inherited=1, local=1): + security.declareProtected(Permissions.AccessContentsInformation, 'getClassMethodIdList') + def getClassMethodIdList(self, **kw): """ Return a list of tuple (id, method) for every class method """ - klass = self.getInstance().__class__ - return self._getPropertyHolder().getClassMethodIdList(klass, inherited=inherited, local=local) + klass = self.getDocumentedObject().__class__ + return self._getPropertyHolder().getClassMethodIdList(klass, **kw) - security.declareProtected( Permissions.AccessContentsInformation, 'getClassMethodURIList' ) - def getClassMethodURIList(self, inherited=1, local=1): + security.declareProtected(Permissions.AccessContentsInformation, 'getClassMethodUriList') + def getClassMethodUriList(self, inherited=0, **kw): """ Returns a list of URIs to class methods """ - method_id_list = self.getClassMethodIdList(inherited=inherited, local=local) - klass = self.getInstance().__class__ + method_id_list = self.getClassMethodIdList(inherited=inherited, **kw) + klass = self.getDocumentedObject().__class__ class_name = klass.__name__ module = klass.__module__ uri_prefix = '%s.%s.' % (module, class_name) return map(lambda x: '%s%s' % (uri_prefix, x), method_id_list) - security.declareProtected( Permissions.AccessContentsInformation, 'getClassPropertyItemList' ) - def getClassPropertyItemList(self, inherited=1, local=1): + security.declareProtected(Permissions.AccessContentsInformation, 'getClassPropertyItemList') + def getClassPropertyItemList(self, **kw): """ Return a list of tuple (id, method) for every class method """ - klass = self.getInstance().__class__ - return self._getPropertyHolder().getClassPropertyItemList(klass, inherited=inherited, local=local) + klass = self.getDocumentedObject().__class__ + return self._getPropertyHolder().getClassPropertyItemList(klass, **kw) - security.declareProtected( Permissions.AccessContentsInformation, 'getClassPropertyIdList' ) - def getClassPropertyIdList(self, inherited=1, local=1): + security.declareProtected(Permissions.AccessContentsInformation, 'getClassPropertyIdList') + def getClassPropertyIdList(self, **kw): """ Return a list of tuple (id, method) for every class method """ - klass = self.getInstance().__class__ - return self._getPropertyHolder().getClassPropertyIdList(klass, inherited=inherited, local=local) + klass = self.getDocumentedObject().__class__ + return self._getPropertyHolder().getClassPropertyIdList(klass, **kw) InitializeClass(BaseCategoryDocumentationHelper) diff --git a/product/ERP5Type/DocumentationHelper/BusinessTemplateDocumentationHelper.py b/product/ERP5Type/DocumentationHelper/BusinessTemplateDocumentationHelper.py index cd52fc79e8f03a473e3eee426d422619beb8bf21..44e7fa88bdc29b3a25018e73f04e51314f96a057 100644 --- a/product/ERP5Type/DocumentationHelper/BusinessTemplateDocumentationHelper.py +++ b/product/ERP5Type/DocumentationHelper/BusinessTemplateDocumentationHelper.py @@ -27,7 +27,6 @@ # ############################################################################## -from Acquisition import Implicit from AccessControl import ClassSecurityInfo from Globals import InitializeClass from DocumentationHelper import DocumentationHelper @@ -39,140 +38,90 @@ class BusinessTemplateDocumentationHelper(DocumentationHelper): Provides access to all documentation information of a business template. """ - security = ClassSecurityInfo() security.declareObjectProtected(Permissions.AccessContentsInformation) - # API Implementation - security.declareProtected( Permissions.AccessContentsInformation, 'getTitle' ) - def getTitle(self): - """ - Returns the title of the documentation helper - """ - return getattr(self.getDocumentedObject(), 'title', '') - - security.declareProtected( Permissions.AccessContentsInformation, 'getType' ) + _section_list = ( + dict( + id='portal_type', + title='Portal Types', + class_name='PortalTypeDocumentationHelper', + ), + dict( + id='dc_workflow', + title='DC Workflows', + class_name='DCWorkflowDocumentationHelper', + ), + dict( + id='interaction_workflow', + title='Interaction Workflows', + class_name='InteractionWorkflowDocumentationHelper', + ), + dict( + id='skin_folder', + title='Skin Folders', + class_name='SkinFolderDocumentationHelper', + ), + dict( + id='module', + title='Module', + class_name='PortalTypeInstanceDocumentationHelper', + ), + dict( + id='catalog_method', + title='Catalog Method', + class_name='CatalogMethodDocumentationHelper', + ), + dict( + id='base_category', + title='Base Category', + class_name='BaseCategoryDocumentationHelper', + ), + ) + + security.declareProtected(Permissions.AccessContentsInformation, 'getType') def getType(self): """ Returns the type of the documentation helper """ return "Business Template" - security.declareProtected( Permissions.AccessContentsInformation, 'getSectionList' ) - def getSectionList(self): - """ - Returns a list of documentation sections - """ - section_list = [] - if self.getPortalTypeURIList() != []: - section_list.append( - DocumentationSection( - id='portal_type', - title='Portal Types', - class_name='PortalTypeDocumentationHelper', - uri_list=self.getPortalTypeURIList(), - ) - ) - if self.getDCWorkflowURIList() != []: - section_list.append( - DocumentationSection( - id='dc_workflow', - title='DC Workflows', - class_name='DCWorkflowDocumentationHelper', - uri_list=self.getDCWorkflowURIList(), - ) - ) - if self.getInteractionWorkflowURIList() != []: - section_list.append( - DocumentationSection( - id='interaction_workflow', - title='Interaction Workflows', - class_name='InteractionWorkflowDocumentationHelper', - uri_list=self.getInteractionWorkflowURIList(), - ) - ) - if self.getSkinFolderURIList() != []: - section_list.append( - DocumentationSection( - id='skin_folder', - title='Skin Folders', - class_name='SkinFolderDocumentationHelper', - uri_list=self.getSkinFolderURIList(), - ) - ) - if self.getModuleURIList() != []: - section_list.append( - DocumentationSection( - id='module', - title='Module', - class_name='PortalTypeInstanceDocumentationHelper', - uri_list=self.getModuleURIList(), - ) - ) - if self.getCatalogMethodURIList() != []: - section_list.append( - DocumentationSection( - id='catalog_method', - title='Catalog Method', - class_name='CatalogMethodDocumentationHelper', - uri_list=self.getCatalogMethodURIList(), - ) - ) - if self.getBaseCategoryURIList() != []: - section_list.append( - DocumentationSection( - id='base_category', - title='Base Category', - class_name='BaseCategoryDocumentationHelper', - uri_list=self.getBaseCategoryURIList(), - ) - ) - return map(lambda x: x.__of__(self), section_list) - - # Specific methods - security.declareProtected( Permissions.AccessContentsInformation, 'getDescription' ) - def getDescription(self): - """ - Returns the description of the documentation helper - """ - return getattr(self.getDocumentedObject(), 'description', '') - - security.declareProtected( Permissions.AccessContentsInformation, 'getVersion' ) + security.declareProtected(Permissions.AccessContentsInformation, 'getVersion') def getVersion(self): """ Returns the version of the business template """ return getattr(self.getDocumentedObject(), 'version', '') - security.declareProtected( Permissions.AccessContentsInformation, 'getRevisionNumber' ) + security.declareProtected(Permissions.AccessContentsInformation, 'getRevisionNumber') def getRevisionNumber(self): """ Returns the revision number of the documentation helper """ return getattr(self.getDocumentedObject(), 'revision', '') - security.declareProtected( Permissions.AccessContentsInformation, 'getBuildingState' ) + security.declareProtected(Permissions.AccessContentsInformation, 'getBuildingState') def getBuildingState(self): """ Returns the building_state of the documentation helper """ return self.getDocumentedObject().getBuildingState() - security.declareProtected( Permissions.AccessContentsInformation, 'getInstallationState' ) + security.declareProtected(Permissions.AccessContentsInformation, 'getInstallationState') def getInstallationState(self): """ Returns the installation_state of the documentation helper """ return self.getDocumentedObject().getInstallationState() - security.declareProtected( Permissions.AccessContentsInformation, 'getMaintainerList' ) + security.declareProtected(Permissions.AccessContentsInformation, 'getMaintainerList') def getMaintainerList(self): """ Returns the list of maintainers of the business template """ return getattr(self.getDocumentedObject(), 'maintainer', '') - security.declareProtected( Permissions.AccessContentsInformation, 'getDependencyList' ) + security.declareProtected(Permissions.AccessContentsInformation, 'getDependencyList') def getDependencyList(self): """ Returns the list of dependencies of the business template @@ -180,36 +129,36 @@ class BusinessTemplateDocumentationHelper(DocumentationHelper): return getattr(self.getDocumentedObject(), 'dependency', '') - security.declareProtected( Permissions.AccessContentsInformation, 'getPortalTypeIdList' ) + security.declareProtected(Permissions.AccessContentsInformation, 'getPortalTypeIdList') def getPortalTypeIdList(self): """ """ return getattr(self.getDocumentedObject(), 'template_portal_type_id', []) - security.declareProtected( Permissions.AccessContentsInformation, 'getPortalTypeURIList' ) - def getPortalTypeURIList(self): + security.declareProtected(Permissions.AccessContentsInformation, 'getPortalTypeUriList') + def getPortalTypeUriList(self): """ """ portal_type_list = self.getPortalTypeIdList() base_uri = '/'+self.uri.split('/')[1]+'/portal_types' return map(lambda x: ('%s/%s' % (base_uri, x)), portal_type_list) - security.declareProtected( Permissions.AccessContentsInformation, 'getSkinFolderIdList' ) + security.declareProtected(Permissions.AccessContentsInformation, 'getSkinFolderIdList') def getSkinFolderIdList(self): """ """ return getattr(self.getDocumentedObject(), 'template_skin_id', []) - security.declareProtected( Permissions.AccessContentsInformation, 'getSkinFolderURIList' ) - def getSkinFolderURIList(self): + security.declareProtected(Permissions.AccessContentsInformation, 'getSkinFolderUriList') + def getSkinFolderUriList(self): """ """ skin_folder_list = self.getSkinFolderIdList() base_uri = '/' + self.getPortalObject().id + '/portal_skins' return map(lambda x: ('%s/%s' % (base_uri, x)), skin_folder_list) - security.declareProtected( Permissions.AccessContentsInformation, 'getDCWorkflowIdList' ) - def getDCWorkflowIdList(self): + security.declareProtected(Permissions.AccessContentsInformation, 'getDcWorkflowIdList') + def getDcWorkflowIdList(self): """ """ dc_workflow_list = [] @@ -221,15 +170,15 @@ class BusinessTemplateDocumentationHelper(DocumentationHelper): dc_workflow_list.append(wf) return dc_workflow_list - security.declareProtected( Permissions.AccessContentsInformation, 'getDCWorkflowURIList' ) - def getDCWorkflowURIList(self): + security.declareProtected(Permissions.AccessContentsInformation, 'getDcWorkflowUriList') + def getDcWorkflowUriList(self): """ """ - workflow_list = self.getDCWorkflowIdList() + workflow_list = self.getDcWorkflowIdList() base_uri = '/'+self.uri.split('/')[1]+'/portal_workflow' return map(lambda x: ('%s/%s' % (base_uri, x)), workflow_list) - security.declareProtected( Permissions.AccessContentsInformation, 'getInteractionWorkflowIdList' ) + security.declareProtected(Permissions.AccessContentsInformation, 'getInteractionWorkflowIdList') def getInteractionWorkflowIdList(self): """ """ @@ -242,57 +191,57 @@ class BusinessTemplateDocumentationHelper(DocumentationHelper): workflow_list.append(wf) return workflow_list - security.declareProtected( Permissions.AccessContentsInformation, 'getInteractionWorkflowURIList' ) - def getInteractionWorkflowURIList(self): + security.declareProtected(Permissions.AccessContentsInformation, 'getInteractionWorkflowUriList') + def getInteractionWorkflowUriList(self): """ """ workflow_list = self.getInteractionWorkflowIdList() base_uri = '/'+self.uri.split('/')[1]+'/portal_workflow' return map(lambda x: ('%s/%s' % (base_uri, x)), workflow_list) - security.declareProtected( Permissions.AccessContentsInformation, 'getBaseCategoryList' ) + security.declareProtected(Permissions.AccessContentsInformation, 'getBaseCategoryList') def getBaseCategoryList(self): """ """ return getattr(self.getDocumentedObject(), 'template_base_category', '') - security.declareProtected( Permissions.AccessContentsInformation, 'getBaseCategoryURIList' ) - def getBaseCategoryURIList(self): + security.declareProtected(Permissions.AccessContentsInformation, 'getBaseCategoryUriList') + def getBaseCategoryUriList(self): """ """ base_category_list = self.getBaseCategoryList() base_uri = '/'+self.uri.split('/')[1]+'/portal_categories' return map(lambda x: ('%s/%s' % (base_uri, x)), base_category_list) - security.declareProtected( Permissions.AccessContentsInformation, 'getModuleIdList' ) + security.declareProtected(Permissions.AccessContentsInformation, 'getModuleIdList') def getModuleIdList(self): """ """ return getattr(self.getDocumentedObject(), 'template_module_id', []) - security.declareProtected( Permissions.AccessContentsInformation, 'getModuleURIList' ) - def getModuleURIList(self): + security.declareProtected(Permissions.AccessContentsInformation, 'getModuleUriList') + def getModuleUriList(self): """ """ module_list = self.getModuleIdList() base_uri = '/'+self.uri.split('/')[1] return map(lambda x: ('%s/%s' % (base_uri, x)), module_list) - security.declareProtected( Permissions.AccessContentsInformation, 'getCatalogMethodIdList' ) + security.declareProtected(Permissions.AccessContentsInformation, 'getCatalogMethodIdList') def getCatalogMethodIdList(self): """ """ return getattr(self.getDocumentedObject(), 'template_catalog_method_id', []) - security.declareProtected( Permissions.AccessContentsInformation, 'getCatalogMethodURIList' ) - def getCatalogMethodURIList(self): + security.declareProtected(Permissions.AccessContentsInformation, 'getCatalogMethodUriList') + def getCatalogMethodUriList(self): """ """ catalog_method_list = self.getCatalogMethodIdList() base_uri = '/'+self.uri.split('/')[1]+'/portal_catalog' return map(lambda x: ('%s/%s' % (base_uri, x)), catalog_method_list) - security.declareProtected( Permissions.AccessContentsInformation, 'getTemplatePathList' ) + security.declareProtected(Permissions.AccessContentsInformation, 'getTemplatePathList') def getTemplatePathList(self): """ """ diff --git a/product/ERP5Type/DocumentationHelper/CallableDocumentationHelper.py b/product/ERP5Type/DocumentationHelper/CallableDocumentationHelper.py index cd68d9854de24426e86619ff548b1fee369a8850..1c41bc472fca6991c411fc212f0f011858dbd7cd 100644 --- a/product/ERP5Type/DocumentationHelper/CallableDocumentationHelper.py +++ b/product/ERP5Type/DocumentationHelper/CallableDocumentationHelper.py @@ -26,7 +26,6 @@ # ############################################################################## -from Acquisition import Implicit from AccessControl import ClassSecurityInfo from Globals import InitializeClass from DocumentationHelper import DocumentationHelper diff --git a/product/ERP5Type/DocumentationHelper/CatalogMethodDocumentationHelper.py b/product/ERP5Type/DocumentationHelper/CatalogMethodDocumentationHelper.py index 2295293b21cf2491f83d7d9bd5c4a8975328e51b..ce669c949bc8b0f77026e2a1ae5a149ef8dc841f 100644 --- a/product/ERP5Type/DocumentationHelper/CatalogMethodDocumentationHelper.py +++ b/product/ERP5Type/DocumentationHelper/CatalogMethodDocumentationHelper.py @@ -26,7 +26,6 @@ # ############################################################################## -from Acquisition import Implicit from AccessControl import ClassSecurityInfo from Globals import InitializeClass from ZSQLMethodDocumentationHelper import ZSQLMethodDocumentationHelper @@ -39,38 +38,21 @@ class CatalogMethodDocumentationHelper(ZSQLMethodDocumentationHelper): security = ClassSecurityInfo() security.declareObjectProtected(Permissions.AccessContentsInformation) - def __init__(self, uri): - self.uri = uri - - security.declareProtected(Permissions.AccessContentsInformation, 'getType' ) + security.declareProtected(Permissions.AccessContentsInformation, 'getType') def getType(self): """ Returns the type of the documentation helper """ return "Catalog Method" - security.declareProtected(Permissions.AccessContentsInformation, 'getId' ) - def getId(self): - """ - Returns the id of the documentation helper - """ - return getattr(self.getDocumentedObject(), 'id', '') - - security.declareProtected(Permissions.AccessContentsInformation, 'getTitle' ) - def getTitle(self): - """ - Returns the title of the documentation helper - """ - return getattr(self.getDocumentedObject(), 'title', '') - - security.declareProtected(Permissions.AccessContentsInformation, 'getConnectionId' ) + security.declareProtected(Permissions.AccessContentsInformation, 'getConnectionId') def getConnectionId(self): """ Returns the title of the documentation helper """ return getattr(self.getDocumentedObject(), 'connection_id', '') - security.declareProtected(Permissions.AccessContentsInformation, 'getArgumentList' ) + security.declareProtected(Permissions.AccessContentsInformation, 'getArgumentList') def getArgumentList(self): """ Returns the arguments of the documentation helper @@ -82,7 +64,7 @@ class CatalogMethodDocumentationHelper(ZSQLMethodDocumentationHelper): keys = getattr(arg, '_keys', []) return keys - security.declareProtected(Permissions.AccessContentsInformation, 'getCatalog' ) + security.declareProtected(Permissions.AccessContentsInformation, 'getCatalog') def getCatalog(self): """ Returns the catalog name of the documentation helper diff --git a/product/ERP5Type/DocumentationHelper/ClassDocumentationHelper.py b/product/ERP5Type/DocumentationHelper/ClassDocumentationHelper.py deleted file mode 100644 index 7918f9484d56d96d7af373bfa98b6b21ad9c7a54..0000000000000000000000000000000000000000 --- a/product/ERP5Type/DocumentationHelper/ClassDocumentationHelper.py +++ /dev/null @@ -1,37 +0,0 @@ -############################################################################## -# -# Copyright (c) 2007-2008 Nexedi SA and Contributors. All Rights Reserved. -# Jean-Paul Smets-Solanes <jp@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 Products.ERP5Type import Permissions - -class ClassDocumentationHelper(DocumentationHelper): - """ - """ diff --git a/product/ERP5Type/DocumentationHelper/ClassMethodDocumentationHelper.py b/product/ERP5Type/DocumentationHelper/ClassMethodDocumentationHelper.py index cbbbaeaa47dcf380ce8aa58ae2e9f37f30f7a198..0490ba730024b0f4f5d4d16134cb89a8b1e5bef0 100644 --- a/product/ERP5Type/DocumentationHelper/ClassMethodDocumentationHelper.py +++ b/product/ERP5Type/DocumentationHelper/ClassMethodDocumentationHelper.py @@ -26,12 +26,10 @@ # ############################################################################## -from Acquisition import Implicit from AccessControl import ClassSecurityInfo from Globals import InitializeClass -from DocumentationHelper import DocumentationHelper +from DocumentationHelper import DocumentationHelper, getCallableSignatureString from Products.ERP5Type import Permissions -from AccessorMethodDocumentationHelper import getDefinitionString class ClassMethodDocumentationHelper(DocumentationHelper): """ @@ -40,37 +38,32 @@ class ClassMethodDocumentationHelper(DocumentationHelper): security = ClassSecurityInfo() security.declareObjectProtected(Permissions.AccessContentsInformation) - security.declareProtected(Permissions.AccessContentsInformation, 'getDescription') - def getDescription(self): - return getattr(self.getDocumentedObject(), "__doc__", '') - - security.declareProtected( Permissions.AccessContentsInformation, 'getType' ) - def getType(self): + security.declareProtected(Permissions.AccessContentsInformation, 'getTitle') + def getTitle(self): """ - Returns the type of the documentation helper + Returns the id of the documentation helper """ - return "Class Method" + return self.getDocumentedObject().__name__ - security.declareProtected( Permissions.AccessContentsInformation, 'getTitle' ) - def getTitle(self): + security.declareProtected(Permissions.AccessContentsInformation, 'getDescription') + def getDescription(self): """ - Returns the type of the documentation helper """ - return getattr(self.getDocumentedObject(), "__doc__", '') + return self.getDocumentedObject().__doc__ - security.declareProtected(Permissions.AccessContentsInformation, 'getSectionList') - def getSectionList(self): + security.declareProtected(Permissions.AccessContentsInformation, 'getType') + def getType(self): """ - Returns a list of documentation sections for class method + Returns the type of the documentation helper """ - return [] + return "Class Method" - security.declareProtected( Permissions.AccessContentsInformation, 'getDefinition' ) + security.declareProtected(Permissions.AccessContentsInformation, 'getDefinition') def getDefinition(self): """ Returns the definition of the class_method with the name and arguments """ - return getDefinitionString(self.getDocumentedObject()) + return getCallableSignatureString(self.getDocumentedObject()) InitializeClass(ClassMethodDocumentationHelper) diff --git a/product/ERP5Type/DocumentationHelper/DCWorkflowDocumentationHelper.py b/product/ERP5Type/DocumentationHelper/DCWorkflowDocumentationHelper.py index 190902466eb52538039dccb19609fa3a093ffeba..1b738fa0bde2bd0b9307a56765c3ac71d6474b06 100644 --- a/product/ERP5Type/DocumentationHelper/DCWorkflowDocumentationHelper.py +++ b/product/ERP5Type/DocumentationHelper/DCWorkflowDocumentationHelper.py @@ -26,11 +26,9 @@ # ############################################################################## -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 Products.DCWorkflowGraph.DCWorkflowGraph import getGraph @@ -63,123 +61,59 @@ class DCWorkflowDocumentationHelper(DocumentationHelper): security = ClassSecurityInfo() security.declareObjectProtected(Permissions.AccessContentsInformation) - def __init__(self, uri): - self.uri = uri - - def getInstance(self): - return self.getPortalObject().restrictedTraverse(self.uri) - - # API Implementation - security.declareProtected( Permissions.AccessContentsInformation, 'getId' ) - def getId(self): - """ - Returns the Id of the documentation helper - """ - return getattr(self.getInstance(), '__name__', '') - - security.declareProtected( Permissions.AccessContentsInformation, 'getType' ) + _section_list = ( + dict( + id='state', + title='Workflow States', + class_name='DCWorkflowStateDocumentationHelper', + ), + dict( + id='transition', + title='Workflow Transitions', + class_name='DCWorkflowTransitionDocumentationHelper', + ), + dict( + id='variable', + title='Workflow Variables', + class_name='DCWorkflowVariableDocumentationHelper', + ), + dict( + id='worklist', + title='Workflow Worklists', + class_name='DCWorkflowWorklistDocumentationHelper', + ), + dict( + id='script', + title='Workflow Scripts', + class_name='DCWorkflowScriptDocumentationHelper', + ), + ) + + security.declareProtected(Permissions.AccessContentsInformation, 'getType') def getType(self): """ Returns the type of the documentation helper """ return "DC Workflow" - security.declareProtected( Permissions.AccessContentsInformation, 'getTitle' ) - def getTitle(self): - """ - Returns the title of the documentation helper - """ - return getattr(self.getInstance(), 'title', '') - - security.declareProtected( Permissions.AccessContentsInformation, 'getDescription' ) - def getDescription(self): - """ - Returns the description of the documentation helper - """ - return getattr(self.getInstance(), 'description', '') - - - - security.declareProtected( Permissions.AccessContentsInformation, 'getSectionList' ) - def getSectionList(self): - """ - Returns a list of documentation sections - """ - section_list = [] - if self.getStateUriList() != []: - section_list.append( - DocumentationSection( - id='state', - title='Workflow States', - class_name='DCWorkflowStateDocumentationHelper', - uri_list=self.getStateUriList(), - ) - ) - if self.getTransitionUriList() != []: - section_list.append( - DocumentationSection( - id='transition', - title='Workflow Transitions', - class_name='DCWorkflowTransitionDocumentationHelper', - uri_list=self.getTransitionUriList(), - ) - ) - if self.getVariableUriList() != []: - section_list.append( - DocumentationSection( - id='variable', - title='Workflow Variables', - class_name='DCWorkflowVariableDocumentationHelper', - uri_list=self.getVariableUriList(), - ) - ) - if self.getPermissionUriList() != []: - section_list.append( - DocumentationSection( - id='permission', - title='Workflow Permissions', - class_name='DCWorkflowPermissionDocumentationHelper', - uri_list=self.getPermissionUriList(), - ) - ) - if self.getWorklistUriList() != []: - section_list.append( - DocumentationSection( - id='worklist', - title='Workflow Worklists', - class_name='DCWorkflowWorklistDocumentationHelper', - uri_list=self.getWorklistUriList(), - ) - ) - if self.getScriptUriList() != []: - section_list.append( - DocumentationSection( - id='script', - title='Workflow Scripts', - class_name='DCWorkflowScriptDocumentationHelper', - uri_list=self.getScriptUriList(), - ) - ) - return map(lambda x: x.__of__(self), section_list) - # Specific methods - security.declareProtected( Permissions.AccessContentsInformation, 'getStateIdList' ) + security.declareProtected(Permissions.AccessContentsInformation, 'getStateIdList') def getStateIdList(self): """ """ state_list = [] - states = getattr(self.getInstance(), 'states', None) + states = getattr(self.getDocumentedObject(), 'states', None) if states is not None: for state in states.objectValues(): state_list.append(state.getId()) return state_list - security.declareProtected( Permissions.AccessContentsInformation, 'getStateItemList' ) + security.declareProtected(Permissions.AccessContentsInformation, 'getStateItemList') def getStateItemList(self): """ """ state_list = [] - states = getattr(self.getInstance(), 'states', None) + states = getattr(self.getDocumentedObject(), 'states', None) if states is not None: for state in states.objectValues(): state_list.append((getattr(state, "id", ""), @@ -193,7 +127,7 @@ class DCWorkflowDocumentationHelper(DocumentationHelper): )) return state_list - security.declareProtected( Permissions.AccessContentsInformation, 'getStateUriList' ) + security.declareProtected(Permissions.AccessContentsInformation, 'getStateUriList') def getStateUriList(self): """ """ @@ -201,37 +135,37 @@ class DCWorkflowDocumentationHelper(DocumentationHelper): return map(lambda x: ('%s/states/%s' % (self.uri, x)), state_id_list) - security.declareProtected( Permissions.AccessContentsInformation, 'getStateURIList' ) + security.declareProtected(Permissions.AccessContentsInformation, 'getStateURIList') def getStateURIList(self): """ """ state_item_list = self.getStateItemList() - klass = self.getInstance().__class__ + klass = self.getDocumentedObject().__class__ class_name = klass.__name__ module = klass.__module__ uri_prefix = '%s.%s.' % (module, class_name) return map(lambda x: ('%s%s' % (uri_prefix, x[0]), x[1], x[2], x[3], x[4], x[5], x[6], x[7]), state_item_list) - security.declareProtected( Permissions.AccessContentsInformation, 'getTransitionIdList' ) + security.declareProtected(Permissions.AccessContentsInformation, 'getTransitionIdList') def getTransitionIdList(self): """ """ transition_list = [] - transitions = getattr(self.getInstance(), 'transitions', None) + transitions = getattr(self.getDocumentedObject(), 'transitions', None) if transitions is not None: for transition in transitions.objectValues(): transition_list.append(transition.getId()) return transition_list - security.declareProtected( Permissions.AccessContentsInformation, 'getTransitionItemList' ) + security.declareProtected(Permissions.AccessContentsInformation, 'getTransitionItemList') def getTransitionItemList(self): """ """ transition_list = [] trigger_type_list = ['Automatic','Initiated by user action','Initiated by WorkflowMethod'] - transitions = getattr(self.getInstance(), 'transitions', None) + transitions = getattr(self.getDocumentedObject(), 'transitions', None) if transitions is not None: - for transition in self.getInstance().transitions.objectValues(): + for transition in self.getDocumentedObject().transitions.objectValues(): guard_roles = "" guard = dir(transition.guard) if hasattr(transition.guard, '__dict__'): @@ -245,41 +179,41 @@ class DCWorkflowDocumentationHelper(DocumentationHelper): )) return transition_list - security.declareProtected( Permissions.AccessContentsInformation, 'getTransitionUriList' ) + security.declareProtected(Permissions.AccessContentsInformation, 'getTransitionUriList') def getTransitionUriList(self): """ """ transition_id_list = self.getTransitionIdList() return map(lambda x: ('%s/transitions/%s' % (self.uri, x)), transition_id_list) - security.declareProtected( Permissions.AccessContentsInformation, 'getTransitionURIList' ) + security.declareProtected(Permissions.AccessContentsInformation, 'getTransitionURIList') def getTransitionURIList(self): """ """ transition_item_list = self.getTransitionItemList() - klass = self.getInstance().__class__ + klass = self.getDocumentedObject().__class__ class_name = klass.__name__ module = klass.__module__ uri_prefix = '%s.%s.' % (module, class_name) return map(lambda x: ('%s%s' % (uri_prefix, x[0]), x[1], x[2], x[3], x[4]), transition_item_list) - security.declareProtected( Permissions.AccessContentsInformation, 'getVariableIdList' ) + security.declareProtected(Permissions.AccessContentsInformation, 'getVariableIdList') def getVariableIdList(self): """ """ variable_list = [] - variables = getattr(self.getInstance(), 'variables', None) + variables = getattr(self.getDocumentedObject(), 'variables', None) if variables is not None: for variable in variables.objectValues(): variable_list.append(variable.getId()) return variable_list - security.declareProtected( Permissions.AccessContentsInformation, 'getVariableItemList' ) + security.declareProtected(Permissions.AccessContentsInformation, 'getVariableItemList') def getVariableItemList(self): """ """ variable_list = [] - variables = getattr(self.getInstance(), 'variables', None) + variables = getattr(self.getDocumentedObject(), 'variables', None) if variables is not None: for variable in variables.objectValues(): variable_list.append((variable.getId(), @@ -288,71 +222,47 @@ class DCWorkflowDocumentationHelper(DocumentationHelper): )) return variable_list - security.declareProtected( Permissions.AccessContentsInformation, 'getVariableURIList' ) + security.declareProtected(Permissions.AccessContentsInformation, 'getVariableURIList') def getVariableURIList(self): """ """ variable_item_list = self.getVariableItemList() - klass = self.getInstance().__class__ + klass = self.getDocumentedObject().__class__ class_name = klass.__name__ module = klass.__module__ uri_prefix = '%s.%s.' % (module, class_name) return map(lambda x: ('%s%s' % (uri_prefix, x[0]), x[1], x[2]), variable_item_list) - security.declareProtected( Permissions.AccessContentsInformation, 'getVariableUriList' ) + security.declareProtected(Permissions.AccessContentsInformation, 'getVariableUriList') def getVariableUriList(self): """ """ variable_id_list = self.getVariableIdList() return map(lambda x: ('%s/variables/%s' % (self.uri, x)), variable_id_list) - security.declareProtected( Permissions.AccessContentsInformation, 'getPermissionIdList' ) - def getPermissionIdList(self): - """ - """ - permission_list = [] - permissions = getattr(self.getInstance(), "permissions", None) - if permissions is not None: - for permission in permissions: - permission_list.append(permission) - return permission_list - - - security.declareProtected( Permissions.AccessContentsInformation, 'getPermissionURIList' ) - def getPermissionURIList(self): - """ - """ - permission_id_list = self.getPermissionIdList() - klass = self.getInstance().__class__ - class_name = klass.__name__ - module = klass.__module__ - uri_prefix = '%s.%s.' % (module, class_name) - return map(lambda x: '%s%s' % (uri_prefix, x), permission_id_list) - - security.declareProtected( Permissions.AccessContentsInformation, 'getPermissionUriList' ) - def getPermissionUriList(self): + security.declareProtected(Permissions.AccessContentsInformation, 'getPermissionList') + def getPermissionList(self): """ """ - permission_id_list = self.getPermissionIdList() - return map(lambda x: '%s/permissions/%s' % (self.uri, x), permission_id_list) + return getattr(self.getDocumentedObject(), "permissions", ()) - security.declareProtected( Permissions.AccessContentsInformation, 'getWorklistIdList' ) + security.declareProtected(Permissions.AccessContentsInformation, 'getWorklistIdList') def getWorklistIdList(self): """ """ worklist_list = [] - worklists = getattr(self.getInstance(), "worklists", None) + worklists = getattr(self.getDocumentedObject(), "worklists", None) if worklists is not None: for wl in worklists.objectValues(): worklist_list.append(getattr(wl, "__name__", '')) return worklist_list - security.declareProtected( Permissions.AccessContentsInformation, 'getWorklistItemList' ) + security.declareProtected(Permissions.AccessContentsInformation, 'getWorklistItemList') def getWorklistItemList(self): """ """ worklist_list = [] - worklists = getattr(self.getInstance(), "worklists", None) + worklists = getattr(self.getDocumentedObject(), "worklists", None) if worklists is not None: for wl in worklists.objectValues(): guard_roles = "" @@ -368,41 +278,41 @@ class DCWorkflowDocumentationHelper(DocumentationHelper): return worklist_list - security.declareProtected( Permissions.AccessContentsInformation, 'getWorklistURIList' ) + security.declareProtected(Permissions.AccessContentsInformation, 'getWorklistURIList') def getWorklistURIList(self): """ """ worklist_item_list = self.getWorklistItemList() - klass = self.getInstance().__class__ + klass = self.getDocumentedObject().__class__ class_name = klass.__name__ module = klass.__module__ uri_prefix = '%s.%s.' % (module, class_name) return map(lambda x: ('%s%s' % (uri_prefix, x[0]), x[1], x[2], x[3]), worklist_item_list) - security.declareProtected( Permissions.AccessContentsInformation, 'getWorklistUriList' ) + security.declareProtected(Permissions.AccessContentsInformation, 'getWorklistUriList') def getWorklistUriList(self): """ """ worklist_id_list = self.getWorklistIdList() return map(lambda x: ('%s/worklists/%s' % (self.uri, x)), worklist_id_list) - security.declareProtected( Permissions.AccessContentsInformation, 'getScriptIdList' ) + security.declareProtected(Permissions.AccessContentsInformation, 'getScriptIdList') def getScriptIdList(self): """ """ script_list = [] - scripts = getattr(self.getInstance(), "scripts", None) + scripts = getattr(self.getDocumentedObject(), "scripts", None) if scripts is not None: for script in scripts.objectValues(): script_list.append(getattr(script, "__name__", '')) return script_list - security.declareProtected( Permissions.AccessContentsInformation, 'getScriptItemList' ) + security.declareProtected(Permissions.AccessContentsInformation, 'getScriptItemList') def getScriptItemList(self): """ """ script_list = [] - scripts = getattr(self.getInstance(), "scripts", None) + scripts = getattr(self.getDocumentedObject(), "scripts", None) if scripts is not None: for script in scripts.objectValues(): script_list.append((getattr(script, "__name__", ''), @@ -411,25 +321,25 @@ class DCWorkflowDocumentationHelper(DocumentationHelper): return script_list - security.declareProtected( Permissions.AccessContentsInformation, 'getScriptURIList' ) + security.declareProtected(Permissions.AccessContentsInformation, 'getScriptURIList') def getScriptURIList(self): """ """ script_item_list = self.getScriptItemList() - klass = self.getInstance().__class__ + klass = self.getDocumentedObject().__class__ class_name = klass.__name__ module = klass.__module__ uri_prefix = '%s.%s.' % (module, class_name) return map(lambda x: ('%s%s' % (uri_prefix, x[0]), x[1]), script_item_list) - security.declareProtected( Permissions.AccessContentsInformation, 'getScriptUriList' ) + security.declareProtected(Permissions.AccessContentsInformation, 'getScriptUriList') def getScriptUriList(self): """ """ script_id_list = self.getScriptIdList() return map(lambda x: ('%s/scripts/%s' % (self.uri, x)), script_id_list) - security.declareProtected( Permissions.AccessContentsInformation, 'getGraphImageURL' ) + security.declareProtected(Permissions.AccessContentsInformation, 'getGraphImageURL') def getGraphImageURL(self): """ Returns a URL to a graphic representation of the workflow @@ -437,11 +347,11 @@ class DCWorkflowDocumentationHelper(DocumentationHelper): "" - security.declareProtected( Permissions.AccessContentsInformation, 'getGraphImageData' ) + security.declareProtected(Permissions.AccessContentsInformation, 'getGraphImageData') def getGraphImageData(self, format='png'): """ Returns the graphic representation of the workflow as a PNG file """ - return getGraph(self, wf_id=getattr(self.getInstance(), "__name__", ''), format=format) + return getGraph(self, wf_id=getattr(self.getDocumentedObject(), "__name__", ''), format=format) InitializeClass(DCWorkflowDocumentationHelper) diff --git a/product/ERP5Type/DocumentationHelper/DCWorkflowPermissionDocumentationHelper.py b/product/ERP5Type/DocumentationHelper/DCWorkflowPermissionDocumentationHelper.py deleted file mode 100644 index eb0408023beed41ec9cfac3a64cf9e9d39d0b41a..0000000000000000000000000000000000000000 --- a/product/ERP5Type/DocumentationHelper/DCWorkflowPermissionDocumentationHelper.py +++ /dev/null @@ -1,79 +0,0 @@ -############################################################################## -# -# Copyright (c) 2007-2008 Nexedi SA and Contributors. All Rights Reserved. -# Jean-Paul Smets-Solanes <jp@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 Products.ERP5Type import Permissions -from zLOG import LOG, INFO - -class DCWorkflowPermissionDocumentationHelper(DocumentationHelper): - """ - Provides documentation about a workflow permission - """ - security = ClassSecurityInfo() - security.declareObjectProtected(Permissions.AccessContentsInformation) - - def __init__(self, uri): - self.uri = uri - - security.declareProtected(Permissions.AccessContentsInformation, 'getDescription') - def getDescription(self): - #return getattr(self.getDocumentedObject(), "description", "") - return "" - - security.declareProtected(Permissions.AccessContentsInformation, 'getType' ) - def getType(self): - """ - Returns the type of the documentation helper - """ - return "Workflow Permission" - - security.declareProtected(Permissions.AccessContentsInformation, 'getId' ) - def getId(self): - """ - Returns the id of the documentation helper - """ - return getattr(self.getDocumentedObject(), "__name__", "") - - security.declareProtected(Permissions.AccessContentsInformation, 'getTitle' ) - def getTitle(self): - """ - Returns the title of the documentation helper - """ - return getattr(self.getDocumentedObject(), "title", "") - - security.declareProtected(Permissions.AccessContentsInformation, 'getSectionList') - def getSectionList(self): - """ - Returns a list of documentation sections for workflow permissions - """ - return [] - -InitializeClass(DCWorkflowPermissionDocumentationHelper) diff --git a/product/ERP5Type/DocumentationHelper/DCWorkflowScriptDocumentationHelper.py b/product/ERP5Type/DocumentationHelper/DCWorkflowScriptDocumentationHelper.py index 2bdf04c60d1b13fd663cff3100f38a14593ab11e..43e6c498738084f7c6aeee902c2327a38bde25f8 100644 --- a/product/ERP5Type/DocumentationHelper/DCWorkflowScriptDocumentationHelper.py +++ b/product/ERP5Type/DocumentationHelper/DCWorkflowScriptDocumentationHelper.py @@ -26,7 +26,6 @@ # ############################################################################## -from Acquisition import Implicit from AccessControl import ClassSecurityInfo from Globals import InitializeClass from ScriptPythonDocumentationHelper import ScriptPythonDocumentationHelper @@ -36,14 +35,5 @@ class DCWorkflowScriptDocumentationHelper(ScriptPythonDocumentationHelper): """ Provides documentation about a workflow script """ - security = ClassSecurityInfo() - security.declareObjectProtected(Permissions.AccessContentsInformation) - - security.declareProtected(Permissions.AccessContentsInformation, 'getSectionList') - def getSectionList(self): - """ - Returns a list of documentation sections for workflow scripts - """ - return [] InitializeClass(DCWorkflowScriptDocumentationHelper) diff --git a/product/ERP5Type/DocumentationHelper/DCWorkflowStateDocumentationHelper.py b/product/ERP5Type/DocumentationHelper/DCWorkflowStateDocumentationHelper.py index f12e6f96c8dc70c591bd39a495e3a280f6123adf..198d93a1d1d0b318524fc25ea0c6b04742577976 100644 --- a/product/ERP5Type/DocumentationHelper/DCWorkflowStateDocumentationHelper.py +++ b/product/ERP5Type/DocumentationHelper/DCWorkflowStateDocumentationHelper.py @@ -26,39 +26,11 @@ # ############################################################################## -from Acquisition import Implicit from AccessControl import ClassSecurityInfo from Globals import InitializeClass from DocumentationHelper import DocumentationHelper from Products.ERP5Type import Permissions -def getPermissionsOfRole(state=None, role=''): - """ - Returns list of permissions for a given role with AVMC format above - A = Access contents information - V = View - M = Modify Portal Content - C = Add Portal Content - """ - permissions = "" - if state != None: - if hasattr(state, '__dict__'): - if 'permission_roles' in state.__dict__.keys(): - if 'View' in state.__dict__['permission_roles'].keys(): - if role in state.__dict__['permission_roles']['View']: - permissions += "V" - if 'Access contents information' in state.__dict__['permission_roles'].keys(): - if role in state.__dict__['permission_roles']['Access contents information']: - permissions += "A" - if 'Modify portal content' in state.__dict__['permission_roles'].keys(): - if role in state.__dict__['permission_roles']['Modify portal content']: - permissions += "M" - if 'Add portal content' in state.__dict__['permission_roles'].keys(): - if role in state.__dict__['permission_roles']['Add portal content']: - permissions += "C" - return permissions - - class DCWorkflowStateDocumentationHelper(DocumentationHelper): """ Provides documentation about a workflow state @@ -66,82 +38,75 @@ class DCWorkflowStateDocumentationHelper(DocumentationHelper): security = ClassSecurityInfo() security.declareObjectProtected(Permissions.AccessContentsInformation) - def __init__(self, uri): - self.uri = uri - - security.declareProtected(Permissions.AccessContentsInformation, 'getDescription') - def getDescription(self): - return self.getDocumentedObject().__dict__["description"] - - security.declareProtected(Permissions.AccessContentsInformation, 'getType' ) + security.declareProtected(Permissions.AccessContentsInformation, 'getType') def getType(self): """ Returns the type of the documentation helper """ return "Workflow State" - security.declareProtected(Permissions.AccessContentsInformation, 'getId' ) - def getId(self): - """ - Returns the id of the documentation helper - """ - return getattr(self.getDocumentedObject(), "__name__", "") - - - security.declareProtected(Permissions.AccessContentsInformation, 'getTitle' ) - def getTitle(self): - """ - Returns the title of the documentation helper - """ - return getattr(self.getDocumentedObject(), "title", "") - - def getSectionList(self): - """ - Returns a list of documentation sections - """ - return [] - - security.declareProtected( Permissions.AccessContentsInformation, 'getTransitionList' ) + security.declareProtected(Permissions.AccessContentsInformation, 'getTransitionList') def getTransitionList(self): """ Returns list of possible transitions from this state """ - return getattr(self.getDocumentedObject(), "transitions", []) - - security.declareProtected( Permissions.AccessContentsInformation, 'getPermissionsOfRoleOwner' ) + return self.getDocumentedObject().transitions + + def getPermissionsOfRole(self, role): + """ + Returns list of permissions for a given role with AVMC format above + A = Access contents information + V = View + M = Modify Portal Content + C = Add Portal Content + """ + permissions = "" + permission_roles = self.getDocumentedObject().permission_roles + if permission_roles: + if role in state.permission_roles.get('Access contents information', ()): + permissions += "A" + if role in state.permission_roles.get('View', ()): + permissions += "V" + if role in state.permission_roles.get('Modify portal content', ()): + permissions += "M" + if role in state.permission_roles.get('Add portal content', ()): + permissions += "C" + return permissions + + security.declareProtected(Permissions.AccessContentsInformation, 'getPermissionsOfRoleOwner') def getPermissionsOfRoleOwner(self): """ """ - return getPermissionsOfRole(self.getDocumentedObject(),'Owner') + return self.getPermissionsOfRole('Owner') - security.declareProtected( Permissions.AccessContentsInformation, 'getPermissionsOfRoleAssignor' ) + security.declareProtected(Permissions.AccessContentsInformation, 'getPermissionsOfRoleAssignor') def getPermissionsOfRoleAssignor(self): """ """ - return getPermissionsOfRole(self.getDocumentedObject(),'Assignor') + return self.getPermissionsOfRole('Assignor') - security.declareProtected( Permissions.AccessContentsInformation, 'getPermissionsOfRoleAssignee' ) + security.declareProtected(Permissions.AccessContentsInformation, 'getPermissionsOfRoleAssignee') def getPermissionsOfRoleAssignee(self): """ """ - return getPermissionsOfRole(self.getDocumentedObject(),'Assignee') + return self.getPermissionsOfRole('Assignee') - security.declareProtected( Permissions.AccessContentsInformation, 'getPermissionsOfRoleAssociate' ) + security.declareProtected(Permissions.AccessContentsInformation, 'getPermissionsOfRoleAssociate') def getPermissionsOfRoleAssociate(self): """ """ - return getPermissionsOfRole(self.getDocumentedObject(),'Associate') + return self.getPermissionsOfRole('Associate') - security.declareProtected( Permissions.AccessContentsInformation, 'getPermissionsOfRoleAuthor' ) + security.declareProtected(Permissions.AccessContentsInformation, 'getPermissionsOfRoleAuthor') def getPermissionsOfRoleAuthor(self): """ """ - return getPermissionsOfRole(self.getDocumentedObject(),'Author') + return self.getPermissionsOfRole('Author') - security.declareProtected( Permissions.AccessContentsInformation, 'getPermissionsOfRoleAuditor' ) + security.declareProtected(Permissions.AccessContentsInformation, 'getPermissionsOfRoleAuditor') def getPermissionsOfRoleAuditor(self): """ """ - return getPermissionsOfRole(self.getDocumentedObject(),'Auditor') + return self.getPermissionsOfRole('Auditor') InitializeClass(DCWorkflowStateDocumentationHelper) diff --git a/product/ERP5Type/DocumentationHelper/DCWorkflowTransitionDocumentationHelper.py b/product/ERP5Type/DocumentationHelper/DCWorkflowTransitionDocumentationHelper.py index b0b66b65d333054b8c70b6bc3badc8fd58c79769..2acb947df98ccb6143fafff8349144252869109f 100644 --- a/product/ERP5Type/DocumentationHelper/DCWorkflowTransitionDocumentationHelper.py +++ b/product/ERP5Type/DocumentationHelper/DCWorkflowTransitionDocumentationHelper.py @@ -26,7 +26,6 @@ # ############################################################################## -from Acquisition import Implicit from AccessControl import ClassSecurityInfo from Globals import InitializeClass from DocumentationHelper import DocumentationHelper @@ -39,50 +38,21 @@ class DCWorkflowTransitionDocumentationHelper(DocumentationHelper): security = ClassSecurityInfo() security.declareObjectProtected(Permissions.AccessContentsInformation) - def __init__(self, uri): - self.uri = uri - - security.declareProtected(Permissions.AccessContentsInformation, 'getDescription') - def getDescription(self): - #return self.getDocumentedObject().__dict__["description"] - return getattr(self.getDocumentedObject(), "description", "") - - security.declareProtected(Permissions.AccessContentsInformation, 'getType' ) + security.declareProtected(Permissions.AccessContentsInformation, 'getType') def getType(self): """ Returns the type of the documentation helper """ return "Workflow Transition" - security.declareProtected(Permissions.AccessContentsInformation, 'getId' ) - def getId(self): - """ - Returns the id of the documentation helper - """ - return getattr(self.getDocumentedObject(), "__name__", "") - - security.declareProtected(Permissions.AccessContentsInformation, 'getTitle' ) - def getTitle(self): - """ - Returns the title of the documentation helper - """ - return getattr(self.getDocumentedObject(), "title", "") - - security.declareProtected( Permissions.AccessContentsInformation, 'getSectionList' ) - def getSectionList(self): - """ - Returns a list of documentation sections - """ - return [] - - security.declareProtected(Permissions.AccessContentsInformation, 'getNewStateId' ) + security.declareProtected(Permissions.AccessContentsInformation, 'getNewStateId') def getNewStateId(self): """ Returns the id of the new state for de workflow transition """ return getattr(self.getDocumentedObject(), "new_state_id", '') - security.declareProtected(Permissions.AccessContentsInformation, 'getTriggerType' ) + security.declareProtected(Permissions.AccessContentsInformation, 'getTriggerType') def getTriggerType(self): """ Returns the trigger type for de workflow transition @@ -91,28 +61,28 @@ class DCWorkflowTransitionDocumentationHelper(DocumentationHelper): trigger_type_id = getattr(self.getDocumentedObject(), "trigger_type", '') return trigger_type_list[trigger_type_id] - security.declareProtected(Permissions.AccessContentsInformation, 'getScriptName' ) + security.declareProtected(Permissions.AccessContentsInformation, 'getScriptName') def getScriptName(self): """ Returns the name of the script for de workflow transition """ return getattr(self.getDocumentedObject(), "script_name", '') - security.declareProtected(Permissions.AccessContentsInformation, 'getAfterScriptName' ) + security.declareProtected(Permissions.AccessContentsInformation, 'getAfterScriptName') def getAfterScriptName(self): """ Returns the name of the script for de workflow transition """ return getattr(self.getDocumentedObject(), "after_script_name", '') - security.declareProtected(Permissions.AccessContentsInformation, 'getAvailableStateIds' ) + security.declareProtected(Permissions.AccessContentsInformation, 'getAvailableStateIds') def getAvailableStateIds(self): """ Returns available states in the workflow """ return self.getDocumentedObject().getAvailableStateIds() - security.declareProtected(Permissions.AccessContentsInformation, 'getGuardRoles' ) + security.declareProtected(Permissions.AccessContentsInformation, 'getGuardRoles') def getGuardRoles(self): """ Returns roles to pass this transition diff --git a/product/ERP5Type/DocumentationHelper/DCWorkflowVariableDocumentationHelper.py b/product/ERP5Type/DocumentationHelper/DCWorkflowVariableDocumentationHelper.py index e5a1365360de85de56ae292b93982e4f972b5a08..b30ee3624fea07ce61a771607be6d77232d7ee2a 100644 --- a/product/ERP5Type/DocumentationHelper/DCWorkflowVariableDocumentationHelper.py +++ b/product/ERP5Type/DocumentationHelper/DCWorkflowVariableDocumentationHelper.py @@ -26,7 +26,6 @@ # ############################################################################## -from Acquisition import Implicit from AccessControl import ClassSecurityInfo from Globals import InitializeClass from DocumentationHelper import DocumentationHelper @@ -39,42 +38,14 @@ class DCWorkflowVariableDocumentationHelper(DocumentationHelper): security = ClassSecurityInfo() security.declareObjectProtected(Permissions.AccessContentsInformation) - def __init__(self, uri): - self.uri = uri - - security.declareProtected(Permissions.AccessContentsInformation, 'getDescription') - def getDescription(self): - return getattr(self.getDocumentedObject(), "description", '') - - security.declareProtected(Permissions.AccessContentsInformation, 'getType' ) + security.declareProtected(Permissions.AccessContentsInformation, 'getType') def getType(self): """ Returns the type of the documentation helper """ return "Workflow Variable" - security.declareProtected(Permissions.AccessContentsInformation, 'getId' ) - def getId(self): - """ - Returns the id of the documentation helper - """ - return getattr(self.getDocumentedObject(), "__name__", '') - - security.declareProtected( Permissions.AccessContentsInformation, 'getSectionList' ) - def getSectionList(self): - """ - Returns a list of documentation sections - """ - return [] - - security.declareProtected(Permissions.AccessContentsInformation, 'getTitle' ) - def getTitle(self): - """ - Returns the title of the documentation helper - """ - return getattr(self.getDocumentedObject(), "title", '') - - security.declareProtected(Permissions.AccessContentsInformation, 'getDefaultExpression' ) + security.declareProtected(Permissions.AccessContentsInformation, 'getDefaultExpression') def getDefaultExpression(self): """ Returns the Default Expression of the documentation helper @@ -84,7 +55,7 @@ class DCWorkflowVariableDocumentationHelper(DocumentationHelper): default_expr = self.getDocumentedObject().default_expr.text return default_expr - security.declareProtected(Permissions.AccessContentsInformation, 'getForCatalog' ) + security.declareProtected(Permissions.AccessContentsInformation, 'getForCatalog') def getForCatalog(self): """ Returns 1 if variable is available in the catalog @@ -98,7 +69,7 @@ class DCWorkflowVariableDocumentationHelper(DocumentationHelper): else: return 'No' - security.declareProtected(Permissions.AccessContentsInformation, 'getUpdateAlways' ) + security.declareProtected(Permissions.AccessContentsInformation, 'getUpdateAlways') def getUpdateAlways(self): """ Returns 1 if variable is available in the history diff --git a/product/ERP5Type/DocumentationHelper/DCWorkflowWorklistDocumentationHelper.py b/product/ERP5Type/DocumentationHelper/DCWorkflowWorklistDocumentationHelper.py index 808289606255d00b0cc5a34406933a995798511b..83893c75c88fac538a254044cf23be70ca7582a7 100644 --- a/product/ERP5Type/DocumentationHelper/DCWorkflowWorklistDocumentationHelper.py +++ b/product/ERP5Type/DocumentationHelper/DCWorkflowWorklistDocumentationHelper.py @@ -26,7 +26,6 @@ # ############################################################################## -from Acquisition import Implicit from AccessControl import ClassSecurityInfo from Globals import InitializeClass from DocumentationHelper import DocumentationHelper @@ -39,46 +38,22 @@ class DCWorkflowWorklistDocumentationHelper(DocumentationHelper): security = ClassSecurityInfo() security.declareObjectProtected(Permissions.AccessContentsInformation) - def __init__(self, uri): - self.uri = uri - - security.declareProtected(Permissions.AccessContentsInformation, 'getDescription') - def getDescription(self): - return getattr(self.getDocumentedObject(), "description", '') - - security.declareProtected(Permissions.AccessContentsInformation, 'getType' ) + security.declareProtected(Permissions.AccessContentsInformation, 'getType') def getType(self): """ Returns the type of the documentation helper """ return "Workflow Worklist" - security.declareProtected(Permissions.AccessContentsInformation, 'getId' ) - def getId(self): - """ - Returns the id of the documentation helper - """ - return getattr(self.getDocumentedObject(), "__name__", '') - - security.declareProtected( Permissions.AccessContentsInformation, 'getSectionList' ) - def getSectionList(self): - """ - Returns a list of documentation sections - """ - return [] - - - security.declareProtected(Permissions.AccessContentsInformation, 'getTitle' ) + security.declareProtected(Permissions.AccessContentsInformation, 'getTitle') def getTitle(self): """ Returns the title of the documentation helper """ - if self.getDocumentedObject().title == "": - return self.getDocumentedObject().actbox_name - else: - return self.getDocumentedObject().title + return DocumentationHelper.getTitle(self) \ + or self.getDocumentedObject().actbox_name - security.declareProtected(Permissions.AccessContentsInformation, 'getGuardRoles' ) + security.declareProtected(Permissions.AccessContentsInformation, 'getGuardRoles') def getGuardRoles(self): """ Returns roles to pass this worklist @@ -91,7 +66,7 @@ class DCWorkflowWorklistDocumentationHelper(DocumentationHelper): role_list = self.getDocumentedObject().guard.__dict__['roles'] return ', '.join(role for role in role_list) - security.declareProtected(Permissions.AccessContentsInformation, 'getVarMatches' ) + security.declareProtected(Permissions.AccessContentsInformation, 'getVarMatches') def getVarMatches(self): """ Returns variables and values to match worklist diff --git a/product/ERP5Type/DocumentationHelper/DocumentationHelper.py b/product/ERP5Type/DocumentationHelper/DocumentationHelper.py index 0b0215baca84ffde0c29057f5fcdfa17acebb0ca..31bc89939e8a64d85d21175723e876418005b698 100644 --- a/product/ERP5Type/DocumentationHelper/DocumentationHelper.py +++ b/product/ERP5Type/DocumentationHelper/DocumentationHelper.py @@ -26,13 +26,16 @@ # ############################################################################## -from Acquisition import Implicit +from Acquisition import Implicit, aq_base from AccessControl import ClassSecurityInfo from Globals import InitializeClass from Products.ERP5Type import Permissions from App.config import getConfiguration import os import random +from Products.ERP5Type.Base import Base +from Products.ERP5Type.Utils import convertToUpperCase +from DocumentationSection import DocumentationSection class TempObjectLibrary(object): @@ -70,6 +73,27 @@ class TempObjectLibrary(object): self.portal_type_dict[portal_type] = temp_object return temp_object + +def getCallableSignatureString(func): + """Return the definition string of a callable object.""" + from compiler.consts import CO_VARARGS, CO_VARKEYWORDS + args = list(func.func_code.co_varnames) + defaults = func.func_defaults or () + i = func.func_code.co_argcount - len(defaults) + for default in defaults: + args[i] += '=' + repr(default) + i += 1 + # XXX ERP5 code does not set co_flags attribute :( + flags = getattr(func.func_code, 'co_flags', None) + for flag, name, prefix in ((CO_VARARGS, 'args', '*'), + (CO_VARKEYWORDS, 'kw', '**')): + if flags is not None and flags & flag \ + or flags is None and i < len(args) and args[i] == name: + args[i] = prefix + args[i] + i += 1 + return '%s(%s)' % (func.__name__, ', '.join(args[:i])) + + class DocumentationHelper(Implicit): """ Example URIs @@ -83,16 +107,25 @@ class DocumentationHelper(Implicit): Products.ERP5Type.Document.Person.notify Products.ERP5Type.Document.Person.isRAD portal_types/Person - portal_types/Person/actions#view + portal_types/Person?_actions#view """ security = ClassSecurityInfo() security.declareObjectProtected(Permissions.AccessContentsInformation) + _section_list = () + # Methods to override def __init__(self, uri): self.uri = uri - security.declareProtected( Permissions.AccessContentsInformation, 'getTempInstance' ) + security.declareProtected(Permissions.AccessContentsInformation, 'getId') + def getId(self): + """ + Returns the id of the documentation helper + """ + return self.getDocumentedObject().id + + security.declareProtected(Permissions.AccessContentsInformation, 'getTempInstance') def getTempInstance(self, portal_type): """ Returns a temporary instance of the given portal_type @@ -175,12 +208,13 @@ class DocumentationHelper(Implicit): #documented_object = imp.load_module(fp, pathname, description) return documented_object + security.declareProtected(Permissions.AccessContentsInformation, 'getTitle') def getTitle(self): """ Returns the title of the documentation helper (ex. class name) """ - raise NotImplemented + return getattr(aq_base(self.getDocumentedObject()), 'title', '') def getType(self): """ @@ -189,12 +223,28 @@ class DocumentationHelper(Implicit): """ raise NotImplemented + security.declareProtected(Permissions.AccessContentsInformation, 'getDescription') + def getDescription(self): + """ + Returns the title of the documentation helper + """ + return getattr(aq_base(self.getDocumentedObject()), 'description', '') + + def getSectionUriList(self, id, **kw): + return getattr(self, 'get%sUriList' % convertToUpperCase(id))() + security.declareProtected(Permissions.AccessContentsInformation, 'getSectionList') def getSectionList(self): """ Returns a list of documentation sections """ - return [] + section_list = [] + for section in self._section_list: + uri_list = self.getSectionUriList(**section) + if uri_list: + section_list.append(DocumentationSection(uri_list=uri_list, **section) + .__of__(self)) + return section_list security.declareProtected(Permissions.AccessContentsInformation, 'getURI') def getURI(self): @@ -212,7 +262,7 @@ class DocumentationHelper(Implicit): """ return self.__class__.__name__ - security.declareProtected(Permissions.AccessContentsInformation, 'view') + security.declareProtected(Permissions.View, 'view') def view(self): """ Renders the documentation with a standard form @@ -220,8 +270,17 @@ class DocumentationHelper(Implicit): """ return getattr(self, '%s_view' % self.getClassName())() - security.declareProtected(Permissions.AccessContentsInformation, '__call__') + security.declareProtected(Permissions.View, '__call__') def __call__(self): return self.view() + def _getPropertyHolder(self): + property_holder = None + key = self.getPortalType(), self.getDocumentedObject().__class__ + if not(Base.aq_portal_type.has_key(key)): + self.getDocumentedObject().initializePortalTypeDynamicProperties() + property_holder = Base.aq_portal_type[key] + return property_holder + + InitializeClass(DocumentationHelper) diff --git a/product/ERP5Type/DocumentationHelper/ERP5FormDocumentationHelper.py b/product/ERP5Type/DocumentationHelper/ERP5FormDocumentationHelper.py index 600eb382740f9051c48705cd20b67d4f95df69fe..f1af0525a18a8ca9fd9468642d1105263394c860 100644 --- a/product/ERP5Type/DocumentationHelper/ERP5FormDocumentationHelper.py +++ b/product/ERP5Type/DocumentationHelper/ERP5FormDocumentationHelper.py @@ -26,7 +26,6 @@ # ############################################################################## -from Acquisition import Implicit from AccessControl import ClassSecurityInfo from Globals import InitializeClass from DocumentationHelper import DocumentationHelper @@ -39,42 +38,18 @@ class ERP5FormDocumentationHelper(DocumentationHelper): security = ClassSecurityInfo() security.declareObjectProtected(Permissions.AccessContentsInformation) - def __init__(self, uri): - self.uri = uri - - security.declareProtected(Permissions.AccessContentsInformation, 'getType' ) + security.declareProtected(Permissions.AccessContentsInformation, 'getType') def getType(self): """ Returns the type of the documentation helper """ return "ERP5 Form" - security.declareProtected(Permissions.AccessContentsInformation, 'getId' ) - def getId(self): - """ - Returns the id of the documentation helper - """ - return getattr(self.getDocumentedObject(), "id", '') - - security.declareProtected(Permissions.AccessContentsInformation, 'getTitle' ) - def getTitle(self): - """ - Returns the title of the documentation helper - """ - return getattr(self.getDocumentedObject(), "title", '') - - security.declareProtected( Permissions.AccessContentsInformation, 'getEncoding' ) + security.declareProtected(Permissions.AccessContentsInformation, 'getEncoding') def getEncoding(self): """ Returns the encoding of the ERP5 Form """ return getattr(self.getDocumentedObject(), "encoding", '') - security.declareProtected(Permissions.AccessContentsInformation, 'getDescription' ) - def getDescription(self): - """ - Returns the description of the documentation helper - """ - return getattr(self.getDocumentedObject(), "description", '') - InitializeClass(ERP5FormDocumentationHelper) diff --git a/product/ERP5Type/DocumentationHelper/ERP5SiteDocumentationHelper.py b/product/ERP5Type/DocumentationHelper/ERP5SiteDocumentationHelper.py index a94475eabedc181136cb03dc33f02919c99a5611..2800c558f97de6d8a9bc9e05e9a086eb92515caf 100644 --- a/product/ERP5Type/DocumentationHelper/ERP5SiteDocumentationHelper.py +++ b/product/ERP5Type/DocumentationHelper/ERP5SiteDocumentationHelper.py @@ -27,11 +27,9 @@ # ############################################################################## -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 class ERP5SiteDocumentationHelper(DocumentationHelper): @@ -39,77 +37,44 @@ 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 getattr(self.getDocumentedObject(), "title", '') + _section_list = ( + dict( + id='business_template', + title='Business Template', + class_name='BusinessTemplateDocumentationHelper', + ), + ) - security.declareProtected( Permissions.AccessContentsInformation, 'getType' ) + 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 getattr(self.getDocumentedObject(), "description", '') + def getBusinessTemplateValueList(self): + bt_list = getattr(self, 'REQUEST', {}).get("business_template_list") + return (bt for bt in self.getPortalObject().portal_templates.objectValues() + if bt_list is None or bt.getTitle() in bt_list) - security.declareProtected( Permissions.AccessContentsInformation, 'getBusinessTemplateItemList' ) + security.declareProtected(Permissions.AccessContentsInformation, 'getBusinessTemplateItemList') def getBusinessTemplateItemList(self): """ """ - REQUEST = getattr(self, 'REQUEST', None) - business_template_list = [bt.getTitle() for bt in self.getDocumentedObject().portal_templates.objectValues()] - if REQUEST is not None and "business_template_list" in REQUEST.keys(): - business_template_list = REQUEST.get("business_template_list", []) return [(bt.getId(), getattr(bt, "title", ''), getattr(bt, "description", ''), getattr(bt, "version", ''), getattr(bt, "revision", '')) - for bt in self.getDocumentedObject().portal_templates.objectValues() - if bt.getInstallationState() == 'installed' and bt.getTitle() in business_template_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) + for bt in self.getBusinessTemplateValueList()] - security.declareProtected( Permissions.AccessContentsInformation, 'getBusinessTemplateUriList' ) + 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) + return [bt.getPath() for bt in self.getBusinessTemplateValueList()] InitializeClass(ERP5SiteDocumentationHelper) diff --git a/product/ERP5Type/DocumentationHelper/InstancePropertyDocumentationHelper.py b/product/ERP5Type/DocumentationHelper/InstancePropertyDocumentationHelper.py index deef24ebc0ac8573a860c377e1a4ad4aff1a33ce..390d9e04e9561a96ffe8e92610a9f4d0db6e203e 100644 --- a/product/ERP5Type/DocumentationHelper/InstancePropertyDocumentationHelper.py +++ b/product/ERP5Type/DocumentationHelper/InstancePropertyDocumentationHelper.py @@ -26,7 +26,6 @@ # ############################################################################## -from Acquisition import Implicit from AccessControl import ClassSecurityInfo from Globals import InitializeClass from DocumentationHelper import DocumentationHelper diff --git a/product/ERP5Type/DocumentationHelper/InteractionWorkflowDocumentationHelper.py b/product/ERP5Type/DocumentationHelper/InteractionWorkflowDocumentationHelper.py index d1fcd9c57b7894ab1477c1116f5a853b8ee83e27..f73f047c49e6e87facf6fb4e65f83eee2b6683a4 100644 --- a/product/ERP5Type/DocumentationHelper/InteractionWorkflowDocumentationHelper.py +++ b/product/ERP5Type/DocumentationHelper/InteractionWorkflowDocumentationHelper.py @@ -26,399 +26,28 @@ # ############################################################################## -from Acquisition import Implicit from AccessControl import ClassSecurityInfo from Globals import InitializeClass -from DocumentationHelper import DocumentationHelper -from DocumentationSection import DocumentationSection +from DCWorkflowStateDocumentationHelper import DCWorkflowStateDocumentationHelper from Products.ERP5Type import Permissions -from Products.DCWorkflowGraph.DCWorkflowGraph import getGraph -def getStatePermissionsOfRole(state=None, role=''): - permissions = "" - if state != None: - if hasattr(state, '__dict__'): - if 'permission_roles' in state.__dict__.keys(): - if 'View' in state.__dict__['permission_roles'].keys(): - if role in state.__dict__['permission_roles']['View']: - permissions += "V" - if 'Access contents information' in state.__dict__['permission_roles'].keys(): - if role in state.__dict__['permission_roles']['Access contents information']: - permissions += "A" - if 'Modify portal content' in state.__dict__['permission_roles'].keys(): - if role in state.__dict__['permission_roles']['Modify portal content']: - permissions += "M" - if 'Add portal content' in state.__dict__['permission_roles'].keys(): - if role in state.__dict__['permission_roles']['Add portal content']: - permissions += "C" - return permissions +# XXX To be implemented. For the moment, +# make it a subclass of DCWorkflowStateDocumentationHelper. - -class InteractionWorkflowDocumentationHelper(DocumentationHelper): +class InteractionWorkflowDocumentationHelper(DCWorkflowStateDocumentationHelper): """ Provides access to all documentation information of an interaction workflow. """ - security = ClassSecurityInfo() security.declareObjectProtected(Permissions.AccessContentsInformation) - def __init__(self, uri): - self.uri = uri - - def getInstance(self): - return self.getPortalObject().restrictedTraverse(self.uri) - - # API Implementation - security.declareProtected( Permissions.AccessContentsInformation, 'getId' ) - def getId(self): - """ - Returns the Id of the documentation helper - """ - return getattr(self.getInstance(), "__name__", '') - - - security.declareProtected( Permissions.AccessContentsInformation, 'getType' ) + security.declareProtected(Permissions.AccessContentsInformation, 'getType') def getType(self): """ Returns the type of the documentation helper """ return "Interaction Workflow" - security.declareProtected( Permissions.AccessContentsInformation, 'getTitle' ) - def getTitle(self): - """ - Returns the title of the documentation helper - """ - return getattr(self.getInstance(), "title", '') - - security.declareProtected( Permissions.AccessContentsInformation, 'getDescription' ) - def getDescription(self): - """ - Returns the description of the documentation helper - """ - return getattr(self.getInstance(), "description", '') - - - security.declareProtected( Permissions.AccessContentsInformation, 'getSectionList' ) - def getSectionList(self): - """ - Returns a list of documentation sections - """ - return map(lambda x: x.__of__(self), [ - DocumentationSection( - id='state', - title='Workflow States', - class_name='DCWorkflowStateDocumentationHelper', - uri_list=self.getStateUriList(), - ), - DocumentationSection( - id='transition', - title='Workflow Transitions', - class_name='DCWorkflowTransitionDocumentationHelper', - uri_list=self.getTransitionUriList(), - ), - DocumentationSection( - id='variable', - title='Workflow Variables', - class_name='DCWorkflowVariableDocumentationHelper', - uri_list=self.getVariableUriList(), - ), - DocumentationSection( - id='permission', - title='Workflow Permissions', - class_name='DCWorkflowPermissionDocumentationHelper', - uri_list=self.getPermissionUriList(), - ), - DocumentationSection( - id='worklist', - title='Workflow Worklists', - class_name='DCWorkflowWorklistDocumentationHelper', - uri_list=self.getWorklistUriList(), - ), - DocumentationSection( - id='script', - title='Workflow Scripts', - class_name='DCWorkflowScriptDocumentationHelper', - uri_list=self.getScriptUriList(), - ), - ]) - - # Specific methods - security.declareProtected( Permissions.AccessContentsInformation, 'getStateIdList' ) - def getStateIdList(self): - """ - """ - state_list = [] - if hasattr(self.getInstance(), "states"): - if self.getInstance().states is not None: - for state in self.getInstance().states.objectValues(): - state_list.append(state.getId()) - return state_list - - security.declareProtected( Permissions.AccessContentsInformation, 'getStateItemList' ) - def getStateItemList(self): - """ - """ - state_list = [] - if hasattr(self.getInstance(), "states"): - if self.getInstance().states is not None: - for state in self.getInstance().states.objectValues(): - state_list.append((state.getId(), - state.__dict__["title"], - getStatePermissionsOfRole(state, 'Owner'), - getStatePermissionsOfRole(state, 'Assignor'), - getStatePermissionsOfRole(state, 'Assignee'), - getStatePermissionsOfRole(state, 'Associate'), - getStatePermissionsOfRole(state, 'Author'), - getStatePermissionsOfRole(state, 'Auditor') - )) - return state_list - - security.declareProtected( Permissions.AccessContentsInformation, 'getStateUriList' ) - def getStateUriList(self): - """ - """ - state_id_list = self.getStateIdList() - return map(lambda x: ('%s/states/%s' % (self.uri, x)), state_id_list) - - - security.declareProtected( Permissions.AccessContentsInformation, 'getStateURIList' ) - def getStateURIList(self): - """ - """ - state_item_list = self.getStateItemList() - klass = self.getInstance().__class__ - class_name = klass.__name__ - module = klass.__module__ - uri_prefix = '%s.%s.' % (module, class_name) - return map(lambda x: ('%s%s' % (uri_prefix, x[0]), x[1], x[2], x[3], x[4], x[5], x[6], x[7]), state_item_list) - - security.declareProtected( Permissions.AccessContentsInformation, 'getTransitionIdList' ) - def getTransitionIdList(self): - """ - """ - transition_list = [] - if hasattr(self.getInstance(), "transitions"): - if self.getInstance().transitions is not None: - for transition in self.getInstance().transitions.objectValues(): - transition_list.append(transition.getId()) - return transition_list - - security.declareProtected( Permissions.AccessContentsInformation, 'getTransitionItemList' ) - def getTransitionItemList(self): - """ - """ - transition_list = [] - trigger_type_list = ['Automatic','Initiated by user action','Initiated by WorkflowMethod'] - if hasattr(self.getInstance(), "transitions"): - if self.getInstance().transitions is not None: - for transition in self.getInstance().transitions.objectValues(): - guard_roles = "" - guard = dir(transition.guard) - if hasattr(transition.guard, '__dict__'): - if 'roles' in transition.guard.__dict__.keys(): - guard_roles = ', '.join(role for role in transition.guard.__dict__['roles']) - transition_list.append((transition.getId(), - transition.title, - trigger_type_list[transition.trigger_type], - transition.__dict__["description"], - guard_roles - )) - return transition_list - - security.declareProtected( Permissions.AccessContentsInformation, 'getTransitionUriList' ) - def getTransitionUriList(self): - """ - """ - transition_id_list = self.getTransitionIdList() - return map(lambda x: ('%s/transitions/%s' % (self.uri, x)), transition_id_list) - - security.declareProtected( Permissions.AccessContentsInformation, 'getTransitionURIList' ) - def getTransitionURIList(self): - """ - """ - transition_item_list = self.getTransitionItemList() - klass = self.getInstance().__class__ - class_name = klass.__name__ - module = klass.__module__ - uri_prefix = '%s.%s.' % (module, class_name) - return map(lambda x: ('%s%s' % (uri_prefix, x[0]), x[1], x[2], x[3], x[4]), transition_item_list) - - security.declareProtected( Permissions.AccessContentsInformation, 'getVariableIdList' ) - def getVariableIdList(self): - """ - """ - variable_list = [] - if hasattr(self.getInstance(), "variables"): - if self.getInstance().variables is not None: - for variable in self.getInstance().variables.objectValues(): - variable_list.append(variable.getId()) - return variable_list - - security.declareProtected( Permissions.AccessContentsInformation, 'getVariableItemList' ) - def getVariableItemList(self): - """ - """ - variable_list = [] - if hasattr(self.getInstance(), "variables"): - if self.getInstance().variables is not None: - for variable in self.getInstance().variables.objectValues(): - variable_list.append((variable.getId(), variable.title, variable.__dict__["description"])) - return variable_list - - security.declareProtected( Permissions.AccessContentsInformation, 'getVariableURIList' ) - def getVariableURIList(self): - """ - """ - variable_item_list = self.getVariableItemList() - klass = self.getInstance().__class__ - class_name = klass.__name__ - module = klass.__module__ - uri_prefix = '%s.%s.' % (module, class_name) - return map(lambda x: ('%s%s' % (uri_prefix, x[0]), x[1], x[2]), variable_item_list) - - security.declareProtected( Permissions.AccessContentsInformation, 'getVariableUriList' ) - def getVariableUriList(self): - """ - """ - variable_id_list = self.getVariableIdList() - return map(lambda x: ('%s/variables/%s' % (self.uri, x)), variable_id_list) - - security.declareProtected( Permissions.AccessContentsInformation, 'getPermissionIdList' ) - def getPermissionIdList(self): - """ - """ - permission_list = [] - if hasattr(self.getInstance(), "permissions"): - if self.getInstance().permissions is not None: - for permission in self.getInstance().permissions: - permission_list.append(permission) - return permission_list - - - security.declareProtected( Permissions.AccessContentsInformation, 'getPermissionURIList' ) - def getPermissionURIList(self): - """ - """ - permission_id_list = self.getPermissionIdList() - klass = self.getInstance().__class__ - class_name = klass.__name__ - module = klass.__module__ - uri_prefix = '%s.%s.' % (module, class_name) - return map(lambda x: '%s%s' % (uri_prefix, x), permission_id_list) - - security.declareProtected( Permissions.AccessContentsInformation, 'getPermissionUriList' ) - def getPermissionUriList(self): - """ - """ - permission_id_list = self.getPermissionIdList() - return map(lambda x: '%s/permissions/%s' % (self.uri, x), permission_id_list) - - security.declareProtected( Permissions.AccessContentsInformation, 'getWorklistIdList' ) - def getWorklistIdList(self): - """ - """ - worklist_list = [] - if hasattr(self.getInstance(), "worklists"): - if self.getInstance().worklists is not None: - for wl in self.getInstance().worklists.objectValues(): - worklist_list.append(wl.__name__) - return worklist_list - - security.declareProtected( Permissions.AccessContentsInformation, 'getWorklistItemList' ) - def getWorklistItemList(self): - """ - """ - worklist_list = [] - if hasattr(self.getInstance(), "worklists"): - if self.getInstance().worklists is not None: - for wl in self.getInstance().worklists.objectValues(): - guard_roles = "" - guard = dir(wl.guard) - if wl.title == "": - title = wl.actbox_name - else: - title = wl.title - if hasattr(wl.guard, '__dict__'): - if 'roles' in wl.guard.__dict__.keys(): - guard_roles = ', '.join(role for role in wl.guard.__dict__['roles']) - worklist_list.append((wl.__name__, title, wl.__dict__["description"],guard_roles)) - return worklist_list - - - security.declareProtected( Permissions.AccessContentsInformation, 'getWorklistURIList' ) - def getWorklistURIList(self): - """ - """ - worklist_item_list = self.getWorklistItemList() - klass = self.getInstance().__class__ - class_name = klass.__name__ - module = klass.__module__ - uri_prefix = '%s.%s.' % (module, class_name) - return map(lambda x: ('%s%s' % (uri_prefix, x[0]), x[1], x[2], x[3]), worklist_item_list) - - security.declareProtected( Permissions.AccessContentsInformation, 'getWorklistUriList' ) - def getWorklistUriList(self): - """ - """ - worklist_id_list = self.getWorklistIdList() - return map(lambda x: ('%s/worklists/%s' % (self.uri, x)), worklist_id_list) - - security.declareProtected( Permissions.AccessContentsInformation, 'getScriptIdList' ) - def getScriptIdList(self): - """ - """ - script_list = [] - if hasattr(self.getInstance(), "scripts"): - if self.getInstance().scripts is not None: - for script in self.getInstance().scripts.objectValues(): - script_list.append(script.__name__) - return script_list - - security.declareProtected( Permissions.AccessContentsInformation, 'getScriptItemList' ) - def getScriptItemList(self): - """ - """ - script_list = [] - if hasattr(self.getInstance(), "scripts"): - if self.getInstance().scripts is not None: - for script in self.getInstance().scripts.objectValues(): - script_list.append((script.__name__, script.title)) - return script_list - - - security.declareProtected( Permissions.AccessContentsInformation, 'getScriptURIList' ) - def getScriptURIList(self): - """ - """ - script_item_list = self.getScriptItemList() - klass = self.getInstance().__class__ - class_name = klass.__name__ - module = klass.__module__ - uri_prefix = '%s.%s.' % (module, class_name) - return map(lambda x: ('%s%s' % (uri_prefix, x[0]), x[1]), script_item_list) - - security.declareProtected( Permissions.AccessContentsInformation, 'getScriptUriList' ) - def getScriptUriList(self): - """ - """ - script_id_list = self.getScriptIdList() - return map(lambda x: ('%s/scripts/%s' % (self.uri, x)), script_id_list) - - security.declareProtected( Permissions.AccessContentsInformation, 'getGraphImageURL' ) - def getGraphImageURL(self): - """ - Returns a URL to a graphic representation of the workflow - """ - "" - - - security.declareProtected( Permissions.AccessContentsInformation, 'getGraphImageData' ) - def getGraphImageData(self, format='png'): - """ - Returns the graphic representation of the workflow as a PNG file - """ - return getGraph(self, wf_id=self.getInstance().__name__, format=format) InitializeClass(InteractionWorkflowDocumentationHelper) diff --git a/product/ERP5Type/DocumentationHelper/PageTemplateDocumentationHelper.py b/product/ERP5Type/DocumentationHelper/PageTemplateDocumentationHelper.py index 0c5e13baa18a7734e0df35686b02b5be811ceb58..7a7430a8958e9ac5a2335c6406f1731dd16a4f59 100644 --- a/product/ERP5Type/DocumentationHelper/PageTemplateDocumentationHelper.py +++ b/product/ERP5Type/DocumentationHelper/PageTemplateDocumentationHelper.py @@ -26,7 +26,6 @@ # ############################################################################## -from Acquisition import Implicit from AccessControl import ClassSecurityInfo from Globals import InitializeClass from DocumentationHelper import DocumentationHelper @@ -39,40 +38,14 @@ class PageTemplateDocumentationHelper(DocumentationHelper): security = ClassSecurityInfo() security.declareObjectProtected(Permissions.AccessContentsInformation) - def __init__(self, uri): - self.uri = uri - - security.declareProtected(Permissions.AccessContentsInformation, 'getType' ) + security.declareProtected(Permissions.AccessContentsInformation, 'getType') def getType(self): """ Returns the type of the documentation helper """ return "Page Template" - security.declareProtected(Permissions.AccessContentsInformation, 'getId' ) - def getId(self): - """ - Returns the id of the documentation helper - """ - return getattr(self.getDocumentedObject(), "id", '') - - - security.declareProtected(Permissions.AccessContentsInformation, 'getTitle' ) - def getTitle(self): - """ - Returns the title of the documentation helper - """ - return getattr(self.getDocumentedObject(), "title", '') - - security.declareProtected(Permissions.AccessContentsInformation, 'getDescription' ) - def getDescription(self): - """ - Returns the description of the documentation helper - """ - return getattr(self.getDocumentedObject(), "description", '') - - - security.declareProtected( Permissions.AccessContentsInformation, 'getSourceCode' ) + security.declareProtected(Permissions.AccessContentsInformation, 'getSourceCode') def getSourceCode(self): """ Returns the source code the script python diff --git a/product/ERP5Type/DocumentationHelper/PortalDocumentationHelper.py b/product/ERP5Type/DocumentationHelper/PortalDocumentationHelper.py index 3f181ef58925aa924ae0cdba2a62639784946dc3..7194f4a865138d7c7d45135f31b02ac4623679ff 100644 --- a/product/ERP5Type/DocumentationHelper/PortalDocumentationHelper.py +++ b/product/ERP5Type/DocumentationHelper/PortalDocumentationHelper.py @@ -26,7 +26,6 @@ # ############################################################################## -from Acquisition import Implicit from AccessControl import ClassSecurityInfo from Globals import InitializeClass from DocumentationHelper import DocumentationHelper diff --git a/product/ERP5Type/DocumentationHelper/PortalTypeActionDocumentationHelper.py b/product/ERP5Type/DocumentationHelper/PortalTypeActionDocumentationHelper.py index 6f4929cad1933b0066b5131c1f47da290b9b1f05..f4f966281aa88eef7c5586be088e5d4ef5c07dd5 100644 --- a/product/ERP5Type/DocumentationHelper/PortalTypeActionDocumentationHelper.py +++ b/product/ERP5Type/DocumentationHelper/PortalTypeActionDocumentationHelper.py @@ -26,7 +26,6 @@ # ############################################################################## -from Acquisition import Implicit from AccessControl import ClassSecurityInfo from Globals import InitializeClass from DocumentationHelper import DocumentationHelper @@ -39,45 +38,14 @@ class PortalTypeActionDocumentationHelper(DocumentationHelper): security = ClassSecurityInfo() security.declareObjectProtected(Permissions.AccessContentsInformation) - def __init__(self, uri): - self.uri = uri - - security.declareProtected(Permissions.AccessContentsInformation, 'getType' ) + security.declareProtected(Permissions.AccessContentsInformation, 'getType') def getType(self): """ Returns the type of the documentation helper """ return "Portal Type Action" - security.declareProtected(Permissions.AccessContentsInformation, 'getId' ) - def getId(self): - """ - Returns the id of the documentation helper - """ - return getattr(self.getDocumentedObject(), "__name__", '') - - security.declareProtected( Permissions.AccessContentsInformation, 'getSectionList' ) - def getSectionList(self): - """ - Returns a list of documentation sections - """ - return [] - - security.declareProtected(Permissions.AccessContentsInformation, 'getTitle' ) - def getTitle(self): - """ - Returns the title of the documentation helper - """ - return getattr(self.getDocumentedObject(), "title", '') - - security.declareProtected(Permissions.AccessContentsInformation, 'getDescription' ) - def getDescription(self): - """ - Returns the title of the documentation helper - """ - return getattr(self.getDocumentedObject(), "description", '') - - security.declareProtected(Permissions.AccessContentsInformation, 'getPermissions' ) + security.declareProtected(Permissions.AccessContentsInformation, 'getPermissions') def getPermissions(self): """ Returns the permissions of the documentation helper @@ -85,7 +53,7 @@ class PortalTypeActionDocumentationHelper(DocumentationHelper): permissions = getattr(self.getDocumentedObject(), "permissions", []) return ', '.join(x for x in permissions) - security.declareProtected(Permissions.AccessContentsInformation, 'getVisible' ) + security.declareProtected(Permissions.AccessContentsInformation, 'getVisible') def getVisible(self): """ Returns the visibility of the documentation helper @@ -93,7 +61,7 @@ class PortalTypeActionDocumentationHelper(DocumentationHelper): TITLE =['No', 'Yes'] return TITLE[getattr(self.getDocumentedObject(), "visible", 0)] - security.declareProtected(Permissions.AccessContentsInformation, 'getCategory' ) + security.declareProtected(Permissions.AccessContentsInformation, 'getCategory') def getCategory(self): """ Returns the category of the documentation helper diff --git a/product/ERP5Type/DocumentationHelper/PortalTypeDocumentationHelper.py b/product/ERP5Type/DocumentationHelper/PortalTypeDocumentationHelper.py index d38a7630f5c644079be4ff412aa0049f61a90d6b..a5ab8231fc359640546764dec9e7d32342503c36 100644 --- a/product/ERP5Type/DocumentationHelper/PortalTypeDocumentationHelper.py +++ b/product/ERP5Type/DocumentationHelper/PortalTypeDocumentationHelper.py @@ -26,13 +26,13 @@ # ############################################################################## -from Acquisition import Implicit from AccessControl import ClassSecurityInfo from Globals import InitializeClass +from Products.ERP5Type import Permissions +from Products.ERP5Type.Base import Base from DocumentationHelper import DocumentationHelper, TempObjectLibrary from DocumentationSection import DocumentationSection from PortalTypeInstanceDocumentationHelper import PortalTypeInstanceDocumentationHelper -from Products.ERP5Type import Permissions def getPortalType(uri=''): """ @@ -59,22 +59,64 @@ class PortalTypeDocumentationHelper(DocumentationHelper): 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' ) + _section_list = ( + dict( + id='action', + title='Actions', + class_name='PortalTypeActionDocumentationHelper', + ), + dict( + id='role', + title='Role Definitions', + class_name='PortalTypeRoleDocumentationHelper', + ), + dict( + id='allowed_content_type', + title='Allowed Content Type', + class_name='PortalTypeDocumentationHelper', + ), + dict( + id='hidden_content_type', + title='Hidden Content Type', + class_name='PortalTypeDocumentationHelper', + ), + dict( + id='property_sheet', + title='Property Sheet', + class_name='PortalTypePropertySheetDocumentationHelper', + ), + dict( + id='workflow_method', + title='Workflow Method', + class_name='WorkflowMethodDocumentationHelper', + ), + dict( + id='accessor_method', + title='Accessor', + class_name='AccessorMethodDocumentationHelper', + ), + dict( + id='class_method', + title='Class Methods', + class_name='ClassMethodDocumentationHelper', + ), + ) + + security.declareProtected(Permissions.AccessContentsInformation, 'getType') def getType(self): """ Returns the type of the documentation helper """ return "Portal Type" - security.declareProtected( Permissions.AccessContentsInformation, 'getClass' ) + security.declareProtected(Permissions.AccessContentsInformation, 'getTitle') + def getTitle(self): + """ + Returns the title of the documentation helper + """ + return DocumentationHelper.getTitle(self) or self.getId() + + security.declareProtected(Permissions.AccessContentsInformation, 'getClass') def getClass(self): """ Returns the Class of the documentation helper @@ -83,150 +125,44 @@ class PortalTypeDocumentationHelper(DocumentationHelper): klass = self.getTempInstance(portal_type).__class__.__bases__[0] return str(klass).split("'")[1] - - security.declareProtected( Permissions.AccessContentsInformation, 'getTempInstance' ) - def getTempInstance(self, portal_type): - """ - Returns a temporary instance of the given portal_type - """ - self.getTempInstance = TempObjectLibrary(self.getPortalObject().portal_classes) - return self.getTempInstance(portal_type) - - security.declareProtected( Permissions.AccessContentsInformation, 'getSectionList' ) - def getSectionList(self): - """ - Returns a list of documentation sections - """ - section_list = [] - if self.getActionUriList() != []: - section_list.append( - DocumentationSection( - id='action', - title='Actions', - class_name='PortalTypeActionDocumentationHelper', - uri_list=self.getActionUriList(), - ) - ) - if self.getRoleUriList() != []: - section_list.append( - DocumentationSection( - id='role', - title='Role Definitions', - class_name='PortalTypeRoleDocumentationHelper', - uri_list=self.getRoleUriList(), - ) - ) - if self.getRoleUriList() != []: - section_list.append( - DocumentationSection( - id='role', - title='Role Definitions', - class_name='PortalTypeRoleDocumentationHelper', - uri_list=self.getRoleUriList(), - ) - ) - if self.getAllowedContentTypeURIList() != []: - section_list.append( - DocumentationSection( - id='allowed_content_type', - title='Allowed Content Type', - class_name='PortalTypeDocumentationHelper', - uri_list=self.getAllowedContentTypeURIList(), - ) - ) - if self.getHiddenContentTypeURIList() != []: - section_list.append( - DocumentationSection( - id='hidden_content_type', - title='Hidden Content Type', - class_name='PortalTypeDocumentationHelper', - uri_list=self.getHiddenContentTypeURIList(), - ) - ) - if self.getPropertySheetURIList() != []: - section_list.append( - DocumentationSection( - id='property_sheet', - title='Property Sheet', - class_name='PortalTypePropertySheetDocumentationHelper', - uri_list=self.getPropertySheetURIList(), - ) - ) - if self.getWorkflowMethodUriList(inherited=0) != []: - section_list.append( - DocumentationSection( - id='workflow_method', - title='Workflow Method', - class_name='WorkflowMethodDocumentationHelper', - uri_list=self.getWorkflowMethodUriList(inherited=0), - ) - ) - if self.getAccessorMethodUriList(inherited=0) != []: - section_list.append( - DocumentationSection( - id='accessor', - title='Accessor', - class_name='AccessorMethodDocumentationHelper', - uri_list=self.getAccessorMethodUriList(inherited=0), - ) - ) - if self.getClassMethodURIList(inherited=0) != []: - section_list.append( - DocumentationSection( - id='class_method', - title='Class Methods', - class_name='ClassMethodDocumentationHelper', - uri_list=self.getClassMethodURIList(inherited=0), - ) - ) - return map(lambda x: x.__of__(self), section_list) - - # Specific methods - security.declareProtected( Permissions.AccessContentsInformation, 'getDescription' ) - def getDescription(self): - """ - Returns the title of the documentation helper - """ - return self.getDocumentedObject().Description() - - security.declareProtected( Permissions.AccessContentsInformation, 'getAllowedContentTypeList' ) + security.declareProtected(Permissions.AccessContentsInformation, 'getAllowedContentTypeList') def getAllowedContentTypeList(self): """ Returns the list of allowed content type of the documentation helper """ return getattr(self.getDocumentedObject(), "allowed_content_types", []) - security.declareProtected( Permissions.AccessContentsInformation, 'getAllowedContentTypeURIList' ) - def getAllowedContentTypeURIList(self): + security.declareProtected(Permissions.AccessContentsInformation, 'getAllowedContentTypeUriList') + def getAllowedContentTypeUriList(self): """ Returns the uri's list of allowed content type of the documentation helper """ allowed_content_type_list = self.getAllowedContentTypeList() return map(lambda x: ('%s/%s' % (self.uri, x)), allowed_content_type_list) - security.declareProtected( Permissions.AccessContentsInformation, 'getHiddenContentTypeList' ) + security.declareProtected(Permissions.AccessContentsInformation, 'getHiddenContentTypeList') def getHiddenContentTypeList(self): """ Returns the list of hidden content type of the documentation helper """ return getattr(self.getDocumentedObject(), "hidden_content_type_list", []) - security.declareProtected( Permissions.AccessContentsInformation, 'getHiddenContentTypeURIList' ) - def getHiddenContentTypeURIList(self): + security.declareProtected(Permissions.AccessContentsInformation, 'getHiddenContentTypeUriList') + def getHiddenContentTypeUriList(self): """ Returns the uri's list of hidden content type of the documentation helper """ hidden_content_type_list = self.getHiddenContentTypeList() return map(lambda x: ('%s/%s' % (self.uri, x)), hidden_content_type_list) - security.declareProtected( Permissions.AccessContentsInformation, 'getBaseCategoryList' ) + security.declareProtected(Permissions.AccessContentsInformation, 'getBaseCategoryList') def getBaseCategoryList(self): """ Returns the list of base category of the documentation helper """ return getattr(self.getDocumentedObject(), "base_category_list", []) - security.declareProtected( Permissions.AccessContentsInformation, 'getAcquireLocalRoles' ) + security.declareProtected(Permissions.AccessContentsInformation, 'getAcquireLocalRoles') def getAcquireLocalRoles(self): """ Returns the list of allowed content type for the documentation helper @@ -237,36 +173,32 @@ class PortalTypeDocumentationHelper(DocumentationHelper): else: return 'No' - security.declareProtected( Permissions.AccessContentsInformation, 'getPropertySheetList' ) + security.declareProtected(Permissions.AccessContentsInformation, 'getPropertySheetList') def getPropertySheetList(self): """ Returns the list of property sheets for the documentation helper """ - id = getattr(self.getDocumentedObject(), "id", '') - temp_object = self.getTempInstance(id) - property_sheet = [] - for obj in temp_object.property_sheets: - property_sheet.append(obj.__module__.split('.')[-1]) - for obj in self.getDocumentedObject().property_sheet_list: - property_sheet.append(obj) + temp_object = self.getTempInstance(self.getId()) + property_sheet = [obj.__name__ for obj in temp_object.property_sheets] + property_sheet += self.getDocumentedObject().property_sheet_list return property_sheet - security.declareProtected( Permissions.AccessContentsInformation, 'getPropertySheetURIList' ) - def getPropertySheetURIList(self): + security.declareProtected(Permissions.AccessContentsInformation, 'getPropertySheetUriList') + def getPropertySheetUriList(self): """ Returns the uri's list of property sheets for the documentation helper """ property_sheet_list = self.getPropertySheetList() return map(lambda x: ('%s/%s.py' % (self.uri, x)), property_sheet_list) - security.declareProtected( Permissions.AccessContentsInformation, 'getGroupList' ) + security.declareProtected(Permissions.AccessContentsInformation, 'getGroupList') def getGroupList(self): """ Returns the list of groups for the documentation helper """ return getattr(self.getDocumentedObject(), "group_list", []) - security.declareProtected( Permissions.AccessContentsInformation, 'getActionIdList' ) + security.declareProtected(Permissions.AccessContentsInformation, 'getActionIdList') def getActionIdList(self): """ """ @@ -276,7 +208,7 @@ class PortalTypeDocumentationHelper(DocumentationHelper): action_list.append(action.getId()) return action_list - security.declareProtected( Permissions.AccessContentsInformation, 'getActionItemList' ) + security.declareProtected(Permissions.AccessContentsInformation, 'getActionItemList') def getActionItemList(self): """ """ @@ -289,25 +221,14 @@ class PortalTypeDocumentationHelper(DocumentationHelper): action_list.append((action.getId(), action.title, action.Description(), permission, visible, category)) return action_list - security.declareProtected( Permissions.AccessContentsInformation, 'getActionURIList' ) - def getActionURIList(self): - """ - """ - action_item_list = self.getActionItemList() - klass = self.getDocumentedObject().__class__ - class_name = klass.__name__ - module = klass.__module__ - uri_prefix = '%s.%s.' % (module, class_name) - return map(lambda x: ('%s%s' % (uri_prefix, x[0]), x[1], x[2], x[3], x[4], x[5]), action_item_list) - - security.declareProtected( Permissions.AccessContentsInformation, 'getActionUriList' ) + security.declareProtected(Permissions.AccessContentsInformation, 'getActionUriList') def getActionUriList(self): """ """ action_id_list = self.getActionIdList() - return map(lambda x: ('%s/%s' % (self.uri, x)), action_id_list) + return map(lambda x: ('%s?_actions#%s' % (self.uri, x)), action_id_list) - security.declareProtected( Permissions.AccessContentsInformation, 'getRoleIdList' ) + security.declareProtected(Permissions.AccessContentsInformation, 'getRoleIdList') def getRoleIdList(self): """ """ @@ -317,7 +238,7 @@ class PortalTypeDocumentationHelper(DocumentationHelper): role_list.append(role.Title()) return role_list - security.declareProtected( Permissions.AccessContentsInformation, 'getRoleItemList' ) + security.declareProtected(Permissions.AccessContentsInformation, 'getRoleItemList') def getRoleItemList(self): """ """ @@ -326,7 +247,7 @@ class PortalTypeDocumentationHelper(DocumentationHelper): role_list.append((role.__name__, role.Title(), role.Description())) return role_list - security.declareProtected( Permissions.AccessContentsInformation, 'getRoleURIList' ) + security.declareProtected(Permissions.AccessContentsInformation, 'getRoleURIList') def getRoleURIList(self): """ """ @@ -337,41 +258,27 @@ class PortalTypeDocumentationHelper(DocumentationHelper): uri_prefix = '%s.%s.' % (module, class_name) return map(lambda x: ('%s%s' % (uri_prefix, x[0]), x[1], x[2]), role_item_list) - security.declareProtected( Permissions.AccessContentsInformation, 'getRoleUriList' ) + security.declareProtected(Permissions.AccessContentsInformation, 'getRoleUriList') def getRoleUriList(self): """ """ role_id_list = self.getRoleIdList() - return map(lambda x: ('%s/%s' % (self.uri, x)), role_id_list) + return map(lambda x: ('%s?_roles#%s' % (self.uri, x)), role_id_list) def _getPropertyHolder(self): - from Products.ERP5Type.Base import Base portal_type = getPortalType(self.uri) temp_object = self.getTempInstance(portal_type) dir_temp = dir(temp_object) return Base.aq_portal_type[(portal_type, temp_object.__class__)] - security.declareProtected(Permissions.AccessContentsInformation, 'getWorkflowMethodIdList' ) - def getWorkflowMethodIdList(self, inherited=1): + security.declareProtected(Permissions.AccessContentsInformation, 'getWorkflowMethodIdList') + def getWorkflowMethodIdList(self): """ """ return self._getPropertyHolder().getWorkflowMethodIdList() - security.declareProtected(Permissions.AccessContentsInformation, 'getWorkflowMethodURIList' ) - def getWorkflowMethodURIList(self, inherited=1, local=1): - """ - Returns a list of URIs to workflow methods - """ - method_id_list = self.getWorkflowMethodIdList() - portal_type = getPortalType(self.uri) - klass = self.getTempInstance(portal_type).__class__ - class_name = klass.__name__ - module = klass.__module__ - uri_prefix = '' #'%s.%s.' % (module, class_name) - return map(lambda x: '%s%s' % (uri_prefix, x), method_id_list) - - security.declareProtected(Permissions.AccessContentsInformation, 'getWorkflowMethodUriList' ) - def getWorkflowMethodUriList(self, inherited=1, local=1): + security.declareProtected(Permissions.AccessContentsInformation, 'getWorkflowMethodUriList') + def getWorkflowMethodUriList(self): """ Returns a list of URIs to workflow methods """ @@ -384,21 +291,21 @@ class PortalTypeDocumentationHelper(DocumentationHelper): return map(lambda x: '%s#%s' % (uri_prefix, x), method_id_list) - security.declareProtected( Permissions.AccessContentsInformation, 'getClassMethodIdList' ) - def getClassMethodIdList(self, inherited=1, local=1): + security.declareProtected(Permissions.AccessContentsInformation, 'getClassMethodIdList') + def getClassMethodIdList(self, **kw): """ Return a list of tuple (id, method) for every class method """ portal_type = getPortalType(self.uri) klass = self.getTempInstance(portal_type).__class__.__bases__[0] - return self._getPropertyHolder().getClassMethodIdList(klass, inherited=inherited, local=local) + return self._getPropertyHolder().getClassMethodIdList(klass, **kw) - security.declareProtected( Permissions.AccessContentsInformation, 'getClassMethodURIList' ) - def getClassMethodURIList(self, inherited=1, local=1): + security.declareProtected(Permissions.AccessContentsInformation, 'getClassMethodUriList') + def getClassMethodUriList(self, inherited=0, **kw): """ Returns a list of URIs to class methods """ - method_id_list = self.getClassMethodIdList(inherited=inherited, local=local) + method_id_list = self.getClassMethodIdList(inherited=inherited, **kw) portal_type = getPortalType(self.uri) klass = self.getTempInstance(portal_type).__class__.__bases__[0] class_name = klass.__name__ @@ -406,31 +313,18 @@ class PortalTypeDocumentationHelper(DocumentationHelper): uri_prefix = '%s.%s.' % (module, class_name) return map(lambda x: '%s%s' % (uri_prefix, x), method_id_list) - security.declareProtected( Permissions.AccessContentsInformation, 'getAccessorMethodIdList' ) - def getAccessorMethodIdList(self, inherited=1): + security.declareProtected(Permissions.AccessContentsInformation, 'getAccessorMethodIdList') + def getAccessorMethodIdList(self): """ """ return self._getPropertyHolder().getAccessorMethodIdList() - security.declareProtected( Permissions.AccessContentsInformation, 'getAccessorMethodURIList' ) - def getAccessorMethodURIList(self, inherited=1, local=1): - """ - Returns a list of URIs to accessor methods - """ - method_id_list = self.getAccessorMethodIdList(inherited=inherited) - portal_type = getPortalType(self.uri) - klass = self.getTempInstance(portal_type).__class__.__bases__[0] - class_name = klass.__name__ - module = klass.__module__ - uri_prefix = '%s.%s.' % (module, class_name) - return map(lambda x: '%s%s' % (uri_prefix, x), method_id_list) - - security.declareProtected( Permissions.AccessContentsInformation, 'getAccessorMethodUriList' ) - def getAccessorMethodUriList(self, inherited=1, local=1): + security.declareProtected(Permissions.AccessContentsInformation, 'getAccessorMethodUriList') + def getAccessorMethodUriList(self): """ Returns a list of URIs to accessor methods """ - method_id_list = self.getAccessorMethodIdList(inherited=inherited) + method_id_list = self.getAccessorMethodIdList() portal_type = getPortalType(self.uri) klass = self.getTempInstance(portal_type).__class__.__bases__[0] class_name = klass.__name__ diff --git a/product/ERP5Type/DocumentationHelper/PortalTypeInstanceDocumentationHelper.py b/product/ERP5Type/DocumentationHelper/PortalTypeInstanceDocumentationHelper.py index 92f77b6ae79b953225bc5ce88c04bb7641600356..4bb2017f24999e65b4ddedb468427a969c937bd8 100644 --- a/product/ERP5Type/DocumentationHelper/PortalTypeInstanceDocumentationHelper.py +++ b/product/ERP5Type/DocumentationHelper/PortalTypeInstanceDocumentationHelper.py @@ -26,7 +26,6 @@ # ############################################################################## -from Acquisition import Implicit from AccessControl import ClassSecurityInfo from Globals import InitializeClass from DocumentationHelper import DocumentationHelper @@ -42,195 +41,153 @@ class PortalTypeInstanceDocumentationHelper(DocumentationHelper): security = ClassSecurityInfo() security.declareObjectProtected(Permissions.AccessContentsInformation) - def __init__(self, uri): - self.uri = uri - - def getInstance(self): - return self.getPortalObject().restrictedTraverse(self.uri) - - # API Implementation - security.declareProtected( Permissions.AccessContentsInformation, 'getTitle' ) - def getTitle(self): - """ - Returns the title of the documentation helper - """ - return self.getInstance().getTitleOrId() - - security.declareProtected( Permissions.AccessContentsInformation, 'getType' ) + _section_list = ( + dict( + id='workflow_method', + title='Workflow Method', + class_name='WorkflowMethodDocumentationHelper', + ), + dict( + id='accessor_method', + title='Accessor', + class_name='AccessorMethodDocumentationHelper', + ), + dict( + id='class_method', + title='Class Methods', + class_name='ClassMethodDocumentationHelper', + ), + ) + + security.declareProtected(Permissions.AccessContentsInformation, 'getType') def getType(self): """ Returns the type of the documentation helper """ return "Portal Type Instance" - security.declareProtected( Permissions.AccessContentsInformation, 'getSectionList' ) - def getSectionList(self): - """ - Returns a list of documentation sections - """ - section_list = [] - if self.getWorkflowMethodURIList(inherited=0) != []: - section_list.append( - DocumentationSection( - id='workflow_method', - title='Workflow Method', - class_name='WorkflowMethodDocumentationHelper', - uri_list=self.getWorkflowMethodURIList(inherited=0), - ) - ) - if self.getAccessorMethodURIList(inherited=0) != []: - section_list.append( - DocumentationSection( - id='accessor', - title='Accessor', - class_name='AccessorMethodDocumentationHelper', - uri_list=self.getAccessorMethodURIList(inherited=0), - ) - ) - if self.getClassMethodURIList(inherited=0) != []: - section_list.append( - DocumentationSection( - id='class_method', - title='Class Methods', - class_name='ClassMethodDocumentationHelper', - uri_list=self.getClassMethodURIList(inherited=0), - ) - ) - return map(lambda x: x.__of__(self.getInstance()), section_list) - - # Specific methods - security.declareProtected( Permissions.AccessContentsInformation, 'getPortalType' ) + security.declareProtected(Permissions.AccessContentsInformation, 'getPortalType') def getPortalType(self): """ """ - return self.getInstance().getPortalType() - - def _getPropertyHolder(self): - from Products.ERP5Type.Base import Base - property_holder = None - key = (self.getPortalType(), self.getInstance().__class__) - if not(Base.aq_portal_type.has_key(key)): - self.getInstance().initializePortalTypeDynamicProperties() - property_holder = Base.aq_portal_type[(self.getPortalType(), self.getInstance().__class__)] - return property_holder + return self.getDocumentedObject().getPortalType() - security.declareProtected( Permissions.AccessContentsInformation, 'getAccessorMethodItemList' ) + security.declareProtected(Permissions.AccessContentsInformation, 'getAccessorMethodItemList') def getAccessorMethodItemList(self): """ """ return self._getPropertyHolder().getAccessorMethodItemList() - security.declareProtected( Permissions.AccessContentsInformation, 'getAccessorMethodIdList' ) - def getAccessorMethodIdList(self, inherited=1): + security.declareProtected(Permissions.AccessContentsInformation, 'getAccessorMethodIdList') + def getAccessorMethodIdList(self): """ """ return self._getPropertyHolder().getAccessorMethodIdList() - security.declareProtected( Permissions.AccessContentsInformation, 'getAccessorMethodURIList' ) - def getAccessorMethodURIList(self, inherited=1, local=1): + security.declareProtected(Permissions.AccessContentsInformation, 'getAccessorMethodUriList') + def getAccessorMethodUriList(self): """ Returns a list of URIs to accessor methods """ - method_id_list = self.getAccessorMethodIdList(inherited=inherited) - klass = self.getInstance().__class__ + method_id_list = self.getAccessorMethodIdList() + klass = self.getDocumentedObject().__class__ class_name = klass.__name__ module = klass.__module__ uri_prefix = '%s.%s.' % (module, class_name) return map(lambda x: '%s%s' % (uri_prefix, x), method_id_list) - security.declareProtected(Permissions.AccessContentsInformation, 'getWorkflowMethodItemList' ) + security.declareProtected(Permissions.AccessContentsInformation, 'getWorkflowMethodItemList') def getWorkflowMethodItemList(self): """ """ return self._getPropertyHolder().getWorkflowMethodItemList() - security.declareProtected(Permissions.AccessContentsInformation, 'getWorkflowObject' ) + security.declareProtected(Permissions.AccessContentsInformation, 'getWorkflowObject') def getWorkflowObject(self): """ """ return self._getPropertyHolder() - security.declareProtected(Permissions.AccessContentsInformation, 'getWorkflowMethodIdList' ) - def getWorkflowMethodIdList(self, inherited=1): + security.declareProtected(Permissions.AccessContentsInformation, 'getWorkflowMethodIdList') + def getWorkflowMethodIdList(self): """ """ return self._getPropertyHolder().getWorkflowMethodIdList() - security.declareProtected(Permissions.AccessContentsInformation, 'getWorkflowMethodURIList' ) - def getWorkflowMethodURIList(self, inherited=1, local=1): + security.declareProtected(Permissions.AccessContentsInformation, 'getWorkflowMethodUriList') + def getWorkflowMethodUriList(self): """ Returns a list of URIs to workflow methods """ method_id_list = self.getWorkflowMethodIdList() - klass = self.getInstance().__class__ + klass = self.getDocumentedObject().__class__ class_name = klass.__name__ module = klass.__module__ uri_prefix = '' #'%s.%s.' % (module, class_name) return map(lambda x: '%s%s' % (uri_prefix, x), method_id_list) - - security.declareProtected(Permissions.AccessContentsInformation, 'getActionMethodItemList' ) + security.declareProtected(Permissions.AccessContentsInformation, 'getActionMethodItemList') def getActionMethodItemList(self): """ """ return self._getPropertyHolder().getActionMethodItemList() - security.declareProtected( Permissions.AccessContentsInformation, 'getActionMethodIdList' ) + security.declareProtected(Permissions.AccessContentsInformation, 'getActionMethodIdList') def getActionMethodIdList(self): """ """ return self._getPropertyHolder().getActionMethodIdList() - security.declareProtected( Permissions.AccessContentsInformation, 'getClassMethodItemList' ) - def getClassMethodItemList(self, inherited=1, local=1): + security.declareProtected(Permissions.AccessContentsInformation, 'getClassMethodItemList') + def getClassMethodItemList(self, **kw): """ Return a list of tuple (id, method) for every class method """ - klass = self.getInstance().__class__ - return self._getPropertyHolder().getClassMethodItemList(klass, inherited=inherited, local=local) + klass = self.getDocumentedObject().__class__ + return self._getPropertyHolder().getClassMethodItemList(klass, **kw) - security.declareProtected( Permissions.AccessContentsInformation, 'getClassMethodIdList' ) - def getClassMethodIdList(self, inherited=1, local=1): + security.declareProtected(Permissions.AccessContentsInformation, 'getClassMethodIdList') + def getClassMethodIdList(self, **kw): """ Return a list of tuple (id, method) for every class method """ - klass = self.getInstance().__class__ - return self._getPropertyHolder().getClassMethodIdList(klass, inherited=inherited, local=local) + klass = self.getDocumentedObject().__class__ + return self._getPropertyHolder().getClassMethodIdList(klass, **kw) - security.declareProtected( Permissions.AccessContentsInformation, 'getClassMethodURIList' ) - def getClassMethodURIList(self, inherited=1, local=1): + security.declareProtected(Permissions.AccessContentsInformation, 'getClassMethodUriList') + def getClassMethodUriList(self, inherited=0, **kw): """ Returns a list of URIs to class methods """ - method_id_list = self.getClassMethodIdList(inherited=inherited, local=local) - klass = self.getInstance().__class__ + method_id_list = self.getClassMethodIdList(inherited=inherited, **kw) + klass = self.getDocumentedObject().__class__ class_name = klass.__name__ module = klass.__module__ uri_prefix = '%s.%s.' % (module, class_name) return map(lambda x: '%s%s' % (uri_prefix, x), method_id_list) - security.declareProtected( Permissions.AccessContentsInformation, 'getClassPropertyItemList' ) - def getClassPropertyItemList(self, inherited=1, local=1): + security.declareProtected(Permissions.AccessContentsInformation, 'getClassPropertyItemList') + def getClassPropertyItemList(self, **kw): """ Return a list of tuple (id, method) for every class method """ - klass = self.getInstance().__class__ - return self._getPropertyHolder().getClassPropertyItemList(klass, inherited=inherited, local=local) + klass = self.getDocumentedObject().__class__ + return self._getPropertyHolder().getClassPropertyItemList(klass, **kw) - security.declareProtected( Permissions.AccessContentsInformation, 'getClassPropertyIdList' ) - def getClassPropertyIdList(self, inherited=1, local=1): + security.declareProtected(Permissions.AccessContentsInformation, 'getClassPropertyIdList') + def getClassPropertyIdList(self, **kw): """ Return a list of tuple (id, method) for every class method """ - klass = self.getInstance().__class__ - return self._getPropertyHolder().getClassPropertyIdList(klass, inherited=inherited, local=local) + klass = self.getDocumentedObject().__class__ + return self._getPropertyHolder().getClassPropertyIdList(klass, **kw) - security.declareProtected( Permissions.AccessContentsInformation, 'getGeneratedPropertyIdList' ) + security.declareProtected(Permissions.AccessContentsInformation, 'getGeneratedPropertyIdList') def getGeneratedPropertyIdList(self): """ """ - security.declareProtected( Permissions.AccessContentsInformation, 'getGeneratedBaseCategoryIdList' ) + security.declareProtected(Permissions.AccessContentsInformation, 'getGeneratedBaseCategoryIdList') def getGeneratedBaseCategoryIdList(self): """ """ diff --git a/product/ERP5Type/DocumentationHelper/PortalTypePropertySheetDocumentationHelper.py b/product/ERP5Type/DocumentationHelper/PortalTypePropertySheetDocumentationHelper.py index 8bde5a5ebb03bab8fb8c4df88c17881b8dfaceac..f430e14c22090286616cf9409b926a06ab20bbd4 100644 --- a/product/ERP5Type/DocumentationHelper/PortalTypePropertySheetDocumentationHelper.py +++ b/product/ERP5Type/DocumentationHelper/PortalTypePropertySheetDocumentationHelper.py @@ -26,12 +26,13 @@ # ############################################################################## -from Acquisition import Implicit from AccessControl import ClassSecurityInfo from Globals import InitializeClass from DocumentationHelper import DocumentationHelper from Products.ERP5Type import Permissions from Products.CMFCore.utils import getToolByName + +# XXX Use lxml instead. try: from libxml2 import parseDoc, parserError import_succeed = 1 @@ -47,32 +48,28 @@ class PortalTypePropertySheetDocumentationHelper(DocumentationHelper): security = ClassSecurityInfo() security.declareObjectProtected(Permissions.AccessContentsInformation) - def __init__(self, uri): - self.uri = uri - - security.declareProtected(Permissions.AccessContentsInformation, 'getType' ) + security.declareProtected(Permissions.AccessContentsInformation, 'getType') def getType(self): """ Returns the type of the documentation helper """ return "Property Sheet" - security.declareProtected(Permissions.AccessContentsInformation, 'getId' ) + security.declareProtected(Permissions.AccessContentsInformation, 'getId') def getId(self): """ Returns the id of the documentation helper """ - name = getattr(self.getDocumentedObject(), "name", '') - return name.split("/")[-1] + return self.uri.rsplit("/",1)[-1][:-3] - security.declareProtected(Permissions.AccessContentsInformation, 'getTitle' ) + security.declareProtected(Permissions.AccessContentsInformation, 'getTitle') def getTitle(self): """ Returns the title of the documentation helper """ - return getattr(self.getDocumentedObject(), "name", '') + return self.getDocumentedObject().name - security.declareProtected( Permissions.AccessContentsInformation, 'getSourceCode' ) + security.declareProtected(Permissions.AccessContentsInformation, 'getSourceCode') def getSourceCode(self): """ Returns the source code the property sheet @@ -132,5 +129,4 @@ class PortalTypePropertySheetDocumentationHelper(DocumentationHelper): return source_code - InitializeClass(PortalTypePropertySheetDocumentationHelper) diff --git a/product/ERP5Type/DocumentationHelper/PortalTypeRoleDocumentationHelper.py b/product/ERP5Type/DocumentationHelper/PortalTypeRoleDocumentationHelper.py index c6afc1fb5cf7e7deafa81d05171c93e17cb3a425..10df9a90551f5467a5c45111892aacdb2edc1d9a 100644 --- a/product/ERP5Type/DocumentationHelper/PortalTypeRoleDocumentationHelper.py +++ b/product/ERP5Type/DocumentationHelper/PortalTypeRoleDocumentationHelper.py @@ -26,7 +26,6 @@ # ############################################################################## -from Acquisition import Implicit from AccessControl import ClassSecurityInfo from Globals import InitializeClass from DocumentationHelper import DocumentationHelper @@ -39,53 +38,21 @@ class PortalTypeRoleDocumentationHelper(DocumentationHelper): security = ClassSecurityInfo() security.declareObjectProtected(Permissions.AccessContentsInformation) - def __init__(self, uri): - self.uri = uri - - security.declareProtected(Permissions.AccessContentsInformation, 'getDescription') - def getDescription(self): - documented_object = self.getDocumentedObject() - if documented_object is not None: - return documented_object.Description() - else: - return '' - - security.declareProtected(Permissions.AccessContentsInformation, 'getType' ) + security.declareProtected(Permissions.AccessContentsInformation, 'getType') def getType(self): """ Returns the type of the documentation helper """ return "Portal Type Role" - security.declareProtected(Permissions.AccessContentsInformation, 'getId' ) - def getId(self): - """ - Returns the id of the documentation helper - """ - return getattr(self.getDocumentedObject(), "__name__", '') - - security.declareProtected( Permissions.AccessContentsInformation, 'getSectionList' ) - def getSectionList(self): - """ - Returns a list of documentation sections - """ - return [] - - security.declareProtected(Permissions.AccessContentsInformation, 'getTitle' ) - def getTitle(self): - """ - Returns the title of the documentation helper - """ - return getattr(self.getDocumentedObject(), "title", '') - - security.declareProtected(Permissions.AccessContentsInformation, 'getCategoryList' ) + security.declareProtected(Permissions.AccessContentsInformation, 'getCategoryList') def getCategoryList(self): """ Returns the list of categories for the role """ return getattr(self.getDocumentedObject(), "category", '') - security.declareProtected(Permissions.AccessContentsInformation, 'getBaseCategoryScript' ) + security.declareProtected(Permissions.AccessContentsInformation, 'getBaseCategoryScript') def getBaseCategoryScript(self): """ Returns the base category script of the role diff --git a/product/ERP5Type/DocumentationHelper/PropertyDocumentationHelper.py b/product/ERP5Type/DocumentationHelper/PropertyDocumentationHelper.py index 1708bc3a167e7d6d28640817f3bbcc5de805c8e2..f5015ff348830ef0697545b7ea40c6f96c11d336 100644 --- a/product/ERP5Type/DocumentationHelper/PropertyDocumentationHelper.py +++ b/product/ERP5Type/DocumentationHelper/PropertyDocumentationHelper.py @@ -26,7 +26,6 @@ # ############################################################################## -from Acquisition import Implicit from AccessControl import ClassSecurityInfo from Globals import InitializeClass from DocumentationHelper import DocumentationHelper diff --git a/product/ERP5Type/DocumentationHelper/ScriptPythonDocumentationHelper.py b/product/ERP5Type/DocumentationHelper/ScriptPythonDocumentationHelper.py index 9cbc4848666ba47b2ee72a396530077870e79b12..6385ba5a7c1ad65cd100ea4a6f7f11db0195ce73 100644 --- a/product/ERP5Type/DocumentationHelper/ScriptPythonDocumentationHelper.py +++ b/product/ERP5Type/DocumentationHelper/ScriptPythonDocumentationHelper.py @@ -26,12 +26,10 @@ # ############################################################################## -from Acquisition import Implicit from AccessControl import ClassSecurityInfo from Globals import InitializeClass from DocumentationHelper import DocumentationHelper from Products.ERP5Type import Permissions -from AccessorMethodDocumentationHelper import getDefinitionString class ScriptPythonDocumentationHelper(DocumentationHelper): """ @@ -40,38 +38,21 @@ class ScriptPythonDocumentationHelper(DocumentationHelper): security = ClassSecurityInfo() security.declareObjectProtected(Permissions.AccessContentsInformation) - def __init__(self, uri): - self.uri = uri - - security.declareProtected(Permissions.AccessContentsInformation, 'getType' ) + security.declareProtected(Permissions.AccessContentsInformation, 'getType') def getType(self): """ Returns the type of the documentation helper """ return "Script Python" - security.declareProtected(Permissions.AccessContentsInformation, 'getId' ) - def getId(self): - """ - Returns the id of the documentation helper - """ - return getattr(self.getDocumentedObject(), "id", '') - - security.declareProtected(Permissions.AccessContentsInformation, 'getTitle' ) - def getTitle(self): - """ - Returns the title of the documentation helper - """ - return getattr(self.getDocumentedObject(), "title", '') - - security.declareProtected(Permissions.AccessContentsInformation, 'getParams' ) + security.declareProtected(Permissions.AccessContentsInformation, 'getParams') def getParams(self): """ Returns the title of the documentation helper """ return getattr(self.getDocumentedObject(), "_params", '') - security.declareProtected( Permissions.AccessContentsInformation, 'getSourceCode' ) + security.declareProtected(Permissions.AccessContentsInformation, 'getSourceCode') def getSourceCode(self): """ Returns the source code the script python @@ -97,7 +78,7 @@ class ScriptPythonDocumentationHelper(DocumentationHelper): source_html = portal_transforms.convertTo(mime_type, source_code, mimetype = src_mimetype) return source_html.getData() - security.declareProtected( Permissions.AccessContentsInformation, 'getDefinition' ) + security.declareProtected(Permissions.AccessContentsInformation, 'getDefinition') def getDefinition(self): """ Returns the definition of the script with the name of the script and arguments diff --git a/product/ERP5Type/DocumentationHelper/SkinFolderDocumentationHelper.py b/product/ERP5Type/DocumentationHelper/SkinFolderDocumentationHelper.py index 9b6c39e27c46c41d135b60c4ecb1250ddd336cce..bf63e4774ca638d590019b8f2989be19db305b2b 100644 --- a/product/ERP5Type/DocumentationHelper/SkinFolderDocumentationHelper.py +++ b/product/ERP5Type/DocumentationHelper/SkinFolderDocumentationHelper.py @@ -26,11 +26,10 @@ # ############################################################################## -from Acquisition import Implicit from AccessControl import ClassSecurityInfo +from Acquisition import aq_base from Globals import InitializeClass from DocumentationHelper import DocumentationHelper -from DocumentationSection import DocumentationSection from Products.ERP5Type import Permissions class SkinFolderDocumentationHelper(DocumentationHelper): @@ -40,118 +39,75 @@ class SkinFolderDocumentationHelper(DocumentationHelper): security = ClassSecurityInfo() security.declareObjectProtected(Permissions.AccessContentsInformation) - def __init__(self, uri): - self.uri = uri + _section_list = ( + dict( + id='erp5_form', + title='ERP5 Form', + class_name='ERP5FormDocumentationHelper', + ), + dict( + id='zsql_method', + title='Z SQL Method', + class_name='ZSQLMethodDocumentationHelper', + ), + dict( + id='page_template', + title='Page Template', + class_name='PageTemplateDocumentationHelper', + ), + dict( + id='script_python', + title='Script (Python)', + class_name='ScriptPythonDocumentationHelper', + ), + ) - security.declareProtected( Permissions.AccessContentsInformation, 'getSectionList' ) - def getSectionList(self): - """ - Returns a list of documentation sections - """ - section_list = [] - if self.getFileURIList(meta_type='ERP5 Form') != []: - section_list.append( - DocumentationSection( - id='erp5_form', - title='ERP5 Form', - class_name='ERP5FormDocumentationHelper', - uri_list=self.getFileURIList(meta_type='ERP5 Form'), - ) - ) - if self.getFileURIList(meta_type='Z SQL Method') != []: - section_list.append( - DocumentationSection( - id='zsql_method', - title='Z SQL Method', - class_name='ZSQLMethodDocumentationHelper', - uri_list=self.getFileURIList(meta_type='Z SQL Method'), - ) - ) - if self.getFileURIList(meta_type='Page Template') != []: - section_list.append( - DocumentationSection( - id='page_template', - title='Page Template', - class_name='PageTemplateDocumentationHelper', - uri_list=self.getFileURIList(meta_type='Page Template'), - ) - ) - if self.getFileURIList(meta_type='Script (Python)') != []: - section_list.append( - DocumentationSection( - id='script_python', - title='Script (Python)', - class_name='ScriptPythonDocumentationHelper', - uri_list=self.getFileURIList(meta_type='Script (Python)'), - ) - ) - return map(lambda x: x.__of__(self), section_list) - - security.declareProtected(Permissions.AccessContentsInformation, 'getType' ) + security.declareProtected(Permissions.AccessContentsInformation, 'getType') def getType(self): """ Returns the type of the documentation helper """ return "Skin Folder" - security.declareProtected(Permissions.AccessContentsInformation, 'getId' ) - def getId(self): - """ - Returns the id of the documentation helper - """ - return getattr(self.getDocumentedObject(), "id", '') - - security.declareProtected(Permissions.AccessContentsInformation, 'getTitle' ) - def getTitle(self): - """ - Returns the title of the documentation helper - """ - return getattr(self.getDocumentedObject(), "title", '') - - security.declareProtected(Permissions.AccessContentsInformation, 'getMetaTypeList' ) + security.declareProtected(Permissions.AccessContentsInformation, 'getMetaTypeList') def getMetaTypeList(self): - meta_type_dict = {} - for file in self.getDocumentedObject().objectValues(): - meta_type_dict[file.meta_type] = None - type_list = meta_type_dict.keys() - type_list.sort() - return type_list + return sorted(set(obj.meta_type + for obj in self.getDocumentedObject().objectValues())) - security.declareProtected(Permissions.AccessContentsInformation, 'getFileIdList' ) + def getFileValueList(self, meta_type=None): + return (obj for obj in self.getDocumentedObject().objectValues() + if meta_type in (None, obj.meta_type)) + + security.declareProtected(Permissions.AccessContentsInformation, 'getFileIdList') def getFileIdList(self, meta_type=None): """ Returns the list of sub-objects ids of the documentation helper """ - file_list = [] - files = self.getDocumentedObject() - if files is not None: - for file in files.objectValues(): - if not meta_type or file.meta_type == meta_type: - file_list.append(file.id) - return file_list + return [obj.id for obj in self.getFileValueList(meta_type)] - security.declareProtected(Permissions.AccessContentsInformation, 'getFileItemList' ) + security.declareProtected(Permissions.AccessContentsInformation, 'getFileItemList') def getFileItemList(self, meta_type=None): """ Returns the list of sub-objects items of the documentation helper """ - file_list = [] - files = self.getDocumentedObject() - if files is not None: - for file in files.objectValues(): - if not meta_type or file.meta_type == meta_type: - file_list.append((file.id, - getattr(file, "title", ""), - getattr(file, "description", ""), - getattr(file, "meta_type", ""))) - return file_list - security.declareProtected( Permissions.AccessContentsInformation, 'getFileURIList' ) - def getFileURIList(self, meta_type=None): + obj_list = [] + for obj in self.getFileValueList(meta_type): + obj = aq_base(obj) + obj_list.append((obj.id, + getattr(obj, "title", ""), + getattr(obj, "description", ""), + getattr(obj, "meta_type", ""))) + return obj_list + + security.declareProtected(Permissions.AccessContentsInformation, 'getFileUriList') + def getFileUriList(self, meta_type=None): """ """ - file_list = self.getFileIdList(meta_type) - base_uri = '/%s/portal_skins/%s' % (self.getPortalObject().id, self.getDocumentedObject().id) - return map(lambda x: ('%s/%s' % (base_uri, x)), file_list) + prefix = self.uri + '/' + return [prefix + obj.id for obj in self.getFileValueList(meta_type)] + + def getSectionUriList(self, title, **kw): + return self.getFileUriList(title) InitializeClass(SkinFolderDocumentationHelper) diff --git a/product/ERP5Type/DocumentationHelper/SkinFolderItemDocumentationHelper.py b/product/ERP5Type/DocumentationHelper/SkinFolderItemDocumentationHelper.py index db66d7a1849ddc98e1c5e70f94e28726df55259d..785d8b771b3521325b4f6cf744926b02166d15a9 100644 --- a/product/ERP5Type/DocumentationHelper/SkinFolderItemDocumentationHelper.py +++ b/product/ERP5Type/DocumentationHelper/SkinFolderItemDocumentationHelper.py @@ -26,7 +26,6 @@ # ############################################################################## -from Acquisition import Implicit from AccessControl import ClassSecurityInfo from Globals import InitializeClass from DocumentationHelper import DocumentationHelper @@ -39,31 +38,14 @@ class SkinFolderItemDocumentationHelper(DocumentationHelper): security = ClassSecurityInfo() security.declareObjectProtected(Permissions.AccessContentsInformation) - def __init__(self, uri): - self.uri = uri - - security.declareProtected(Permissions.AccessContentsInformation, 'getType' ) + security.declareProtected(Permissions.AccessContentsInformation, 'getType') def getType(self): """ Returns the type of the documentation helper """ return getattr(self.getDocumentedObject(), "meta_type", '') - security.declareProtected(Permissions.AccessContentsInformation, 'getId' ) - def getId(self): - """ - Returns the id of the documentation helper - """ - return getattr(self.getDocumentedObject(), "id", '') - - security.declareProtected(Permissions.AccessContentsInformation, 'getTitle' ) - def getTitle(self): - """ - Returns the title of the documentation helper - """ - return getattr(self.getDocumentedObject(), "title", '') - - security.declareProtected(Permissions.AccessContentsInformation, 'getContentType' ) + security.declareProtected(Permissions.AccessContentsInformation, 'getContentType') def getContentType(self): """ Returns the title of the documentation helper diff --git a/product/ERP5Type/DocumentationHelper/WorkflowMethodDocumentationHelper.py b/product/ERP5Type/DocumentationHelper/WorkflowMethodDocumentationHelper.py index 5ee3f3b37b32f9882c249b2059c18a5bb9963786..5f856f62b4281c0b142bae33b2e93614b2299452 100644 --- a/product/ERP5Type/DocumentationHelper/WorkflowMethodDocumentationHelper.py +++ b/product/ERP5Type/DocumentationHelper/WorkflowMethodDocumentationHelper.py @@ -26,12 +26,10 @@ # ############################################################################## -from Acquisition import Implicit from AccessControl import ClassSecurityInfo from Globals import InitializeClass -from DocumentationHelper import DocumentationHelper +from DocumentationHelper import DocumentationHelper, getCallableSignatureString from Products.ERP5Type import Permissions -from AccessorMethodDocumentationHelper import getDefinitionString class WorkflowMethodDocumentationHelper(DocumentationHelper): """ @@ -40,39 +38,32 @@ class WorkflowMethodDocumentationHelper(DocumentationHelper): security = ClassSecurityInfo() security.declareObjectProtected(Permissions.AccessContentsInformation) - def __init__(self, uri): - self.uri = uri - security.declareProtected(Permissions.AccessContentsInformation, 'getDescription') def getDescription(self): - return getattr(self.getDocumentedObject(), "__doc__", '') + """ + """ + return self.getDocumentedObject().__doc__ - security.declareProtected(Permissions.AccessContentsInformation, 'getType' ) + security.declareProtected(Permissions.AccessContentsInformation, 'getType') def getType(self): """ Returns the type of the documentation helper """ return "Workflow Method" - security.declareProtected(Permissions.AccessContentsInformation, 'getTitle' ) + security.declareProtected(Permissions.AccessContentsInformation, 'getTitle') def getTitle(self): """ Returns the title of the documentation helper """ + # XXX May return _doNothing return getattr(self.getDocumentedObject(), "_transition_id", '') - security.declareProtected( Permissions.AccessContentsInformation, 'getSectionList' ) - def getSectionList(self): - """ - Returns a list of documentation sections - """ - return [] - - security.declareProtected( Permissions.AccessContentsInformation, 'getDefinition' ) + security.declareProtected(Permissions.AccessContentsInformation, 'getDefinition') def getDefinition(self): """ Returns the definition of the workflow_method with the name and arguments """ - return getDefinitionString(self.getDocumentedObject()) + return getCallableSignatureString(self.getDocumentedObject().im_func._m) InitializeClass(WorkflowMethodDocumentationHelper) diff --git a/product/ERP5Type/DocumentationHelper/ZSQLMethodDocumentationHelper.py b/product/ERP5Type/DocumentationHelper/ZSQLMethodDocumentationHelper.py index 66688d589084b21252ee89e7344e6f770b869297..1a785f39daec158b35be35e20f94f04caf7a778e 100644 --- a/product/ERP5Type/DocumentationHelper/ZSQLMethodDocumentationHelper.py +++ b/product/ERP5Type/DocumentationHelper/ZSQLMethodDocumentationHelper.py @@ -26,7 +26,6 @@ # ############################################################################## -from Acquisition import Implicit from AccessControl import ClassSecurityInfo from Globals import InitializeClass from DocumentationHelper import DocumentationHelper @@ -39,31 +38,14 @@ class ZSQLMethodDocumentationHelper(DocumentationHelper): security = ClassSecurityInfo() security.declareObjectProtected(Permissions.AccessContentsInformation) - def __init__(self, uri): - self.uri = uri - - security.declareProtected(Permissions.AccessContentsInformation, 'getType' ) + security.declareProtected(Permissions.AccessContentsInformation, 'getType') def getType(self): """ Returns the type of the documentation helper """ return "Z SQL Method" - security.declareProtected(Permissions.AccessContentsInformation, 'getId' ) - def getId(self): - """ - Returns the id of the documentation helper - """ - return getattr(self.getDocumentedObject(), "id", '') - - security.declareProtected(Permissions.AccessContentsInformation, 'getTitle' ) - def getTitle(self): - """ - Returns the title of the documentation helper - """ - return getattr(self.getDocumentedObject(), "title", '') - - security.declareProtected(Permissions.AccessContentsInformation, 'getSource' ) + security.declareProtected(Permissions.AccessContentsInformation, 'getSource') def getSource(self): """ Returns the source code of the documentation helper @@ -85,35 +67,35 @@ class ZSQLMethodDocumentationHelper(DocumentationHelper): source_html = portal_transforms.convertTo(mime_type, source_code, mimetype = src_mimetype) return source_html.getData() - security.declareProtected(Permissions.AccessContentsInformation, 'getConnectionId' ) + security.declareProtected(Permissions.AccessContentsInformation, 'getConnectionId') def getConnectionId(self): """ Returns the title of the documentation helper """ return getattr(self.getDocumentedObject(), "connection_id", '') - security.declareProtected(Permissions.AccessContentsInformation, 'getArgumentList' ) + security.declareProtected(Permissions.AccessContentsInformation, 'getArgumentList') def getArgumentList(self): """ Returns the arguments of the documentation helper """ return getattr(self.getDocumentedObject(), "arguments_src", []) - security.declareProtected(Permissions.AccessContentsInformation, 'getClassName' ) + security.declareProtected(Permissions.AccessContentsInformation, 'getClassName') def getClassName(self): """ Returns the class name of the documentation helper """ return getattr(self.getDocumentedObject(), "class_name_", '') - security.declareProtected(Permissions.AccessContentsInformation, 'getClassFile' ) + security.declareProtected(Permissions.AccessContentsInformation, 'getClassFile') def getClassFile(self): """ Returns the class file of the documentation helper """ return getattr(self.getDocumentedObject(), "class_file_", '') - security.declareProtected(Permissions.AccessContentsInformation, 'getMaxRows' ) + security.declareProtected(Permissions.AccessContentsInformation, 'getMaxRows') def getMaxRows(self): """ Returns the of the documentation helper diff --git a/product/ERP5Type/DocumentationHelper/__init__.py b/product/ERP5Type/DocumentationHelper/__init__.py index 5c6ba2061dfc788ef5b815b5be8aaf117698cd7a..aa16b64de270d86c8310b7c3384d1e2b2ef24ff9 100644 --- a/product/ERP5Type/DocumentationHelper/__init__.py +++ b/product/ERP5Type/DocumentationHelper/__init__.py @@ -1,3 +1,4 @@ +# -*- coding: utf-8 -*- ############################################################################## # # Copyright (c) 2007-2008 Nexedi SA and Contributors. All Rights Reserved. @@ -49,7 +50,6 @@ from WorkflowMethodDocumentationHelper import WorkflowMethodDocumentationHelper from DCWorkflowStateDocumentationHelper import DCWorkflowStateDocumentationHelper from DCWorkflowTransitionDocumentationHelper import DCWorkflowTransitionDocumentationHelper from DCWorkflowVariableDocumentationHelper import DCWorkflowVariableDocumentationHelper -from DCWorkflowPermissionDocumentationHelper import DCWorkflowPermissionDocumentationHelper from DCWorkflowWorklistDocumentationHelper import DCWorkflowWorklistDocumentationHelper from DCWorkflowScriptDocumentationHelper import DCWorkflowScriptDocumentationHelper from SkinFolderDocumentationHelper import SkinFolderDocumentationHelper