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.

Juste une note : j'ai ce matin fait quelques tests pour réduire encore le nombre de requêtes. Malheureusement, pour une raison que j'ignore (mais ça doit être à cause des références) ça fait foirer les badges dans les cmmentaires. Ne vous inquiétez pas c'est connu.

C'est corrigé. On peut économiser ainsi jusqu'à 20 requêtes sur la page des commentaires. Je suis plutôt content de moi pour le coup.

Dans le premier cas, ça fait bizarre d'avoir des parties possiblement de différente profondeur. Dans le deuxième cas, on pourrait avoir des parties adjacentes à des chapitres.

Je suis partisan du oui.

1
2
3
Page not found (404)
Request Method:     POST
Request URL:    http://zds.francoisdambrine.me/contenus/activer-beta/36/qa86/

Pour activer JSFiddle, je ne comprends pas l'intérêt de la case à cocher.

+0 -0

Pour activer JSFiddle, je ne comprends pas l'intérêt de la case à cocher.

Vayel

Copier-coller. Mais c'est vrai qu'on pourrait envisager un truc comme les bêta.

Juste une note : j'ai ce matin fait quelques tests pour réduire encore le nombre de requêtes. Malheureusement, pour une raison que j'ignore (mais ça doit être à cause des références) ça fait foirer les badges dans les cmmentaires. Ne vous inquiétez pas c'est connu.

C'est corrigé. On peut économiser ainsi jusqu'à 20 requêtes sur la page des commentaires. Je suis plutôt content de moi pour le coup.

Je sais pas comment t'as réussi à faire ce tour de magie là (à savoir, un tuto fait maintenant 45 requêtes quelques soit le nombre de commentaires), mais c'est puissant. Il faudra qu'on pense à le remonter en dev pour l'injecter au forums le moment venu :)

+0 -0

Je sais pas comment t'as réussi à faire ce tour de magie là (à savoir, un tuto fait maintenant 45 requêtes quelques soit le nombre de commentaires), mais c'est puissant. Il faudra qu'on pense à le remonter en dev pour l'injecter au forums le moment venu

ma magie est universelle pierre_24, les forums sont déjà touchés sur la version zep 12.

(à savoir, un tuto fait maintenant 45 requêtes quelques soit le nombre de commentaires)

Plus exactement, auparavant le nombre de requête était $O(max(nb_{message}, nb_{utilisateur})$ aujourd'hui, il est juste $O(nb_{utilisateur})$. Si un utilisateurs postent deux messages dans la page, son profile et son badge ne sont chargés qu'une seule fois. Du coup on ne fait qu'une seule requête pour cet utilisateur.

+4 -0

Concernant Solr, à l'indexation j'obtiens :

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
(zdsenv)spacefox@azathoth:~/Dev/Django/zds-site$ python manage.py rebuild_index

WARNING: This will irreparably remove EVERYTHING from your search index in connection 'default'.
Your choices after this are to restore from backups or rebuild via the `rebuild_index` command.
Are you sure you wish to continue? [y/N] y
Removing all documents from your index because you said so.
All documents removed.
Indexing 0 Articles
Indexing 4 Sujets
Indexing 5 posts
Indexing 12 Tutoriels
Traceback (most recent call last):
  File "manage.py", line 11, in <module>
    execute_from_command_line(sys.argv)
  File "/home/spacefox/Dev/virtualenvs/zdsenv/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 385, in execute_from_command_line
    utility.execute()
  File "/home/spacefox/Dev/virtualenvs/zdsenv/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 377, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/home/spacefox/Dev/virtualenvs/zdsenv/local/lib/python2.7/site-packages/django/core/management/base.py", line 288, in run_from_argv
    self.execute(*args, **options.__dict__)
  File "/home/spacefox/Dev/virtualenvs/zdsenv/local/lib/python2.7/site-packages/django/core/management/base.py", line 338, in execute
    output = self.handle(*args, **options)
  File "/home/spacefox/Dev/virtualenvs/zdsenv/local/lib/python2.7/site-packages/haystack/management/commands/rebuild_index.py", line 16, in handle
    call_command('update_index', **options)
  File "/home/spacefox/Dev/virtualenvs/zdsenv/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 115, in call_command
    return klass.execute(*args, **defaults)
  File "/home/spacefox/Dev/virtualenvs/zdsenv/local/lib/python2.7/site-packages/django/core/management/base.py", line 338, in execute
    output = self.handle(*args, **options)
  File "/home/spacefox/Dev/virtualenvs/zdsenv/local/lib/python2.7/site-packages/haystack/management/commands/update_index.py", line 184, in handle
    return super(Command, self).handle(*items, **options)
  File "/home/spacefox/Dev/virtualenvs/zdsenv/local/lib/python2.7/site-packages/django/core/management/base.py", line 503, in handle
    label_output = self.handle_label(label, **options)
  File "/home/spacefox/Dev/virtualenvs/zdsenv/local/lib/python2.7/site-packages/haystack/management/commands/update_index.py", line 189, in handle_label
    self.update_backend(label, using)
  File "/home/spacefox/Dev/virtualenvs/zdsenv/local/lib/python2.7/site-packages/haystack/management/commands/update_index.py", line 234, in update_backend
    do_update(backend, index, qs, start, end, total, self.verbosity)
  File "/home/spacefox/Dev/virtualenvs/zdsenv/local/lib/python2.7/site-packages/haystack/management/commands/update_index.py", line 89, in do_update
    backend.update(index, current_qs)
  File "/home/spacefox/Dev/virtualenvs/zdsenv/local/lib/python2.7/site-packages/haystack/backends/solr_backend.py", line 54, in update
    docs.append(index.full_prepare(obj))
  File "/home/spacefox/Dev/virtualenvs/zdsenv/local/lib/python2.7/site-packages/haystack/indexes.py", line 207, in full_prepare
    self.prepared_data = self.prepare(obj)
  File "/home/spacefox/Dev/virtualenvs/zdsenv/local/lib/python2.7/site-packages/haystack/indexes.py", line 198, in prepare
    self.prepared_data[field.index_fieldname] = field.prepare(obj)
  File "/home/spacefox/Dev/virtualenvs/zdsenv/local/lib/python2.7/site-packages/haystack/fields.py", line 159, in prepare
    return self.convert(super(CharField, self).prepare(obj))
  File "/home/spacefox/Dev/virtualenvs/zdsenv/local/lib/python2.7/site-packages/haystack/fields.py", line 106, in prepare
    return current_object()
  File "/home/spacefox/Dev/virtualenvs/zdsenv/local/lib/python2.7/site-packages/django/db/models/fields/related.py", line 843, in __call__
    manager = getattr(self.model, kwargs.pop('manager'))
KeyError: u'manager'

Et si j'essaie malgré tout d'accéder à la page de recherche j'obtiens :

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
[17/May/2015 17:49:11] "GET /rechercher/?q=pandoc HTTP/1.1" 500 120786
Internal Server Error: /rechercher/
Traceback (most recent call last):
  File "/home/spacefox/Dev/virtualenvs/zdsenv/local/lib/python2.7/site-packages/django/core/handlers/base.py", line 111, in get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "/home/spacefox/Dev/virtualenvs/zdsenv/local/lib/python2.7/site-packages/haystack/views.py", line 149, in search_view
    return view_class(*args, **kwargs)(request)
  File "/home/spacefox/Dev/virtualenvs/zdsenv/local/lib/python2.7/site-packages/haystack/views.py", line 46, in __call__
    self.form = self.build_form()
  File "/home/spacefox/Dev/virtualenvs/zdsenv/local/lib/python2.7/site-packages/haystack/views.py", line 69, in build_form
    return self.form_class(data, **kwargs)
  File "/home/spacefox/Dev/Django/zds-site/zds/search/forms.py", line 13, in __init__
    super(CustomSearchForm, self).__init__(*args, **kwargs)
  File "/home/spacefox/Dev/virtualenvs/zdsenv/local/lib/python2.7/site-packages/haystack/forms.py", line 100, in __init__
    self.fields['models'] = forms.MultipleChoiceField(choices=model_choices(), required=False, label=_('Search In'), widget=forms.CheckboxSelectMultiple)
  File "/home/spacefox/Dev/virtualenvs/zdsenv/local/lib/python2.7/site-packages/haystack/forms.py", line 21, in model_choices
    for m in connections[using].get_unified_index().get_indexed_models()]
  File "/home/spacefox/Dev/virtualenvs/zdsenv/local/lib/python2.7/site-packages/haystack/utils/__init__.py", line 76, in get_model_ct
    return "%s.%s" % get_model_ct_tuple(model)
  File "/home/spacefox/Dev/virtualenvs/zdsenv/local/lib/python2.7/site-packages/haystack/utils/__init__.py", line 70, in get_model_ct_tuple
    return (model._meta.app_label, model._meta.model_name)
AttributeError: class Container has no attribute '_meta'

Est-ce que c'est les erreurs dont vous parliez ou est-ce qu'il y a autre chose qui chie ?

Pour info, je suis sur ce commit :

1
2
(zdsenv)spacefox@azathoth:~/Dev/Django/zds-site$ git rev-parse --verify HEAD
4d57d256000bcac4f22fe64340a5c59ddf6a3bec

Est-ce que c'est les erreurs dont vous parliez ou est-ce qu'il y a autre chose qui chie ?

la deuxième est la dernière erreur sur laquelle j'ai buté. Elle est là parce que nos objets ne sont pas en bdd alors pour les indexer via haystack c'est difficile.

Ce qui causse aussi peut être la première erreur, mais j'avoue, comme je te l'ai dit sur IRC, que je ne comprends pas comment fonctionne l'API haystack.

Ou alors les fixtures ne fonctionnent plus ?

tout simplement les fixtures ne chargent pas de tutov2 pour l'instant. Il faudrait qu'on modifie les différentes commandes. là il a indexé des tutov1 et non v2

On a une url pour distinguer une version en bêta du reste. Ne serait-il pas judicieux d'en avoir une pour signifier qu'il s'agit d'une version non publiée et pas en bêta ?

Quand je fais mes tests, que je publie, mets en bêta, supprime, déplace… il y a des fois où je ne sais pas (immédiatement) sur quelle version je me situe.

+0 -0

Sur cette page, dans le menu "Actions" à gauche, le texte "Déplacer la partie" n'est pas aligné horizontalement.


Sinon, mais c'est une évolution, ce serait bien d'avoir une page pour déplacer les éléments d'un tutoriel. A l'heure actuelle, il faut se rendre sur l'élément, c'est un peu laborieux.


Il faut aussi se rendre sur l'élément pour avoir certaines actions dans le menu de gauche. Par exemple, je ne peux mettre mon tutoriel en validation depuis une partie ou un chapitre ; il faut revenir à la racine, ce qui n'est pas très pratique.


De plus, il pourrait être intéressant d'avoir une alerte quand on met en validation un contenu comportant des éléments vides (partie/chapitre sans extrait ou extrait vide).


Je préciserais également le texte "Url de la version originale" affiché lors de la demande de validation. S'agit-il bien de l'url de la version publiée, si elle existe ?

D'ailleurs, je ne comprends pas pourquoi ce champ apparaît quand on veut publier un contenu.

+0 -0

Sur cette page, dans le menu "Actions" à gauche, le texte "Déplacer la partie" n'est pas aligné horizontalement.

Front, un petit npm run gulp -- build et c'est réglé :)

Sinon, mais c'est une évolution, ce serait bien d'avoir une page pour déplacer les éléments d'un tutoriel. A l'heure actuelle, il faut se rendre sur l'élément, c'est un peu laborieux.

Écris une issues sur le dépôt principal (pas celui d'artragis)

Il faut aussi se rendre sur l'élément pour avoir certaines actions dans le menu de gauche. Par exemple, je ne peux mettre mon tutoriel en validation depuis une partie ou un chapitre ; il faut revenir à la racine, ce qui n'est pas très pratique.

Imaginons le cas inverse: tout est sur toutes les pages: le menu de gauche serait super-long ! (il faut le voir avec la vue admin, par exemple). Non ?

De plus, il pourrait être intéressant d'avoir une alerte quand on met en validation un contenu comportant des éléments vides (partie/chapitre sans extrait ou extrait vide).

Non. Il est courant pour les auteurs de faire valider des tutos avec des chapitres vides, ou des extraits vides (à venir). Je me trompe ? (artragis avait un exemple chaipluou).

D'ailleurs ce qui serait cool, c'est qu'on ne voit pas un conteneur si il ne contient aucune section (au moins sur les contenus publiés). Avec éventuellement un message Ce contenu est encore en cours de rédaction., histoire d'avoir un truc plus clean que des parties vides.

Imaginons le cas inverse: tout est sur toutes les pages: le menu de gauche serait super-long ! (il faut le voir avec la vue admin, par exemple). Non ?

A coup de menus déroulants ça ne passerait pas ?

@Bat' : à l'affichage d'un tutoriel publié ?

+0 -0

Vayel : Attention, tu tentes de faire passer beaucoup d'évolutions non discutée avec la communauté. 1. Tes envies ne sont pas forcément celles des autres. Par exemple, je n'ai pas envie de cliquer 2 fois pour chaque action que je veux faire. Ce genre de choix mérite l'avis de tous. 2. Cette ZEP est énorme dans son refactoring et surtout dans son impact à la fois techniquement que fonctionnellement. Il sera toujours temps de faire évoluer la base solide que nous développe pierre et artragis une fois qu'elle sera stabilisée et en production.

Ce ne sont que des suggestions, je ne tente pas de faire passer quoique ce soit. Comme je fais un peu de QA en ce moment pour cette ZEP, je note ici tout ce qui me passe par la tête lorsque j'utilise l'interface des tutoriels, mais c'est tout. ^^

+1 -0

Ce ne sont que des suggestions, je ne tente pas de faire passer quoique ce soit. Comme je fais un peu de QA en ce moment pour cette ZEP, je note ici tout ce qui me passe par la tête lorsque j'utilise l'interface des tutoriels, mais c'est tout. ^^

Vayel

C'est pas du tout un reproche et ta QA est la bienvenue parce que pierre et artragis en ont grandement besoin (aujourd'hui plus que jamais à l'approche de la fin) mais les connaissant, ils voudront développer toutes les suggestions de tout le monde pour tenter de faire plaisir à tout le monde et à un moment, faut un peu stopper parce que sinon tu n'arrives jamais au bout.

D'ailleurs, je voulais remercier chaleureusement Eskimon, Andr0 et Vayel pour leur immense aide qui a permis pour la première fois depuis l'instoration de la page de faire passer le nombre de tickets "résolus" au dessus du nombre de tickets "ouverts". Merci, Merci, Merci.

Du coup, il est préférable que j'ouvre des sujets dans le forum Bugs et Suggestions ?

Si ce n'est pas encore en prod ET qu'il ne s'agit pas d'une simple uniformisation des texte/style, oui.

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