[FIX] Empty ir.model.data cache on unlink
authorCecile Tonglet <cto@openerp.com>
Fri, 30 Nov 2012 14:08:07 +0000 (15:08 +0100)
committerCecile Tonglet <cto@openerp.com>
Fri, 30 Nov 2012 14:08:07 +0000 (15:08 +0100)
bzr revid: cto@openerp.com-20121130140807-795h1jm501bmslky

bin/addons/base/ir/ir_model.py

index d146856..80ae768 100644 (file)
@@ -630,6 +630,20 @@ class ir_model_data(osv.osv):
             id = False
         return id
 
+    def clear_caches(self, cr):
+        """ Clears all orm caches on the object's methods
+
+        :returns: itself
+        """
+        self._get_id.clear_cache(cr.dbname)
+        self.get_object_reference.clear_cache(cr.dbname)
+        return self
+
+    def unlink(self, cr, uid, ids, context=None):
+        """ Regular unlink method, but make sure to clear the caches. """
+        self.clear_caches(cr)
+        return super(ir_model_data,self).unlink(cr, uid, ids, context=context)
+
     def _update(self,cr, uid, model, module, values, xml_id=False, store=True, noupdate=False, mode='init', res_id=False, context=None):
         model_obj = self.pool.get(model)
         if not context: