[Erp5-report] r32735 nicolas.dumazet - /erp5/trunk/products/ERP5Type/XMLMatrix.py
nobody at svn.erp5.org
nobody at svn.erp5.org
Thu Feb 18 10:24:51 CET 2010
Author: nicolas.dumazet
Date: Thu Feb 18 10:24:48 2010
New Revision: 32735
URL: http://svn.erp5.org?rev=32735&view=rev
Log:
use a local addError() handler to avoid code duplication
Modified:
erp5/trunk/products/ERP5Type/XMLMatrix.py
Modified: erp5/trunk/products/ERP5Type/XMLMatrix.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Type/XMLMatrix.py?rev=32735&r1=32734&r2=32735&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Type/XMLMatrix.py [utf8] (original)
+++ erp5/trunk/products/ERP5Type/XMLMatrix.py [utf8] Thu Feb 18 10:24:48 2010
@@ -636,7 +636,17 @@
"""
# Check useless cells
to_delete = []
- errors = []
+ error_list = []
+ def addError(message):
+ if fixit:
+ error_message += ' (fixed)'
+ error = (self.getRelativeUrl(),
+ 'XMLMatrix inconsistency',
+ 102,
+ error_message)
+
+ error_list.append(error)
+
# We make sure first that there is an index
if getattr(aq_base(self), 'index', None) is None:
self.index = PersistentMapping()
@@ -668,19 +678,15 @@
if test_num is not None:
if not self.index.has_key(base_id):
# The matrix does not have this base_id
- error_message = "There is no index for base_id %s" % base_id
- if fixit: error_message += ' (fixed)'
- errors += [(self.getRelativeUrl(), 'XMLMatrix inconsistency',102,error_message)]
+ addError("There is no index for base_id %s" % base_id)
if object_id not in to_delete:
- to_delete += [object_id]
+ to_delete.append(object_id)
else:
# Check empty indices.
empty_list = []
for i in self.index[base_id].keys():
if self.index[base_id][i] is None or len(self.index[base_id][i]) == 0:
- error_message = "There is no id for the %dth axis of base_id %s" % (i, base_id)
- if fixit: error_message += ' (fixed)'
- errors += [(self.getRelativeUrl(), 'XMLMatrix inconsistency',102,error_message)]
+ addError("There is no id for the %dth axis of base_id %s" % (i, base_id))
empty_list.append(i)
if fixit:
for i in empty_list:
@@ -688,25 +694,21 @@
len_id = len(self.index[base_id])
if len(object_id_split) != (len_id + base_id_len): # +1 for the quantity
- error_message = "Dimension of cell is %s but should be %s" % (len(object_id_split)
- - base_id_len, len_id)
- if fixit: error_message += ' (fixed)'
- errors += [(self.getRelativeUrl(), 'XMLMatrix inconsistency',102,error_message)]
+ addError("Dimension of cell is %s but should be %s" % (len(object_id_split)
+ - base_id_len, len_id))
if object_id not in to_delete:
- to_delete += [object_id]
+ to_delete.append(object_id)
else :
for i in range(len_id):
if int(object_id_split[i+base_id_len]) >= len(self.index[base_id][i]):
- error_message = "Cell %s is out of bound" % object_id
- if fixit: error_message += ' (fixed)'
- errors += [(self.getRelativeUrl(), 'XMLMatrix inconsistency',102,error_message)]
+ addError("Cell %s is out of bound" % object_id)
if object_id not in to_delete:
- to_delete += [object_id]
+ to_delete.append(object_id)
if fixit and len(to_delete) > 0:
self.manage_delObjects(to_delete)
- return errors
+ return error_list
security.declareProtected( Permissions.ModifyPortalContent, 'notifyAfterUpdateRelatedContent' )
def notifyAfterUpdateRelatedContent(self, previous_category_url, new_category_url):
More information about the Erp5-report
mailing list