Gestion des clubs avec la nouvelle app d'impression
This commit is contained in:
parent
d57588e313
commit
e2eb01f2aa
1 changed files with 19 additions and 39 deletions
|
@ -5,7 +5,10 @@ adhérent. Le script se connecte à l'interface d'impression pour récupérer
|
||||||
la liste des dernières tâches imprimées.
|
la liste des dernières tâches imprimées.
|
||||||
Ce script est lancé par un cron toutes les dix minutes sur zamok. Pour éviter
|
Ce script est lancé par un cron toutes les dix minutes sur zamok. Pour éviter
|
||||||
de notifier plusieurs fois de la même fin d'impression, on ne balaie dans
|
de notifier plusieurs fois de la même fin d'impression, on ne balaie dans
|
||||||
la liste que le dernier intervalle (bornes entières) de dix minutes"""
|
la liste que le dernier intervalle (bornes entières) de dix minutes
|
||||||
|
|
||||||
|
detraz@crans.org
|
||||||
|
"""
|
||||||
|
|
||||||
import BeautifulSoup
|
import BeautifulSoup
|
||||||
import sys
|
import sys
|
||||||
|
@ -13,9 +16,7 @@ import requests
|
||||||
import re
|
import re
|
||||||
import datetime
|
import datetime
|
||||||
import time
|
import time
|
||||||
import smtplib
|
|
||||||
|
|
||||||
from gestion.affich_tools import cprint
|
|
||||||
from gestion import mail
|
from gestion import mail
|
||||||
from utils.sendmail import actually_sendmail
|
from utils.sendmail import actually_sendmail
|
||||||
from lc_ldap import shortcuts
|
from lc_ldap import shortcuts
|
||||||
|
@ -32,13 +33,13 @@ try:
|
||||||
req = requests.get(URL_JOBLIST, verify=CA)
|
req = requests.get(URL_JOBLIST, verify=CA)
|
||||||
except requests.exceptions.ConnectionError:
|
except requests.exceptions.ConnectionError:
|
||||||
print '''L'imprimante est injoignable. Une intervention manuelle peut être nécessaire
|
print '''L'imprimante est injoignable. Une intervention manuelle peut être nécessaire
|
||||||
--
|
--
|
||||||
Le script de notification d'impressions'''
|
Le script de notification d'impressions'''
|
||||||
exit(1)
|
exit(1)
|
||||||
|
|
||||||
if req.status_code!=200:
|
if req.status_code!=200:
|
||||||
print '''L'imprimante est injoignable. Une intervention manuelle peut être nécessaire
|
print '''L'imprimante est injoignable. Une intervention manuelle peut être nécessaire
|
||||||
--
|
--
|
||||||
Le script de notification d'impressions'''
|
Le script de notification d'impressions'''
|
||||||
exit(1)
|
exit(1)
|
||||||
|
|
||||||
|
@ -60,7 +61,6 @@ fin = now.replace(second=0, minute=(now.minute/10)*10, microsecond=0)
|
||||||
debut = fin - datetime.timedelta(minutes=10)
|
debut = fin - datetime.timedelta(minutes=10)
|
||||||
|
|
||||||
success=dict()
|
success=dict()
|
||||||
clubs=dict()
|
|
||||||
echecs=dict()
|
echecs=dict()
|
||||||
for job in jobs:
|
for job in jobs:
|
||||||
# Fin de parsing
|
# Fin de parsing
|
||||||
|
@ -101,19 +101,10 @@ for job in jobs:
|
||||||
nb = split[0]
|
nb = split[0]
|
||||||
name = split[1]
|
name = split[1]
|
||||||
task = u':'.join(split[2:])
|
task = u':'.join(split[2:])
|
||||||
if u'@' in name:
|
|
||||||
#Seuls les clubs ont un @ dans leur alias, donc boucle
|
|
||||||
# dédiée au clubs
|
|
||||||
[name, club] = name.split(u'@', 1)
|
|
||||||
if club not in clubs:
|
|
||||||
clubs[club] = {'task': []}
|
|
||||||
clubs[club]['task'].append(task)
|
|
||||||
if name not in success:
|
if name not in success:
|
||||||
success[name] = {'task': []}
|
success[name] = {'task': []}
|
||||||
success[name]['task'].append(task)
|
success[name]['task'].append(task)
|
||||||
|
|
||||||
#Section consacrée à l'envoi : partie 1 pour les adh, partie 2 pour les clubs
|
|
||||||
#To = 'detraz@crans.org'
|
|
||||||
From = 'impression@crans.org'
|
From = 'impression@crans.org'
|
||||||
e = 0
|
e = 0
|
||||||
a = 0
|
a = 0
|
||||||
|
@ -124,7 +115,11 @@ for name in success:
|
||||||
a = a + 1
|
a = a + 1
|
||||||
adh = ad[0]
|
adh = ad[0]
|
||||||
To = name + u'@crans.org'
|
To = name + u'@crans.org'
|
||||||
tname = unicode(adh['prenom'][0]) + " " + unicode(adh['nom'][0])
|
try:
|
||||||
|
tname = unicode(adh['prenom'][0]) + " " + unicode(adh['nom'][0])
|
||||||
|
# Pour les clubs
|
||||||
|
except KeyError:
|
||||||
|
tname = unicode(name)
|
||||||
codes = [x[0] + u'#' for x in digicode.list_code(name)]
|
codes = [x[0] + u'#' for x in digicode.list_code(name)]
|
||||||
if not codes:
|
if not codes:
|
||||||
codes = [digicode.gen_code(name) + u'#']
|
codes = [digicode.gen_code(name) + u'#']
|
||||||
|
@ -137,36 +132,21 @@ for name in success:
|
||||||
'taches': u', '.join(success[name]['task']),
|
'taches': u', '.join(success[name]['task']),
|
||||||
'codes': u', '.join(codes)
|
'codes': u', '.join(codes)
|
||||||
})
|
})
|
||||||
#print mailtxt.as_string()
|
if VERB:
|
||||||
|
print mailtxt.as_string()
|
||||||
actually_sendmail(From, (To,), mailtxt)
|
actually_sendmail(From, (To,), mailtxt)
|
||||||
else:
|
else:
|
||||||
e = e+1
|
e = e+1
|
||||||
|
|
||||||
for club in clubs:
|
|
||||||
a = a + 1
|
|
||||||
tname = club
|
|
||||||
To = club + u'@crans.org'
|
|
||||||
codes = [x[0] + u'#' for x in digicode.list_code(club)]
|
|
||||||
if not codes:
|
|
||||||
codes = [digicode.gen_code(club) + u'#']
|
|
||||||
if VERB:
|
|
||||||
print (u"Envoi du mail à %s" % To)
|
|
||||||
mailtxt=mail.generate('mail_impression_ok', {
|
|
||||||
'To': To,
|
|
||||||
'From': From,
|
|
||||||
'tname': tname,
|
|
||||||
'taches': u', '.join(clubs[club]['task']),
|
|
||||||
'codes': u', '.join(codes),
|
|
||||||
})
|
|
||||||
#print mailtxt.as_string()
|
|
||||||
actually_sendmail(From, (To,), mailtxt)
|
|
||||||
|
|
||||||
for name in echecs:
|
for name in echecs:
|
||||||
ad = con.search(u'(uid=%s)' % name)
|
ad = con.search(u'(uid=%s)' % name)
|
||||||
To = 'impression@lists.crans.org'
|
To = 'impression@lists.crans.org'
|
||||||
if ad <> []:
|
if ad <> []:
|
||||||
adh = ad[0]
|
adh = ad[0]
|
||||||
tname = unicode(adh['prenom'][0]) + " " + unicode(adh['nom'][0])
|
try:
|
||||||
|
tname = unicode(adh['prenom'][0]) + " " + unicode(adh['nom'][0])
|
||||||
|
except KeyError:
|
||||||
|
tname = unicode(name)
|
||||||
else:
|
else:
|
||||||
tname = name
|
tname = name
|
||||||
mailtxt=mail.generate('mail_impression_ratee', {
|
mailtxt=mail.generate('mail_impression_ratee', {
|
||||||
|
@ -175,7 +155,8 @@ for name in echecs:
|
||||||
'tname': tname,
|
'tname': tname,
|
||||||
'taches': u', '.join(echecs[name]['task']),
|
'taches': u', '.join(echecs[name]['task']),
|
||||||
})
|
})
|
||||||
#print mailtxt.as_string()
|
if VERB:
|
||||||
|
print mailtxt.as_string()
|
||||||
actually_sendmail(From, (To,), mailtxt)
|
actually_sendmail(From, (To,), mailtxt)
|
||||||
|
|
||||||
|
|
||||||
|
@ -186,4 +167,3 @@ if e>0:
|
||||||
print a
|
print a
|
||||||
print "Nombre de mails non envoyés faute de résultats LDAP :"
|
print "Nombre de mails non envoyés faute de résultats LDAP :"
|
||||||
print e
|
print e
|
||||||
#print len(success)
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue