diff --git a/trytond/ir/default.py b/trytond/ir/default.py index 786e5f61f4..2d7f9b7696 100644 --- a/trytond/ir/default.py +++ b/trytond/ir/default.py @@ -2,6 +2,7 @@ #this repository contains the full copyright notices and license terms. "Default" from trytond.model import ModelView, ModelSQL, fields +from trytond.tools import Cache from decimal import Decimal import mx.DateTime import datetime @@ -70,6 +71,8 @@ class Default(ModelSQL, ModelView): res[default.field.name] = eval(default.value) return res + get_default = Cache('ir_default.get_default')(get_default) + def set_default(self, cursor, user, model, field, clause, value, user_default, context=None): model_obj = self.pool.get('ir.model') @@ -96,4 +99,22 @@ class Default(ModelSQL, ModelView): 'user': user_default, }, context=context) + def create(self, cursor, user, vals, context=None): + res = super(Default, self).create(cursor, user, vals, context=context) + # Restart the cache for get_default method + self.get_default(cursor.dbname) + return res + + def write(self, cursor, user, ids, vals, context=None): + res = super(Default, self).write(cursor, user, ids, vals, context=context) + # Restart the cache for get_default method + self.get_default(cursor.dbname) + return res + + def delete(self, cursor, user, ids, context=None): + res = super(Default, self).delete(cursor, user, ids, context=context) + # Restart the cache for get_default method + self.get_default(cursor.dbname) + return res + Default()