[lib/impression] correction de bugs divers (pour la plupart de syntaxe ou de mauvais nom)
Ignore-this: b8259d81c6f15949baf5a5c77bad0a4e darcs-hash:20090516014507-bd074-49f74e30e18d7d705bb8b11400a4fec514e71358.gz
This commit is contained in:
parent
d87c41e637
commit
c9a25af79f
2 changed files with 38 additions and 37 deletions
|
@ -20,15 +20,14 @@ class ErreurCommunication(Exception):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
def etat():
|
def etat():
|
||||||
exec ("etat_%()" % impression.imprimante)
|
exec ("etat_%s()" % impression.imprimante)
|
||||||
|
|
||||||
def etat_canon():
|
def etat_canon():
|
||||||
try:
|
try:
|
||||||
liste_msg = []
|
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"]:
|
for oid in [".hrPrinterStatus.1", ".hrPrinterDetectedErrorState.1"]:
|
||||||
msg = comm.get_string(oid)
|
msg = comm.get_string(oid)
|
||||||
msg = dico.get(msg, msg)
|
|
||||||
if msg: liste_msg.append(msg)
|
if msg: liste_msg.append(msg)
|
||||||
except Exception,err:
|
except Exception,err:
|
||||||
liste_msg.append("[%s]" % unicode(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"]
|
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:
|
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 = []
|
liste_msg = []
|
||||||
for oid in liste_oid:
|
for oid in liste_oid:
|
||||||
msg = comm.get_string(oid).decode("ISO-8859-1")
|
msg = comm.get_string(oid).decode("ISO-8859-1")
|
||||||
|
|
|
@ -32,7 +32,8 @@ __version__ = '1'
|
||||||
|
|
||||||
import sys, syslog, os.path, time
|
import sys, syslog, os.path, time
|
||||||
sys.path.append('/usr/scripts/gestion')
|
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 hptools import snmp
|
||||||
from crans.utils import QuoteForPOSIX as escapeForShell
|
from crans.utils import QuoteForPOSIX as escapeForShell
|
||||||
import crans.utils.logs
|
import crans.utils.logs
|
||||||
|
@ -42,7 +43,7 @@ import crans.utils.logs
|
||||||
# ######################################################## #
|
# ######################################################## #
|
||||||
|
|
||||||
LOG = crans.utils.logs.getFileLogger('impression')
|
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"
|
FICHIER_LOG="/var/log/log_couts/impressions"
|
||||||
|
|
||||||
SNMP_CAPA_B = "mib-2.43.11.1.1.8.1.1"
|
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_ETAT = "hrPrinterStatus.1"
|
||||||
SNMP_ERR = "hrPrinterDetectedErrorState.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 #
|
# ERREURS #
|
||||||
|
@ -118,7 +132,7 @@ class impression:
|
||||||
# paramettres
|
# paramettres
|
||||||
_settings = {
|
_settings = {
|
||||||
'agrafage': 'None',
|
'agrafage': 'None',
|
||||||
'papier': 'A4'
|
'papier': 'A4',
|
||||||
'couleur': False,
|
'couleur': False,
|
||||||
'recto_verso': False,
|
'recto_verso': False,
|
||||||
'livret': False,
|
'livret': False,
|
||||||
|
@ -127,7 +141,7 @@ class impression:
|
||||||
}
|
}
|
||||||
# le prix de l'impression
|
# le prix de l'impression
|
||||||
_prix = 0.0
|
_prix = 0.0
|
||||||
_nb_pages = 0
|
_pages = 0
|
||||||
# le cout de base encre pour une impression en couleurs/n&b
|
# le cout de base encre pour une impression en couleurs/n&b
|
||||||
# (prix pour papier A4)
|
# (prix pour papier A4)
|
||||||
_base_prix_nb = 0.0
|
_base_prix_nb = 0.0
|
||||||
|
@ -167,7 +181,7 @@ class impression:
|
||||||
(status, rep) = commands.getstatusoutput(pdfbook % self._fichier)
|
(status, rep) = commands.getstatusoutput(pdfbook % self._fichier)
|
||||||
self._fichier = "%s-book.pdf" % self.n_fichier[:-4]
|
self._fichier = "%s-book.pdf" % self.n_fichier[:-4]
|
||||||
if status != 0:
|
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",
|
raise FichierInvalide, ("pdfbook: Impossible de convertir le fichier",
|
||||||
self._fichier)
|
self._fichier)
|
||||||
|
|
||||||
|
@ -231,30 +245,17 @@ class impression:
|
||||||
|
|
||||||
Affiche les paramètres courrants sur la sortie standard
|
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']:
|
if self._settings['couleur']:
|
||||||
print "Type impression: Couleur"
|
print "Type impression: Couleur"
|
||||||
else:
|
else:
|
||||||
print "Type impression: Noir et blanc"
|
print "Type impression: Noir et blanc"
|
||||||
|
|
||||||
print "Papier: " + dict_papier[self._settings['papier']]
|
print "Papier: " + DICT_PAPIER[self._settings['papier']]
|
||||||
|
|
||||||
if self._settings['livret']:
|
if self._settings['livret']:
|
||||||
print u"Agrafage: Livret (piqûre à cheval)"
|
print u"Agrafage: Livret (piqûre à cheval)"
|
||||||
else:
|
else:
|
||||||
print "Agrafage: " + dict_agrafage[self._settings['agrafage']]
|
print "Agrafage: " + DICT_AGRAFAGE[self._settings['agrafage']]
|
||||||
if self._setting['recto_verso']:
|
if self._setting['recto_verso']:
|
||||||
print "Disposition: recto/verso"
|
print "Disposition: recto/verso"
|
||||||
else:
|
else:
|
||||||
|
@ -290,7 +291,7 @@ class impression:
|
||||||
renvoie le nombre de pages du document (page au sens nombre de
|
renvoie le nombre de pages du document (page au sens nombre de
|
||||||
faces à imprimer et non le nombre de feuilles)
|
faces à imprimer et non le nombre de feuilles)
|
||||||
"""
|
"""
|
||||||
return self._nb_pages
|
return self._pages
|
||||||
|
|
||||||
|
|
||||||
def imprime(self):
|
def imprime(self):
|
||||||
|
@ -323,14 +324,14 @@ class impression:
|
||||||
feuilles = faces
|
feuilles = faces
|
||||||
|
|
||||||
if (self._settings['papier'] == "A3"):
|
if (self._settings['papier'] == "A3"):
|
||||||
c_papier = impression.c_a3
|
c_papier = config_impression.c_a3
|
||||||
pages = 2*faces
|
pages = 2*faces
|
||||||
else:
|
else:
|
||||||
pages = faces
|
pages = faces
|
||||||
if self._settings['papier'] == "A4tr":
|
if self._settings['papier'] == "A4tr":
|
||||||
c_papier = impression.c_trans
|
c_papier = config_impression.c_trans
|
||||||
else:
|
else:
|
||||||
c_papier = impression.c_a4
|
c_papier = config_impression.c_a4
|
||||||
|
|
||||||
if self._settings['couleur']:
|
if self._settings['couleur']:
|
||||||
c_impression = c_papier * pages + impression.c_face_couleur * pages
|
c_impression = c_papier * pages + impression.c_face_couleur * pages
|
||||||
|
@ -346,7 +347,7 @@ class impression:
|
||||||
nb_agrafes = 1
|
nb_agrafes = 1
|
||||||
|
|
||||||
if feuilles <= 50:
|
if feuilles <= 50:
|
||||||
c_agrafes = nb_agrafes * impression.c_agrafe
|
c_agrafes = nb_agrafes * config_impression.c_agrafe
|
||||||
else:
|
else:
|
||||||
c_agrafes = 0
|
c_agrafes = 0
|
||||||
|
|
||||||
|
@ -375,9 +376,9 @@ class impression:
|
||||||
self._pdfbook()
|
self._pdfbook()
|
||||||
|
|
||||||
if (self._adh != None):
|
if (self._adh != None):
|
||||||
log.info('Impression [%s] : %s' % (self._adh, self._fichier))
|
LOG.info('Impression [%s] : %s' % (self._adh, self._fichier))
|
||||||
else:
|
else:
|
||||||
log.info("Impression : %s" % self._fichier)
|
LOG.info("Impression : %s" % self._fichier)
|
||||||
|
|
||||||
# Envoi du fichier à CUPS
|
# Envoi du fichier à CUPS
|
||||||
options = ''
|
options = ''
|
||||||
|
@ -392,10 +393,10 @@ class impression:
|
||||||
# options += ' -o pdf-level3'
|
# options += ' -o pdf-level3'
|
||||||
|
|
||||||
# Pour donner le titre de l'impression
|
# 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
|
# Pour donner le login de l'adherent
|
||||||
options += ' -U \"%s\"' % self.user.replace("\"","\\\"")
|
options += ' -U \"%s\"' % self._adh
|
||||||
|
|
||||||
# Pour demander une page de garde
|
# Pour demander une page de garde
|
||||||
#options += ' -o job-sheets=crans' #page de garde de type standard
|
#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'],
|
cmd = "lpr %s -# %d %s" % (options, self._settings['copies'],
|
||||||
self._fichier)
|
self._fichier)
|
||||||
(status, rep) = commands.getstatusoutput(cmd)
|
(status, rep) = getstatusoutput(cmd)
|
||||||
|
LOG.info("printing: %s" % cmd)
|
||||||
if status != 0:
|
if status != 0:
|
||||||
log.error("erreur impression")
|
LOG.error("erreur impression")
|
||||||
log.error("lpr status:%d | rep: %s" % (status, rep))
|
LOG.error("lpr status:%d | rep: %s" % (status, rep))
|
||||||
raise PrintError, "%s \n status:%d rep: %s" % (cmp, status, rep)
|
raise PrintError, "%s \n status:%d rep: %s" % (cmp, status, rep)
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue