Todo

Écrire rapidement des listes de choses à faire, sans se prendre la tête.

Ce plugin est une extension de Textwheel, il ajoute de nouveaux raccourcis typographiques permettant de générer rapidement une liste de choses à faire proprement présentée, et triable.

Il ne s’agit pas d’une fonctionnalité mais juste de la présentation.

Installation

La branche v1 du plugin est compatible SPIP 2.1 et nécessite Textwheel ainsi que Bonux. Les nouvelles branche v2 et ultérieures ne nécessitent plus que Textwheel distribué par défaut avec SPIP.

Les branches v2 et ultérieures apportent de nouvelles fonctions au plugin mais assure une compatibilité ascendante parfaite avec la branche v1.

Utilisation de base

Une liste commence par une suite de trois +++ suivie d’un retour à la ligne, et se termine de la même façon ; ou bien elle est incluse entre les marqueurs <todo></todo>. Cette deuxième solution se dégrade mieux lorsque le plugin n’est plus là : les balises deviennent invisibles et il ne reste que la liste à l’intérieur.

Ensuite, c’est le premier caractère qui détermine le statut de la tâche qui se limite pour la branche v1 à :

  • + indique quelque chose à faire;
  • o (lettre o minuscule) signifie une tâche en cours;
  • - indique une chose faite.

Pour les branches v2 et ultérieures, les nouveaux statuts ci-dessous ont été rajoutés :

  • x (lettre x minuscule) indique une tâche abandonnée;
  • = signifie une tâche arrêtée temporairement;
  • ! indique qu’une action est nécessaire pour débloquer cette tâche;
  • ? indique qu’on ne connait pas le statut exact de cette tâche.

Utilisation avancée avec les branches v2 et ultérieures

A partir de la branche v2 le plugin se dote des améliorations suivantes :

  • qualification des tâches avec une priorité, des catégories et des informations typées;
  • regroupement de tâches par projet;
  • précision du titre d’une tâche avec un descriptif libre.

Toute ces informations complémentaires s’écrivent à la suite du titre de la tâche séparées par un espace.

Priorité

Toute tâche peut être affectée d’une priorité écrite @n ou #n où n est un chiffre compris entre 1 et 9.

Catégories

Toute information écrite @tag ou #tag est considérée comme une catégorie à partir du moment où «tag» est une chaine alphanumérique.

Attention : le choix @ ou # est fait une fois pour toute pour le site au travers d’une variable globale qui vaut @ par défaut. Vous pouvez la modifier dans votre config/mes_options.php.

Pour chaque tâche la liste des étiquettes est collectée et affichée précédée d’un petit caractère habituel pour les tags. Si un tag correspond au titre d’un mot-clé SPIP, alors il est affiché comme un lien vers la page mot-clé associée.

Informations complémentaires typées

Les informations typées sont écrites avec la syntaxe type:valeur où type et valeur sont des mots pouvant contenir des caractères alphanumériques y compris «-», «.» et «_». Les types d’information sont extensibles mais le plugin ToDo propose déjà 4 types prédéfinis :

  • «debut» : pour la date de début de la tâche sous la forme 2012-06-02;
  • «fin» : pour la date de fin de la tâche sous la forme 2012-06-09;
  • «commit» : pour un numéro de commit générant un lien vers son dépôt et pouvant s’écrire,
    • z72463 pour la zone en SVN,
    • c12922 pour le core en SVN,
  • «version»: un numéro de version.

A partir de la v3, la forge git de SPIP est prise en compte dans l’information «commit» et dans une nouvelle information nommée «issue». Pour chacune des ces informations le format est g:orga:repo:ref, où:

  • g indique la forge git de SPIP,
  • orga est un identifiant abrégé d’un caractère pour l’organisation soit
    • x pour spip-contrib-extensions,
    • s pour spip-contrib-squelettes,
    • t pour spip-contrib-themes,
    • o pour spip-contrib-outils,
    • g pour spip-galaxie,
  • repo, le nom du dépôt
  • et ref est soit le sha complet du commit, soit le numéro du ticket.

Il est possible d’insérer plusieurs informations de commit pour la même tâche. Celles-ci seront affichées comme une liste de révision séparées par une virgule.

Projets

Un projet est détecté par le caractère «:» en début de ligne. Tout le reste de la ligne constitue le nom du projet. Les tâches d’un projet sont regroupées dans un même bloc de visualisation et numérotée de 1 à n.

Descriptif complémentaire libre

Toute ligne ne commençant pas par un caractère signifiant (statut ou projet) est donc un descriptif libre. Chaque ligne du descriptif est affichée à la suite du libellé de la tâche.

Intégration au Porte-plume

La branche v2 pour SPIP 3 permet aussi d’utiliser la barre d’édition du Porte-plume pour ajouter une tâche ou en changer le statut. Un bloc spécial d’édition est dédié aux todos et propose un bouton par statut.

Evolutions

  • version 3.0.2 : compatibilité spip 4 et ajout de la prise en compte de la forge git de spip pour les commits et les tickets
  • version 2.2.0 : changement de la stratégie et du prototype des fonctions de formatage des informations typées
  • version 2.0.7 : ajout de la possibilité de lier le tag à un mot-clé SPIP
  • version 2.1.0 : ajout du # comme indicateur de priorité ou d’étiquette en plus du @ qui reste la valeur par défaut.
  • version 2.1.1 : ajout d’une classe «fermee» à la todolist si celle-ci ne contient que des tâches dans un état final.
  • version 2.1.2 : ajout d’un attribut format optionnel à la balise <todo> qui permet d’utiliser le squelette inclure/todo_$format.html pour afficher la todo.
  • version 2.1.3 : ajout d’une ancre au début de chaque todo d’une page.
  • version 2.1.4 : amélioration de la regexp pour éviter l’incompatibilité avec le raccourci page ou onglet du CS.

Exemple pour la branche v1

+++
- Ça c'est déjà fait
+ Une chose
+ Deux ou trois choses
o Suis en train de le faire
- Well done
+++

ou bien

<todo>
- Ça c'est déjà fait
+ Une chose
+ Deux ou trois choses
o Suis en train de le faire
- Well done
</todo>

Ce qui génère automatiquement ceci, avec les titres de colonnes permettant de trier par statut, par titre, ou de remettre dans l’ordre :

Exemple pour la branche v2

<todo>
:Projet 1
- Refaire fonctionner l'aide en ligne des plugins fin:2013-05-26 commit:z72345 @1 @aide @sad
o Utiliser Tickets pour remonter les problème du site, les actions à réaliser voire les erreurs sur la présentation des plugins @2 @sad commit:z70345 
- Ajouter un menu des langues disponibles fin:2013-05-26 commit:c12345 @1 @traduction
+ Vérifier la gestion correcte des langues dans les pages @1 @traduction
+ Vérifier les traductions @1 @traduction
On parle ici des traductions du plugin Plugins SPIP et du Upload de SPIP !
x Mettre en place la gestion des tags en plus des catégories (plugin étiquettes ?) fin:2013-05-28
= Revoir la présentation du formulaire de sélection des plugins en vedette ou supprimer cette fonction

:Projet 2
! Etendre le serveur d'aide et le promouvoir @2 @aide @sad
? Ajouter une fonction d'agrégateur de profil utilisateur pour compléter l'aspect développement @3
</todo>

Ce qui génère automatiquement ceci, avec en particulier la colonne Révision qui possède des liens vers la Zone ou le Core :

Discussion

14 discussions

  • 1

    Bonjour,

    Ce plugin qui semble peu utile rend d’excellents services ! Pensez-vous qu’il sera porté sur la version 4.0 de Spip ?

    Merci

    • Bonjour,

      Il l’est déjà compatible SPIP 4. C’est juste que le tag n’a pas encore été créé.
      J’essaye de m’en occuper au plus vite.

    Reply to this message

  • 1
    spipfactory

    Bonjour,
    je n’arrive pas a faire fonctionner le plugin sur l’environnement suivant
    SPIP 3.3.0-dev GIT [master: 33a30511]

    Todo 2.3.0
    TextWheel pour SPIP 1.6.5
    SPIP Bonux 3.7.2

    une idée , une piste , un tuto
    Merci

    • Tu veux dire quoi par “pas faire fonctionner” ? Tu n’arrives pas à l’activer ou les raccourcis ne marchent pas ?

      Par contre, je ne vois pas le rapport de Todo et de Bonux ?

    Reply to this message

  • 1

    Pour info après changement des bornes

    compatibilite=“[3.0.0;3.2.*]”

    RAS

    • Bonjour,
      Merci pour ce plugin.
      J’ai fait un essai dans un article. Il y a un point qui semble ne pas fonctionner c’est la fonction tri (bien pratique, si la liste est longue ! )
      Lorsqu’on demande le tri par @n on obtient visiblement le tri (inverse) sur la balise #

      Je travail sous SPIP 3.2.1 [23954]

    Reply to this message

  • 2

    Une astuce soufflée par Matthieu sur IRC :

    Si on veut utiliser le plugin TODO dans un squelette on peut le faire en utilisant le code suivant (dans le fichier html du squelette) :

    [(#VAL{
    +++
    - créer la compo xml et html
    o régler le html / css 
    + rediriger vers le bon onglet de la page "bidule"
    + valider
    + livrer / mettre en prod
    +++
    }|propre)]

    (cf l’image résultante)

    Et c’est assez génial quand on bosse sur un squelette en développement !

    Merci Vincent, merci Matthieu !

    ++
    Cyril

    • Polar oïd

      Bonjour,

      Comment faire pour éditer directement la liste dans la page appelée ?

    • Euh si tu parles de l’exemple en squelette du commentaire, bah tu peux pas, puisque justement le texte est dans le squelette. Sinon pour le plugin bah c’est à écrire dans du texte SPIP, donc c’est en éditant le texte, par exemple avec le plugin Crayons.

    Reply to this message

  • Je suis en train de découvrir et de tester ce plugin, il est super pratique, merci aux 2 auteurs.
    J’ai noté un truc problématique dans le code HTML produit : certains éléments sont encapsulés dans des <p> là où il ne faut pas.
    En schématisant, ça donne ça :

    <p><!--ajaxbloc--></p>
    <div class='ajaxbloc'>
        <p><a class='ancre'></a></p>
        <table class="todolist">...</table>
    </div>

    Pour l’ancre, c’est pas génial, et pour le commentaire <!--ajaxbloc--> ça va pas du tout. Un filtre |propre appliqué au mauvais endroit peut-être ?

    Reply to this message

  • 2
    Richard Théroux

    Bonjour,

    il semble que la balise +++ de Todo prenne le pas sur la balise ++++ de la fonction “Découpe en pages et onglets” du Couteau suisse. Le Couteau suisse, rappelons-le, permet de découper un long article en pages par la seule utilisation des quatre signes ++++ consécutifs à l’endroit qui permet de recevoir la coupure.

    Comme je dois corriger dès maintenant ma page défectueuse qui est publique, je recopie le code qui interfère :

    <div class="ajaxbloc bind-ajaxReload" data-origin="Reglements-generaux" data-ajax-env="ssIQe8xIfn93hxF0DTMKB4QYql8tSJuaRjRr67wwdcUuEYEgz4WUTTsNu9bn…0tQal0O8Q7C3meAMXPYE0ovBGwnAhnUdLCE/Q9ZWjmkSxL8HGLY2l9CD0g==" aria-atomic="true" aria-live="polite">
    
        <p>
            <a id="todo_0_0" class="ancre" name="todo_0_0" href="#todo_0_0"></a>
        </p>
        <table class="todolist fermee"></table>
    
    </div>

    Alors que devrait s’insérer ici un saut de page (++++) , j’ai l’aspect Todo qui s’immisce.

    Le résultat est que mon article de 7 pages s’affiche sur une seule page (Découpe ne s’applique pas) et l’article affiche donc 7 fois le visuel de Todo en lieu et place des sauts de page appelés.

    Y a-t-il un correctif connu ? Comment éviter cette confusion des genres ?

    Merci,

    • Hello,

      exact, c’est un cas qui n’avait pas encore été rencontré. Ca prouve une fois de plus que ces types de raccourcis sont pas toujours heureux surtout quand il existe des alternatives sous forme de balise qui se dégradent bien mieux.

      Il doit être possible de limiter la détection de todo à 3 caractères + uniquement et donc de corriger ton souci. Par contre, il me semble que la lame du couteau suisse s’inspire d’un plugin “onglets dans le texte”. Il me semble que ce plugin autorise l’utilisation de la balise <onglet> pour définir les onglets et si c’est le cas avec le couteau suisse ça règlerais aussi ton problème.

    • Hello,

      La version Todo 2.1.4 corrige ce problème de compatibilité. Essaye de mettre à jour et de tester sur ton site.

    Reply to this message

  • 1

    Bonjour Eric/Rasta

    Je me mets à faire utiliser ToDo...
    -  Une remarque déjà : pourquoi ne pas afficher le + dans son mini-bouton (la sémantique en est plus universelle que le blanc... ;-)

    -  Une idée (suggestion ?)
    -  avoir une boite d’aide complémentaire (eventuellement en reprenant le bouton blanc..)
    affichant les syntaxes spécifiques dans une colonne extra...
    (passer par le bouton ajouté en barre porte-plume est plus long...)
    Mais je ne sais pas le programmer !

    J’imagine qu’il faudrait faire cela par:
    -  un pipeline du privé (ou activable/debrayable par CFG)
    -  filtrant à l’appel de article_edit
    sur presence des balises de démarrage ?

    Et/ou : insérer directement des modèles de saisie en cas d’usage de “Inser_modeles” ?


    [HS]une idée (qui traine depuis longtemps) : ajouter un bouton “Rechercher” (avec le formulaire #RECHERCHE_PRIVE) à l’icone de creation de lien spip
    pour générer facilement le lien de navigation interne vers un article lié ...

    YannX
    (encore trop d’idées au réveil..)

    • Hello,

      C’est exact que le + est plus logique quand on s’attache à l’édition mais le parti pris de cette barre est de présenter les icônes affichés. On pourrait changer néanmoins mais j’avoue que ce que j’aimerais avant tout c’est améliorer le design de ces icônes surtout ceux que j’ai rajouté en v2.

      Pour le reste je pense que c’est une aide, donc il faudrait utiliser l’aide de SPIP pour cela... humm

    Reply to this message

  • 2

    Bonjour,

    Ce plugin est excellent!

    Une idée d’évolution, permettre la personnalisation des urls renseignées en dur ici : http://zone.spip.org/trac/spip-zone/browser/_plugins_/todo/trunk/inc/todo_formater_commit.php#L17
    Un petit fichier de configuration dans l’espace privé pour indiquer nos urls. (On a parfois nos propres tracks/svn)

    A moins que ce soit déjà possible ?

    Reply to this message

  • 2

    Bonjour

    Comment mettre une tache en avant par rapport aux autres ?
    Je verrais bien un fond de couleur mais avec un !! par exemple

    Une autre idée ?

    • Ben que veux dire mettre une tâche en avant sémantiquement pour toi déjà ? Quel but ?

      • Si tu veux qu’elle soit traitée en priorité, il faut utiliser le tag de priorité @n voir une information typée sur la date à atteindre.
      • Si tu veux la repérer car elle nécessite une action spéciale tu peux utiliser le statut «!»
      • Sinon, tu peux aussi utiliser un tag quelconque @xxxx
    • J’ai fait une todo avec plusieurs partie mais j’ai un point a traiter avant tous.
      Je vais organisé la todo autrement.

      Merci

    Reply to this message

  • 8

    Je viens de rajouter un bouton et sous-boutons dans porte-plume, à tester (uniquement sous SPIP >= 3.0) car je ne sais pas débuguer sous SPIP 2.1.

    cf : http://zone.spip.org/trac/spip-zone/changeset/72429

    • Le porte-plume fonctionnant pareillement, il devrait pas y avoir de souci :-) Je teste pour SPIP 2.1 dans la soirée.

    • Pas sûr, il me semble qu’il y a eu des changements minimes dans l’API, notemment la fonction que j’ai utilisé pour insérer les boutons. Et comme je n’ai pas de sites pour tester je n’ai pas vraiment envie de me prendre le chou

    • Non, j’ai essayé ça ne fonctionne pas en SPIP 2.1

    • Est ce que (1) ça provoque un comportement étrange ou (2) cela ne fonctionne simplement pas?

      Ci c’est le 2, tant pis pour la 2.1, celui qui en aura besoin le fera. Si c’est le 1, le virer de la version non trunk.

      Dis moi, perso je n’ai pas réellement envie d’installer une 2.1 pour cela.

    • Non c’est pas grave au sens où ça ne marche simplement pas. Pas de dégradation.
      Je regarderais si j’ai l’occasion mais pour l’instant je laisse de coté.

    • Que ça ne t’empêche pas de rajouter tes nouveaux raccourcis pour SPIP 3.0 :p

    • Ah ça c’est déjà fait et je viens de mettre à jour l’article !

    • Oups, j’avais oublier de revenir par ici. Effectivement, ça ne fonctionne pas du tout (et c’est pareil pour un autre plugin —donc le souci vient de PP...) mais sinon rien de cassé..

      Ah tiens, il y a une branche v2... M’a l’air sympa tout ça :)

    Reply to this message

Add a comment

Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :

  • Désactiver tous les plugins que vous ne voulez pas tester afin de vous assurer que le bug vient bien du plugin X. Cela vous évitera d’écrire sur le forum d’une contribution qui n’est finalement pas en cause.
  • Cherchez et notez les numéros de version de tout ce qui est en place au moment du test :
    • version de SPIP, en bas de la partie privée
    • version du plugin testé et des éventuels plugins nécessités
    • version de PHP (exec=info en partie privée)
    • version de MySQL / SQLite / PostgreSQL
  • Si votre problème concerne la partie publique de votre site, donnez une URL où le bug est visible, pour que les gens puissent voir par eux-mêmes.
  • En cas de page blanche, merci d’activer l’affichage des erreurs, et d’indiquer ensuite l’erreur qui apparait.

Merci d’avance pour les personnes qui vous aideront !

Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.

Who are you?
[Log in]

To show your avatar with your message, register it first on gravatar.com (free et painless) and don’t forget to indicate your Email addresse here.

Enter your comment here

This form accepts SPIP shortcuts {{bold}} {italic} -*list [text->url] <quote> <code> and HTML code <q> <del> <ins>. To create paragraphs, just leave empty lines.

Add a document

Follow the comments: RSS 2.0 | Atom