Projet

Général

Profil

0001-template-filter-cleaning-numbers-35013.patch

Benjamin Dauvergne, 24 juillet 2019 16:59

Télécharger (2,12 ko)

Voir les différences:

Subject: [PATCH 1/2] template filter cleaning numbers (#35013)

 tests/test_templates.py           | 12 ++++++++++++
 wcs/qommon/templatetags/qommon.py | 11 +++++++++++
 2 files changed, 23 insertions(+)
tests/test_templates.py
522 522
    lazy_formdata = LazyFormData(MockFormData())
523 523
    tmpl = Template('{% with form_geoloc_base|reproj:"EPSG:3946" as c %}{{c.0}}/{{c.1}}{% endwith %}')
524 524
    assert tmpl.render(CompatibilityNamesDict({'form': lazy_formdata})) == '1625337.15483/5422836.71627'
525

  
526
def test_clean_number():
527
    tmpl = Template('{{ None|clean_number }}')
528
    assert tmpl.render() == ''
529
    tmpl = Template('{{ True|clean_number }}')
530
    assert tmpl.render() == ''
531
    tmpl = Template('{{ False|clean_number }}')
532
    assert tmpl.render() == ''
533
    tmpl = Template('{{ "a"|clean_number }}')
534
    assert tmpl.render() == ''
535
    tmpl = Template('{{ " 1 23 4 "|clean_number }}')
536
    assert tmpl.render() == '1234'
wcs/qommon/templatetags/qommon.py
20 20
from decimal import DivisionByZero as DecimalDivisionByZero
21 21
import hashlib
22 22
import math
23
import re
23 24
import string
24 25
import random
25 26

  
......
348 349
    proj = pyproj.Proj(init='EPSG:4326')
349 350
    target_proj = pyproj.Proj(init=projection_name)
350 351
    return pyproj.transform(proj, target_proj, coords['lon'], coords['lat'])
352

  
353
@register.filter
354
def clean_number(value):
355
    if not value:
356
        return u''
357
    string_value = unicode(value)
358
    string_value = re.sub(r'\s', '', string_value)
359
    if not string_value.isdigit():
360
        return u''
361
    return string_value
351
-