carte_etudiant: mise à jour et envoi de l'année

This commit is contained in:
Daniel STAN 2014-10-23 23:24:04 +02:00
parent 7dd877e98d
commit ca8f7cac4a
4 changed files with 31 additions and 16 deletions

View file

@ -3,35 +3,50 @@
import sys import sys
import smtplib import smtplib
import datetime
import pytz
from gestion import config from gestion import config
from gestion.affich_tools import cprint from gestion.affich_tools import cprint
from gestion import mail from gestion import mail as mail_module
import lc_ldap.shortcuts import lc_ldap.shortcuts
# Attention, si à True envoie effectivement les mails # Attention, si à True envoie effectivement les mails
SEND=False SEND=False
deadline="mardi 5 novembre" # TODO ces deadlines devraient être dans config.py
ldap_filter=u"(&(paiement=%(annee)s)(!(carteEtudiant=%(annee)s))(!(etudes=Personnel ENS))(aid=*))" % {'annee': config.ann_scol} deadline=datetime.datetime(config.ann_scol, 11, 6)
fin_conn = datetime.datetime(config.ann_scol, 11, 1, tzinfo=pytz.UTC)
fin_conn = fin_conn.strftime('%Y%m%d%H%M%S%z')
ldap_filter=u"""(&
(finConnexion>=%(fin_conn)s)
(!(carteEtudiant=*))
(!(etudes=Personnel ENS))
(aid=*)
)""" % {'fin_conn': fin_conn, }
conn=lc_ldap.shortcuts.lc_ldap_readonly() conn=lc_ldap.shortcuts.lc_ldap_readonly()
mailaddrs=set() mailaddrs=set()
for adh in conn.search(ldap_filter): for adh in conn.search(ldap_filter):
if 'canonicalAlias' in adh.attrs.keys(): mail = adh.get_mail()
mailaddrs.add(str(adh['canonicalAlias'][0])) if not mail:
elif 'mail' in adh.attrs.keys(): print "Skip %r (no valid mail)" % adh
mailaddrs.add(str(adh['mail'][0])) continue
else: mailaddrs.add(mail)
raise ValueError("%r has nor mail nor canonicalAlias, only %s" % (adh, adh.attrs.keys()))
if not SEND: if not SEND:
print "Va envoyer le message à %s personnes. Mettre la variable SEND à True effectuer l'envoie" % len(mailaddrs) print "Va envoyer le message à %s personnes. Mettre la variable SEND à True effectuer l'envoie" % len(mailaddrs)
sys.exit(0) print "Appuyer sur entrée pour simuler la génération"
raw_input()
echecs=[] echecs=[]
conn_smtp=smtplib.SMTP('smtp.adm.crans.org') conn_smtp=smtplib.SMTP('smtp.adm.crans.org')
for To in mailaddrs: for To in mailaddrs:
cprint(u"Envoi du mail à %s" % To) cprint(u"Envoi du mail à %s" % To)
mailtxt=mail.generate('carte_etudiant', {'deadline':deadline, 'To':To}).as_string() params = {
'deadline': deadline,
'To': To,
'lang_info': 'English version below',
}
mailtxt=mail_module.generate('carte_etudiant', params).as_string()
try: try:
if SEND: if SEND:
conn_smtp.sendmail("cableurs@crans.org", (To,), mailtxt) conn_smtp.sendmail("cableurs@crans.org", (To,), mailtxt)

View file

@ -1 +1 @@
[Crans] Rappel carte d'étudiant Crans: Rappel carte d'étudiant

View file

@ -5,7 +5,7 @@ year. The Crans is connected to the RENATER network so we have to justify the
academic status of all our members. academic status of all our members.
You must therefore go to the Kfet with an original school certificate or with You must therefore go to the Kfet with an original school certificate or with
your student card, before {{deadline}}. In case you fail to come before that your student card, before {{deadline|date}}. In case you fail to come before that
date, your Internet access will be suspended until you have the document sorted date, your Internet access will be suspended until you have the document sorted
out. out.

View file

@ -5,15 +5,15 @@ valide pour l'année en cours. Le Crans utilisant le réseau RENATER, il lui
est demandé de pouvoir justifier ton statut d'étudiant. est demandé de pouvoir justifier ton statut d'étudiant.
Ainsi, il est nécessaire que tu viennes à la Kfet avec un certificat de Ainsi, il est nécessaire que tu viennes à la Kfet avec un certificat de
scolarité original ou ta carte d'étudiant, avant le {{deadline}}. Si tu ne scolarité original ou ta carte d'étudiant, avant le {{deadline|date}}. Si tu ne
pouvais venir avant cette date, ton accès serait suspendu jusqu'à ce que tu pouvais venir avant cette date, ton accès serait suspendu jusqu'à ce que tu
régularises ta situation. régularises ta situation.
Merci de ne pas envoyer de certificat ou carte par retour de courriel, Merci de ne pas envoyer de certificat ou carte par retour de courriel,
ceux-ci ne seront pas acceptés. ceux-ci ne seront pas acceptés.
Bien cordialement, À bientôt !
-- --
Les câbleurs Les membres actifs du Crans