* On se protge contre les noms de fichiers farfelus.

* On affiche le cot sur la page de garde.

darcs-hash:20060203165336-68412-94f3fbbda6743fae96d2e76b636a23ee26ac9387.gz
This commit is contained in:
glondu 2006-02-03 17:53:36 +01:00
parent ff2a5894c6
commit 53bb62fc81

View file

@ -85,12 +85,7 @@ class fichier_impression :
def fait_payer(self):
self.user_ldap = utilisateur(self.user,True)
pdf = self.nom_fichier_pdf.split('/')[-1]
if self.nom_job:
commentaire = '%s (%s)' % (self.nom_job, pdf)
else:
commentaire = pdf
self.user_ldap.solde(-self.cout, commentaire)
self.user_ldap.solde(-self.cout, self.nom_job)
self.user_ldap.save()
return not (self.cout > (self.user_ldap.solde() - impression.decouvert))
@ -148,6 +143,8 @@ class fichier_impression :
# Pour demander une page de garde
options += ' -o job-sheets=crans' #page de garde de type standard
options += " -o job-billing=%.2f" % self.cout
if self.transparent :
options += ' -o InputSlot=Tray1 -o Media=Transparency'
if self.taille == 'A4':
@ -210,18 +207,14 @@ class fichier_impression :
return "<p>%s</p>" % body
def enregistre_pdf(self, f_value, f_nom, dossier):
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',
prefix=f_nom,
dir=dossier)
(fd_fichier_desc, self.nom_fichier_desc) = tempfile.mkstemp(suffix='.desc', prefix='job', dir=dossier)
os.close(fd_fichier_desc)
os.chmod(self.nom_fichier_desc, 33184)
self.nom_fichier_pdf = "%s.pdf" % self.nom_fichier_desc[0:-5]
file_obj_pdf = open(self.nom_fichier_pdf, 'w')
file_obj_pdf.write(f_value)
file_obj_pdf.close()
self.nom_fichier_pdf = self.nom_fichier_desc.replace('.desc', '.pdf')
fd_fichier_pdf = open(self.nom_fichier_pdf, 'w')
fd_fichier_pdf.write(f_value)
fd_fichier_pdf.close()
os.chmod(self.nom_fichier_pdf, 0640)
os.chmod(self.nom_fichier_desc, 0640)
self.nbr_pages = int(os.popen("pdfinfo '%s' | grep Pages " % (self.nom_fichier_pdf)).readline().split()[1])
self.modif_epoch = time.time()
@ -340,7 +333,7 @@ def utilisateur(user, rw):
sys.exit(0) # On conclue l'avant-impression sans stopper l'imprimante
adherent = res[0]
sys.stderr.write("DEBUG: Adherent %s (aid=%d) recupere.\n" % (user, adherent.id()))
sys.stderr.write("DEBUG: Adherent %s (aid=%s) recupere.\n" % (user, adherent.id()))
return adherent
################################################################################