On ne rafraîchit les factures au plus qu'une fois toutes les 5 sec

This commit is contained in:
Pierre-Elliott Bécue 2015-09-06 19:30:16 +02:00
parent e59a468d19
commit 54a8d9c4cb

View file

@ -66,6 +66,7 @@ import cranslib.deprecated
#: Champs à ignorer dans l'historique #: Champs à ignorer dans l'historique
HIST_IGNORE_FIELDS = ["modifiersName", "entryCSN", "modifyTimestamp", "historique"] HIST_IGNORE_FIELDS = ["modifiersName", "entryCSN", "modifyTimestamp", "historique"]
FACTURES_REFRESH_PERIOD = 5
def new_cransldapobject(conn, dn, mode='ro', uldif=None, lockId=None): def new_cransldapobject(conn, dn, mode='ro', uldif=None, lockId=None):
"""Crée un objet :py:class:`CransLdapObject` en utilisant la classe correspondant à """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) super(proprio, self).__init__(*args, **kwargs)
self._machines = None self._machines = None
self._factures = None self._factures = None
self._factures_last_update = 0
def delete_compte(self, mail): 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 # 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:
if self._factures[0].mode != mode: if self._factures[0].mode != mode:
refresh = True 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: try:
self._factures = self.conn.search(u'fid=*', dn=self.dn, scope=1, mode=mode) self._factures = self.conn.search(u'fid=*', dn=self.dn, scope=1, mode=mode)
for m in self._factures: for m in self._factures:
m._proprio = self m._proprio = self
self._factures_last_update = time.time()
# Si on manipule un objet pas encore enregistré dans la la bdd # Si on manipule un objet pas encore enregistré dans la la bdd
except ldap.NO_SUCH_OBJECT: except ldap.NO_SUCH_OBJECT:
self._factures = [] self._factures = []