Tutoriels avec le même titre supprimé

L'auteur de ce sujet a trouvé une solution à son problème.
Auteur du sujet

Salut les zesteux !

J'ai commencer à écrire un tutoriel sur le site hier soir et je n'étais pas totalement certain de la structure. J'ai donc écrit en utilisant des parties plutôt que des sections. Le tuto n'était alors pas très lisible.

Plutôt que de m'arracher les cheveux à refaire une structure dont je n'étais pas plus certain j'ai recréé un nouveau tutoriel avec le même titre.

Dans ce nouveau tuto j'ai migré le contenu dans une structure plus adéquate puis j'ai supprimé l'ancien tuto. Le problème c'est que mes 2 tutos ne sont plus accessibles. Le premier c'est normal mais le second est présent dans la liste de mes tutos mais renvoi vers une 404. J'avais aussi créé une galerie pour le second tuto qui elle est toujours accessible.

Voici quelques infos supplémentaires :

Je suppose que le code supprime les tutos en fonction du titre et pas en fonction de son id, ce qui est un peu dommage.

Pas de problème concernant la perte du contenu, j'ai écrit le tuto en local donc j'ai toutes les données :) .

+1 -0

Cette réponse a aidé l'auteur du sujet

Y'a un bug quelque part. Je pense qu'il faut regarder du côté du code.

Je résume :

  • Un 1e tuto a été créé /contenus/1657/comprendre-lexposition-en-photographie/
  • Un 2e tuto a été créé avec le même titre : /contenus/1658/comprendre-lexposition-en-photographie-1/ (notez le -1 dans le slug, inutile ?)
  • Le 1e tuto a été supprimé.
  • Bug: le 2e tuto est devenu inaccessible - 404. Le repo du 2e tuto est /opt/zds/data/contents-private/comprendre-lexposition-en-photographie, ce qui n'est pas consistant avec son slug.
  • Renommer /opt/zds/data/contents-private/comprendre-lexposition-en-photographie en /opt/zds/data/contents-private/comprendre-lexposition-en-photographie-1 rend à nouveau le 2e tuto accessible.

Hypothèse : le slug du tuto n'est pas géré correctement conjointement avec le slug du repo.

Hypothèse : le slug d'un tuto doit être unique à cause du stockage sur disque. Par contre il est inutile d'avoir un slug unique dans l'URL. Le comportement observé ici pourrait signifier que la logique est pile inversée : le slug observé est utilisé dans l'URL mais pas dans l'accès au repo.

Solution possible : préfixer les repos sur le disque avec la PK du contenu (et cesser de forcer l'unicité des slugs d'URL).

Autres remarques :

  • get_repo_path a un paramètre inutile et très probablement buggé : relative=False

Je crois que j'ai trouvé.

Par défaut, lorsqu'un contenu est sauvé son slug est mis à jour. Ce qui est super dangereux, et il est très surprenant que ça ne cause un bug que maintenant. Il faudrait au minimum que lorsque le slug est modifié, le repo soit également renommé. https://github.com/zestedesavoir/zds-site/blob/cffb5551d2d30d4d5b39f02e3164151d5e0ebd74/zds/tutorialv2/models/models_database.py#L140-L145

Édité par victor

Le saviez-vous ? Chaque -1 que vous mettez vous fait gagner un point de QI.

+1 -0
Vous devez être connecté pour pouvoir poster un message.
Connexion

Pas encore inscrit ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte