diff --git a/CHANGES b/CHANGES index 261d53d..fd7b4cb 100644 --- a/CHANGES +++ b/CHANGES @@ -1,3 +1,8 @@ +0.2.7 2018-09-04 +- Make sure the slug field is never empty. +- Enforce unique=True if unique_slug=True. +- Allow function in AutoSlugfield populate_from. + 0.2.6 - Added missing requirement for django-dirtyfields diff --git a/shared/utils/models/slugs.py b/shared/utils/models/slugs.py index 30d527b..7c3a1b4 100644 --- a/shared/utils/models/slugs.py +++ b/shared/utils/models/slugs.py @@ -15,8 +15,6 @@ if six.PY3: from functools import reduce -DEFAULT_SLUG = getattr(settings, 'DEFAULT_SLUG', "item") - SLUG_HELP = _("Kurzfassung des Namens für die Adresszeile im Browser. Vorzugsweise englisch, keine Umlaute, nur Bindestrich als Sonderzeichen.") @@ -62,9 +60,9 @@ class AutoSlugField(django_fields.SlugField): self.populate_from.split("."), model_instance) if callable(value): value = value() - if not value: - value = DEFAULT_SLUG value = self.slugify(value) + if not value: + value = model_instance._meta.model_name if self.unique_slug: # TODO Move import to top of file once AutoSlugField is removed from shared.utils.fields and we no longer have a circular import from ..fields import uniquify_field_value diff --git a/shared/utils/text.py b/shared/utils/text.py index 5d185ad..324cb59 100644 --- a/shared/utils/text.py +++ b/shared/utils/text.py @@ -35,6 +35,7 @@ slugify_german = slugify_long @keep_lazy_text def downgrading_slugify(value): # Slugfiy only allowing hyphens, numbers and ASCII characters + # FIXME django_slugify might return an empty string; take care that we always return something return re.sub("[ _]+", "-", django_slugify(downgrade(value)))