From e5ce3628b6e4e87e41c54799c376611a2e7c4573 Mon Sep 17 00:00:00 2001 From: Nicolas Selva Date: Tue, 7 Mar 2023 10:59:13 +0100 Subject: [PATCH] [MTELECHAA-139]add indisponibilites_for_a_date --- .../templatetags/imio_teleservices.py | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/imio_teleservices_templatetags/templatetags/imio_teleservices.py b/imio_teleservices_templatetags/templatetags/imio_teleservices.py index 90fc99b..ae62f56 100644 --- a/imio_teleservices_templatetags/templatetags/imio_teleservices.py +++ b/imio_teleservices_templatetags/templatetags/imio_teleservices.py @@ -270,3 +270,32 @@ def distinct_list(value): return : (list) """ return list(set(value)) + + +##################### +# LOCATION DE SALLE # +##################### +@register.filter +def indisponibilites_for_a_date(date_debut_fin, indisponibilites): + """ + start_end_date : str start_date|end_date + 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() + 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() + 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) + ): + date_indisponibles.append(indisponibilite) + + return date_indisponibles