[Erp5-report] r33555 nicolas.dumazet - /erp5/trunk/products/ERP5/Document/Resource.py
nobody at svn.erp5.org
nobody at svn.erp5.org
Wed Mar 10 06:59:47 CET 2010
Author: nicolas.dumazet
Date: Wed Mar 10 06:59:47 2010
New Revision: 33555
URL: http://svn.erp5.org?rev=33555&view=rev
Log:
Extend convertQuantity to support transformed_resource
Modified:
erp5/trunk/products/ERP5/Document/Resource.py
Modified: erp5/trunk/products/ERP5/Document/Resource.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/Document/Resource.py?rev=33555&r1=33554&r2=33555&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/Document/Resource.py [utf8] (original)
+++ erp5/trunk/products/ERP5/Document/Resource.py [utf8] Wed Mar 10 06:59:47 2010
@@ -897,11 +897,12 @@
# Unit conversion
security.declareProtected(Permissions.AccessContentsInformation, 'convertQuantity')
- def convertQuantity(self, quantity, from_unit, to_unit, variation_list=()):
+ def convertQuantity(self, quantity, from_unit, to_unit, variation_list=(),
+ transformed_resource=None, transformed_variation_list=()):
# 'variation_list' parameter may be deprecated:
# cf Measure.getConvertedQuantity
try:
- return quantity * self._getConversionRatio(from_unit, variation_list) \
+ result = quantity * self._getConversionRatio(from_unit, variation_list)\
/ self._getConversionRatio(to_unit, variation_list)
except (ArithmeticError, AttributeError, LookupError, TypeError), error:
# For compatibility, we only log the error and return None.
@@ -909,6 +910,28 @@
LOG('Resource.convertQuantity', WARNING,
'could not convert quantity for %s (%r)'
% (self.getRelativeUrl(), error))
+ return None
+
+ if transformed_resource is not None:
+ variation_text = '\n'.join(variation_list)
+ transformed_variation_text = '\n'.join(transformed_variation_list)
+ transformed_uid = transformed_resource.getUid()
+
+ query = self.zGetTransformedResourceConversionRatio(\
+ ui = self.getUid(),
+ variation_text = variation_text,
+ transformed_uid = transformed_uid,
+ transformed_variation_text=transformed_variation_text,
+ )
+ if len(query) == 0:
+ LOG('Resource.convertQuantity', WARNING,
+ 'could not get Transformation associated to %s -> %s'
+ % (transformed_resource.getRelativeUrl(),
+ self.getRelativeUrl()))
+ return None
+ result *= query[0].quantity
+
+ return result
security.declareProtected(Permissions.AccessContentsInformation,
'getMeasureList')
More information about the Erp5-report
mailing list