diff --git a/product/ERP5Type/XMLMatrix.py b/product/ERP5Type/XMLMatrix.py index ac69ea045f2ade171a8eed581246626c42c7ab8f..9a2203002b75a12feb43ad7317d1579bc9833056 100755 --- a/product/ERP5Type/XMLMatrix.py +++ b/product/ERP5Type/XMLMatrix.py @@ -67,22 +67,32 @@ class XMLMatrix(Folder): return None base_id = kwd.get('base_id', 'cell') - cell_id = base_id - if not self.index.has_key(cell_id): + if not self.index.has_key(base_id): return None - - i = 0 - for my_id in kw: - if self.index[base_id].has_key(i): - if self.index[base_id][i].has_key(my_id): - cell_id += '_%s' % self.index[base_id][i][my_id] - else: - return None - else: + + cell_id_list = [base_id] + append = cell_id_list.append + index = self.index[base_id] + for i, my_id in enumerate(kw): + try: + append(str(index[i][my_id])) + except KeyError: return None - i += 1 + cell_id = '_'.join(cell_id_list) return self.get(cell_id) + security.declareProtected( Permissions.View, 'getCellProperty' ) + def getCellProperty(self, *kw , **kwd): + """ + Get a property of a cell at row and column + """ + cell = self.getCell(*kw, **kwd) + if cell is None: + return None + + base_id = kwd.get('base_id', 'cell') + return cell.getProperty(base_id) + security.declareProtected( Permissions.View, 'hasCell' ) def hasCell(self, *kw , **kwd): """