New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Django 3.x] Mise à jour des dépendances qui gèrent les slugs #5951
Conversation
il va falloir passer sur tous les moments où on fait un publishable_content.save() et vérifier qu'onpasse le |
80b6fdb
to
b38b9d0
Compare
…slug_update=False)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
✔️ QA OK
Je me suis baladé dans a peu près tout le site, ait publié beaucoup trop d'articles, ait tenté de reproduire #6000 (c'est bon, ça marche normalement), et autres. Je n'ai pas rencontré de problème.
Depuis la ZEP 12, les dépendances qui gèrent les slugs (
django-uuslug
etpython-slugify
) n'ont pas été mises à jour. Cela va nous poser soucis lorsqu'on passera à Django 3.x car les versions utilisées actuellement ne sont pas compatible avec cette version.Actuellement lors de la génération des slugs, les apostrophes sont supprimées. Si on met à jour ces dépendances telles quelles, les apostrophes seront remplacées par un tiret. Actuellement, « C'est la vie » devient « cest-la-vie » mais après la mise à jour ce sera « c-est-la-vie ».
La solution retenue que j'ai retenu est de ne pas utiliser directement les fonctions
slugify
etuuslug
proposées pardjango-uuslug
mais de créer deux fonctions wrapper qui suppriment les apostrophes avant d'envoyer le texte àslugify
etuuslug
. J'ai découvert qu'en dehors des contenus une autre fonction nomméeslugify
et définie danszds/utils
est utilisée pour les slugs des tags, galeries, catégories de forum, etc. Pour éviter toute confusion j'ai décidé de la renommerold_slugify
(choix arbitraire, n'hésitez pas à proposer autre chose).Quitte à faire de la QA sur tout ce qui touche aux slugs, j'en ai profité pour vérifier que tous les appels à
content.save()
dans le code spécifient bien la valeur deforce_slug_update
. Ensuite, j'ai inversé la logique : appelercontent.save()
ne met pas à jour le slug sauf lorsque le slug est vide (c'est-à-dire à la création du contenu) ou lorsqueforce_slug_update=True
est spécifié.Closes #6000
Closes #3553 (qui a mon avis est identique à #6000)
QA :
source zdsenv/bin/activate && make update && make zmd-start && make run-back
Merci de penser à utiliser le bouton « Rebase and merge » pour garder les commits séparés (et non pas « Squash and merge ») au cas où il faudrait revenir en arrière sur un commit en particulier (étant donné la criticité de ce qui touche aux slugs)