[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:
@@ -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'])]
|
||||
|
||||
@@ -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 = []
|
||||
|
||||
Reference in New Issue
Block a user