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

ZEP-25 : Catégorisation des contenus #3261

Merged
merged 26 commits into from
Mar 29, 2016
Merged

ZEP-25 : Catégorisation des contenus #3261

merged 26 commits into from
Mar 29, 2016

Conversation

gustavi
Copy link
Contributor

@gustavi gustavi commented Dec 28, 2015

Q R
Correction de bugs ? non
Nouvelle Fonctionnalité ? oui
Tickets (issues) concernés #2429

QA

  • Tester le bon fonctionnement des tags et des catégories
  • Tester le bon affichage uniformisé des contenus (page d'accueil, page « tutoriels », page « articles », etc
  • Tester la commande de migration, en particulier les logs (cc @SpaceFox) ; cette commande est à valider pleinement en beta !
  • Vérifier le bon fonctionnement des contenus (validation, exports, etc)


dependencies = [
('utils', '0001_initial'),
('tutorialv2', '0008_publishedcontent_update_date'),
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nope. Il faut vraiment que tu développes en partant de upstream/dev à chaque fois, sinon ça va jamais marcher.
Un moyen simple de corriger le problème actuel serait de changer ('tutorialv2', '0008_publishedcontent_update_date'), en ('tutorialv2', '0010_publishedcontent_sizes'), puis de renommer ce fichier 0011_publishablecontent_tags.py.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

C'est ce que je fais hein. J'ai pas encore rebase et je vais le faire plus tard.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

oui mais du coup ça nous empêche de te faire des retours rapide ou de
t'aider si tu as besoin.
Là en plus travis ne peut même pas tourner les tests.

2015-12-28 13:57 GMT+01:00 Laville Augustin notifications@github.com:

In zds/tutorialv2/migrations/0009_publishablecontent_tags.py
#3261 (comment)
:

@@ -0,0 +1,21 @@
+# -- coding: utf-8 --
+from future import unicode_literals
+
+from django.db import models, migrations
+
+
+class Migration(migrations.Migration):
+

  • dependencies = [
  •    ('utils', '0001_initial'),
    
  •    ('tutorialv2', '0008_publishedcontent_update_date'),
    

C'est ce que je fais hein. J'ai pas encore rebase et je vais le faire plus
tard.


Reply to this email directly or view it on GitHub
https://github.com/zestedesavoir/zds-site/pull/3261/files#r48477837.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Je sais, je vais rebase au prochain commit. En fait des PR ont été merge entre le premier et le seconde push.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ok.

2015-12-28 14:02 GMT+01:00 Laville Augustin notifications@github.com:

In zds/tutorialv2/migrations/0009_publishablecontent_tags.py
#3261 (comment)
:

@@ -0,0 +1,21 @@
+# -- coding: utf-8 --
+from future import unicode_literals
+
+from django.db import models, migrations
+
+
+class Migration(migrations.Migration):
+

  • dependencies = [
  •    ('utils', '0001_initial'),
    
  •    ('tutorialv2', '0008_publishedcontent_update_date'),
    

Je sais, je vais rebase au prochain commit. En fait des PR ont été merge
entre le premier et le seconde push.


Reply to this email directly or view it on GitHub
https://github.com/zestedesavoir/zds-site/pull/3261/files#r48478071.

@gustavi
Copy link
Contributor Author

gustavi commented Dec 28, 2015

J'aurai besoin d'un coup de main d'un dev front sur 2 points :

  • La page avec tous les tags (il faut faire en sorte que ce soit joli, j'ai pour le moment fait un simple listing mais en définitive ce seront des liens) ;
  • Le menu de sélection (dans un second temps, je dois regarder quelque chose sur ce point avant).

PING @sandhose et @Situphen si vous avez un peu de temps :)

@@ -191,7 +191,7 @@

<ul class="dropdown-list">
{% with categories='TUTORIAL'|top_categories_content %}
{% for title, subcats in categories.items %}
{% for title, subcats in categories.categories.items %}
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pourquoi categories.categories ?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

On retourne un dict et qui contient les catégories et les tags au lieu des catégories. Pas le choix. Pour le coup j'ai grandement copié la partie code du forum. Le topbar.py est je pense le fichier le plus crade du projet.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ok, alors il faut renommer le premier categories parce qu'en l'état, ça n'a pas de sens d'écrire categories.categories.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Si tu as un nom je suis preneur ! Pour le coup, le choix pour les forums a été top ce qui n'est guère plus parlant. Mais encore une fois cette partie du code est horrible et une vraie prise de tête à chaque fois ... :/

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Limite, je préfère top même si c'est pas génial non plus.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

top_categories_dict

@DevHugo
Copy link
Contributor

DevHugo commented Dec 28, 2015

Fait attention au régréssion du côté de la recherche, on a pas de T.U et ça peut-être impacté (ou pas). C'est juste de regarder le code de https://github.com/zestedesavoir/zds-site/blob/dev/zds/search/utils.py et tous les search_indexes.py.

{% trans "Tags les plus utilisés" %}
</li>
{% for tag in categories.tags %}
<li><a href="#TODO">{{ tag }}</a></li>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Je suppose qu'on est dans le dropdown ici. Pourquoi ne pas récupérer l'existant ?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

« récupérer l'existant » ??

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

On affiche déjà des tags dans le front actuel. Il ne devrait donc pas y avoir de TODO ici puisqu'on sait déjà faire.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Tout simplement parce qu'aujourd'hui on filtre avec ?tag=ma-sous-catégorie et donc ce point est à revoir comme indiqué dans le premier post. Je n'ai aucun moyen de filtré les contenus publiés par tag à l'heure actuelle d'où ce TODO car la page n'existe pas encore (du moins sous sa forme définitive).

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

De toute façon, ça ne me semble pas être au front de le sucer de son pouce cette URL. Elle doit venir du back. Rien ne t'empêcher d'appeler une méthode ou appeler un attribut des tags.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Je ne vois pas où tu veux en venir. La vue n'existe pas et va venir dans le prochain commit donc c'est normal que je n'utilise pas une vraie URL.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

<li><a href="#TODO">{{ tag }}</a></li>

to

<li><a href="tag.url">{{ tag }}</a></li>

@gustavi
Copy link
Contributor Author

gustavi commented Dec 28, 2015

Merci @DevHugo je note ça.

@@ -725,3 +725,15 @@ def post(self, request, *args, **kwargs):

messages.success(self.request, _(u"L'alerte a bien été résolue."))
return redirect(note.get_absolute_url())


class TagsListView(ListView):
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Est-ce pertinent de lister bêtement les tags ?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

J'aurai besoin d'un coup de main d'un dev front sur 2 points :

  • La page avec tous les tags (il faut faire en sorte que ce soit joli, j'ai pour le moment fait un simple listing mais en définitive ce seront des liens) ;

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ma question allait au delà de ça. Est-ce pertinent de lister des tags, cliquable ou non ?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Encore une fois j'ai suivi la spécification de la ZEP :

De cette sorte, le menu déroulant en haut pourrait avoir la trentaine de catégories sur 5 colonnes et une dernière pour les tags les plus utilisés et un lien vers une page « tous les tags »

@GerardPaligot
Copy link
Member

Malgré mes remarques, la réalisation de cette ZEP était de plus en plus nécessaire et je suis content qu'elle avance.

@gustavi
Copy link
Contributor Author

gustavi commented Dec 28, 2015

Tu noteras qu'il y a une jolie commande qui fait presque tout le travail ;)

J'en profite pour proposer quelque chose : est-ce que vous voulez une commande qui migre les contenus publiés sur ZdS automatiquement ?

Avantage : gain de temps pour le staff et migration plus rapide

@GerardPaligot
Copy link
Member

Tu noteras qu'il y a une jolie commande qui fait presque tout le travail ;)

J'ai vu et c'est plutôt cool !

est-ce que vous voulez une commande qui migre les contenus publiés sur ZdS automatiquement ?

Tout ce qui est automatisable me semble être une bonne idée.

@gustavi
Copy link
Contributor Author

gustavi commented Dec 28, 2015

Petit souci technique. On a plusieurs sous-catégories qui s'appellent « Autre ». Ça ne pose pas de souci en BDD MAIS lors de l'ajout et la recherche ça en pose car on part du principe que c'est unique.

2 options :

  • Rendre vraiment le titre (et donc également le slug) unique quitte à renommer ça « Autre (informatique) »;
  • Rendre uniquement le slug unique.

La solution 1 est la plus simple, je ne sais pas s'il y en a une meilleure que l'autre. PING @SpaceFox

@SpaceFox
Copy link
Contributor

J'aime bien la 1. KISS, tout ça :)

@sandhose
Copy link
Contributor

J'aurai besoin d'un coup de main d'un dev front sur 2 points :

  • La page avec tous les tags (il faut faire en sorte que ce soit joli, j'ai pour le moment fait un simple listing mais en définitive ce seront des liens) ;

Un genre de tagcloud ? Je verrais bien un listing à la Stackoverflow

  • Le menu de sélection (dans un second temps, je dois regarder quelque chose sur ce point avant).

Y'aurait pas grand chose à modifier au script d'autocomplétion pour qu'il fonctionne avec les tags. Il faudrait juste en back une URL type /api/tags?q=foo qui répond en JSON genre [{ "id": 12, "name": "foo" }, { "id": 42, "name": "foobar" }]. Après, 2/3 trucs que je peux faire sur le script d'autocomplétion pour qu'il fasse autre chose que les pseudos.

@gustavi
Copy link
Contributor Author

gustavi commented Dec 29, 2015

Pour le menu ça me va, tu veux que je t'envoie le nombre de contenus ?

Je parlais de la sélection de la catégorie. Je vais personnaliser le widget pour qu'il trie les sous-catégories en fonction de la catégorie parente.

@gustavi
Copy link
Contributor Author

gustavi commented Jan 1, 2016

En outre le souci de PEP-8, j'ai réussit à avoir un tri sur les catégories lors d'un ajout de contenu. En revanche je surcharge un template qui est utilisé à deux autres endroits. Il faudrait réussir à n'utiliser ce template modifié que dans ce cas là. Si quelqu'un a une solution propre (parce que j'en ai une sale), je prends !

Le patch : http://paste.awesom.eu/1rLR

@gustavi
Copy link
Contributor Author

gustavi commented Jan 1, 2016

J'ai réussit à surcharger le template. Pas ultra propre mais c'est ce qui est recommandé dans la documentation. Seul bémol, on tape assez violemment dans la base de donnée (200 requêtes de plus, uniquement sur la page d'ajout d'un contenu) dont la grande majorité vient d'un bug de crispy qui devrait être corrigé.

EDIT : le code sera commenté, promis ;)

@gustavi
Copy link
Contributor Author

gustavi commented Jan 1, 2016

Bonne nouvelle, c'est presque terminé ici !! La partie backend touche à sa fin (il me reste une page à coder, à commenter du code et écrire de la doc et des tests) et j'ai besoin d'un dev front.

Ce qu'il faut faire :

ping @sandhose @Situphen et qui a le courage de faire ça, ce n'est pas dans mes compétences

@gustavi
Copy link
Contributor Author

gustavi commented Jan 9, 2016

Il me faudrait quelqu'un sur la page avec tous les tags, je vais essayer de m'occuper de l'uniformisation des contenus.

@gustavi
Copy link
Contributor Author

gustavi commented Jan 17, 2016

Toujours à la recherche d'un dev front pour que ça bouge ici !

@gustavi
Copy link
Contributor Author

gustavi commented Jan 19, 2016

La partie backend est terminée. J'ai besoin d'un dev front, uniquement pour me faire le « tag cloud ». Je n'ai pas les compétences nécessaires pour faire ça proprement. Tout est envoyé dans le template, suffit de faire du HTML/CSS.

Je vais ajouter la documentation et un ou deux TU pour les tags.

@SpaceFox
Copy link
Contributor

On fait encore des nuages de tags en 2016 ? Ou tu parles de quelque chose de plus utilisable pour le visiteur ?

@gustavi
Copy link
Contributor Author

gustavi commented Jan 19, 2016

On parlait de quelque chose comme ça je crois http://stackoverflow.com/tags

@gustavi gustavi changed the title [WIP] ZEP-25 : Catégorisation des contenus [À LA RECHERCHE D'UN DEV FRONT] ZEP-25 : Catégorisation des contenus Feb 9, 2016
@gustavi gustavi changed the title [À LA RECHERCHE D'UN DEV FRONT] ZEP-25 : Catégorisation des contenus ZEP-25 : Catégorisation des contenus Mar 19, 2016
@SpaceFox
Copy link
Contributor

Tu as trouvé un dev front @gustavi ?

@gustavi
Copy link
Contributor Author

gustavi commented Mar 19, 2016

Yep. Comme tu le vois c'est rebase et ça veut dire que le reste arrive demain :)

@SpaceFox
Copy link
Contributor

_

Alors j'attends pour lancer la prochaine release (qui aura deux ZEP !)

@gustavi
Copy link
Contributor Author

gustavi commented Mar 20, 2016

Voilà voilà. J'attends Travis pour voir si tout est OK. Je rajoute la doc et le TU pour les tags très rapidement mais QA CAN START !

@gustavi
Copy link
Contributor Author

gustavi commented Mar 29, 2016

PING @zestedesavoir/qa

@SpaceFox
Copy link
Contributor

Vus l'âge de cette ZEP et la quantité de tests et de revues qu'elle a déjà subies, elle sera peaufinée en bêta.

@SpaceFox SpaceFox merged commit cf7f8de into zestedesavoir:dev Mar 29, 2016
@GerardPaligot
Copy link
Member

@SpaceFox Tu as refais une QA avant de merge ?
@gustavi Tu as rendu accessible les tags ?

@gustavi
Copy link
Contributor Author

gustavi commented Mar 30, 2016

Tu as rendu accessible les tags ?

?? Normalement tout ce qui a été demandé a été corrigé.

@gustavi gustavi added this to the Version de développement milestone Mar 30, 2016
@GerardPaligot
Copy link
Member

J'avais fais un retour comme quoi les tags attachés à un contenu était disponible uniquement sur les items. Donc dès qu'on dépassait 3 tags, impossible de les sélectionner. Tu as trouvé un moyen de les rendre accessible sur la page du contenu ?

@gustavi
Copy link
Contributor Author

gustavi commented Mar 30, 2016

Non mais c'est quelque chose qui est déjà présent sur les forums. C'est quelque chose à régler hors ZEP selon moi.

@GerardPaligot
Copy link
Member

capture d ecran 2016-03-30 a 10 23 52

Pas de problème sur les forums.

@GerardPaligot
Copy link
Member

D'ailleurs, ça me fait penser qu'on introduit une incohérence puisque les tags des contenus ne sont pas affichés de la même manière. Pourtant, c'était le problème soulevé dans la spec de la ZEP.

@gustavi
Copy link
Contributor Author

gustavi commented Mar 30, 2016

Alors pour répondre dans l'ordre à tes remarques :

  • Le bug est corrigé sur les contenus ;
  • Oui tu n'as pas de problème car tu as moins de 4 tags, c'est en dessus qu'un disparaît en âge d'accueil ;
  • Il y a une issue dédiée, là ça fait un peut POC et j n'ai pas voulu toucher aux forums dans cette ZEP (je pense que tu m'as déjà fait cette remarque sur IRC ou dans les commentaires ici).

@GerardPaligot
Copy link
Member

Le bug est corrigé sur les contenus ;

Comment ?

Il y a une issue dédiée, là ça fait un peut POC et j n'ai pas voulu toucher aux forums dans cette ZEP (je pense que tu m'as déjà fait cette remarque sur IRC ou dans les commentaires ici).

Il n'y a rien à toucher (pas sur ce point en tout cas) sur les forums. De quoi parles-tu ?

@gustavi
Copy link
Contributor Author

gustavi commented Mar 30, 2016

Comment ?

voir dernier commit.

D'ailleurs, ça me fait penser qu'on introduit une incohérence puisque les tags des contenus ne sont pas affichés de la même manière.

Tu ne parles pas des forums ? Sinon je ne vois pas de quoi tu parles.

@GerardPaligot
Copy link
Member

En gros, sur la page d'un sujet, les tags sont affichés dans un encadré bleu (cf. mon image). Sur les contenus, les tags ne sont pas affichés et les catégories sont affichés dans un encadré bleu => incohérence.

@gustavi
Copy link
Contributor Author

gustavi commented Mar 30, 2016

Comme je l'ai dit ça a été corrigé.

@GerardPaligot
Copy link
Member

Ok, je vois que tu as changé l'affichage des catégories pour les tags. Du coup, on récupère où les catégories du contenu ?

@gustavi
Copy link
Contributor Author

gustavi commented Mar 30, 2016

Comme les auteurs aujourd'hui.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

10 participants