[Erp5-report] r18328 - /erp5/trunk/products/ERP5/Document/
nobody at svn.erp5.org
nobody at svn.erp5.org
Fri Dec 14 14:16:53 CET 2007
Author: fabien
Date: Fri Dec 14 14:16:50 2007
New Revision: 18328
URL: http://svn.erp5.org?rev=18328&view=rev
Log:
- add getSubObjectValueList method on the PaySheetTransaction Class. It return
a list of all subobjects from the herited model
- rename getReferenceList in getReferenceDict, and now, this method return
reference and id (dict)
Modified:
erp5/trunk/products/ERP5/Document/PaySheetModel.py
erp5/trunk/products/ERP5/Document/PaySheetTransaction.py
Modified: erp5/trunk/products/ERP5/Document/PaySheetModel.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/Document/PaySheetModel.py?rev=18328&r1=18327&r2=18328&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/Document/PaySheetModel.py (original)
+++ erp5/trunk/products/ERP5/Document/PaySheetModel.py Fri Dec 14 14:16:50 2007
@@ -66,12 +66,17 @@
, PropertySheet.DefaultAnnotationLine
)
- def getReferenceList(self, portal_type_list):
+ def getReferenceDict(self, portal_type_list, get_none_reference=0):
'''
- return all objects reference of the model wich portal_type is in the
+ return all objects reference and id of the model wich portal_type is in the
portal_type_list
+ - parameters :
+ o get_none_reference : permit to get a dict with all references
+ not defined. This is usefull to get all object on the model paysheet
+ inherite from.
'''
- reference_list = []
+ reference_dict={}
+
object_list = self.contentValues(portal_type=portal_type_list,
sort_on='id')
@@ -83,14 +88,17 @@
object.getRelativeUrl())
else:
reference = reference_method()
- if reference is not None:
- reference_list.append(reference)
+ if reference is not None and not get_none_reference:
+ reference_dict[reference]=object.getId()
+ elif reference is None and get_none_reference:
+ reference_dict[reference]=object.getId()
+
else:
LOG('PaySheetModel getReferenceList', 0, '%s reference '
'property is empty' % object.getTitle() or
object.getRelativeUrl())
- return reference_list
+ return reference_dict
def getInheritanceModelReferenceDict(self, model_reference_dict,
model_list, portal_type_list, reference_list):
@@ -103,19 +111,19 @@
model_list = [model_list,]
for model in model_list:
- model_reference_list=model.getReferenceList(portal_type_list)
- unique_list = []
+ model_reference_list=model.getReferenceDict(portal_type_list)
+ id_list = []
- for reference in model_reference_list:
+ for reference in model_reference_list.keys():
if reference not in reference_list:
reference_list.append(reference)
- unique_list.append(reference)
+ id_list.append(model_reference_list[reference])
- if unique_list != []:
- model_reference_dict[model.getRelativeUrl()]=unique_list
+ if id_list != []:
+ model_reference_dict[model.getRelativeUrl()]=id_list
new_model_list = model.getSpecialiseValueList()
- model_reference_dict = self.getInheritanceModelReferenceDict(\
+ self.getInheritanceModelReferenceDict(\
model_reference_dict=model_reference_dict,
model_list=new_model_list,
portal_type_list=portal_type_list,
Modified: erp5/trunk/products/ERP5/Document/PaySheetTransaction.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/Document/PaySheetTransaction.py?rev=18328&r1=18327&r2=18328&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/Document/PaySheetTransaction.py (original)
+++ erp5/trunk/products/ERP5/Document/PaySheetTransaction.py Fri Dec 14 14:16:50 2007
@@ -492,16 +492,44 @@
return pay_sheet_line_list
- def copyInheritanceSubObjects(self, model_reference_dict):
- '''
- copy all sub objects containing in the dict into the current paysheet
- '''
+ def getSubObjectValueList(self, portal_type_list):
+ '''
+ return a list of all subobject of the herited model (incuding the
+ dependencies)
+ '''
+ model = self.getSpecialiseValue()
+
+ model_reference_dict={}
+ model.getInheritanceModelReferenceDict(\
+ model_reference_dict=model_reference_dict,
+ model_list=model,
+ portal_type_list=portal_type_list,
+ reference_list=[])
+ pprint.pformat(model_reference_dict))
+
+ # add line of base model without reference
+ model_dict = model.getReferenceDict(\
+ portal_type_list=portal_type_list,
+ get_none_reference=1)
+ id_list = model_dict.values()
+ model_reference_dict[model.getRelativeUrl()].extend(id_list)
+ pprint.pformat(model_reference_dict))
+
+
+ # get sub objects
key_list = model_reference_dict.keys()
+
+ sub_object_list = []
for key in key_list:
id_list = model_reference_dict[key]
model = self.getPortalObject().restrictedTraverse(key)
if model is None:
LOG("copyInheritanceSubObjects,", 0, "can't find model %s" % key)
- copied_data = model.manage_copyObjects(ids=id_list)
- self.manage_pasteObjects(copied_data)
+
+ for id in id_list:
+ object = model._getOb(id)
+ sub_object_list.append(object)
+
+ return sub_object_list
+
More information about the Erp5-report
mailing list