fin_connexion: prend en compte période transitoire
This commit is contained in:
parent
8539e8c38d
commit
7efb8a4db6
1 changed files with 25 additions and 1 deletions
|
@ -15,6 +15,14 @@ from lc_ldap.variables import base_dn
|
|||
import ldap
|
||||
from affich_tools import coul
|
||||
import gestion.mail as mail_module
|
||||
import gestion.config as config
|
||||
|
||||
PERIODE_TRANSITOIRE = [
|
||||
datetime.datetime.utcfromtimestamp(date).replace(tzinfo=pytz.UTC)
|
||||
for date in
|
||||
[config.debut_periode_transitoire, config.fin_periode_transitoire]
|
||||
]
|
||||
|
||||
|
||||
#: Une journée (c'est plus pratique)
|
||||
DAY = datetime.timedelta(days=1)
|
||||
|
@ -82,8 +90,11 @@ def warn(mail_conn, adh):
|
|||
|
||||
def compute_fin_connexion(adh):
|
||||
"""Renvoie le datetime de fin effective de connexion de l'``adh``"""
|
||||
return min( max(parse_gtf(v.value) for v in adh['fin' + l])
|
||||
value = min( max(parse_gtf(v.value) for v in adh['fin' + l])
|
||||
for l in ['Adhesion', 'Connexion'])
|
||||
if value >= PERIODE_TRANSITOIRE[0] and value < PERIODE_TRANSITOIRE[1]:
|
||||
return PERIODE_TRANSITOIRE[1]
|
||||
return value
|
||||
|
||||
def select(conn, begin, to, mode='r'):
|
||||
"""Récupère les adhérents dont la connexion expire entre les datetimes
|
||||
|
@ -93,6 +104,19 @@ def select(conn, begin, to, mode='r'):
|
|||
begin = begin.replace(tzinfo=pytz.UTC)
|
||||
if not to.tzinfo:
|
||||
to = to.replace(tzinfo=pytz.UTC)
|
||||
|
||||
# Si la période considérée contient la liste des gens qui seront déco à la
|
||||
# fin de la période transitoire (c'est-à-dire qui seront déco à
|
||||
# PERIODE_TRANSITOIRE[1] )
|
||||
if begin <= PERIODE_TRANSITOIRE[1] and to > PERIODE_TRANSITOIRE[1]:
|
||||
# Alors il est nécessaire de les considérer, donc de selectionner
|
||||
# à partir du début de la période transitoire, au moins
|
||||
begin = min(PERIODE_TRANSITOIRE[0], begin)
|
||||
# Si la période considérée se termine pendant la période transitoire
|
||||
if to < PERIODE_TRANSITOIRE[1] and to >= PERIODE_TRANSITOIRE[0]:
|
||||
# Alors, il ne faut considérer que les adhérents qui se font déco avant
|
||||
# le début de la période transitoire
|
||||
to = PERIODE_TRANSITOIRE[0]
|
||||
data = { 'debut': begin.strftime(FORMAT_LDAP),
|
||||
'fin': to.strftime(FORMAT_LDAP),
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue