[MTELECHAA-139]add condition salle and fix indisponibilites_for_a_date
gitea/imio-teleservices-templatetags/pipeline/head This commit looks good Details

This commit is contained in:
Nicolas Selva 2023-03-07 12:18:12 +01:00
parent e5ce3628b6
commit 094008f9f4
1 changed files with 46 additions and 9 deletions

View File

@ -278,24 +278,61 @@ def distinct_list(value):
@register.filter
def indisponibilites_for_a_date(date_debut_fin, indisponibilites):
"""
start_end_date : str start_date|end_date
date_debut_fin : str date_debut|date_fin
indisponibilites : json
"""
if date_debut_fin == "|":
return []
date_debut = datetime.datetime.strptime(str(date_debut_fin).split("|")[0], "%d/%m/%Y").date()
date_fin = datetime.datetime.strptime(str(date_debut_fin).split("|")[1], "%d/%m/%Y").date()
format_date_demande = "%d/%m/%Y"
format_date_location = "%Y-%m-%dT%H:%M:%S"
date_debut = datetime.datetime.strptime(str(date_debut_fin).split("|")[0], format_date_demande).date()
date_fin = datetime.datetime.strptime(str(date_debut_fin).split("|")[1], format_date_demande).date()
date_indisponibles = []
for indisponibilite in indisponibilites["data"]:
StartDate = datetime.datetime.strptime(indisponibilite["StartDate"], "%Y-%m-%dT%H:%M:%S").date()
EndDate = datetime.datetime.strptime(indisponibilite["EndDate"], "%Y-%m-%dT%H:%M:%S").date()
StartDate = datetime.datetime.strptime(indisponibilite["StartDate"], format_date_location).date()
EndDate = datetime.datetime.strptime(indisponibilite["EndDate"], format_date_location).date()
if (
(StartDate <= date_debut and date_debut <= EndDate)
or (StartDate <= date_fin and date_fin <= EndDate)
or (date_debut <= StartDate and StartDate <= date_fin)
or (date_debut <= EndDate and EndDate <= date_fin)
StartDate <= date_debut <= EndDate
or StartDate <= date_fin <= EndDate
or date_debut <= StartDate <= date_fin
or date_debut <= EndDate <= date_fin
):
date_indisponibles.append(indisponibilite)
return date_indisponibles
@register.filter
def condition_salle(date_heure_debut_fin, indisponibilites):
"""
date_heure_debut_fin : str date_debutTheure_debut|date_finTheure_fin
indisponibilites : json
"""
if date_heure_debut_fin == "T|T":
return False
format_date_heure_demande = "%d/%m/%YT%H:%M"
format_date_heure_location = "%Y-%m-%dT%H:%M:%S"
date_heure_debut_demande = datetime.datetime.strptime(
str(date_heure_debut_fin).split("|")[0], format_date_heure_demande
)
date_heure_fin_demande = datetime.datetime.strptime(
str(date_heure_debut_fin).split("|")[1], format_date_heure_demande
)
for indisponibilite in indisponibilites["data"]:
StartDate = datetime.datetime.strptime(indisponibilite["StartDate"], format_date_heure_location)
EndDate = datetime.datetime.strptime(indisponibilite["EndDate"], format_date_heure_location)
if (
StartDate <= date_heure_debut_demande <= EndDate
or StartDate <= date_heure_fin_demande <= EndDate
or date_heure_debut_demande <= StartDate <= date_heure_fin_demande
or date_heure_debut_demande <= EndDate <= date_heure_fin_demande
):
return False
return True