[FIX] website_sale_digital: properly loop on self

This commit is contained in:
Nicolas Martinelli
2015-09-25 11:34:01 +02:00
parent 9577f4e419
commit 5eb681bd03
+7 -6
View File
@@ -10,11 +10,11 @@ class product_template(models.Model):
@api.multi
def _compute_attachment_count(self):
IrAttachment = self.env['ir.attachment']
prod_tmpl_attach_count = IrAttachment.read_group([('res_model', '=', 'product.template'), ('res_id', 'in', self.ids)], ['res_id'], ['res_id'])
prod_attach_count = IrAttachment.read_group([('res_model', '=', 'product.product'), ('res_id', 'in', self.product_variant_ids.ids)], ['res_id'], ['res_id'])
prod_tmpl_result = dict((data['res_id'], data['res_id_count']) for data in prod_tmpl_attach_count)
prod_attach_result = dict((data['res_id'], data['res_id_count']) for data in prod_attach_count)
for ptemplate in self:
prod_tmpl_attach_count = IrAttachment.read_group([('res_model', '=', 'product.template'), ('res_id', 'in', ptemplate.ids)], ['res_id'], ['res_id'])
prod_attach_count = IrAttachment.read_group([('res_model', '=', 'product.product'), ('res_id', 'in', ptemplate.product_variant_ids.ids)], ['res_id'], ['res_id'])
prod_tmpl_result = dict((data['res_id'], data['res_id_count']) for data in prod_tmpl_attach_count)
prod_attach_result = dict((data['res_id'], data['res_id_count']) for data in prod_attach_count)
ptemplate.attachment_count = prod_tmpl_result.get(ptemplate.id, 0) + sum(prod_attach_result.get(p.id, 0) for p in ptemplate.product_variant_ids)
@api.model
@@ -47,9 +47,10 @@ class product_product(models.Model):
@api.multi
def _compute_attachment_count(self):
read_count = self.env['ir.attachment'].read_group([('res_model', '=', self._name), ('res_id', 'in', self.ids)], ['res_id'], ['res_id'])
result = dict((data['res_id'], data['res_id_count']) for data in read_count)
IrAttachment = self.env['ir.attachment']
for product in self:
read_count = IrAttachment.read_group([('res_model', '=', product._name), ('res_id', 'in', product.ids)], ['res_id'], ['res_id'])
result = dict((data['res_id'], data['res_id_count']) for data in read_count)
product.attachment_count = result.get(product.id, 0)
@api.multi