|
|
|
@ -32,7 +32,7 @@ def unlazy_filter(value):
|
|
|
|
|
@register.filter
|
|
|
|
|
def clean_string(value):
|
|
|
|
|
value = unlazy_filter(value)
|
|
|
|
|
return value.replace(" ", "").replace(".", "").replace("-", "")
|
|
|
|
|
return value.replace(' ', '').replace('.', '').replace('-', '')
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@register.filter
|
|
|
|
@ -42,7 +42,7 @@ def check_class(value):
|
|
|
|
|
|
|
|
|
|
@register.filter
|
|
|
|
|
def retour_chariot(value):
|
|
|
|
|
return f"{value}\n"
|
|
|
|
|
return f'{value}\n'
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@register.filter
|
|
|
|
@ -65,7 +65,7 @@ def is_strong_authentication(session_user):
|
|
|
|
|
session_user : session_user
|
|
|
|
|
return : (bool) True si le user est connecté avec une authentification forte
|
|
|
|
|
"""
|
|
|
|
|
return bool("_niss" in session_user.verified_fields)
|
|
|
|
|
return bool('_niss' in session_user.verified_fields)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@register.filter
|
|
|
|
@ -77,9 +77,9 @@ def authentication_delivrance_items_visibility(data_source, session_user):
|
|
|
|
|
"""
|
|
|
|
|
if is_strong_authentication(session_user):
|
|
|
|
|
for elm in data_source:
|
|
|
|
|
if "commune" not in elm["id"]:
|
|
|
|
|
if 'commune' not in elm['id']:
|
|
|
|
|
# si connecté en authentification forte met l'item sans commune en id en disabled False
|
|
|
|
|
elm["disabled"] = False
|
|
|
|
|
elm['disabled'] = False
|
|
|
|
|
return data_source
|
|
|
|
|
return data_source
|
|
|
|
|
|
|
|
|
@ -112,13 +112,13 @@ def diff_dates(oldest_date, newest_date):
|
|
|
|
|
if type(fdate) == LazyDateObject:
|
|
|
|
|
fdate = unlazy(fdate)
|
|
|
|
|
fdate = fdate[:10]
|
|
|
|
|
if "/" in fdate:
|
|
|
|
|
return datetime.datetime.strptime(fdate, "%d/%m/%Y")
|
|
|
|
|
if "-" in fdate:
|
|
|
|
|
if len(fdate.split("-")[0]) == 4:
|
|
|
|
|
return datetime.datetime.strptime(fdate, "%Y-%m-%d")
|
|
|
|
|
if len(fdate.split("-")[0]) == 2:
|
|
|
|
|
return datetime.datetime.strptime(fdate, "%d-%m-%Y")
|
|
|
|
|
if '/' in fdate:
|
|
|
|
|
return datetime.datetime.strptime(fdate, '%d/%m/%Y')
|
|
|
|
|
if '-' in fdate:
|
|
|
|
|
if len(fdate.split('-')[0]) == 4:
|
|
|
|
|
return datetime.datetime.strptime(fdate, '%Y-%m-%d')
|
|
|
|
|
if len(fdate.split('-')[0]) == 2:
|
|
|
|
|
return datetime.datetime.strptime(fdate, '%d-%m-%Y')
|
|
|
|
|
|
|
|
|
|
oldest_date = unlazy_date(oldest_date)
|
|
|
|
|
newest_date = unlazy_date(newest_date)
|
|
|
|
@ -139,7 +139,7 @@ def get_birthday_from_nn(numero_national):
|
|
|
|
|
"""
|
|
|
|
|
numero_national = clean_string(unlazy(numero_national))
|
|
|
|
|
date = numero_national[:6]
|
|
|
|
|
birthday = datetime.datetime.strptime(date, "%y%m%d")
|
|
|
|
|
birthday = datetime.datetime.strptime(date, '%y%m%d')
|
|
|
|
|
if birthday > datetime.datetime.now():
|
|
|
|
|
birthday -= relativedelta(years=100)
|
|
|
|
|
return birthday
|
|
|
|
@ -156,14 +156,14 @@ def is_valid_tva_number(tva_number, formatage=True):
|
|
|
|
|
if formatage:
|
|
|
|
|
tva_number = clean_string(tva_number)
|
|
|
|
|
|
|
|
|
|
if not tva_number[:2].upper() == "BE":
|
|
|
|
|
if not tva_number[:2].upper() == 'BE':
|
|
|
|
|
return False
|
|
|
|
|
if not len(tva_number) == 12:
|
|
|
|
|
if len(tva_number) == 11:
|
|
|
|
|
tva_number = tva_number[:2] + "0" + tva_number[2:]
|
|
|
|
|
tva_number = tva_number[:2] + '0' + tva_number[2:]
|
|
|
|
|
else:
|
|
|
|
|
return False
|
|
|
|
|
if re.match(r"^\d{10}$", tva_number[2:]):
|
|
|
|
|
if re.match(r'^\d{10}$', tva_number[2:]):
|
|
|
|
|
int_value = int(tva_number[2:10])
|
|
|
|
|
check_digit = int(int_value / 97) * 97
|
|
|
|
|
if (97 - (int_value - check_digit)) == int(tva_number[10:12]):
|
|
|
|
@ -180,20 +180,20 @@ def liste_type_rdv_plusieurs_personnes(value):
|
|
|
|
|
return : (list[str]) liste des différent type de rendez-vous sans - x personnes
|
|
|
|
|
"""
|
|
|
|
|
value = value.strip()
|
|
|
|
|
headers = {"Accept": "application/json"}
|
|
|
|
|
headers = {'Accept': 'application/json'}
|
|
|
|
|
meetings_agendas = []
|
|
|
|
|
for url in value.split(" "):
|
|
|
|
|
for url in value.split(' '):
|
|
|
|
|
meetings_agendas.append(requests.get(url, headers=headers).json())
|
|
|
|
|
|
|
|
|
|
meetings_types = []
|
|
|
|
|
for meetings_agenda in meetings_agendas:
|
|
|
|
|
meetings_agenda["data"] = sorted(meetings_agenda["data"], key=lambda x: x["api"]["datetimes_url"])
|
|
|
|
|
meetings_agenda['data'] = sorted(meetings_agenda['data'], key=lambda x: x['api']['datetimes_url'])
|
|
|
|
|
meetings_types.extend(
|
|
|
|
|
list(
|
|
|
|
|
dict.fromkeys(
|
|
|
|
|
[
|
|
|
|
|
re.sub(r" (pour|-) [0-9]+ personne(s)?$", "", x["text"])
|
|
|
|
|
for x in meetings_agenda["data"]
|
|
|
|
|
re.sub(r' (pour|-) [0-9]+ personne(s)?$', '', x['text'])
|
|
|
|
|
for x in meetings_agenda['data']
|
|
|
|
|
]
|
|
|
|
|
)
|
|
|
|
|
)
|
|
|
|
@ -210,14 +210,14 @@ def liste_type_rdv_nombres_personnes(value, arg):
|
|
|
|
|
return : (list[str]) liste des rendez-vous de type arg
|
|
|
|
|
"""
|
|
|
|
|
value = value.strip()
|
|
|
|
|
headers = {"Accept": "application/json"}
|
|
|
|
|
headers = {'Accept': 'application/json'}
|
|
|
|
|
meetings_agendas = []
|
|
|
|
|
for url in value.split(" "):
|
|
|
|
|
for url in value.split(' '):
|
|
|
|
|
meetings_agendas.append(requests.get(url, headers=headers).json())
|
|
|
|
|
|
|
|
|
|
meetings_types = []
|
|
|
|
|
for meetings_agenda in meetings_agendas:
|
|
|
|
|
meetings_types.extend([x for x in meetings_agenda["data"] if arg in x["text"]])
|
|
|
|
|
meetings_types.extend([x for x in meetings_agenda['data'] if arg in x['text']])
|
|
|
|
|
return meetings_types
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -228,7 +228,7 @@ def request_url_json(url):
|
|
|
|
|
url : (str) url du json
|
|
|
|
|
return : {'data':[]}
|
|
|
|
|
"""
|
|
|
|
|
headers = {"Accept": "application/json"}
|
|
|
|
|
headers = {'Accept': 'application/json'}
|
|
|
|
|
|
|
|
|
|
return requests.get(url, headers=headers).json()
|
|
|
|
|
|
|
|
|
@ -238,7 +238,7 @@ def stop_monday_for_we(value):
|
|
|
|
|
"""
|
|
|
|
|
Empêche de prendre rdv le lundi matin pendant le w-e
|
|
|
|
|
"""
|
|
|
|
|
headers = {"Accept": "application/json"}
|
|
|
|
|
headers = {'Accept': 'application/json'}
|
|
|
|
|
meeting_liste = requests.get(value, headers=headers).json()
|
|
|
|
|
today = datetime.datetime.today()
|
|
|
|
|
weekday = today.weekday()
|
|
|
|
@ -255,11 +255,11 @@ def stop_monday_for_we(value):
|
|
|
|
|
return [
|
|
|
|
|
x
|
|
|
|
|
for x in meeting_liste
|
|
|
|
|
if datetime.datetime.strptime(x["datetime"], "%Y-%m-%d %H:%M:%S") < monday
|
|
|
|
|
if datetime.datetime.strptime(x['datetime'], '%Y-%m-%d %H:%M:%S') < monday
|
|
|
|
|
]
|
|
|
|
|
|
|
|
|
|
if weekday > 6 or weekday < 0:
|
|
|
|
|
raise Exception("Index OutOf weekday")
|
|
|
|
|
raise Exception('Index OutOf weekday')
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@register.filter
|
|
|
|
@ -274,7 +274,7 @@ def calcul_total_abonnement_stationnement(fields_bloc):
|
|
|
|
|
for field in fields_bloc:
|
|
|
|
|
for value in field.values():
|
|
|
|
|
if isinstance(value, dict):
|
|
|
|
|
total += Decimal(value.get("price"))
|
|
|
|
|
total += Decimal(value.get('price'))
|
|
|
|
|
|
|
|
|
|
return total
|
|
|
|
|
|
|
|
|
@ -286,10 +286,10 @@ def autorisation_voyage_enfants_concernes(lst_enfants_concernes):
|
|
|
|
|
lst_enfants_concernes : (list)
|
|
|
|
|
return : (str)
|
|
|
|
|
"""
|
|
|
|
|
enfants_concernes = ""
|
|
|
|
|
enfants_concernes = ''
|
|
|
|
|
if lst_enfants_concernes is not None:
|
|
|
|
|
for e in lst_enfants_concernes:
|
|
|
|
|
enfants_concernes = enfants_concernes + "- " + e[0] + " né(e) à " + e[1] + " le " + e[2] + "\r\n"
|
|
|
|
|
enfants_concernes = enfants_concernes + '- ' + e[0] + ' né(e) à ' + e[1] + ' le ' + e[2] + '\r\n'
|
|
|
|
|
|
|
|
|
|
return enfants_concernes
|
|
|
|
|
|
|
|
|
@ -318,19 +318,19 @@ def indisponibilites_for_a_date(date_debut_fin, indisponibilites):
|
|
|
|
|
date_debut_fin : str date_debut|date_fin
|
|
|
|
|
indisponibilites : json
|
|
|
|
|
"""
|
|
|
|
|
if date_debut_fin == "|":
|
|
|
|
|
if date_debut_fin == '|':
|
|
|
|
|
return []
|
|
|
|
|
|
|
|
|
|
format_date_demande = "%d/%m/%Y"
|
|
|
|
|
format_date_location = "%Y-%m-%dT%H:%M:%S"
|
|
|
|
|
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_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"], format_date_location).date()
|
|
|
|
|
EndDate = datetime.datetime.strptime(indisponibilite["EndDate"], format_date_location).date()
|
|
|
|
|
for indisponibilite in indisponibilites['data']:
|
|
|
|
|
StartDate = datetime.datetime.strptime(indisponibilite['StartDate'], format_date_location).date()
|
|
|
|
|
EndDate = datetime.datetime.strptime(indisponibilite['EndDate'], format_date_location).date()
|
|
|
|
|
if (
|
|
|
|
|
StartDate <= date_debut <= EndDate
|
|
|
|
|
or StartDate <= date_fin <= EndDate
|
|
|
|
@ -348,22 +348,22 @@ 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":
|
|
|
|
|
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"
|
|
|
|
|
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
|
|
|
|
|
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
|
|
|
|
|
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)
|
|
|
|
|
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
|
|
|
|
@ -384,8 +384,8 @@ def format_avis(avis):
|
|
|
|
|
avis : str texte long
|
|
|
|
|
return : str
|
|
|
|
|
"""
|
|
|
|
|
if avis not in (None, "None", ""):
|
|
|
|
|
avis_formate = "\n------------------------------------\n\n" + f"{avis}"
|
|
|
|
|
if avis not in (None, 'None', ''):
|
|
|
|
|
avis_formate = '\n------------------------------------\n\n' + f'{avis}'
|
|
|
|
|
else:
|
|
|
|
|
avis_formate = ""
|
|
|
|
|
avis_formate = ''
|
|
|
|
|
return avis_formate
|
|
|
|
|