[MERGE] better perf for some methods on product. Courtesy of Benoit Guillot and Sebastien Beau from Akretion

bzr revid: qdp-launchpad@openerp.com-20120711094949-nr5gmybk5kkpq7ip
This commit is contained in:
Quentin (OpenERP)
2012-07-11 11:49:49 +02:00
2 changed files with 10 additions and 7 deletions
+2 -2
View File
@@ -559,8 +559,8 @@ class product_product(osv.osv):
return False
def _check_ean_key(self, cr, uid, ids, context=None):
for product in self.browse(cr, uid, ids, context=context):
res = check_ean(product.ean13)
for product in self.read(cr, uid, ids, ['ean13'], context=context):
res = check_ean(product['ean13'])
return res
_constraints = [(_check_ean_key, 'Error: Invalid ean code', ['ean13'])]
+8 -5
View File
@@ -243,13 +243,16 @@ class product_product(osv.osv):
child_location_ids = location_obj.search(cr, uid, [('location_id', 'child_of', location_ids)])
location_ids = child_location_ids or location_ids
# this will be a dictionary of the UoM resources we need for conversion purposes, by UoM id
uoms_o = {}
# this will be a dictionary of the product UoM by product id
product2uom = {}
for product in self.browse(cr, uid, ids, context=context):
product2uom[product.id] = product.uom_id.id
uoms_o[product.uom_id.id] = product.uom_id
uom_ids = []
for product in self.read(cr, uid, ids, ['uom_id'], context=context):
product2uom[product['id']] = product['uom_id'][0]
uom_ids.append(product['uom_id'][0])
# this will be a dictionary of the UoM resources we need for conversion purposes, by UoM id
uoms_o = {}
for uom in self.pool.get('product.uom').browse(cr, uid, uom_ids, context=context):
uoms_o[uom.id] = uom
results = []
results2 = []