source: spip-zone/_plugins_/tickets/trunk/README.md @ 81471

Last change on this file since 81471 was 81471, checked in by severo@…, 5 years ago

tickets - MAJ readme

File size: 12.4 KB
Line 
1# README
2
3Système de suivi de bugs
4
5Références :
6
7 * http://contrib.spip.net/Tickets-suivi-de-bugs
8 * http://plugins.spip.net/tickets.html
9
10## TODO
11
12Quelques idées d'évolution du plugin Tickets
13
14[ ] mutualiser le code entre contenu/ et content/
15[ ] remplacer les champs "version", "jalon", "composant", "projet", "sévérité", "navigateur", "tracker" par des mots-clés
16[ ] permettre à l'auteur d'un commentaire de le supprimer
17[ ] ajouter la possibilité de suivre un ticket (bouton Suivre sur la page du ticket), et recevoir les notifications des modifications ou ajouts de commentaires - ça simplifiera aussi le formulaire de forum, en supprimant la case à cocher "Prévenez-moi de tous les nouveaux commentaires de cette discussion par email" (plugin comments)
18[ ] supprimer la redondance : le statut ou l'assignation du ticket peuvent déjà être modifiés par les crayons, ou dans le formulaire d'édition du ticket - on peut les retirer du formulaire de forum.
19[ ] lier les plugins tickets et agenda pour permettre de créer facilement des dates limites, pour les tickets, et les exporter dans un agenda (CalDAV ?), et même éventuellement déclencher des notifications
20[ ] afficher, au lieu du fil de commentaires, un fil d'activité, mélangeant commentaires et révisions (champs et mots-clés associés ou supprimés) - en passant, on pourrait mettre le texte du ticket dans le flux, come premier commentaire.
21[ ] crayon d'assignation du ticket : afficher la trombinette si gravatar est activé dans le contrôleur -> Non, en tout cas, pas tant que le contrôleur sera un <select> (pas d'images dans les select)
22
23## En cours
24
25### pour 3.2.0 - Migration de 7 champs en groupes de mots clés
26
27Actuellement la table spip_tickets contient sept champs qui servent à décrire sémantiquement les tickets. Pour trois d'entre eux, les choix possibles sont fixés en dur dans le code : severite (bloquant, important, normal, peu_important), tracker (probleme, tache, amélioration) et navigateur (android, firefox...) Les quatre autres sont désactivés par défaut, et ne proposent aucun choix par défaut, mais il est possible d'en ajouter via la page de configuration ou les variables globales : projet, composant, version, jalon.
28
29On pourrait migrer ces 7 champs sous la forme de mots/groupes de mots.
30
31À noter que la création des mots-clés n'aurait lieu que lors de la migration, et pour une installation fraiche, aucun groupe de mots ne serait créé.
32
33Plusieurs problèmes se posent :
34
35* gestion des langues (il faudra éditer tous les mots-clés si on ajoute une nouvelle langue, alors que dans le cas des champs, c'est géré par les fichiers de langue, puisque la liste des choix est fermée)
36* tri des tables de tickets : comment choisir les colonnes à afficher si ce sont des groupes de mots-clés, et non plus des champs ? Tous les mots-clés ? Une sélection configurée dans la page de conf des tickets ? Aucun groupe ? Et pour chaque groupe affiché dans la table, comment gérer le tri par colonne dans ces cas ?
37* risques de tout casser pendant la migration
38* pas besoin de supprimer les champs, il suffit de pouvoir les désactiver si on n'en a pas besoin.
39
40Les avantages à migrer les champs sous la forme de mots/groupes de mots sont :
41
42* faciliter la personnalisation des champs et des choix proposés pour chaque champ (objets éditoriaux, au lieu de valeur en configuration = pénible à changer, ou en dur dans le code). Il sera ensuite possible aux responsables du site d'ajouter/modifier/supprimer des niveaux de sévérité du bug, par exemple, modifier la liste de navigateurs, voire également supprimer des critères (si tracker ou composant ne leur paraît pas utile, par exemple) ou en ajouter d'autres (thème du ticket, région géographique concernée, ou tout autre critère qui leur paraisse pertinent).
43* github fait comme ça : chaque projet décide de la sémantique et la classification de ses tickets (encore plus à plat pour github : un seul groupe de mots)
44
45On fera les modifications dans trunk, avec la version 3.2.0. Pour conserver le fonctionnement précédent, utiliser la branche branches/v2 (c'est toujours la version stable, avec ZIP).
46
47#### Partie base de données
48
49On décide de faire la migration automatiquement à la mise à jour du plugin, et non pas sur un déclenchement manuel et par champ, qui était une autre possibilité, afin d'éviter d'avoir à gérer la cohabitation entre les deux situations dans le code.
50
51On met à jour la version de la base (schema) à 2.0.0, et dans autorisations, on ajoute
52
53    $maj['2.0.0'] = array(array('maj_tickets_200'));
54
55Dans la fonction `maj_tickets_200()`, on répétera, pour chacun des 7 champs, les étapes suivantes.
56
571. Récupérer la liste des choix
58
59On récupère dans un tableau, vide par défaut. Dans les trois premiers cas, c'est directement dans le code, il suffit de copier. Dans les quatre autres cas, on ajoute au tableau les éventuelles valeurs trouvées dans la table spip_meta (configuration) et dans la variable globale _TICKETS_LISTE_.... Si le tableau est vide, on passe à l'étape 5.
60
612. Créer un groupe de mots.
62
63Pour le titre, le nom du champ. On ne vérifie pas s'il existe un autre groupe avec le même nom, puisqu'il n'y a pas de condition d'unicité sur le titre. On ne gère pas le multilinguisme (on le laisse aux adminsitrateurs/trices), on met juste le nom dans la langue du site.
64
65Mettre aussi dans le descriptif rapide une indication que le groupe a été créé par le plugin tickets ?
66
67Enfin, dans la configuration du groupe :
68
69* cocher (façon de parler) "associable avec tickets"
70* cocher "On ne peut sélectionner qu’un seul mot-clé à la fois dans ce groupe", sauf peut être pour "navigateurs".
71* cocher uniquement "Les mots de ce groupe peuvent être attribués par : les administrateurs du site" et pas les rédacteurs.
72
733. Créer les mots-clés
74
75Pour chaque élément du tableau, créer un mot-clé : titre et éventuellement descriptif rapide dans la langue du site.
76
774. Création des liens
78
79Associer chaque ticket au nouveau mot-clé qui correspond à la valeur du champ (si le champ est rempli).
80
815. Ménage
82
83Supprimer la colonne de la table spip_tickets, et l'éventuelle configuration des choix possible du champ dans spip_meta.
84
85#### Partie code
86
871. Virer les textarea dans la page de configuration des tickets.
882. Virer la configuration "utiliser les mots-clés" - elle n'a pas de sens, puisque c'est géré dans la configuration de chaque groupe de mots (associer ou non avec les tickets). On laisse par contre une explication avec la liste des groupes de mots associables aux tickets, avec lien vers leur page privée, plus un lien globale de gestion des groupes de mots. Si aucun groupe de mots n'est associable aux tickets, un message spécifique pour expliquer qu'on peut lier des mots aux tickets.
893. Dans les squelettes, tout considérer comme des mots-clés, et non plus comme des champ. Dans les formulaires, les crayons (vues et contrôleurs) et les tables qui listent les tickets. Ne pas oublier de prendre en compte la notion de groupe important (pour obliger à choisir une valeur ? Est-ce que ce choix oblige à remplir le champ, ou non ?) et d'unicité du choix, si cette option du groupe de mots est cochée.
90
91## Versions
92
93### 3.2.0
94
95* migration de sept champs (severite, tracker, navigateur, projet, composant, version, jalon) vers des groupes de mots-clés :
96
97 * fonction de migration (81313, 81319) - voir le détail au dessus.
98 * numéro de schema pour la migration : 2.0.0 (81340)
99 * les mots-clés créés pour le champ severite ont un logo, correspondant à la puce associée dans les squelettes (81326)
100 * les groupes de mots-clés et les mots-clés d'un même groupe sont ordonnés, ce qui permet après migration de tout afficher dans le même ordre (81328, 81335)
101 
102* squelettes :
103
104 * afficher les logos des mots-clés dans la vue groupemots (81327, 81329)
105 * simplification du critère de recherche des groupes de mots associables aux tickets (81343)
106 * afficher les colonnes de mots dans le tableau de liste de tickets selon la configuration demandée (81469)
107 * afficher le logo d'un mot s'il existe (81470)
108 
109* fonctionnalités :
110
111 * prendre en compte id_mot ou mots dans l'URL de la page d'édition d'un ticket, seulement pour la création d'un nouveau ticket (81342)
112 * ajouter les mots-clés dans le formulaire de tri des tickets (81345, 81348, 81451)
113 * nouveau critère {mots_pargroupe} pour n'afficher que les tickets associés à au moins un mot de chacun des groupes passés en paramètre (81384, 81385, 81455, 81456, 81459, 81460)
114
115* configuration :
116
117 * suppression de la configuration "tickets/general/lier_mots" qui n'est pas d'utilité, puisque c'est dans la configuration des groupes de mots qu'on spécifie s'ils peuvent ou non être associés à des tickets (81338)
118 * nouveau paramètre "tickets/general/colonnes_groupesmots" pour choisir comment afficher les mots-clés dans les tableaux de tickets (81468)
119
120* bugs :
121
122 * dans le formulaire de forum, ne pas ajouter des saisies pour les champs optionnels des tickets car ils ne sont pas traités, seuls l'assignation et le statut le sont (81349)
123
124* divers :
125
126 * factorisation du code (81371)
127
128### 3.1.0
129
130* liens tickets-objet:
131
132 * table spip_tickets_liens pour lier tout objet aux tickets (81161, 81210)
133 * pipeline affiche_milieu pour montrer et modifier la liste de tickets associés, sur la page privée d'un objet associable aux ticket (81162, 81172)
134 * affichage des objets liés sur la page privée (81173) et publique (81174, 81176, 81212) d'un ticket
135 * paramètre $associer_objet dans le formulaire EDITER_TICKET pour permettre de créer et associer un ticket, puis revenir à l'objet associé (81170)
136 * formulaire d'édition d'un ticket : on ne l'affiche pas si on cherche à l'associer à un objet et que ce n'est pas autorisé (81181, 81182)
137 * configuration : choisir les objets associables aux tickets - à noter : tous sont désactivés par défaut, et il n'est pas interdit d'autoriser l'association entre tickets (81171)
138 * autorisation : fonction d'autorisation associertickets
139 * squelette (noisette) pour créer et associer un ticket à insérer dans la page d'un autre objet (81183)
140
141* squelette public des tickets :
142
143 * critères objet/id_objet pour filtrer la liste des tickets selon leur association ou non à un objet (81177)
144 * réduction de la différence entre inclure/liste_tickets_ss_version.html et inclure/liste_tickets.html (81179)
145
146* divers :
147
148 * MAJ du fichier README pour prochaines évolutions (81233, 81239, 81240)
149 * squelette public d'un ticket : style (81211)
150
151### 3.0.0
152
153* mots-clés :
154
155 * configuration : permettre les mots-clés sur les tickets
156 * configuration : comme seulement pour les groupes de mots-clés configurés pour pouvoir être associés aux tickets, on affiche pour rappel la liste de ces groupes dans la page de configuration
157 * fonction d'autorisation "associermots" pour les tickets
158 * crayon pour associer/détacher les mots-clés, avec un select par groupe de mots-clés
159 * saisies pour les mots-clés dans le formulaire d'édition d'un ticket (80807)
160 * si le paramètre de conf "unseul" du groupe de mots est activé, alors on ne permet de sélectionner qu'un seul mot (select simple)
161
162* squelette public d'un ticket :
163
164 * auteur et date sortent de la liste des champs pour aller dans info-publi sous le titre (80622)
165 * statut et assignation du ticket passent de formulaire à seulement crayons dans la page publique du ticket (80610, 80695)
166 * affichage du logo de l'auteur assigné dans la vue de l'assignation (81123)
167 * notification envoyée quand l'assignation est changée par le crayon (80698)
168 * forum : pas de réponse directe à un message (thread) si les commentaires sont affichés en liste (81039)
169 * forum : on autorise à commenter un ticket fermé (81113)
170 * forum : ne pas afficher le titre du commentaire, parce q'il est toujours égal au titre du ticket (81120)
171 * réduction de la différence entre content/ et contenu/ (80696)
172
173* divers :
174
175 * configuration : message pour inciter à utiliser le plugin Autorité pour plus de contrôle sur les forums (autoriser l'auteur·e d'un commentaire à le modifier) (81105)
176 * configuration : remplacement de saisies oui_non par des saisies checkbox (80514)
177 * bug : détail javascript dans les formulaires de statut et assignation (80548)
178 * bug : coquille dans la fonction d'assignation (80697)
179 * bug : appel des bonnes fonctions d'autorisation (81034)
180 * indentation (81038, 81178)
181 * fichier README pour la liste d'évolutions (81116, 81119)
Note: See TracBrowser for help on using the repository browser.