fin_connexion: previent aussi les clubs

This commit is contained in:
Daniel STAN 2015-07-24 02:13:36 +02:00
parent 52c3795255
commit 418aa7b79b
9 changed files with 59 additions and 27 deletions

View file

@ -49,7 +49,6 @@ FILTRE_TPL_SIMPLE = u'(&(finConnexion>=%(debut)s)(!(finConnexion>=%(fin)s)))'
# min(a,b) >= v <=> a >= v /\ b >= v
# min(a,b) < v <=> a < v \/ b < v
FILTRE_TPL = u"""(&
(aid=*)
(&(finConnexion>=%(debut)s)(finAdhesion>=%(debut)s))
(|(!(finConnexion>=%(fin)s))(!(finAdhesion>=%(fin)s)))
)"""
@ -67,31 +66,35 @@ FILTRE_TPL = u"""(&
def warn(mail_conn, adh):
"""Envoie un mail d'avertissement à ``adh``, en utilisant la connexion mail
``mail_conn``"""
fin = min(max(parse_gtf(v.value) for v in adh[l]) \
for l in ['finConnexion', 'finAdhesion'] )
tpl_name = 'fin_connexion'
fields = ['finAdhesion']
if 'aid' in adh:
fields.append('finConnexion')
else:
tpl_name += '_club'
fin = compute_fin_connexion(adh)
delai = (fin - datetime.datetime.now(pytz.UTC)).days
data = {
'delai': delai,
'adh': adh,
}
for l in ['adhesion', 'connexion']:
fin = max(parse_gtf(v.value) for v in adh['fin' + l.capitalize()])
data['fin_%s' % l] = fin
From = 'respbats@crans.org'
To = adh.get_mail()
if not To:
print "No valid mail for %r" % adh
return
data.update({'To': To, 'From': From})
mailtxt = mail_module.generate('fin_connexion', data)
mail_conn.sendmail(From, [To], mailtxt.as_string())
for l in fields:
fin = max(parse_gtf(v.value) for v in adh[l])
data[l] = fin
deco = min(data[l] for l in fields)
if deco >= PERIODE_TRANSITOIRE[0] and deco < PERIODE_TRANSITOIRE[1]:
data['sursis'] = PERIODE_TRANSITOIRE[1]
data.update({'From': 'respbats@crans.org'})
mail_conn.send_template(tpl_name, data)
def compute_fin_connexion(adh):
"""Renvoie le datetime de fin effective de connexion de l'``adh``"""
value = min( max(parse_gtf(v.value) for v in adh['fin' + l])
for l in ['Adhesion', 'Connexion'])
fields = ['finAdhesion']
if 'aid' in adh:
fields.append('finConnexion')
value = min(max(parse_gtf(v.value) for v in adh[l]) for l in fields)
if value >= PERIODE_TRANSITOIRE[0] and value < PERIODE_TRANSITOIRE[1]:
return PERIODE_TRANSITOIRE[1]
return value

View file

@ -1 +1 @@
"{{ adh|name }}" <{{To}}>
"{{adh|name}}" <{{adh.get_mail()}}>

View file

@ -1,13 +1,16 @@
Cher adhérent du Crans,
Nous t'envoyons ce message pour t'informer que ta connexion arrive à
expiration dans moins de {{ delai }} jours.{% if fin_connexion > fin_adhesion %}
En effet, ton adhésion annuelle s'achève le {{ fin_adhesion|date}} même
si les frais de connexion restent acquis jusqu'au {{ fin_connexion|date }}.
expiration dans moins de {{ delai }} jours.{% if finConnexion > finAdhesion %}
En effet, ton adhésion annuelle s'achève le {{ finAdhesion|date}} même
si les frais de connexion restent acquis jusqu'au {{ finConnexion|date }}.
{% else %}
En effet, les frais de connexion sont valables jusqu'au {{ fin_connexion|date }}
et ton adhésion annuelle s'achève le {{ fin_adhesion|date }}.
{% endif %}
En effet, les frais de connexion sont valables jusqu'au {{ finConnexion|date }}
et ton adhésion annuelle s'achève le {{ finAdhesion|date }}.
{%- endif %}{%- if sursis %}
Cependant, en raison de l'affluence de rentrée, ta connexion est prolongée
jusqu'au {{ sursis|date }}.{%- endif %}
Pour réadhérer ou prolonger ta connexion, tu peux nous retrouver
lors d'une de nos permanences. Les horaires actuels sont disponibles à
l'adresse www.crans.org/PermanencesCrans .

View file

@ -0,0 +1 @@
Les câbleurs du Crans <cableurs@crans.org>

View file

@ -0,0 +1,2 @@
Envoyé lorsque la connexion (effective, adh+connexion) d'un adhérent est sur le
point d'expirer.

View file

@ -0,0 +1 @@
[Crans] Fin de connexion dans moins de {{ delai }} jours

View file

@ -0,0 +1 @@
"{{adh|name}}" <{{ adh.get_mail() }}>

View file

@ -0,0 +1 @@
{{ mailer }}

View file

@ -0,0 +1,20 @@
Cher adhérent du Crans,
Nous t'envoyons ce message pour t'informer que la connexion du {{adh|name}},
dont tu es responsable, arrive à expiration dans moins de {{delai}} jours.
En effet, son adhésion annuelle s'achève le {{finAdhesion|date}}
{%- if sursis %}
Cependant, en raison de l'affluence de rentrée, la connexion est prolongée
jusqu'au {{ sursis|date }}.{%- endif %}
Pour réadhérer (gratuitement), tu peux nous retrouver lors d'une de nos
permanences. Les horaires actuels sont disponibles à
l'adresse www.crans.org/PermanencesCrans .
Le cas échéant, tu peux nous indiquer si tu souhaites modifier ou supprimer le
club, ses machines, ses imprimeurs ou le responsable.
À très bientôt !
--
Les membres actifs de l'association