[FIX] ir_translation cache invalidation
authorAntony Lesuisse <al@openerp.com>
Fri, 2 Sep 2011 15:58:34 +0000 (17:58 +0200)
committerAntony Lesuisse <al@openerp.com>
Fri, 2 Sep 2011 15:58:34 +0000 (17:58 +0200)
bzr revid: al@openerp.com-20110902155834-rmno5z7aavj71fk5

openerp/addons/base/ir/ir_translation.py

index 4092bf3..940909b 100644 (file)
@@ -177,7 +177,8 @@ class ir_translation(osv.osv):
         if not context:
             context = {}
         ids = super(ir_translation, self).create(cr, uid, vals, context=context)
-        self._get_source.clear_cache(self, vals.get('name',0), vals.get('type',0),  vals.get('lang',0), vals.get('src',0))
+        self._get_source.clear_cache(self, uid, vals.get('name',0), vals.get('type',0),  vals.get('lang',0), vals.get('src',0))
+        self._get_ids.clear_cache(self, uid, vals.get('name',0), vals.get('type',0), vals.get('lang',0), vals.get('res_id',0))
         return ids
 
     def write(self, cursor, user, ids, vals, context=None):
@@ -186,8 +187,8 @@ class ir_translation(osv.osv):
         if isinstance(ids, (int, long)):
             ids = [ids]
         result = super(ir_translation, self).write(cursor, user, ids, vals, context=context)
-        self._get_source.clear_cache(self, user, trans_obj['name'], trans_obj['type'], trans_obj['lang'], source=trans_obj['src'])
         for trans_obj in self.read(cursor, user, ids, ['name','type','res_id','src','lang'], context=context):
+            self._get_source.clear_cache(self, user, trans_obj['name'], trans_obj['type'], trans_obj['lang'], trans_obj['src'])
             self._get_ids.clear_cache(self, user, trans_obj['name'], trans_obj['type'], trans_obj['lang'], [trans_obj['res_id']])
         return result