From 2d9cdeaa044373253890f522f609f33142c116c7 Mon Sep 17 00:00:00 2001 From: Valentin Samir Date: Mon, 19 Nov 2012 17:15:17 +0100 Subject: [PATCH] [lc_ldap] ajout d'une fonction sursis_carte. --- lc_ldap.py | 30 ++++++++++++++++++++++-------- 1 file changed, 22 insertions(+), 8 deletions(-) diff --git a/lc_ldap.py b/lc_ldap.py index cf123f7..8da4346 100644 --- a/lc_ldap.py +++ b/lc_ldap.py @@ -462,14 +462,9 @@ class CransLdapObject(object): blacklist_liste=[] # blacklistes virtuelle si on est un adhérent pour carte étudiant et chambre invalides if self.__class__.__name__ == "adherent" and self.paiement_ok(): - if not config.periode_transitoire and config.bl_carte_et_actif and not self.carte_ok(): - for h in self['historique'][::-1]: - x=re.match("(.*),.* : .*paiement\+%s.*" % config.ann_scol,h.value) - if x != None: - if (time.time()-time.mktime(time.strptime(x.group(1),'%d/%m/%Y %H:%M')))>config.sursis_carte: - bl = blacklist(u'%s$%s$%s$%s' % ('-', '-', 'carte_etudiant', ''), {}, self.conn, False) - blacklist_liste.append(bl) - break + if not config.periode_transitoire and config.bl_carte_et_actif and not self.carte_ok() and not self.sursis_carte(): + bl = blacklist(u'%s$%s$%s$%s' % ('-', '-', 'carte_etudiant', ''), {}, self.conn, False) + blacklist_liste.append(bl) if self['chbre'][0].value == '????': bl = blacklist(u'%s$%s$%s$%s' % ('-', '-', 'chambre_invalide', ''), {}, self.conn, False) blacklist_liste.append(bl) @@ -506,6 +501,15 @@ class proprio(CransLdapObject): super(proprio, self).__init__(conn, dn, mode, ldif) self._machines = machines + def sursis_carte(self): + for h in self['historique'][::-1]: + x=re.match("(.*),.* : .*(paiement\+%s|inscription).*" % config.ann_scol,h.value) + if x != None: + if (time.time()-time.mktime(time.strptime(x.group(1),'%d/%m/%Y %H:%M')))<=config.sursis_carte: + return True + break + return False + def paiement_ok(self): u"""Renvoie si le propriétaire a payé pour l'année en cours""" if self.dn == base_dn: @@ -515,8 +519,15 @@ class proprio(CransLdapObject): for paiement in self['paiement']: if paiement.value == config.ann_scol: bool_paiement = True + break + # Pour la période transitoire année précédente ok + if config.periode_transitoire and paiement.value == config.ann_scol -1: + bool_paiement = True + break except KeyError: pass + # Doit-on bloquer en cas de manque de la carte d'etudiant ? + # (si période transitoire on ne bloque dans aucun cas) if config.bl_carte_et_definitif and not 'club' in map(lambda x:x.value,self["objectClass"]): bool_carte = False try: @@ -525,6 +536,9 @@ class proprio(CransLdapObject): bool_carte = True except KeyError: pass + # Si inscrit depuis moins de config.sursis_carte, on laisse un sursis + if not bool_carte and self.sursis_carte(): + bool_carte = True return bool_carte and bool_paiement return bool_paiement