From 5cb3c4f637c6eb000b6cec41c2c7c3852c76e038 Mon Sep 17 00:00:00 2001 From: Guewen Baconnier Date: Fri, 18 Sep 2015 10:56:56 +0200 Subject: [PATCH] Cache the rules to avoid to many hits to the DB As they are read on each partner write --- partner_revision/models/revision_behavior.py | 21 +++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/partner_revision/models/revision_behavior.py b/partner_revision/models/revision_behavior.py index a125e6ed8..ab09278c7 100644 --- a/partner_revision/models/revision_behavior.py +++ b/partner_revision/models/revision_behavior.py @@ -20,6 +20,7 @@ # from openerp import models, fields, api +from openerp.tools.cache import ormcache class RevisionBehavior(models.Model): @@ -53,8 +54,26 @@ class RevisionBehavior(models.Model): ('never', 'Never'), ] - # TODO: cache + @ormcache() @api.model def get_rules(self, model_name): rules = self.search([('model_id', '=', model_name)]) return {rule.field_id.name: rule for rule in rules} + + @api.model + def create(self, vals): + record = super(RevisionBehavior, self).create(vals) + self.clear_caches() + return record + + @api.multi + def write(self, vals): + result = super(RevisionBehavior, self).write(vals) + self.clear_caches() + return result + + @api.multi + def unlink(self): + result = super(RevisionBehavior, self).unlink() + self.clear_caches() + return result