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 = []