Projet

Général

Profil

0001-misc-added-is_french_mobile_phone_number-template-ta.patch

A. Berriot, 20 juillet 2022 09:10

Télécharger (2,5 ko)

Voir les différences:

Subject: [PATCH] misc: added is_french_mobile_phone_number template tag
 (#24990)

 tests/test_templates.py           | 14 ++++++++++++++
 wcs/qommon/templatetags/qommon.py | 16 ++++++++++++++++
 2 files changed, 30 insertions(+)
tests/test_templates.py
803 803
    assert tmpl.render(context) == '01-43-35-01-35'
804 804

  
805 805

  
806
def test_is_french_mobile_phone_number():
807
    t = Template('{{ number|is_french_mobile_phone_number }}')
808

  
809
    assert t.render({'number': '01 23 45 67 8989'}) == 'False'
810
    assert t.render({'number': '0 1 23 45 67 8989'}) == 'False'
811
    assert t.render({'number': '0 1 23 45 67 89'}) == 'False'
812
    assert t.render({'number': '06 23 45 67 89 89'}) == 'False'
813

  
814
    assert t.render({'number': '06 23 45 67 89'}) == 'True'
815
    assert t.render({'number': '07 23 45 67 89'}) == 'True'
816
    assert t.render({'number': '0 6 23 45 67 89'}) == 'True'
817
    assert t.render({'number': '06.23.45.67.89'}) == 'True'
818

  
819

  
806 820
@pytest.mark.skipif('langdetect is None')
807 821
def test_language_detect():
808 822
    t = Template('{{ plop|language_detect }}')
wcs/qommon/templatetags/qommon.py
20 20
import math
21 21
import os
22 22
import random
23
import re
23 24
import string
24 25
import unicodedata
25 26
import urllib.parse
......
53 54
from wcs.qommon import calendar, evalutils, tokens, upload_storage
54 55
from wcs.qommon.admin.texts import TextsDirectory
55 56
from wcs.qommon.humantime import seconds2humanduration
57
from wcs.qommon.misc import validate_phone_fr
56 58

  
57 59
register = template.Library()
58 60

  
......
878 880
    return value
879 881

  
880 882

  
883
@register.filter(is_safe=True)
884
def is_french_mobile_phone_number(value):
885
    value = unlazy(value)
886

  
887
    if not value:
888
        return False
889

  
890
    value = value.strip().replace(' ', '')
891
    if not validate_phone_fr(value):
892
        return False
893

  
894
    return value.startswith('06') or value.startswith('07')
895

  
896

  
881 897
@register.filter
882 898
def is_empty(value):
883 899
    from wcs.variables import LazyFormDefObjectsManager, LazyList
884
-