Skip to content
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

Présence de suggestions indues dans « Ces contenus pourraient vous intéresser » #6437

Closed
Arnaud-D opened this issue Dec 8, 2022 · 3 comments · Fixed by #6439
Closed
Labels
C-Back Concerne le back-end Django C-Front Concerne l'interface du site S-BUG Corrige un problème

Comments

@Arnaud-D
Copy link
Contributor

Arnaud-D commented Dec 8, 2022

Rapporté sur le forum.

Description du bug

Dans la liste de suggestions apparaît une suggestion qui n'est probablement pas en base, une suggestion sur le contenu lui-même, mais dans sa version privée. Ça ne devrait pas arriver, vu qu'on ne veut suggérer que des publications publiques.

Comment reproduire ?

Aller sur On a retrouvé π au beau milieu du hasard ! et actualiser la page jusqu'à voir cette publication-même dans les suggestions dans la section « Ces contenus pourraient vous intéresser ».

Tout se passe comme si la publication était suggérée sur elle-même, mais en version privée.

Comportement attendu

On ne devrait pas avoir cette publication et jamais de liens privés en général. Ça reste à vérifier que ce n'est pas dans la liste par erreur. Sinon, ça veut dire que c'est très tordu, et lié à tous les liens qu'on peut faire dans nos modèles avec les versions publiques, privées, etc.

@Arnaud-D Arnaud-D added S-BUG Corrige un problème C-Front Concerne l'interface du site C-Back Concerne le back-end Django labels Dec 8, 2022
@philippemilink
Copy link
Member

philippemilink commented Dec 8, 2022

À regarder également lors de la résolution de ce ticket : s'assurer que les contenus dépubliés sont automatiquement retirés des suggestions dans d'autres contenus (c'est aussi ce qui a été relevé dans le sujet sur le forum).

Au passage, on pourra inclure ce patch pour ajouter la gestion des suggestions dans l'interface d'administration de Django :

diff --git a/zds/tutorialv2/admin.py b/zds/tutorialv2/admin.py
index c84ec1426..b6a46720e 100644
--- a/zds/tutorialv2/admin.py
+++ b/zds/tutorialv2/admin.py
@@ -9,6 +9,7 @@ from zds.tutorialv2.models.database import (
     ContentRead,
     PublicationEvent,
     ContentContributionRole,
+    ContentSuggestion,
 )
 from zds.tutorialv2.models.events import Event
 from zds.tutorialv2.models.goals import Goal
@@ -129,3 +130,4 @@ admin.site.register(ContentContributionRole, ContentReviewTypeAdmin)
 admin.site.register(HelpWriting)
 admin.site.register(Event)
 admin.site.register(Goal, GoalAdmin)
+admin.site.register(ContentSuggestion)
diff --git a/zds/tutorialv2/models/database.py b/zds/tutorialv2/models/database.py
index 3579cd81e..6afe21cec 100644
--- a/zds/tutorialv2/models/database.py
+++ b/zds/tutorialv2/models/database.py
@@ -1487,6 +1487,10 @@ class ContentSuggestion(models.Model):
     Content suggestion
     """

+    class Meta:
+        verbose_name = "Suggestion de contenu"
+        verbose_name_plural = "Suggestions de contenu"
+
     publication = models.ForeignKey(
         PublishableContent,
         null=False,

(et peut-être quelques changements supplémentaires). On pourrait aussi ajouter quelques suggestions dans les fixtures.

Je viens de regarder un peu. Pour info, voici ce qu'on a en base de données :

>>> from zds.tutorialv2.models.database import ContentSuggestion
>>> sugg = ContentSuggestion.objects.filter(publication=3452)
>>> sugg
<QuerySet [<ContentSuggestion: <Suggest 'Lumière sur les Médailles Fields 2018' for content On a retrouvé π au beau milieu du hasard !, #65>>, <ContentSuggestion: <Suggest 'Les équations' for content On a retrouvé π au beau milieu du hasard !, #66>>, <ContentSuggestion: <Suggest 'Génération matérielle de nombres aléatoires ' for content On a retrouvé π au beau milieu du hasard !, #67>>]>

Donc le contenu qu'on consulte n'est pas dans la liste des suggestions. Le contenu Génération matérielle de nombres aléatoires n'a pas de version publique et ne devrait donc pas être affiché. En regardant ça et donc ce fichier, je vois que si le contenu n'a pas de version publique, il utilise une URL qui n'est pas forcément publique. Donc je pense que je le problème est là.

@Arnaud-D
Copy link
Contributor Author

Arnaud-D commented Dec 8, 2022

Il y aurait pas une deuxième couche au bug ? Parce que c'est aussi « On a retrouvé π au beau milieu du hasard ! » qui apparaît dans ses propres suggestions. Je pense que quand on a une URL non publique, le template fait quelque chose de bizarre.

@philippemilink
Copy link
Member

Parce que c'est aussi « On a retrouvé π au beau milieu du hasard ! » qui apparaît dans ses propres suggestions.

Seulement dans le rendu de la page, pas en base de données.

Je pense que quand on a une URL non publique, le template fait quelque chose de bizarre.

C'est ce que je dis dans le dernier paragraphe de mon précédent message.

@Arnaud-D Arnaud-D moved this to À trier in Suivi des tickets Dec 17, 2022
@philippemilink philippemilink moved this from À trier to À traiter in Suivi des tickets Dec 18, 2022
@Arnaud-D Arnaud-D moved this from À traiter to Lié à une PR active in Suivi des tickets Dec 20, 2022
@github-project-automation github-project-automation bot moved this from Lié à une PR active to Clos in Suivi des tickets Jan 15, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
C-Back Concerne le back-end Django C-Front Concerne l'interface du site S-BUG Corrige un problème
Projects
Status: Clos
Development

Successfully merging a pull request may close this issue.

2 participants