From 54a8d9c4cbed3a0f2fdb493426454d52053a49ac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pierre-Elliott=20B=C3=A9cue?= Date: Sun, 6 Sep 2015 19:30:16 +0200 Subject: [PATCH] =?UTF-8?q?On=20ne=20rafra=C3=AEchit=20les=20factures=20au?= =?UTF-8?q?=20plus=20qu'une=20fois=20toutes=20les=205=20sec?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- objets.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/objets.py b/objets.py index 4099ec3..2d52637 100644 --- a/objets.py +++ b/objets.py @@ -66,6 +66,7 @@ import cranslib.deprecated #: Champs à ignorer dans l'historique HIST_IGNORE_FIELDS = ["modifiersName", "entryCSN", "modifyTimestamp", "historique"] +FACTURES_REFRESH_PERIOD = 5 def new_cransldapobject(conn, dn, mode='ro', uldif=None, lockId=None): """Crée un objet :py:class:`CransLdapObject` en utilisant la classe correspondant à @@ -923,6 +924,7 @@ class proprio(CransLdapObject): super(proprio, self).__init__(*args, **kwargs) self._machines = None self._factures = None + self._factures_last_update = 0 def delete_compte(self, mail): # Je pense qu'en pratique cette vérification ne sert à rien puisqu'on se fera jetter à la tentative de modification @@ -1140,11 +1142,12 @@ class proprio(CransLdapObject): if self._factures: if self._factures[0].mode != mode: refresh = True - if self._factures is None or refresh: + if self._factures is None or (refresh and time.time() - self._factures_last_update > FACTURES_REFRESH_PERIOD): try: self._factures = self.conn.search(u'fid=*', dn=self.dn, scope=1, mode=mode) for m in self._factures: m._proprio = self + self._factures_last_update = time.time() # Si on manipule un objet pas encore enregistré dans la la bdd except ldap.NO_SUCH_OBJECT: self._factures = []