diff --git a/imio_teleservices_templatetags/templatetags/imio_teleservices.py b/imio_teleservices_templatetags/templatetags/imio_teleservices.py index aae3a08..3c51fb0 100644 --- a/imio_teleservices_templatetags/templatetags/imio_teleservices.py +++ b/imio_teleservices_templatetags/templatetags/imio_teleservices.py @@ -1,8 +1,10 @@ +import datetime import re from decimal import Decimal import requests from django import template +from django.utils.safestring import SafeText from wcs.qommon import misc from wcs.qommon.templatetags.qommon import unlazy @@ -10,6 +12,11 @@ from wcs.qommon.templatetags.qommon import unlazy register = template.Library() +@register.filter +def check_class(value): + return str(type(value)) + + @register.filter def is_valid_belgian_nrn(value): return misc.validate_belgian_nrn(unlazy(value)) @@ -17,14 +24,43 @@ def is_valid_belgian_nrn(value): @register.filter def is_strong_authentication(session_user): + """ + Anciennement town.py is_strong_authentication + session_user : session_user + return : (bool) True si le user est connecté avec une authentification forte + """ return bool('_niss' in session_user.verified_fields) +@register.filter +def diff_dates(oldest_date, newest_date): + """ + Anciennement town.py diff_dates + oldest_date : datetime ou SafeText sous la forme "jj/mm/aaaa" ou "aaaa-mm-jj" ou "jj-mm-aaaa" + newest_date : datetime ou SafeText sous la forme "jj/mm/aaaa" ou "aaaa-mm-jj" ou "jj-mm-aaaa" + return : (str) nombre de jours de différence entre les 2 dates + """ + def transform_date(fdate): + 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 type(oldest_date) == SafeText: + oldest_date = transform_date(oldest_date) + if type(newest_date) == SafeText: + newest_date = transform_date(newest_date) + diff = abs((oldest_date - newest_date).days) + return str(diff) + + @register.filter def liste_type_rdv_plusieurs_personnes(value): """ Anciennement liste_type_general_rdv.py - value : (str) url api liste des type de rendez-vous + value : (str) url api liste des types de rendez-vous return : (list[str]) liste des différent type de rendez-vous sans - x personnes """ headers = {'Accept': 'application/json'}