Projet

Général

Profil

Bug #57138

en cas de doublon, la création des slugs ajoute 1, puis 12, puis 123

Ajouté par Thomas Noël il y a plus de 2 ans. Mis à jour il y a plus de 2 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Catégorie:
-
Version cible:
-
Début:
21 septembre 2021
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:
Non

Description

vu sur une instance multi-collectivité Publik, des slugs "administreur", "administreur1", "administreur12", "administreur123" : il y a certainement un algo de création de slug unique un peu défaillant


Fichiers

Révisions associées

Révision 0a3b4686 (diff)
Ajouté par Thomas Noël il y a plus de 2 ans

manager: make slug conflict resolution simpler (#57138)

Historique

#2

Mis à jour par Thomas Noël il y a plus de 2 ans

C'est dans src/authentic2/manager/forms.py

class SlugMixin(forms.ModelForm):
    def save(self, commit=True):
        instance = self.instance
        if not instance.slug:
            instance.slug = slugify(str(instance.name)).lstrip('_')
            qs = instance.__class__.objects.all()
            if instance.pk:
                qs = qs.exclude(pk=instance.pk)
            i = 1
            while qs.filter(slug=instance.slug).exists():
                instance.slug += str(i)                       <-- ici
                i += 1
        if len(instance.slug) > 256:
            instance.slug = instance.slug[:252] + hashlib.md5(instance.slug).hexdigest()[:4]
        return super().save(commit=commit)
#3

Mis à jour par Thomas Noël il y a plus de 2 ans

#4

Mis à jour par Serghei Mihai il y a plus de 2 ans

  • Statut changé de Solution proposée à Solution validée
#5

Mis à jour par Thomas Noël il y a plus de 2 ans

  • Statut changé de Solution validée à Résolu (à déployer)
commit 0a3b4686227756f070bc82cfbb538b6b1a202ba5
Author: Thomas NOEL <tnoel@entrouvert.com>
Date:   Tue Sep 21 15:30:47 2021 +0200

    manager: make slug conflict resolution simpler (#57138)

#6

Mis à jour par Frédéric Péters il y a plus de 2 ans

  • Statut changé de Résolu (à déployer) à Solution déployée

Formats disponibles : Atom PDF