ZEP-12 : refonte du principe des tutoriels et articles

Avec pour base atomique ... l'extrait

Le problème exposé dans ce sujet a été résolu.

Je pense qu'il faut regarder l'erreur de plus prêt

la stacktrace nous indique que les variables valent :

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
fp  

u'/home/francois/zds-site/contents-public/qa58-1__building/extra_contents/images/.png'

format  

None

self    

<PIL.PngImagePlugin.PngImageFile image mode=RGB size=150x150 at 0xA16FA4C>

filename    

u'/home/francois/zds-site/contents-public/qa58-1__building/extra_contents/images/.png'

en gros la variable new_url et new_url_as_png n'est pas bien créée (elle valent "/extra-content/.png")

Bon, point d'avancement qui sera plus court que d'habitude car je vais présenter ce qu'il nous reste à faire :

  • Les index Solar : DevHugo a gentiment proposé de s'en occupé une fois ses examens passés
  • Les Tests unitaires
  • Mettre à jour la doc

Voilà, je viens de vérifier, il n'y a plus rien d'autre à faire.

cool alors c'est vraiment une bonne nouvelle

sur mon instance, j'ai un problème pandoc qui trouve pas Merriweather alors que toutes les dépendances sont installées, pour tester le pdf, va falloir sacrifier votre environnement local les gens.

Pour les images, nous n'avons repris que l'import (pour rester iso-fonctionnel avec juste une amélioration car l'import est générique), l'export des images n'étant pas supporté par la prod actuellement, on ne le fait pas.

Salut à tous,

en ce moment Hugo travaille pas mal sur solar et pour la ZEP12 il nous a fait part de quelques difficultés pour y arriver.

VOici les solutions qu'il propose

Le premier champ sert à charger notre templates avec les données indexés. Les autres champs de la classe, ne sont pas indexés par-défaut, et permette de servir de critaire de recherche. Par exemple, on pourrais dire qu'on veut rechercher uniquement sur le titre, ou sur la description ou sur le sha_public. Ces champs sont accessible aussi lors des résultat, ça permet d’éviter d'aller chercher les informations dans la base de données quand on affiche les résultats.

Deux méthodes sont à implémenter: get_model(self) et index_queryset(self, using=None)::

  • get_model(self) renvoi un type de classe qui étend django.db.Model. On peut tricher et étendre cette classe sans être un objet de la base de donnée.
  • index_queryset(self, using=None) doit renvoyer OBLIGATOIREMENT un QuerySet. Un truc de la base de donnée et j'ai ne n'est pas trouvé comment on créé un QuerySet à la main. Sachant que les parts, chapter, extract ne sont pas dans la base de données. On est eu.

La deuxième solution est d'utiliser qu'un seul objet, celui en base de donnée, ça donne ça :

La classe python

Le template

MAIS y'a un gros gros désavantage, c'est que dans les résultat de la recherche, on a aucun moyen de savoir ou est l'endroit ou le contenu recherché se trouve. On a juste l'objet content mais on ne ne sait pas dans quel extract, chapter, parts, le contenu recherché est. Pour l'utilisateur cela signifie que l'on doit obligatoirement le rediriger vers le tutoriel et non vers un extrait. Pas cool, si c'est un big tuto, l'utilisateur est obligé de chercher dans toutes les parties à la main.

La troisième solution est d'utiliser une autre API.

Perso voici ce que je propose :

Créer une classe PublishedExtracts qui se comporse ainsi :

1
2
3
4
5
6
class PublishedExtract(models.Model):

    content = models.ForeignKey("PublishedContent")
    title = models.CharField()
    absolute_url = models.CharField()
    html_file_path = models.CharField()

A chaque publication et mise à jour on RAZ tous les PublishedExtract et on recrée ceux qui vont bien. Comme ça on a à la fois les extraits qui vont bien, la classe PublishedContent qui suit, et on évite de réimplémenter tout le modèle comme on faisait avant. Par contre cela crée une table supplémentaire, et ça "recomplexifie" notre modèle.

Bien évidemment, si on change d'API pour parler à Sonar, moi ça me va, mais j'ai l'impression que ça ralentira pas mal les choses, alors qu'on a un bon workaroud possible, je pense là.

La solution peut marcher. Désolé, je t'avais mal compris sur la solution proposé sur GH, c'était 'my bad'. Je pensais à totalement autre chose.

Par contre cela crée une table supplémentaire, et ça "recomplexifie" notre modèle.

C'est vrai. C'est la solution la plus élégante qu'on est aujourd'hui.

Bien évidemment, si on change d'API pour parler à Sonar, moi ça me va, mais j'ai l'impression que ça ralentira pas mal les choses, alors qu'on a un bon workaroud possible, je pense là.

Après une recherche en cinq minutes, tous les concurrents de Haystack sont mort. Y'a pas vraiment de lib multi-backend pour l'indexation.

Y'a plein de lib uni-backend.

+0 -0

Bon, je suis allé faire un tour sur http://zds.francoisdambrine.me et j'ai créé un tutoriel en mode n00b ! Voici quelques petits problèmes :

  • Quand on clique sur "Ajouter une section", l'url est /nouvel-extrait/ [pas normal] : il faut choisir entre "Ajouter une section" et /nouvelle-section/ ou "Ajouter un extrait" et /nouvel-extrait/ (je préfère le deuxième personnellement) !
  • Quand on crée une section, il n'y a plus le bouton pour créer une partie [normal] MAIS si va sur /nouveau-conteneur/ manuellement, le formulaire s'affiche bien [pas normal] et lors de l'envoi on se prend bien une 403 [normal je pense]

Une 502 est apparue pendant que je faisais mes tests : je crois que j'ai un peu trop demandé au serveur… :-° Désolé :)

+0 -0

Bon. Je re-faisais un tour par ici pour vérifier qu'il y avait plus de "gros trucs" à faire. A priori, on a bien rempli notre contrat, et la liste des issues s'amenuise de jour en jour grâce au travail acharné d'artragis qui est encore plus motivé que moi, c'est pour dire ;)

Si je lit le texte de la ZEP originale (pfiou, que de l'eau à coulé sous les ponts aujourd'hui), il reste 3 points qu'on ne tient pas:

  1. « On doit pouvoir importer les fichiers .tuto et archives zip »: on a jamais aussi bien géré les ZIPs (on peut même importer des images avec, grâce à artragis), par contre, on a un peu laissé tomber le .tuto, et à priori, on ne le fera pas. Sauf si quelqu'un dit qu'on peut pas sortir sans ça.
  2. « La recherche dans les contenu doit rester stable » : plus difficile à dire qu'à faire, mais le courageux Hugo (Hugo t'es le meilleur!) est dessus :)
  3. « Les urls existantes doivent rester valides (SEO toussa) » : oui … Mais non. Lorsqu'on visitera un ancien tuto/article, on sera redirigé vers sa page principale. Ça ne choque pas pour les articles/mini-tuto, c'est un peut plus choquant dans le cas des big-tutos. Si vous avez une solution intelligente à proposer, je prend (je vous vois arriver avec la table de redirection).

Bref. Du reste, coté perf', j'ai quand même l'impression qu'on a amélioré ça (bon, n'avoir qu'un fichier HTML à afficher pour la plupart des trucs, ça aide), et on c'est tenu au projet de base.

Ceci étant dit, j'ai une question de transition (il est temps d'y penser): on a maintenant changé toutes les URLs pour qu'elles pointent sur la ZEP-12 et plus sur l'ancien code, mais j'aimerai discuter de la mesure dans laquelle "l'ancien code" doit rester accessible. Clairement, il faudra un moment de transition entre les deux, les anciens modules vont pas disparaitre de suite, mais est ce qu'il faut continuer à "diffuser" des liens modes zestedesavoir.com/vieux-tutos/* (c'est une proposition d'URL) ?

Merci d'avance :)

« La recherche dans les contenu doit rester stable » : plus difficile à dire qu'à faire, mais le courageux Hugo (Hugo t'es le meilleur!) est dessus :) « Les urls existantes doivent rester valides (SEO toussa) » : oui … Mais non. Lorsqu'on visitera un ancien tuto/article, on sera redirigé vers sa page principale. Ça ne choque pas pour les articles/mini-tuto, c'est un peut plus choquant dans le cas des big-tutos. Si vous avez une solution intelligente à proposer, je prend (je vous vois arriver avec la table de redirection).

juste pour préciser : en cas de redirection, on est redirigé vers le sommaire du tuto (c'est ce que pierre appelle "page principale).

Bref. Du reste, coté perf', j'ai quand même l'impression qu'on a amélioré ça (bon, n'avoir qu'un fichier HTML à afficher pour la plupart des trucs, ça aide), et on c'est tenu au projet de base.

sauf sur 1 pages : la liste des articles qu'on a "légèrement empiré" mais je suis dessus.

Ceci étant dit, j'ai une question de transition (il est temps d'y penser): on a maintenant changé toutes les URLs pour qu'elles pointent sur la ZEP-12 et plus sur l'ancien code, mais j'aimerai discuter de la mesure dans laquelle "l'ancien code" doit rester accessible. Clairement, il faudra un moment de transition entre les deux, les anciens modules vont pas disparaitre de suite, mais est ce qu'il faut continuer à "diffuser" des liens modes zestedesavoir.com/vieux-tutos/* (c'est une proposition d'URL) ?

Dans quelles mesures est-ce utile d'avoir l'ancien module toujours disponible et existant si on migre tout les tutos sur la nouvelle structure ?

+0 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

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