[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
|
@ -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)
|
||||
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue