fix: convert to str before normalizing name in esc_all

pull/137/head
Christian Merten 10 months ago
parent 308d9f3114
commit 7b64f48ad7
Signed by: christian.merten
GPG Key ID: D953D69721B948B3

@ -13,7 +13,7 @@ def checked_if_true(name, value):
@register.filter
def esc_all(val):
return mark_safe(str(normalize_name(val, False)).replace('_', '\\_').replace('&', '\\&'))
return mark_safe(str(normalize_name(str(val), False, False)).replace('_', '\\_').replace('&', '\\&'))
@register.filter

@ -207,6 +207,11 @@ class MemberTestCase(BasicMemberTestCase):
response = c.get('/de' + url)
self.assertEqual(response.status_code, 200, 'Members registration forms should be visible after staff login.')
def test_suggested_username(self):
self.fritz.prename = 'Päter'
self.fritz.lastname = 'Püt er'
self.assertEqual(self.fritz.suggested_username(), 'paeter.puet_er')
class PDFTestCase(TestCase):
def setUp(self):

@ -63,9 +63,9 @@ def get_member(request):
return request.user.member
def normalize_name(raw, nospaces=True):
def normalize_name(raw, nospaces=True, noumlaut=True):
if noumlaut:
raw = raw.replace('ö', 'oe').replace('ä', 'ae').replace('ü', 'ue')
if nospaces:
noumlaut = raw.replace('ö', 'oe').replace('ä', 'ae').replace('ü', 'ue').replace(' ', '_')
else:
noumlaut = raw.replace('ö', 'oe').replace('ä', 'ae').replace('ü', 'ue')
return unicodedata.normalize('NFKD', noumlaut).encode('ascii', 'ignore').decode('ascii')
raw = raw.replace(' ', '_')
return unicodedata.normalize('NFKD', raw).encode('ascii', 'ignore').decode('ascii')

Loading…
Cancel
Save