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

Les chapitres non validés apparaissent dans les exports des contenus #6265

Closed
entwanne opened this issue Mar 21, 2022 · 2 comments
Closed
Labels
S-BUG Corrige un problème

Comments

@entwanne
Copy link
Member

Description du bug

Je viens de constater que les exports de contenus (tous formats confondus a priori, je n'ai pas vérifié l'epub) contenaient les chapitres non validés (ready_to_publish à False) du contenu.

Le traitement semble différent suivant le format d'export, par exemple le markdown ne contient que la structure des chapitres en question (titres) tandis que le PDF contient aussi leurs contenus.

Comment reproduire ?

Simplement consulter l'export PDF ou Markdown du cours Un zeste de Python par exemple.

Comportement attendu

Les chapitres "Expressions rationnelles", "Un peu de réseau", "Plusieurs tâches en même temps", "Packaging", "Bases de données", "Les erreurs courantes en Python" et la partie "Exercices" ne devraient pas apparaître dans les exports.

Capture d'écran

Export PDF

Export Markdown

@Situphen
Copy link
Member

J'ai trouvé le soucis pour l'export Markdown, c'était assez simple.

Pour l'export PDF, j'ai l'impression qu'on envoie bien une étiquette ready_to_publish à zmarkdown mais que celui-ci ne la prend pas en compte. Il y a donc deux solutions :

  • ouvrir un ticket côté zmarkdown pour que cette option soit prise en compte dans le futur ;
  • ou alors, ne pas envoyer les conteneurs avec ready_to_publish à False à zmarkdown.

Si on part sur la deuxième option, je pense que ces quelques modifications devraient suffire :

diff --git a/zds/tutorialv2/publication_utils.py b/zds/tutorialv2/publication_utils.py
index e3aa5e84b..485b2cf61 100644
--- a/zds/tutorialv2/publication_utils.py
+++ b/zds/tutorialv2/publication_utils.py
@@ -414,7 +414,7 @@ class ZMarkdownRebberLatexPublicator(Publicator):
         replaced_media_url = settings.MEDIA_URL
         if replaced_media_url.startswith("/"):
             replaced_media_url = replaced_media_url[1:]
-        exported = export_content(public_versionned_source, with_text=True)
+        exported = export_content(public_versionned_source, with_text=True, remove_not_ready_to_publish=True)
         # no title to avoid zmd to put it on the final latex
         del exported["title"]
         content, metadata, messages = render_markdown(
diff --git a/zds/tutorialv2/utils.py b/zds/tutorialv2/utils.py
index 1f2b45cd2..2561b0fa9 100644
--- a/zds/tutorialv2/utils.py
+++ b/zds/tutorialv2/utils.py
@@ -696,7 +696,7 @@ def export_extract(extract, with_text):
     return dct
 
 
-def export_container(container, with_text=False):
+def export_container(container, with_text=False, remove_not_ready_to_publish=False):
     """Export a container to a dictionary
 
     :param container: the container
@@ -705,6 +705,10 @@ def export_container(container, with_text=False):
     :rtype: dict
     """
     dct = OrderedDict()
+
+    if remove_not_ready_to_publish and not container.ready_to_publish:
+        return dct
+
     dct["object"] = "container"
     dct["slug"] = container.slug
     dct["title"] = container.title
@@ -735,14 +739,14 @@ def export_container(container, with_text=False):
     return dct
 
 
-def export_content(content, with_text=False):
+def export_content(content, with_text=False, remove_not_ready_to_publish=False):
     """Export a content to dictionary in order to store them in a JSON file
 
     :param content: content to be exported
     :return: dictionary containing the information
     :rtype: dict
     """
-    dct = export_container(content, with_text)
+    dct = export_container(content, with_text, remove_not_ready_to_publish)
 
     # append metadata :
     dct["version"] = 2.1

@philippemilink
Copy link
Member

Corrigé avec #6266 pour le Markdown et #6267 pour le PDF.

Merci d'avoir rapporté le problème !

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
S-BUG Corrige un problème
Projects
None yet
Development

No branches or pull requests

3 participants