carte_etudiant: mise à jour et envoi de l'année
This commit is contained in:
parent
7dd877e98d
commit
ca8f7cac4a
4 changed files with 31 additions and 16 deletions
|
@ -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)
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
[Crans] Rappel carte d'étudiant
|
Crans: Rappel carte d'étudiant
|
||||||
|
|
|
@ -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.
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue