diff --git a/lib/impression/etat_imprimante.py b/lib/impression/etat_imprimante.py index af3d4520..35eda99c 100644 --- a/lib/impression/etat_imprimante.py +++ b/lib/impression/etat_imprimante.py @@ -20,15 +20,14 @@ class ErreurCommunication(Exception): pass def etat(): - exec ("etat_%()" % impression.imprimante) + exec ("etat_%s()" % impression.imprimante) def etat_canon(): try: liste_msg = [] - comm = hptools.snmp(host="imprimante.adm.crans.org", version="1", community="public") + comm = snmp(host="imprimante.adm.crans.org", version="1", community="public") for oid in [".hrPrinterStatus.1", ".hrPrinterDetectedErrorState.1"]: msg = comm.get_string(oid) - msg = dico.get(msg, msg) if msg: liste_msg.append(msg) except Exception,err: liste_msg.append("[%s]" % unicode(err)) @@ -64,7 +63,7 @@ def etat_laserjet(): liste_oid = ["mib-2.43.16.5.1.2.1.1","mib-2.43.16.5.1.2.1.2","mib-2.43.16.5.1.2.1.3","mib-2.43.16.5.1.2.1.4","mib-2.43.16.5.1.2.1.5"] try: - comm = hptools.snmp(host="laserjet.adm.crans.org",version="1",community="public") + comm = snmp(host="laserjet.adm.crans.org",version="1",community="public") liste_msg = [] for oid in liste_oid: msg = comm.get_string(oid).decode("ISO-8859-1") diff --git a/lib/impression/impression_canon.py b/lib/impression/impression_canon.py index a9b7560a..7d494f94 100755 --- a/lib/impression/impression_canon.py +++ b/lib/impression/impression_canon.py @@ -32,7 +32,8 @@ __version__ = '1' import sys, syslog, os.path, time sys.path.append('/usr/scripts/gestion') -from config import impression +from config import impression as config_impression +from commands import getstatusoutput from hptools import snmp from crans.utils import QuoteForPOSIX as escapeForShell import crans.utils.logs @@ -42,7 +43,7 @@ import crans.utils.logs # ######################################################## # LOG = crans.utils.logs.getFileLogger('impression') -COMM = hptools.snmp(host="imprimante.adm.crans.org",version="1",community="public") +COMM = snmp(host="imprimante.adm.crans.org",version="1",community="public") FICHIER_LOG="/var/log/log_couts/impressions" SNMP_CAPA_B = "mib-2.43.11.1.1.8.1.1" @@ -60,7 +61,20 @@ SNMP_BAC4 = "mib-2.43.8.2.1.10.1.5" SNMP_ETAT = "hrPrinterStatus.1" SNMP_ERR = "hrPrinterDetectedErrorState.1" -DECOUVERT_AUTHORISE = config.impression.decouvert +DECOUVERT_AUTHORISE = config_impression.decouvert + +DICT_AGRAFAGE = { "None" : "aucune agrafe", + "TopLeft" : u"agrafe en haut à gauche", + "TopRight" : u"agrafe en haut à droite", + "BottomLeft" : u"agrafe en bas à gauche", + "BottomRight" : u"agrafe en bas à droite", + "Left": u"deux agrafes sur le bord gauche", + "Right" : u"deux agrafes sur le bord droit", + "Top" : u"deux agrafes sur le bord supérieur", + "Bottom" : u"deux agrafes sur le bord inférieur" } +DICT_PAPIER = { 'A4' : "Papier A4 ordinaire", + 'A3' : "Papier A3 ordinaire", + 'A4tr' : "Transparent A4" } # ######################################################## # # ERREURS # @@ -118,7 +132,7 @@ class impression: # paramettres _settings = { 'agrafage': 'None', - 'papier': 'A4' + 'papier': 'A4', 'couleur': False, 'recto_verso': False, 'livret': False, @@ -127,7 +141,7 @@ class impression: } # le prix de l'impression _prix = 0.0 - _nb_pages = 0 + _pages = 0 # le cout de base encre pour une impression en couleurs/n&b # (prix pour papier A4) _base_prix_nb = 0.0 @@ -167,7 +181,7 @@ class impression: (status, rep) = commands.getstatusoutput(pdfbook % self._fichier) self._fichier = "%s-book.pdf" % self.n_fichier[:-4] if status != 0: - log.error("pdfbook status:%d | rep: %s" % (status, rep)) + LOG.error("pdfbook status:%d | rep: %s" % (status, rep)) raise FichierInvalide, ("pdfbook: Impossible de convertir le fichier", self._fichier) @@ -231,30 +245,17 @@ class impression: Affiche les paramètres courrants sur la sortie standard """ - dict_agrafage = { "None" : "aucune agrafe", - "TopLeft" : u"agrafe en haut à gauche", - "TopRight" : u"agrafe en haut à droite", - "BottomLeft" : u"agrafe en bas à gauche", - "BottomRight" : u"agrafe en bas à droite", - "Left": u"deux agrafes sur le bord gauche", - "Right" : u"deux agrafes sur le bord droit", - "Top" : u"deux agrafes sur le bord supérieur", - "Bottom" : u"deux agrafes sur le bord inférieur" } - dict_papier = { 'A4' : "Papier A4 ordinaire", - 'A3' : "Papier A3 ordinaire", - 'A4tr' : "Transparent A4" } - if self._settings['couleur']: print "Type impression: Couleur" else: print "Type impression: Noir et blanc" - print "Papier: " + dict_papier[self._settings['papier']] + print "Papier: " + DICT_PAPIER[self._settings['papier']] if self._settings['livret']: print u"Agrafage: Livret (piqûre à cheval)" else: - print "Agrafage: " + dict_agrafage[self._settings['agrafage']] + print "Agrafage: " + DICT_AGRAFAGE[self._settings['agrafage']] if self._setting['recto_verso']: print "Disposition: recto/verso" else: @@ -290,7 +291,7 @@ class impression: renvoie le nombre de pages du document (page au sens nombre de faces à imprimer et non le nombre de feuilles) """ - return self._nb_pages + return self._pages def imprime(self): @@ -323,14 +324,14 @@ class impression: feuilles = faces if (self._settings['papier'] == "A3"): - c_papier = impression.c_a3 + c_papier = config_impression.c_a3 pages = 2*faces else: pages = faces if self._settings['papier'] == "A4tr": - c_papier = impression.c_trans + c_papier = config_impression.c_trans else: - c_papier = impression.c_a4 + c_papier = config_impression.c_a4 if self._settings['couleur']: c_impression = c_papier * pages + impression.c_face_couleur * pages @@ -346,7 +347,7 @@ class impression: nb_agrafes = 1 if feuilles <= 50: - c_agrafes = nb_agrafes * impression.c_agrafe + c_agrafes = nb_agrafes * config_impression.c_agrafe else: c_agrafes = 0 @@ -375,9 +376,9 @@ class impression: self._pdfbook() if (self._adh != None): - log.info('Impression [%s] : %s' % (self._adh, self._fichier)) + LOG.info('Impression [%s] : %s' % (self._adh, self._fichier)) else: - log.info("Impression : %s" % self._fichier) + LOG.info("Impression : %s" % self._fichier) # Envoi du fichier à CUPS options = '' @@ -392,10 +393,10 @@ class impression: # options += ' -o pdf-level3' # Pour donner le titre de l'impression - options += " -T \"%s\"" % self.nom_job.replace("\"","\\\"") + options += " -T \"%s\"" % self._fichier.split('/')[-1].replace("\"","\\\"") # Pour donner le login de l'adherent - options += ' -U \"%s\"' % self.user.replace("\"","\\\"") + options += ' -U \"%s\"' % self._adh # Pour demander une page de garde #options += ' -o job-sheets=crans' #page de garde de type standard @@ -437,10 +438,11 @@ class impression: cmd = "lpr %s -# %d %s" % (options, self._settings['copies'], self._fichier) - (status, rep) = commands.getstatusoutput(cmd) + (status, rep) = getstatusoutput(cmd) + LOG.info("printing: %s" % cmd) if status != 0: - log.error("erreur impression") - log.error("lpr status:%d | rep: %s" % (status, rep)) + LOG.error("erreur impression") + LOG.error("lpr status:%d | rep: %s" % (status, rep)) raise PrintError, "%s \n status:%d rep: %s" % (cmp, status, rep)