|
@@ -15,6 +15,7 @@ from django.conf import settings
|
|
|
from django.core.validators import RegexValidator
|
|
|
from django.core.exceptions import ValidationError
|
|
|
from django.utils import timezone
|
|
|
+from django.utils.text import slugify
|
|
|
from ldapdb.models.fields import CharField, IntegerField, ListField
|
|
|
|
|
|
from coin.offers.models import Offer, OfferSubscription
|
|
@@ -552,22 +553,11 @@ def get_automatic_codename(perm):
|
|
|
"""
|
|
|
Calcule le codename automatiquement en fonction du name.
|
|
|
"""
|
|
|
- if perm.name:
|
|
|
- codename = perm.name
|
|
|
- else:
|
|
|
- raise Exception('Il n\'y a pas sufissement d\'informations pour déterminer un codename automatiquement')
|
|
|
|
|
|
-
|
|
|
- codename = unicodedata.normalize('NFD', codename)\
|
|
|
- .encode('ascii', 'ignore')
|
|
|
-
|
|
|
- punctuation = ('!"#$%&\'()*+,/:;<=>?@[\\]^`{|}~').encode('ascii')
|
|
|
- codename = codename.translate(None, punctuation)
|
|
|
-
|
|
|
- codename = codename.lower()
|
|
|
+
|
|
|
+ codename = slugify(perm.name)
|
|
|
|
|
|
codename = codename[:30]
|
|
|
- codename = codename.strip().replace(' ', '-')
|
|
|
|
|
|
|
|
|
perm = Permission.objects.filter(codename=codename)
|