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 smtplib
import datetime
import pytz
from gestion import config
from gestion.affich_tools import cprint
from gestion import mail
from gestion import mail as mail_module
import lc_ldap.shortcuts
# Attention, si à True envoie effectivement les mails
SEND=False
deadline="mardi 5 novembre"
ldap_filter=u"(&(paiement=%(annee)s)(!(carteEtudiant=%(annee)s))(!(etudes=Personnel ENS))(aid=*))" % {'annee': config.ann_scol}
# TODO ces deadlines devraient être dans config.py
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()
mailaddrs=set()
for adh in conn.search(ldap_filter):
if 'canonicalAlias' in adh.attrs.keys():
mailaddrs.add(str(adh['canonicalAlias'][0]))
elif 'mail' in adh.attrs.keys():
mailaddrs.add(str(adh['mail'][0]))
else:
raise ValueError("%r has nor mail nor canonicalAlias, only %s" % (adh, adh.attrs.keys()))
mail = adh.get_mail()
if not mail:
print "Skip %r (no valid mail)" % adh
continue
mailaddrs.add(mail)
if not SEND:
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=[]
conn_smtp=smtplib.SMTP('smtp.adm.crans.org')
for To in mailaddrs:
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:
if SEND:
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.
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
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.
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
régularises ta situation.
Merci de ne pas envoyer de certificat ou carte par retour de courriel,
ceux-ci ne seront pas acceptés.
Bien cordialement,
À bientôt !
--
Les câbleurs
Les membres actifs du Crans