diff --git a/impression/class_impression.py b/impression/class_impression.py index 73e506a6..f1b1ec36 100755 --- a/impression/class_impression.py +++ b/impression/class_impression.py @@ -86,38 +86,37 @@ class fichier_impression : def gen_code(self): # Génération du code et écriture du code - i=0 - code=0 rand=random.Random() # Graine automatique avec le temps rand.seed() - while(i<1000) : - # On génère le numéro de session - code = rand.randint(100000,999999) #pour avoir six chiffres - # On verifie que le code n'est déja pas utilisé - if os.path.exists("/var/impression/codes/%d" % code): + + for i in range(1000): + # On génère un code + code = rand.randint(100000,999999) + # Si le code est libre, on sort de la boucle + if not os.path.exists("/var/impression/codes/%d" % code): break - i = i+1 - - if code: - # On enregistre le fichier avec le code pour numéro - codefichier = open("/var/impression/codes/%d" % code, 'w') - codefichier.write("Utilisateur %s\n"%(self.user_ldap.Nom())) - codefichier.close() - self.code=code - self.list_messages_importants.append('code') - else : - # Grosse erreur : on logue, on previent et on stoppe. + + else: + # Pas de code disponible print ("ERROR: Il n'y a pas de code disponible" ) sys.stderr.write ("ERROR: Il n'y a pas de code disponible" ) try: self.list_messages_importants.append('erreur gen_code') sys.stderr.write("DEBUG: Un rapport de bug a ete automatiquement envoye.\n") - except : + except: sys.stderr.write("ERROR: Impossible d'envoyer le rapport de bug.\n") sys.stderr.write("ERROR: Plus de codes disponibles.\n") sys.stderr.write("ERROR: Penser a ouvrir a l'adherent debite...\n") - + return + + # On enregistre le fichier avec le code pour numéro + codefichier = open("/var/impression/codes/%d" % code, 'w') + codefichier.write("Utilisateur %s\n" % self.user_ldap.Nom()) + codefichier.close() + self.code=code + self.list_messages_importants.append('code') + def impression(self): # Envoi du fichier à CUPS