From 627ed9c9de76ac3fb5198b38b45e4eb3139515c6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20P=C3=A9ters?= Date: Mon, 2 Nov 2009 16:11:30 +0100 Subject: [PATCH] Cache LDAP queries --- PcfAnnuaire.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/PcfAnnuaire.py b/PcfAnnuaire.py index 8541f67..913c84e 100644 --- a/PcfAnnuaire.py +++ b/PcfAnnuaire.py @@ -11,6 +11,7 @@ from interfaces import IPcfAnnuaire from zope.interface import implements from Products.Archetypes.public import * from Products.CMFCore.utils import getToolByName +from plone.memoize.volatile import cache, DontCache from Acquisition import aq_base schema = BaseSchema @@ -50,6 +51,8 @@ class PcfAnnuaireEntry: class PcfAnnuaireService: pass +def cache_key(method, self): + return hash(self) class PcfAnnuaire(BaseContent): @@ -80,6 +83,7 @@ class PcfAnnuaire(BaseContent): ldap.SCOPE_SUBTREE, 'objectClass=person') return [PcfAnnuaireEntry(*x) for x in result] + @cache(cache_key) def getEntries(self): return [x for x in self.getObjectEntries() if \ x.givenName and x.company == 'Parlement de la Communauté française de Belgique']