diff --git a/product/ERP5Type/XMLMatrix.py b/product/ERP5Type/XMLMatrix.py index c694e31000cf23e0a35e4db7a54f7fa5730981af..2b824925488cb1399abfc9ae6aa1f34b35ca5e91 100644 --- a/product/ERP5Type/XMLMatrix.py +++ b/product/ERP5Type/XMLMatrix.py @@ -43,6 +43,7 @@ class XMLMatrix(Folder): """ A mix-in class which provides a matrix like access to objects. Matrices are of any dimension. + A single XMLMatrix may contain multiple matrices, of different dimension. Each matrix is associated to a so-called 'base_id'. @@ -66,8 +67,7 @@ class XMLMatrix(Folder): security.declareProtected( Permissions.AccessContentsInformation, 'getCell' ) def getCell(self, *kw , **kwd): - """ - Access a cell at row and column + """Access a cell by its coordinates and base_id. """ if getattr(aq_base(self), 'index', None) is None: return None @@ -84,8 +84,7 @@ class XMLMatrix(Folder): security.declareProtected( Permissions.AccessContentsInformation, 'getCellProperty' ) def getCellProperty(self, *kw , **kwd): - """ - Get a property of a cell at row and column + """Get a property of a cell by its coordinates and base_id. """ base_id= kwd.get('base_id', "cell") cell = self.getCell(*kw, **kwd) @@ -97,9 +96,8 @@ class XMLMatrix(Folder): security.declareProtected( Permissions.AccessContentsInformation, 'hasCell' ) def hasCell(self, *kw , **kwd): - """ - Checks if matrix corresponding to base_id contains cell specified - by *kw coordinates. + """Checks if matrix corresponding to base_id contains cell specified by + *kw coordinates. """ return self.getCell(*kw, **kwd) is not None @@ -126,9 +124,7 @@ class XMLMatrix(Folder): security.declareProtected( Permissions.AccessContentsInformation, 'hasInRange' ) def hasInRange(self, *kw , **kwd): - """ - Checks if *kw coordinates are in the range of the - matrix in kwd['base_id']. + """Checks if coordinates are in the range of the matrix for this base_id """ if getattr(aq_base(self), 'index', None) is None: return 0 @@ -206,10 +202,7 @@ class XMLMatrix(Folder): security.declareProtected( Permissions.ModifyPortalContent, 'setCellRange' ) def setCellRange(self, *kw, **kwd): - """ - Update the matrix ranges using provided lists of indexes (kw). - - Any number of list can be provided + """Update the matrix ranges using provided lists of indexes (kw). """ self._setCellRange(*kw, **kwd) self.reindexObject() @@ -217,17 +210,7 @@ class XMLMatrix(Folder): security.declareProtected(Permissions.ModifyPortalContent, '_updateCellRange') def _updateCellRange(self, base_id, **kw): - """ - The asCellRange script is Portal Type dependent - which is not the case with this kind of code - a better implementation consists in defining asCellRange as a - generic method at matrix level (OverridableMethod(portal_type)) - which lookups for script in class, meta_type and PT form - interaction could be implemented with interaction workflow - this method should be renamed updateCellRange or updateMatrixCellRange - base_id is parameter of updateCellRange - - asCellRange scripts should be unified if possible + """Update cell range based on asCellRange type based method. """ script = self._getTypeBasedMethod('asCellRange', **kw) if script is None: @@ -248,9 +231,8 @@ class XMLMatrix(Folder): security.declareProtected( Permissions.ModifyPortalContent, '_renameCellRange' ) def _renameCellRange(self, *kw, **kwd): - """ - Rename a range for a matrix, this method can - also handle a changement of the size of a matrix + """Rename a range for a matrix, this method can also handle a change in + the size of a matrix """ base_id = kwd.get('base_id', 'cell') @@ -337,10 +319,8 @@ class XMLMatrix(Folder): security.declareProtected( Permissions.ModifyPortalContent, 'renameCellRange' ) def renameCellRange(self, *kw, **kwd): - """ - Update the matrix ranges using provided lists of indexes (kw). - This keep cell values if we add/remove dimensions - Any number of list can be provided + """Update the matrix ranges using provided lists of indexes (kw). + This keep cell values when dimensions are added or removed. """ self._renameCellRange(*kw, **kwd) self.reindexObject() @@ -380,9 +360,8 @@ class XMLMatrix(Folder): security.declareProtected( Permissions.ModifyPortalContent, 'newCellContent' ) def newCellContent(self, cell_id, portal_type=None, **kw): - """ - Creates a new content as a cell. This method is - meant to be overriden by subclasses. + """Creates a new content as a cell. + This method is meant to be overriden by subclasses. """ if portal_type is None: for x in self.allowedContentTypes(): @@ -396,8 +375,7 @@ class XMLMatrix(Folder): security.declareProtected( Permissions.AccessContentsInformation, 'getCellKeyList' ) def getCellKeyList(self, base_id = 'cell'): - """ - Returns a list of possible keys as tuples + """Returns a list of possible keys as tuples """ if getattr(aq_base(self), 'index', None) is None: return () @@ -420,8 +398,7 @@ class XMLMatrix(Folder): security.declareProtected( Permissions.AccessContentsInformation, 'keyToId' ) def keyToId(self, kw, base_id = 'cell'): - """ - Converts a key into a cell id + """Converts a key into a cell id """ index = self.index[base_id] cell_id_list = [base_id] @@ -436,8 +413,7 @@ class XMLMatrix(Folder): security.declareProtected( Permissions.AccessContentsInformation, 'getCellIdList' ) def getCellIdList(self, base_id = 'cell'): - """ - Returns a list of possible ids as tuples + """Returns a list of possible ids as tuples """ if getattr(aq_base(self), 'index', None) is None: return () @@ -467,8 +443,7 @@ class XMLMatrix(Folder): security.declareProtected( Permissions.AccessContentsInformation, 'getCellValueList' ) def getCellValueList(self, base_id = 'cell'): - """ - Returns a list of cell values as tuples + """Returns a list of cell values as tuples """ result = [] append = result.append @@ -485,8 +460,7 @@ class XMLMatrix(Folder): security.declareProtected( Permissions.AccessContentsInformation, 'getMatrixList' ) def getMatrixList(self): - """ - Return possible base_id values + """Return possible base_id values """ if getattr(aq_base(self), 'index', None) is None: return () @@ -494,8 +468,7 @@ class XMLMatrix(Folder): security.declareProtected( Permissions.ModifyPortalContent, 'delMatrix' ) def delMatrix(self, base_id = 'cell'): - """ - Delete all cells for a given base_id + """Delete all cells for a given base_id XXX BAD NAME: make a difference between deleting matrix and matrix cells """ @@ -516,8 +489,7 @@ class XMLMatrix(Folder): security.declareProtected( Permissions.AccessContentsInformation, '_checkConsistency' ) def _checkConsistency(self, fixit=0): - """ - Constraint API. + """Constraint API. """ # Check useless cells to_delete_set = set() @@ -607,7 +579,8 @@ class XMLMatrix(Folder): security.declareProtected( Permissions.ModifyPortalContent, 'notifyAfterUpdateRelatedContent' ) def notifyAfterUpdateRelatedContent(self, previous_category_url, new_category_url): - """ + """Hook called when a category is renamed. + We must do some matrix range update in the event matrix range is defined by a category """ @@ -625,8 +598,7 @@ class XMLMatrix(Folder): self._renameCellRange(*new_cell_range,**kwd) class TempXMLMatrix(XMLMatrix): - """ - Temporary XMLMatrix. + """Temporary XMLMatrix. If we need Base services (categories, edit, etc) in temporary objects we shoud used TempBase