tabulation = 4 espaces
des broutilles darcs-hash:20060129164916-4ec08-7f9ee868181165d56e7709d775efbcdce3ce8692.gz
This commit is contained in:
parent
996601e1c0
commit
d274832589
1 changed files with 291 additions and 280 deletions
|
@ -1,10 +1,12 @@
|
|||
#! /usr/bin/env python
|
||||
# -*- coding: iso-8859-15 -*-
|
||||
#
|
||||
# Class pour l'impression depuis le web par cups
|
||||
# Codé par Francois
|
||||
# Inspiré par le backend écrit par Benoit, Fred et Brice, inspirés par CUPSPykota
|
||||
# Licence : GNU General Public Licence, version 2
|
||||
|
||||
"""
|
||||
Class pour l'impression depuis le web par cups
|
||||
Codé par Francois
|
||||
Inspiré par le backend écrit par Benoit, Fred et Brice, inspirés par CUPSPykota
|
||||
Licence : GNU General Public Licence, version 2
|
||||
"""
|
||||
|
||||
import sys, time, tempfile, os, commands, string, random
|
||||
sys.path.append('/usr/scripts/impression')
|
||||
|
@ -16,6 +18,8 @@ duree_vie_pdf=3600
|
|||
|
||||
#fonction principal: impression (fichier_impression)
|
||||
|
||||
################################################################################
|
||||
|
||||
class test:
|
||||
def mail(self):
|
||||
return u"francois.bobot@crans.org"
|
||||
|
@ -26,6 +30,7 @@ class test:
|
|||
def save(self):
|
||||
pass
|
||||
|
||||
################################################################################
|
||||
|
||||
class fichier_impression :
|
||||
nom_job=''
|
||||
|
@ -157,8 +162,7 @@ class fichier_impression :
|
|||
else:
|
||||
options += ' -o sides=one-sided'
|
||||
options += ' -o HPColorasGray=%s' % (not self.couleur)
|
||||
(status,rep) = commands.getstatusoutput("lpr %s %s" % (options,
|
||||
self.nom_fichier_pdf))
|
||||
(status,rep) = commands.getstatusoutput("lpr %s %s" % (options, self.nom_fichier_pdf))
|
||||
if status != 0:
|
||||
print "<p>status:%d rep: %s</p>" % (status, rep)
|
||||
|
||||
|
@ -186,7 +190,8 @@ class fichier_impression :
|
|||
def affiche_messages_html(self):
|
||||
body=""
|
||||
|
||||
"""if self.imprime:
|
||||
"""
|
||||
if self.imprime:
|
||||
body=string.join(map ((dico_message_laserjet.get),self.list_messages_importants))
|
||||
if len(self.list_messages)<>0:
|
||||
body=body+'\nRemarques:\n'+string.join(map ((dico_message_laserjet.get),self.list_messages))
|
||||
|
@ -203,8 +208,7 @@ class fichier_impression :
|
|||
f_nom = f_nom.translate(string.maketrans(string.punctuation +
|
||||
string.whitespace,
|
||||
'_' * len(string.punctuation+string.whitespace)))
|
||||
(fd_fichier_desc,
|
||||
self.nom_fichier_desc) = tempfile.mkstemp(suffix='.desc',
|
||||
(fd_fichier_desc, self.nom_fichier_desc) = tempfile.mkstemp(suffix='.desc',
|
||||
prefix=f_nom,
|
||||
dir=dossier)
|
||||
os.close(fd_fichier_desc)
|
||||
|
@ -250,8 +254,7 @@ class fichier_impression :
|
|||
setattr(self,parse[0],(parse[1] == 'True'))
|
||||
else:
|
||||
if parse[0] in ("cout", "modif_epoch"):
|
||||
setattr(self, parse[0],
|
||||
float(parse[1]))
|
||||
setattr(self, parse[0], float(parse[1]))
|
||||
else:
|
||||
self.erreur_critique = True
|
||||
print '<p>ligne non parsée: %s</p>' % ligne
|
||||
|
@ -263,8 +266,10 @@ class fichier_impression :
|
|||
self.imprime = -4
|
||||
|
||||
|
||||
# Fonction utilisé par print et str : renvoie le string canonique de l'objet
|
||||
def __repr__(self):
|
||||
""" renvoie le string canonique de l'objet
|
||||
fonction utilisé par print et str """
|
||||
|
||||
dict_contraire = { 'couleur' : 'Noir et Blanc',
|
||||
'transparent' : 'Normal',
|
||||
'portrait': 'Paysage',
|
||||
|
@ -299,6 +304,8 @@ class fichier_impression :
|
|||
corps+="</U></td></TR>\n</TABLE>"
|
||||
return corps
|
||||
|
||||
################################################################################
|
||||
|
||||
def utilisateur(user, rw):
|
||||
""" Renvoie l'adherent qui imprime le job
|
||||
* user est l'utilisateur (argument n°2 des paramètres passés au backend)
|
||||
|
@ -315,9 +322,9 @@ def utilisateur(user, rw):
|
|||
try:
|
||||
base = crans_ldap()
|
||||
if rw:
|
||||
res=base.search("login=%s" % user,'w')['adherent']
|
||||
res = base.search("login=%s" % user,'w')['adherent']
|
||||
else:
|
||||
res=base.search("login=%s" % user)['adherent']
|
||||
res = base.search("login=%s" % user)['adherent']
|
||||
except:
|
||||
print ("ERROR: Erreur : Base LDAP non joignable\n")
|
||||
sys.exit(0) # On arrete l'avant-impression ?on arrete l'imprimante?
|
||||
|
@ -331,11 +338,17 @@ def utilisateur(user, rw):
|
|||
sys.stderr.write("DEBUG: Adherent %s recupere.\n" % adherent.Nom())
|
||||
return adherent
|
||||
|
||||
#fonction cout calcule le pourcentage de couleur sur les pages
|
||||
# renvoit un string avec le nom de l'erreur si erreur il y a
|
||||
#renvoit un float dans les cas de fonctionnement...
|
||||
################################################################################
|
||||
|
||||
|
||||
def cout(fic_impr):
|
||||
""" Calcule le pourcentage de couleur sur les pages
|
||||
fic_impr est une instance de fichier_impression
|
||||
retourn :
|
||||
un string avec le nom de l'erreur si erreur il y a
|
||||
un float dans les cas de fonctionnement
|
||||
"""
|
||||
|
||||
def cout( fic_impr):
|
||||
# taille peut valoir A3 ou A4
|
||||
# nb_copie est le nombre de copies désirées
|
||||
|
||||
|
@ -418,5 +431,3 @@ def cout( fic_impr):
|
|||
sys.stderr.write("ERREUR : Impossible d'enlever le dossier.\n")
|
||||
|
||||
return float(c_total)/100
|
||||
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue