[lib/impression] hack rapide pour tester la validite de ces fichiers

Ignore-this: 9b996c273bb91c0dfc39f016acde9fcc

darcs-hash:20090515113955-bd074-1919250a70a9ff14366d8ae9d9723dfbfd865502.gz
This commit is contained in:
Antoine Durand-Gasselin 2009-05-15 13:39:55 +02:00
parent 284c189c8e
commit 5eba5336fb
2 changed files with 119 additions and 117 deletions

View file

@ -25,8 +25,8 @@
# Copyright (c) 2006 by www.crans.org # Copyright (c) 2006 by www.crans.org
# ############################################################# # #############################################################
""" """
Classe pour gŽrer l'envoie de pdf ˆ l'imprimante. Classe pour gérer l'envoie de pdf à l'imprimante.
Calcule le cožt des options d'impression. Calcule le coût des options d'impression.
""" """
__version__ = '1' __version__ = '1'
@ -37,10 +37,10 @@ import cout
from crans.utils import QuoteForPOSIX as escapeForShell from crans.utils import QuoteForPOSIX as escapeForShell
import crans.utils.logs import crans.utils.logs
log = crans.utils.logs.getFileLogger('impression') log = crans.utils.logs.getFileLogger('impression')
# Début : Ajout log pour réestimer les coûts # Début : Ajout log pour réestimer les coûts
import time import time
import hptools import hptools
comm = hptools.snmp(host="laserjet.adm.crans.org",version="1",community="public") comm = hptools.snmp(host="imprimante.adm.crans.org",version="1",community="public")
# Fin # Fin
# ######################################################## # # ######################################################## #
@ -48,7 +48,7 @@ comm = hptools.snmp(host="laserjet.adm.crans.org",version="1",community="public"
# ######################################################## # # ######################################################## #
# #
# #
# Début : Ajout log pour réestimer les coûts # Début : Ajout log pour réestimer les coûts
FICHIER_LOG="/var/log/log_couts/impressions" FICHIER_LOG="/var/log/log_couts/impressions"
SNMP_CAR_B_PC="enterprises.11.2.3.9.4.2.1.4.1.10.1.1.18.1.0" SNMP_CAR_B_PC="enterprises.11.2.3.9.4.2.1.4.1.10.1.1.18.1.0"
@ -156,8 +156,8 @@ LPR_OPTIONS = {
class FichierInvalide(Exception): class FichierInvalide(Exception):
""" """
Exception renvoyée lorsqu'un fichier ne passe pas. Exception renvoyée lorsqu'un fichier ne passe pas.
utilisée avec deux arguments : une chaîndéÃécrivant l'erreur et une chÃine avec le nom du fichier utilisée avec deux arguments : une chaîndéÃécrivant l'erreur et une chÃine avec le nom du fichier
""" """
def __str__(self): def __str__(self):
""" """
@ -166,7 +166,7 @@ class FichierInvalide(Exception):
return self.args[0] return self.args[0]
def file(self): def file(self):
""" """
Nom du fichier qui pose problème Nom du fichier qui pose problème
""" """
try: try:
return self.args[1] return self.args[1]
@ -175,7 +175,7 @@ class FichierInvalide(Exception):
class SoldeInsuffisant(Exception): class SoldeInsuffisant(Exception):
""" """
Solde insuffisant pour l'impression demandée Solde insuffisant pour l'impression demandée
""" """
pass pass
class PrintError(Exception): class PrintError(Exception):
@ -185,7 +185,7 @@ class PrintError(Exception):
pass pass
class SettingsError(Exception): class SettingsError(Exception):
""" """
Erreur de paramètres. Erreur de paramètres.
""" """
pass pass
# ######################################################## # # ######################################################## #
@ -196,7 +196,7 @@ class SettingsError(Exception):
class impression: class impression:
"""impression """impression
Un objet impression correspond ˆ un fichier pdf et un adhŽrent. Un objet impression correspond ˆ un fichier pdf et un adhŽrent.
""" """
# fichier (chemin) # fichier (chemin)
_fichier = "" _fichier = ""
@ -223,9 +223,11 @@ class impression:
def __init__(self, path_to_pdf, adh = None): def __init__(self, path_to_pdf, adh = None):
"""impression(path_to_pdf [, adh]) """impression(path_to_pdf [, adh])
CrŽe un nouvel objet impression ˆ partir du fichier pdf pointŽ par path_to_pdf. Crée un nouvel objet impression à partir du fichier pdf pointé
Si adh ext donnŽ, il peut <EFBFBD>tre soit une instance d'un objet adhŽrent de crans_ldap soit le login de l'adhŽrent. par path_to_pdf. Si adh ext donné, il peut être soit une
L<EFBFBD>ve l'exception FichierInvalide si le fichier n'existe pas ou si ce n'est pas un pdf. instance d'un objet adhérent de crans_ldap soit le login de
l'adhérent. Lève l'exception FichierInvalide si le fichier
n'existe pas ou si ce n'est pas un pdf.
""" """
self._fichier = path_to_pdf self._fichier = path_to_pdf
# on verifie que le fichier existe # on verifie que le fichier existe
@ -249,7 +251,7 @@ class impression:
"""changeSettings([keyword=value]) """changeSettings([keyword=value])
Change les parametres de l'impression, recalcule et renvoie le nouveau prix. Change les parametres de l'impression, recalcule et renvoie le nouveau prix.
L<EFBFBD>ve une exceotion SettingError si les param<EFBFBD>tres son invalides. Lève une exceotion SettingError si les paramètres son invalides.
""" """
#recalcule et renvoie le prix #recalcule et renvoie le prix
if (couleurs): if (couleurs):
@ -291,7 +293,7 @@ class impression:
def printSettings(self): def printSettings(self):
"""printSettings() """printSettings()
Affiche les param<EFBFBD>tres courrants sur la sortie standard Affiche les paramètres courrants sur la sortie standard
""" """
print "Type impression: " + LABELS[self._settings['couleurs']] print "Type impression: " + LABELS[self._settings['couleurs']]
print "Agraphes: " + LABELS[self._settings['agraphes']] print "Agraphes: " + LABELS[self._settings['agraphes']]
@ -317,7 +319,7 @@ class impression:
def filePath(self): def filePath(self):
"""filePath() """filePath()
renvoie le chemin d'acc<EFBFBD>s au fichier pdf. renvoie le chemin d'accs au fichier pdf.
""" """
return self._fichier return self._fichier
@ -325,7 +327,7 @@ class impression:
def devisDetaille(self): def devisDetaille(self):
"""devisDetaille() """devisDetaille()
renvoie un disctionnaire contenant le devis (intitulŽ, PU., quantitŽ) pour tous les ŽlŽments de l'impression renvoie un disctionnaire contenant le devis (intitulé, PU., quantité) pour tous les éléments de l'impression
(papier, encre, agrafes...) (papier, encre, agrafes...)
""" """
return self._details_devis return self._details_devis
@ -333,7 +335,7 @@ class impression:
def pages(self): def pages(self):
"""pages() """pages()
renvoie le nombre de pages du document (page au sens nombre de faces ˆ imprimer et non le nombre de feuilles) 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._nb_pages
@ -341,10 +343,10 @@ class impression:
def imprime(self): def imprime(self):
"""imprime() """imprime()
imprime le document pdf. dŽbite l'adhŽrent si adhŽrent il y a. imprime le document pdf. débite l'adhérent si adhérent il y a.
(si il a ŽtŽ indiquŽ ˆ l'initialisation de l'objet) (si il a été indiqué à l'initialisation de l'objet)
""" """
# debite l'adhŽrent si adherent il y a # debite l'adhérent si adherent il y a
if (self._adh != None): if (self._adh != None):
adh = self._get_adh(self._adh) adh = self._get_adh(self._adh)
if (self._prix > (adh.solde() - DECOUVERT_AUTHORISE)): if (self._prix > (adh.solde() - DECOUVERT_AUTHORISE)):
@ -469,7 +471,7 @@ class impression:
# options couleurs # options couleurs
options += LPR_OPTIONS[self._settings['couleurs']] options += LPR_OPTIONS[self._settings['couleurs']]
# Début : Ajout log pour réestimer les coûts # Début : Ajout log pour réestimer les coûts
# Commandes snmp recuperation des etats # Commandes snmp recuperation des etats
val_car_b_pc=int(comm.get(SNMP_CAR_B_PC)) val_car_b_pc=int(comm.get(SNMP_CAR_B_PC))
val_car_c_pc=int(comm.get(SNMP_CAR_C_PC)) val_car_c_pc=int(comm.get(SNMP_CAR_C_PC))
@ -501,7 +503,7 @@ class impression:
val_car_y_pr, val_car_y_pr,
val_tam_b_pc, val_tam_b_pc,
val_tam_c_pc, val_tam_c_pc,
val_tam_m_pc, Val_tam_m_pc,
val_tam_y_pc, val_tam_y_pc,
val_tam_b_pr, val_tam_b_pr,
val_tam_c_pr, val_tam_c_pr,