From 41628fc7027df0a3f372869d2349601bbe2040dc Mon Sep 17 00:00:00 2001
From: Cedric Snauwaert <csn@openerp.com>
Date: Fri, 12 Apr 2013 15:08:56 +0200
Subject: [PATCH] [FIX]product: add store=dict to field name_template

bzr revid: csn@openerp.com-20130412130856-3g5e67v2r7y6ep5v
---
 addons/product/product.py | 14 +++++++++++++-
 1 file changed, 13 insertions(+), 1 deletion(-)

diff --git a/addons/product/product.py b/addons/product/product.py
index 82b37f7b9e87..4dbd07529113 100644
--- a/addons/product/product.py
+++ b/addons/product/product.py
@@ -523,6 +523,14 @@ class product_product(osv.osv):
     def _set_image(self, cr, uid, id, name, value, args, context=None):
         return self.write(cr, uid, [id], {'image': tools.image_resize_image_big(value)}, context=context)
 
+    def _get_name_template_ids(self, cr, uid, ids, context=None):
+        result = set()
+        for template in self.browse(cr, uid, ids, context=context):
+            template_ids = self.pool.get('product.product').search(cr, uid, [('product_tmpl_id','=',template.id)])
+            for el in template_ids:
+                result.add(el)
+        return list(result)
+
     _defaults = {
         'active': lambda *a: 1,
         'price_extra': lambda *a: 0.0,
@@ -554,7 +562,11 @@ class product_product(osv.osv):
         'price_extra': fields.float('Variant Price Extra', digits_compute=dp.get_precision('Product Price')),
         'price_margin': fields.float('Variant Price Margin', digits_compute=dp.get_precision('Product Price')),
         'pricelist_id': fields.dummy(string='Pricelist', relation='product.pricelist', type='many2one'),
-        'name_template': fields.related('product_tmpl_id', 'name', string="Template Name", type='char', size=128, store=True, select=True),
+        'name_template': fields.related('product_tmpl_id', 'name', string="Template Name", type='char', size=128, store={
+            'product.template': (_get_name_template_ids, ['name'], 10),
+            'product.product': (lambda self, cr, uid, ids, c={}: ids, [], 10),
+
+            }, select=True),
         'color': fields.integer('Color Index'),
         # image: all image fields are base64 encoded and PIL-supported
         'image': fields.binary("Image",
-- 
GitLab