You are here -> Home steckdenis's journals » [Progression] Le nouveau système de demandes

[Progression] Le nouveau système de demandes

Le 13/08/2010 à 20h50 by steckdenis, See the Journals, 8 commentaries

Bonjour :D ,

Les plus attentifs auront remarqué que l'activité sur Gitorious a diminué ces derniers jours. La raison est très simple : je travaille actuellement en local sur une réécriture totale d'un des modules les plus important du site web, le système de demandes.

Cette refonte est causée par deux états de faits :

  • Ce module est nul. On se bat contre, il est moche, extrêmement peu puissant. De plus, j'ai eu l'occasion ces derniers jours de rapporter 4 ou 5 bugs sur un Bugzilla (j'essaie de faire marcher Mesa et Gallium, et c'est pas gagné :-° ). J'ai ainsi pu profiter de certaines killer-features de Bugzilla, ainsi que de fonctionnalités de bases manquant à la gestion des demandes de Logram (qui a dit les fichiers joints ?)
  • J'espère dans pas trop longtemps sortir une Alpha 2 de Setup. Cette Alpha 2 sera préparée le mieux possible. Je vise en effet à avoir un site à jour et qui ne ment pas (regardez le texte sur la page d'accueil, c'est lamentable de fausseté de dire qu'on est une distribution alors qu'on ne l'est pas encore), parfaitement traduit en anglais, et apte à accueillir plein de visiteurs et de développeurs. En effet, cette Alpha 2 sortira en même temps que j'annoncerai l'utilisation de LLVM dans le gestionnaire de paquets, événement qui risque de faire un grand choc.

Cette réécriture est loin d'être finie, bien qu'elle ait commencé il y a quelques jours (je prend mon temps :) ). Les fonctionnalités prévues sont à la hauteur de nos besoins :

  • Création et édition de demandes
  • Commentaires des demandes
  • Demandes liées, dépendantes, bloquantes et doublons
  • Fichier attachés, illimité par demande
  • Assignations à des utilisateurs, adresses e-mail ou url. Ainsi, plusieurs utilisateurs pourront être assignés à une tâche. Des adresses e-mail d'utilisateurs non-inscrits sur le site pourront recevoir les commantaires par mail, et les urls permettront de savoir si le bug est géré upstream (on est aussi une distribution qui remonte des bugs ;) ).
  • Projets et composants, pour voir les bugs touchant uniquement Logram DE, le site web, Setup ou les différentes catégories de paquets (KDE, système de base, etc), avec des composants (Setup comprend LPM, libpackage, AppManager, etc).
  • Statistiques générales ou par projet, avec graphiques en SVG (nombre de bugs au cours du temps, etc). Killer feature que je n'ai vu que dans Launchpad pour le moment. (peut-être aussi dans Redmine, je ne m'en souviens plus).
  • Des détails que j'oublie

Bonne nouvelle : les 5 fonctionnalités suivant la première (donc 2, 3, 4, 5, 6) sont implémentées. La première le sera bientôt, c'est juste un peu difficile :-° . Les statistiques viendront à peu près en même temps que la création et l'édition, du fait que ce sont justement ces stats qui compliquent le point n°1.

Bon, fini le blabla, passons aux screenshots :D :

Index des bugs
Tout d'abord, la liste des bugs (je vous épargne la page d'index des demandes qui n'a pas changée). Plus claire, plus propre. Une amélioration est le fait que les types de demandes (bugs, idées, etc) ont maintenant 3 couleurs : la normale, une version foncée et une version claire. Ces deux dernières sont calculées automatiquement par un petit morceau de code Python, donc ça ne prend pas plus de place en BDD et ça permet de colorer plus de choses sans s'éclater les yeux. Note : dans ce qui va suivre, pas mal de choses seront roses. En effet, j'ai testé avec un beau rouge pur, donc ça déchire un peu. En version finale, ce sera plutôt gris, jaune, vert clair, etc.


Page d'un produit
Page d'un produit, découpé en composants, avec leurs descriptions :)


Affichage d'une demande
Affichage d'une demande, en rose :-°
Les puces rondes sont une amélioration de la CSS. Les anciennes étaient moches et pas centrées. Vous pouvez remarquer qu'aucune fonctionnalité n'est perdue, et qu'il y en a plein de nouvelles. Ok, j'avoue, on ne peut plus noter une demande, mais c'était inutile et pas utilisé.


Attachement
Affichage et gestion d'un attachement. Il est possible de cocher une case indiquant par exemple qu'un patch doit être ignoré car une meilleure version a été proposée. Fontionnalité honteusement repompée de Bugzilla.


Assignés
Gestion des assignés. Simple, clair et efficace. Les utilisateurs ne peuvent pas modifier les assignations. S'ils veulent recevoir des messages par mail, il leur suffit de s'abonner au sujet des commentaires :) .


Demandes liées
Demandes liées de plusieurs manières. Oui, c'est légèrement copié/collé de la gestion des assignés (en fait c'est l'inverse, les assignés sont copiés/collés des demandes liées). Là aussi, n'importe quel codeur/admin/modo sait gérer ça.

Alors, qu'en dites-vous ?

J'essaierai de vous tenir au courant des choses dans les commentaires de cette news, avec de beaux screenshots. Désolé pour ceux qui ont de petits écrans, j'ai déjà essayé de faire le plus petit possible (il faudrait que quelqu'un fasse un thème qui place le menu de gauche à un autre endroit, ou en tous cas en perdant moins de place).

(HS: Vous avez vu mes images centrées ? :D Fouillez l'historique du wiki sur la page d'accueil pour voir comment j'ai fait)

Commentaries

Author Message
leo2urlevan
# le 14/08/2010 à 1h15

Group : Member

Eh bien bravo ! ça va faire un très beau code Django à regarder tout ça, miam miam... :euh:

steckdenis
# le 14/08/2010 à 10h08
Ça marche !
Avatar
Group : Administrateur

Pour te faire plaisir, et pour tester Git, je t'ai mis le code sur lequel je travaille en ligne ici. Tu peux regarder les commits qui arrivent si tu veux.

1
2
3
4
5
6
git clone --depth 1 git://gitorious.org/logram/website.git
# ou
cd logram/website
git pull
# puis
git checkout newdemands

KDE le fait depuis 10 ans.

jokester
# le 14/08/2010 à 11h09

Avatar
Group : Member

Chouette chouette ! De mon côté j'ai essayé de me pencher sur django, et j'ai 2-3 trucs qui coincent pour pouvoir faire des tests. Du coup je n'ai encore rien ajouté à mon repository git :/ Je suis volontaire pour effectuer une refonte de la charte, pour optimiser l'espace de lecture (je suis sur un portable avec du 1280x800 et c'est presque un peu juste quand tu mets des captures d'écran...) et un renouvellement de la charte graphique (j'ai quelques SVG sur le grill à vous suggérer).

Je reviens vers vous ce soir ou demain !

steckdenis
# le 14/08/2010 à 11h51
Ça marche !
Avatar
Group : Administrateur

Je ne pense pas qu'il faille changer le thème du site ou la charte graphique de Logram, sauf si ce que tu proposes est immensément mieux.

Ce thème a été designé par quelqu'un de très bon (lien tout en bas de la page), qui veut en faire son métier. C'est un cadeau qu'il a fait à Logram et que j'aime beaucoup :D .

De plus, le thème actuel est très proche du thème Oxygen de KDE (même couleurs, dégradés, ombres, style rafraichissant, etc). C'est un élément que je veux garder car Logram est assez proche de KDE.

Et puis, le site de Logram est un des plus beau site de Logiciel Libre que je connaisse, je n'en ai pas encore vu de plus joli, à vrai dire. Mais ce n'est peut-être qu'une question de gout.

Si t'as envie de faire des images, un superbe fond d'écran vectoriel est plus qu'attendu par la communauté (j'en ai déjà fait deux, mais ils sont moches). C'est un élément capital, car il sera aussi utilisé pour le thème GRUB, l'écran de démarrage, l'écran de sélection des utilisateurs, l'arrière-plan de l'Assistant et certains arrière-plans de documents (ou pages web) en rapport avec Logram, dans une forme allégée et convertie en niveau de gris.

PS: J'ai un écran 1280x1024 et 1366x768 (le large est celui de mon roxxor de Netbook :D ), je vous donc très bien de quoi tu veux parler. Pour les prochains screenshots, j'essaierai un petit hack CSS sur mon site de développement pour pouvoir plus réduire la page (retirer le min-width de body ). Ainsi, je pourrai vous proposer des images plus étroites, mais plus hautes (ce qui ne pose pas de problème car mes écrans sont l'un au-dessus de l'autre, et que je peux étirer les fenêtres jusqu'à ce qu'elles fassent 1792 pixels de faut :) ).

KDE le fait depuis 10 ans.

jokester
# le 14/08/2010 à 16h10

Avatar
Group : Member

Concernant la taille des images, pourquoi ne pas rajouter un petit plugin "thickbox" pour permettre l'affichage de vignette dans les forums, et lors du clic hop, magie du javacsript... ? Je cite Thickbox parce qu'il est très utilisé (dans les CMS notamment) et qu'il se base sur JQuery. Il y en a sans doute d'autres.

Au sujet de la charte graphique : je suis critique, mais tout dépend des objectifs de Logram. Je reconnais la qualité du site, mais quand tu me dis :

« un des plus beau site de Logiciel Libre que je connaisse, je n'en ai pas encore vu de plus joli, à vrai dire »

Non non non ! Le concepteur de la charte graphique est doué, mais je n'irai pas jusque là :o .

Je vais publier un journal sur le sujet dans pas longtemps de toute manière. Il sera notamment pourvu de nombreux screenshots pour illustrer ce qu'il se fait actuellement, dans le monde propriétaire comme dans le monde libre, en termes de technologie et de communication. (j'avoue que ma suggestion sur Thickbox n'était pas sans dessein :p) J'espère ainsi mieux vous montrer là où je veux en venir.

:-° et pour tenter de gagner en crédibilité sur la teneur de mes propos, j'ai travaillé trois ans comme intégrateur de chartes graphiques dans une boite développant du logiciel libre. Ça ne fait pas de moi un champion de design (je n'ai pas fait d'études artistiques, je suis en formation en école d'ingé en info/élec), j'ai juste pu acquérir quelques notions au fil de mon travail, qui me font tiquer en étudiant ce site.

De toute manière c'est très bien qu'on ne soit pas tout à fait d'accord sur ce point, parce que tu as mieux à faire que de te pencher sur le sujet ! (suite Setup, management d'équipe tout ça... ;) )

Editing

  • le 14/08/2010 à 16h11 by jokester : orthographe ...
steckdenis
# le 14/08/2010 à 16h29
Ça marche !
Avatar
Group : Administrateur

Ah ben t'aurais du dire tout de suite que tu étais dans le milieu pro. J'ai l'habitude d'être un peu sceptique quand quelqu'un m'annonce une grosse refonte, surtout graphique (c'est difficile à bien faire, surtout quand j'aime bien l'existant). J'ai déjà eu, pendant les deux ans et demi de Logram, l'occasion de voir certains talents bien particuliers (bouton fait avec Paint avec un gros texte bleu dessus, par exemple :-° ).

Je suis donc ouvert à toute proposition, en espérant que changer (éventuellement) de design peu après que Titouille soit passé ne va pas lui déplaire. C'est une grosse pièce de design et une excellente référence pour lui, lui retirer ça pourrait lui retirer un emploi :unsure: .

Sinon, j'ai toujours eu tendance à ne pas trop aimer la mode Web 2.0 flashy javascript. Je préfère coller rigoureusement aux standards et à l'accessibilité. Le seul morceau de Javascript sur ce site est la lForm (la zone de texte où on entre son message), et son bouton Aperçu, qui utilise de l'AJAX. Le ratio valeur ajoutée/complexité de ce code est énorme :) .

N'oublie pas non-plus que ça doit rester simple à coder, et que comme tout doit marcher impeccablement sans Javascript, et que je n'ai pas le temps de coder les fonctionnalités en double, il ne faut pas trop s'éloigner du xHTML et CSS.

Voilà, je te laisse travailler maintenant :) . Sachant que je ne m'y connais que très peu, je n'aurai mon mot à dire que devant le résultat final :) .

PS: Pour l'agrandissement des images avec ce que tu propose, j'ai déjà vu (utilisé sur le Site du Zéro pour certaines images il me semble). Ça n'empêche pas de charger une grosse image (et si c'est le cas, je n'ai pas envie de m'embêter avec la génération de miniatures), et il me semble que, tout du moins sur le SdZ, ça a quelques problèmes quand l'image est vraiment grande (impossible de la zoomer à 100% si elle dépasse la page, donc on perd des détails). Mais bon là aussi, j'ai vu ça vite fait sans m'y attarder.

KDE le fait depuis 10 ans.

steckdenis
# le 16/08/2010 à 14h22
Ça marche !
Avatar
Group : Administrateur

Bonjour :) ,

L'édition des demandes marche :D ! Ça a été difficile, mais le code est assez court. La difficulté est qu'une demande s'édite en deux étapes :

  • Définir le produit, la plateforme et le type (bug, etc)
  • Définir le reste, dont la version du produit, ce qui fait qu'on a besoin de déjà connaître le produit pour sélectionner la version.

Il y a aussi quelques détails apportés par les fonctionnalités que j'ai prévues :

  • Ajouter automatiquement à une demande les assignés par défaut d'un produit. Ainsi, lorsqu'un bug sera remplir pour Logram DE, Léobuntu recevra un mail lui disant qu'un bug a été créé, et il sera mis au courant. :)
  • Quand on change le produit d'une demande (possible :) ), il faut retirer les assignés automatiques de l'ancien produit, et uniquement ceux-là, et ajouter ceux du nouveau produit. Ainsi, on ne flood pas trop de monde (ni n'en ignore d'autres) si quelqu'un se trompe de produit quand il crée sa demande.

Screenshots time :)

Step1
Première étape de la création/édition. En réalité, quand on édite une demande, on arrive tout de suite à l'étape deux, et on peut revenir à cette étape en cliquant sur les liens «Modifier» que vous verrez dans le prochain screenshot.

Step2
Deuxième étape, celle où on change tout le reste (aussi bien à la création qu'à l'édition). Quand on crée une demande, on n'a pas accès au status (toujours ouvert), à la priorité (toujours celle par défaut, c'est à dire normale (pas comme les demandes actuelle qui mettent "très bas" par défaut :-° )), et au pourcentage d'avancée.

Voilà :) .

KDE le fait depuis 10 ans.

steckdenis
# le 22/08/2010 à 18h17
Ça marche !
Avatar
Group : Administrateur

Bonjour,

Les demandes arriveront ce soir ou demain. J'ai corrigé pas mal de bugs, tout marche bien. Il n'y aura pas de statistiques néanmoins, car les seules intéressantes (évolution du nombre de demandes au fil du temps) nécessiteraient deux grosses requêtes supplémentaires à chaque modification de demande, plus la génération d'un SVG, etc. Je garde donc ça pour plus tard.

J'ai réussi à importer les demandes actuelles vers le nouveau format. N'en créez donc plus ^^ . L'import comprend bien entendu les commentaires, puisqu'il s'agit simplement de sauvegarder le topic_id de la demande, donc c'est simple. La liste des assignés est perdue, mais elle n'était que peu utilisée. Le reste est bon.

De plus, j'ai ajouté une détection du produit, composant et version. C'est en fait assez simple. J'ai créé un petit script Python qui prend comme entré un fichier SQL préparé, et sort un fichier SQL pour insérer les nouvelles demandes. Il me demande pour chaque demande si elle fait partie de LPM, Logram DE ou le site web. Il me suffit d'appuyer sur une touche, et tout est fait :) :

 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
prod = raw_input('    (L)pm, site (W)eb ou (D)e ? ')
fixed_in_id = 'NULL'

if prod == 'l':
    product_id = '1'
    component_id = '3'
    product_version_id = '2'

    if parts[13] == '3':
        fixed_in_id = '3'
elif prod == 'w':
    product_id = '2'
    component_id = '6'
    product_version_id = '4'

    if parts[13] == '3':
        fixed_in_id = '5'
elif prod == 'd':
    product_id = '3'
    c = raw_input('        (A)pplications ou (B)ibliothèques ? ')

    if c == 'a':
        component_id = '8'
    else:
        component_id = '7'

    product_version_id = '6'

    if parts[13] == '3':
        fixed_in_id = '7'

Les IDs sont codées en dur pour correspondre le mieux. Par exemple, tous les bugs de LPM sont pour la version Alpha 1, puisque le site web n'est arrivé que peu avant l'alpha 0, et que l'alpha 2 est sortie.

De même pour le site web, qui suit maintenant une numérotation particulière en 4.x, le x ne voulant plus dire qu'on recode tout le site (comme 3.5, etc), mais bien seulement une partie :

  • 4.0 : version de dev d'août 2009
  • 4.1 : version sortie en octobre, avec les sondages
  • 4.2 : ajouts de Keisuke (RSS, fil d'ariane) + WebSVN (il me semble, il se peut qu'il soit déjà arrivé avec la 4.1)
  • 4.3 : ajout du Pastebin et du coin du développeur
  • 4.4 : refonte de la gestion des paquets pour le buildserver
  • 4.5 : refonte de la gestion des demandes

La 4.5 sortira donc aujourd'hui ou demain :) .

KDE le fait depuis 10 ans.