[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:
Antoine Durand-Gasselin 2009-05-16 03:45:07 +02:00
parent d87c41e637
commit c9a25af79f
2 changed files with 38 additions and 37 deletions

View file

@ -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)