templatetags: add housenumber_number/btq filters (#89115)
gitea/wcs/pipeline/head This commit looks good Details

This commit is contained in:
Thomas NOËL 2024-04-04 15:11:08 +02:00 committed by Thomas NOËL
parent 112727460e
commit 120e643490
3 changed files with 43 additions and 0 deletions

View File

@ -1819,3 +1819,22 @@ def test_temporary_access_url(pub):
# removed formdata
formdata.remove_self()
assert Template('{% temporary_access_url %}').render(context) == ''
def test_housenumber_templatefilters(pub):
assert Template('{{ "42"|housenumber_number }}').render() == '42'
assert Template('{{ "42"|housenumber_btq }}').render() == ''
assert Template('{{ "42bis"|housenumber_number }}').render() == '42'
assert Template('{{ "42bis"|housenumber_btq }}').render() == 'bis'
assert Template('{{ " 42 bis "|housenumber_number }}').render() == '42'
assert Template('{{ " 42 bis "|housenumber_btq }}').render() == 'bis'
assert Template('{{ "42 3 t "|housenumber_number }}').render() == '42'
assert Template('{{ "42 3 t "|housenumber_btq }}').render() == '3 t'
assert Template('{{ " bis "|housenumber_number }}').render() == ''
assert Template('{{ " bis "|housenumber_btq }}').render() == ''
assert Template('{{ 42|housenumber_number }}').render() == '42'
assert Template('{{ 42|housenumber_btq }}').render() == ''
assert Template('{{ ""|housenumber_number }}').render() == ''
assert Template('{{ ""|housenumber_btq }}').render() == ''
assert Template('{{ null|housenumber_number }}').render({'null': None}) == ''
assert Template('{{ null|housenumber_btq }}').render({'null': None}) == ''

View File

@ -77,6 +77,7 @@ deps =
schwifty
allowlist_externals =
./getlasso3.sh
./pylint.sh
commands =
./getlasso3.sh
./pylint.sh wcs/ tests/

View File

@ -23,6 +23,7 @@ import json
import math
import os
import random
import re
import string
import subprocess
import urllib.parse
@ -1379,3 +1380,25 @@ def details_format(value, format=None):
get_publisher().record_error(_('|details_format called with unknown format (%s)') % format)
return ''
return evalutils.details_format(value, format=format)
@register.filter
def housenumber_number(housenumber):
housenumber = unlazy(housenumber)
if not housenumber:
return ''
match = re.match(r'^\s*([0-9]+)(.*)$', force_str(housenumber))
if not match:
return ''
return match.groups()[0]
@register.filter
def housenumber_btq(housenumber):
housenumber = unlazy(housenumber)
if not housenumber:
return ''
match = re.match(r'^\s*([0-9]+)(.*)$', force_str(housenumber))
if not match:
return ''
return match.groups()[1]