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
|
import ldap
|
||||||
from affich_tools import coul
|
from affich_tools import coul
|
||||||
import gestion.mail as mail_module
|
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)
|
#: Une journée (c'est plus pratique)
|
||||||
DAY = datetime.timedelta(days=1)
|
DAY = datetime.timedelta(days=1)
|
||||||
|
@ -82,8 +90,11 @@ def warn(mail_conn, adh):
|
||||||
|
|
||||||
def compute_fin_connexion(adh):
|
def compute_fin_connexion(adh):
|
||||||
"""Renvoie le datetime de fin effective de connexion de l'``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'])
|
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'):
|
def select(conn, begin, to, mode='r'):
|
||||||
"""Récupère les adhérents dont la connexion expire entre les datetimes
|
"""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)
|
begin = begin.replace(tzinfo=pytz.UTC)
|
||||||
if not to.tzinfo:
|
if not to.tzinfo:
|
||||||
to = to.replace(tzinfo=pytz.UTC)
|
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),
|
data = { 'debut': begin.strftime(FORMAT_LDAP),
|
||||||
'fin': to.strftime(FORMAT_LDAP),
|
'fin': to.strftime(FORMAT_LDAP),
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue