[MTELECHAA-139]add condition salle and fix indisponibilites_for_a_date
gitea/imio-teleservices-templatetags/pipeline/head This commit looks good
Details
gitea/imio-teleservices-templatetags/pipeline/head This commit looks good
Details
This commit is contained in:
parent
e5ce3628b6
commit
094008f9f4
|
@ -278,24 +278,61 @@ def distinct_list(value):
|
||||||
@register.filter
|
@register.filter
|
||||||
def indisponibilites_for_a_date(date_debut_fin, indisponibilites):
|
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
|
indisponibilites : json
|
||||||
"""
|
"""
|
||||||
if date_debut_fin == "|":
|
if date_debut_fin == "|":
|
||||||
return []
|
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 = []
|
date_indisponibles = []
|
||||||
|
|
||||||
for indisponibilite in indisponibilites["data"]:
|
for indisponibilite in indisponibilites["data"]:
|
||||||
StartDate = datetime.datetime.strptime(indisponibilite["StartDate"], "%Y-%m-%dT%H:%M:%S").date()
|
StartDate = datetime.datetime.strptime(indisponibilite["StartDate"], format_date_location).date()
|
||||||
EndDate = datetime.datetime.strptime(indisponibilite["EndDate"], "%Y-%m-%dT%H:%M:%S").date()
|
EndDate = datetime.datetime.strptime(indisponibilite["EndDate"], format_date_location).date()
|
||||||
if (
|
if (
|
||||||
(StartDate <= date_debut and date_debut <= EndDate)
|
StartDate <= date_debut <= EndDate
|
||||||
or (StartDate <= date_fin and date_fin <= EndDate)
|
or StartDate <= date_fin <= EndDate
|
||||||
or (date_debut <= StartDate and StartDate <= date_fin)
|
or date_debut <= StartDate <= date_fin
|
||||||
or (date_debut <= EndDate and EndDate <= date_fin)
|
or date_debut <= EndDate <= date_fin
|
||||||
):
|
):
|
||||||
date_indisponibles.append(indisponibilite)
|
date_indisponibles.append(indisponibilite)
|
||||||
|
|
||||||
return date_indisponibles
|
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
|
||||||
|
|
Loading…
Reference in New Issue