[Erp5-report] r26646 - in /erp5/trunk/products/ERP5: ./ Document/
nobody at svn.erp5.org
nobody at svn.erp5.org
Mon Apr 27 11:14:02 CEST 2009
Author: luke
Date: Mon Apr 27 11:14:00 2009
New Revision: 26646
URL: http://svn.erp5.org?rev=26646&view=rev
Log:
- add common class for AggregatedAmountList
- use this class in Document.Transformation
- updated copyrights in Document.Transformation
Added:
erp5/trunk/products/ERP5/AggregatedAmountList.py
Modified:
erp5/trunk/products/ERP5/Document/Transformation.py
Added: erp5/trunk/products/ERP5/AggregatedAmountList.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/AggregatedAmountList.py?rev=26646&view=auto
==============================================================================
--- erp5/trunk/products/ERP5/AggregatedAmountList.py (added)
+++ erp5/trunk/products/ERP5/AggregatedAmountList.py [utf8] Mon Apr 27 11:14:00 2009
@@ -1,0 +1,78 @@
+# -*- coding: utf8 -*-
+##############################################################################
+#
+# Copyright (c) 2009 Nexedi SA and Contributors. All Rights Reserved.
+# Łukasz Nowak <luke at 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 UserList import UserList
+from Globals import InitializeClass
+from Products.PythonScripts.Utility import allow_class
+from AccessControl import ClassSecurityInfo
+from UserList import UserList
+class AggregatedAmountList(UserList):
+ """
+ Temporary object needed to aggregate Amount value
+ And to calculate some report or total value
+ """
+ meta_type = "AggregatedAmountList"
+ security = ClassSecurityInfo()
+# security.declareObjectPublic()
+
+ security.declarePublic('getTotalPrice')
+ def getTotalPrice(self):
+ """
+ Return total base price
+ """
+ result = sum(filter(lambda y: y is not None,
+ map(lambda x: x.getTotalPrice(), self)))
+ return result
+
+ security.declarePublic('getTotalDuration')
+ def getTotalDuration(self):
+ """
+ Return total duration
+ """
+ result = sum(filter(lambda y: y is not None,
+ map(lambda x: x.getDuration(), self)))
+ return result
+
+ def multiplyQuantity(self,context=None):
+ """
+ Take into account the quantity of the
+ context. Change the quantity of each element.
+ """
+ quantity = None
+ if context is not None:
+ if context.getQuantity() is not None:
+ quantity = context.getQuantity()
+ if quantity is not None:
+ for x in self:
+ previous_quantity = x.getQuantity()
+ if previous_quantity is not None:
+ x.edit(quantity=context.getQuantity()*previous_quantity)
+
+InitializeClass(AggregatedAmountList)
+allow_class(AggregatedAmountList)
Modified: erp5/trunk/products/ERP5/Document/Transformation.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/Document/Transformation.py?rev=26646&r1=26645&r2=26646&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/Document/Transformation.py [utf8] (original)
+++ erp5/trunk/products/ERP5/Document/Transformation.py [utf8] Mon Apr 27 11:14:00 2009
@@ -1,9 +1,11 @@
+# -*- coding: utf8 -*-
##############################################################################
#
# Copyright (c) 2002 Coramy SAS and Contributors. All Rights Reserved.
# Thierry_Faucher <Thierry_Faucher at coramy.com>
-# Copyright (c) 2004, 2005 Nexedi SARL and Contributors. All Rights Reserved.
+# Copyright (c) 2004-2009 Nexedi SA and Contributors. All Rights Reserved.
# Romain Courteaud <romain at nexedi.com>
+# Łukasz Nowak <luke at nexedi.com>
#
# WARNING: This program as such is intended to be used by professional
# programmers who take the whole responsability of assessing all potential
@@ -28,7 +30,6 @@
#
##############################################################################
-from Globals import InitializeClass
from AccessControl import ClassSecurityInfo
from Products.ERP5Type import Permissions, PropertySheet, Interface
@@ -38,10 +39,8 @@
from Products.ERP5.Document.Predicate import Predicate
-from Products.PythonScripts.Utility import allow_class
-
from Products.CMFCategory.Renderer import Renderer
-
+from Products.ERP5.AggregatedAmountList import AggregatedAmountList
class Transformation(XMLObject, Predicate, Variated):
"""
@@ -270,51 +269,3 @@
if context_quantity:
result.multiplyQuantity(context=context)
return result
-
-# XXX subclassing directly list would be better,
-# but does not work yet (error with class and security)
-from UserList import UserList
-class AggregatedAmountList(UserList):
- """
- Temporary object needed to aggregate Amount value
- And to calculate some report or total value
- """
- meta_type = "AggregatedAmountList"
- security = ClassSecurityInfo()
-# security.declareObjectPublic()
-
- security.declarePublic('getTotalPrice')
- def getTotalPrice(self):
- """
- Return total bas price of the transformation
- """
- result = sum(filter(lambda y: y is not None,
- map(lambda x: x.getTotalPrice(), self)))
- return result
-
- security.declarePublic('getTotalDuration')
- def getTotalDuration(self):
- """
- Return total duration of the transformation
- """
- result = sum(filter(lambda y: y is not None,
- map(lambda x: x.getDuration(), self)))
- return result
-
- def multiplyQuantity(self,context=None):
- """
- Take into account the quantity of the
- context. Change the quantity of each element.
- """
- quantity = None
- if context is not None:
- if context.getQuantity() is not None:
- quantity = context.getQuantity()
- if quantity is not None:
- for x in self:
- previous_quantity = x.getQuantity()
- if previous_quantity is not None:
- x.edit(quantity=context.getQuantity()*previous_quantity)
-
-InitializeClass(AggregatedAmountList)
-allow_class(AggregatedAmountList)
More information about the Erp5-report
mailing list