Correctifs sur les adhésions glissantes.

This commit is contained in:
Pierre-Elliott Bécue 2014-08-25 19:17:10 +02:00
parent 7f1ffbeed5
commit 50f91c63e0
4 changed files with 32 additions and 27 deletions

View file

@ -862,11 +862,11 @@ class proprio(CransLdapObject):
def fin_adhesion(self):
"""Retourne la date de fin d'adhésion"""
return max([float(facture.get('finAdhesion', [crans_utils.fromGeneralizedTimeFormat(attributs.finAdhesion.default)])[0]) for facture in self.factures() if facture.get('controle', [''])[0] != u"FALSE"] + [0.0])
return max([float(facture.get('finAdhesion', [crans_utils.fromGeneralizedTimeFormat(attributs.finAdhesion.default)])[0]) for facture in self.factures(refresh=True, mode="ro") if facture.get('controle', [''])[0] != u"FALSE"] + [0.0])
def fin_connexion(self):
"""Retourne la date de fin de connexion"""
return max([float(facture.get('finConnexion', [crans_utils.fromGeneralizedTimeFormat(attributs.finConnexion.default)])[0]) for facture in self.factures() if facture.get('controle', [''])[0] != u"FALSE"] + [0.0])
return max([float(facture.get('finConnexion', [crans_utils.fromGeneralizedTimeFormat(attributs.finConnexion.default)])[0]) for facture in self.factures(refresh=True, mode="ro") if facture.get('controle', [''])[0] != u"FALSE"] + [0.0])
def paiement_ok(self, no_bl=False):
u"""
@ -918,18 +918,23 @@ class proprio(CransLdapObject):
self.history_add(login, u"%s %.2f Euros [%s]" % (transaction, abs(diff), comment))
self["solde"] = new_solde
def machines(self, mode=None):
def machines(self, mode=None, refresh=False):
"""Renvoie la liste des machines"""
if self._machines is None:
if self._machines is None or refresh:
self._machines = self.conn.search(u'mid=*', dn = self.dn, scope = 1, mode=self.mode if mode is None else mode)
for m in self._machines:
m._proprio = self
return self._machines
def factures(self):
def factures(self, refresh=False, mode=None):
"""Renvoie la liste des factures"""
if self._factures is None:
self._factures = self.conn.search(u'fid=*', dn = self.dn, scope = 1, mode=self.mode)
if mode is None:
mode = self.mode
if self._factures:
if self._factures[0].mode != mode:
refresh = True
if self._factures is None or refresh:
self._factures = self.conn.search(u'fid=*', dn = self.dn, scope = 1, mode=mode)
for m in self._factures:
m._proprio = self
return self._factures
@ -982,9 +987,9 @@ class machine(CransLdapObject):
if domain in certificat['hostCert']:
raise EnvironmentError("Vous devez d'abord supprimer ou éditer les certificats utilisant le nom de domaine %s avant de le retirer de la machine" % domain)
def proprio(self, mode=None):
def proprio(self, mode=None, refresh=False):
u"""Renvoie le propriétaire de la machine"""
if not self._proprio:
if not hasattr(self, '_proprio') or not self._proprio or refresh:
self._proprio = new_cransldapobject(self.conn, self.parent_dn, self.mode if mode is None else mode)
return self._proprio