fin_connexion: previent aussi les clubs
This commit is contained in:
parent
52c3795255
commit
418aa7b79b
9 changed files with 59 additions and 27 deletions
|
@ -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
|
||||
|
|
|
@ -1 +1 @@
|
|||
"{{ adh|name }}" <{{To}}>
|
||||
"{{adh|name}}" <{{adh.get_mail()}}>
|
||||
|
|
|
@ -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 .
|
||||
|
|
1
gestion/mail/template/fin_connexion_club/From/fr
Normal file
1
gestion/mail/template/fin_connexion_club/From/fr
Normal file
|
@ -0,0 +1 @@
|
|||
Les câbleurs du Crans <cableurs@crans.org>
|
2
gestion/mail/template/fin_connexion_club/README
Normal file
2
gestion/mail/template/fin_connexion_club/README
Normal file
|
@ -0,0 +1,2 @@
|
|||
Envoyé lorsque la connexion (effective, adh+connexion) d'un adhérent est sur le
|
||||
point d'expirer.
|
1
gestion/mail/template/fin_connexion_club/Subject/fr
Normal file
1
gestion/mail/template/fin_connexion_club/Subject/fr
Normal file
|
@ -0,0 +1 @@
|
|||
[Crans] Fin de connexion dans moins de {{ delai }} jours
|
1
gestion/mail/template/fin_connexion_club/To/fr
Normal file
1
gestion/mail/template/fin_connexion_club/To/fr
Normal file
|
@ -0,0 +1 @@
|
|||
"{{adh|name}}" <{{ adh.get_mail() }}>
|
1
gestion/mail/template/fin_connexion_club/X-Mailer/fr
Normal file
1
gestion/mail/template/fin_connexion_club/X-Mailer/fr
Normal file
|
@ -0,0 +1 @@
|
|||
{{ mailer }}
|
20
gestion/mail/template/fin_connexion_club/body/fr
Normal file
20
gestion/mail/template/fin_connexion_club/body/fr
Normal 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
|
Loading…
Add table
Add a link
Reference in a new issue