1
0
mirror of https://gitlab.crans.org/bde/nk20 synced 2024-11-26 18:37:12 +00:00

Preserve dashes in Alias normalisation

This commit is contained in:
Yohann D'ANELLO 2020-08-30 17:28:36 +02:00
parent b454ad8dad
commit ca7f4791ed

View File

@ -247,10 +247,10 @@ class Alias(models.Model):
Normalizes a string: removes most diacritics, does casefolding and ignore non-ASCII characters
"""
return ''.join(
char for char in unicodedata.normalize('NFKD', string.casefold().replace('æ', 'ae')
.replace('œ', 'oe').replace('-', '_'))
char for char in unicodedata.normalize('NFKD', string.casefold().replace('æ', 'ae').replace('œ', 'oe'))
if all(not unicodedata.category(char).startswith(cat)
for cat in {'M', 'P', 'Z', 'C'})).casefold().encode('ascii', 'ignore').decode('ascii')
for cat in {'M', 'Pc', 'Pe', 'Pf', 'Pi', 'Po', 'Ps', 'Z', 'C'}))\
.casefold().encode('ascii', 'ignore').decode('ascii')
def clean(self):
normalized_name = self.normalize(self.name)