[TELE-1398]add filter diff_dates

This commit is contained in:
Nicolas Selva 2022-07-29 09:32:13 +02:00
parent 6b0efc631f
commit 63e14d73e8
1 changed files with 37 additions and 1 deletions

View File

@ -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'}