[binding] On gère aussi les dates avec des secondes.

This commit is contained in:
Pierre-Elliott Bécue 2013-11-17 20:26:43 +01:00
parent 3784c10da9
commit db1dc7ec64
2 changed files with 23 additions and 17 deletions

View file

@ -29,6 +29,7 @@ import secrets_new as secrets
import ridtools import ridtools
date_format = '%d/%m/%Y %H:%M' date_format = '%d/%m/%Y %H:%M'
date_format_new = '%d/%m/%Y %H:%M:%S'
hostname = gethostname().split(".")[0] hostname = gethostname().split(".")[0]
smtpserv = "smtp.crans.org" smtpserv = "smtp.crans.org"
random.seed() # On initialise le générateur aléatoire random.seed() # On initialise le générateur aléatoire
@ -247,12 +248,12 @@ def format_gpg_fingerprint(fpr):
Formatage de fingerpring GPG pour les avoir de la forme Formatage de fingerpring GPG pour les avoir de la forme
XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX
""" """
# longueur + fpr sans espaces # longueur + fpr sans espaces
l, fpr = preattr(fpr) l, fpr = preattr(fpr)
fpr = fpr.replace(':', '').replace('-', '').replace(' ', '') fpr = fpr.replace(':', '').replace('-', '').replace(' ', '')
if len(fpr) != 40: if len(fpr) != 40:
raise ValueError(u"Longueur de la fingerprint GPG incorrecte, merci de respecter le format") raise ValueError(u"Longueur de la fingerprint GPG incorrecte, merci de respecter le format")
@ -623,7 +624,7 @@ class CransLdap:
except TypeError: except TypeError:
pass pass
start = map(lambda x:preattr(x)[1], start) start = map(lambda x:preattr(x)[1], start)
if new in serv.keys(): if new in serv.keys():
modlist = [] modlist = []
@ -930,7 +931,7 @@ class CransLdap:
if uid == "grosminet": if uid == "grosminet":
proprio = self.search("nom=grosminet", mode)['adherent'][0] proprio = self.search("nom=grosminet", mode)['adherent'][0]
return proprio return proprio
__machines = () __machines = ()
def all_machines(self, graphic=False): def all_machines(self, graphic=False):
""" """
@ -1010,10 +1011,10 @@ class BaseClasseCrans(CransLdap):
ex: {'upload': [(1143336210, 1143509010), ...]} ex: {'upload': [(1143336210, 1143509010), ...]}
""" """
bl_liste = self._data.get('blacklist', []) bl_liste = self._data.get('blacklist', [])
actifs = {} actifs = {}
inactifs = {} inactifs = {}
if isinstance(self, Machine): if isinstance(self, Machine):
# Il faut aussi regarder la blackliste du propriétaire # Il faut aussi regarder la blackliste du propriétaire
p = self.proprietaire() p = self.proprietaire()
@ -1541,13 +1542,13 @@ class BaseProprietaire(BaseClasseCrans):
return liste return liste
else: else:
index = -1 index = -1
new = format_gpg_fingerprint(new) new = format_gpg_fingerprint(new)
new = new.upper() new = new.upper()
#if gpgexists(new): #if gpgexists(new):
# raise ValueError(u"Alias existant ou correspondand à un compte.") # raise ValueError(u"Alias existant ou correspondand à un compte.")
if index != -1: if index != -1:
liste[index] = new liste[index] = new
else: else:
@ -1802,7 +1803,7 @@ class BaseProprietaire(BaseClasseCrans):
si négatif le supprime si négatif le supprime
""" """
return self._an('paiement', action) return self._an('paiement', action)
def sursis_carte(self): def sursis_carte(self):
for h in self.historique()[::-1]: for h in self.historique()[::-1]:
x=re.match("(.*),.* : .*(paiement\+%s|inscription).*" % config.ann_scol,h) x=re.match("(.*),.* : .*(paiement\+%s|inscription).*" % config.ann_scol,h)
@ -1818,7 +1819,7 @@ class BaseProprietaire(BaseClasseCrans):
return self.sursis_carte() return self.sursis_carte()
else: else:
return False return False
def delete(self, comment=''): def delete(self, comment=''):
"""Destruction du propriétaire""" """Destruction du propriétaire"""
@ -2600,7 +2601,11 @@ class Adherent(BaseProprietaire):
if self.historique(): if self.historique():
h = self.historique()[0] h = self.historique()[0]
h = h[:h.find(",")] h = h[:h.find(",")]
return time.mktime(time.strptime(h, date_format)) try:
dateInsc = time.mktime(time.strptime(h, date_format_new))
except:
dateInsc = time.mktime(time.strptime(h, date_format))
return dateInsc
else: else:
# Lors de l'inscription d'un nouvel adhérent, celui-ci n'a pas # Lors de l'inscription d'un nouvel adhérent, celui-ci n'a pas
# encore d'historique. On retourne alors la date en cours. # encore d'historique. On retourne alors la date en cours.
@ -3037,7 +3042,7 @@ Contactez nounou si la MAC est bien celle d'une carte.""", 3)
#if sshexists(new): #if sshexists(new):
# raise ValueError(u"FPR existant ou correspondand à un compte.") # raise ValueError(u"FPR existant ou correspondand à un compte.")
if index != -1: if index != -1:
liste[index] = new liste[index] = new
else: else:
@ -3215,7 +3220,7 @@ Contactez nounou si la MAC est bien celle d'une carte.""", 3)
# On vire les doublons dans reconf_ip # On vire les doublons dans reconf_ip
reconf_ip = list(dict(zip(reconf_ip, [None]*len(reconf_ip)))) reconf_ip = list(dict(zip(reconf_ip, [None]*len(reconf_ip))))
# Si la configuration ip à changer on met dynamiquement à jour le dhcp # Si la configuration ip à changer on met dynamiquement à jour le dhcp
if reconf_ip: if reconf_ip:
from gen_confs.dhcpd_new import dydhcp from gen_confs.dhcpd_new import dydhcp
@ -3291,7 +3296,7 @@ Contactez nounou si la MAC est bien celle d'une carte.""", 3)
self.proprio = self.__proprietaire.Nom() # On met dans un coin le nom du proprio self.proprio = self.__proprietaire.Nom() # On met dans un coin le nom du proprio
self.__proprietaire = None # On oublie le propriétaire self.__proprietaire = None # On oublie le propriétaire
self._delete(self.dn, comment) self._delete(self.dn, comment)
# On supprime la machine du dhcp # On supprime la machine du dhcp
from gen_confs.dhcpd_new import dydhcp from gen_confs.dhcpd_new import dydhcp
for server in config.dhcp_servers: for server in config.dhcp_servers:

View file

@ -363,7 +363,7 @@ def list_spec(machines) :
* nom * nom
* adresse IPv4/IPv6 * adresse IPv4/IPv6
* adresse MAC * adresse MAC
Pour les bornes : Pour les bornes :
* État * État
* puissance * puissance
@ -485,7 +485,7 @@ def adher_details(adher) :
# État administratif # État administratif
f += coul("Date d'inscription : ", "gras") f += coul("Date d'inscription : ", "gras")
f += strftime('%d/%m/%Y %H:%M', localtime(adher.dateInscription())) f += strftime('%d/%m/%Y %H:%M:%S', localtime(adher.dateInscription()))
f += coul(u'\nÉtat administratif : ','gras') f += coul(u'\nÉtat administratif : ','gras')
jour=1 jour=1
if ann_scol not in adher.carteEtudiant() : if ann_scol not in adher.carteEtudiant() :
@ -926,7 +926,7 @@ def __bases_machines(m) :
""" Retourne [ type de la machines, blacklist ] """ """ Retourne [ type de la machines, blacklist ] """
#Type #Type
t = 'inconnu' t = 'inconnu'
t, _ = ridtools.find_rid_plage(int(m.rid())) t, _ = ridtools.find_rid_plage(int(m.rid()))
# Déconnectée ? # Déconnectée ?
b = m.blacklist_actif() b = m.blacklist_actif()
@ -1352,6 +1352,7 @@ if __name__ == '__main__' :
cprint(u"""Une erreur fatale s'est produite durant l'exécution. cprint(u"""Une erreur fatale s'est produite durant l'exécution.
Pour l'amélioration de ce programme merci de prévenir nounou en spécifiant la Pour l'amélioration de ce programme merci de prévenir nounou en spécifiant la
marche à suivre pour reproduire cette erreur.""") marche à suivre pour reproduire cette erreur.""")
raise
if debug : if debug :
cprint('-'*40) cprint('-'*40)
cprint(u'Détails techniques :') cprint(u'Détails techniques :')