§ Posté le 18/05/2016 à 23h 42m 02
Il y a quelques jours, na kraïou a posté sur le forum Ubuntu-fr pour demander si on avait des pistes de logiciels pour se faire une petite base de données personnelle, alors j'ai décidé de bricoler un truc, pour voir si ça irait.
Comme ça pourrait potentiellement être utile à d'autres gens que na kraïou, je me suis dit que j'allais en glisser un petit mot ici pour rendre ça public.
Bon, c'est codé en vitesse et avec les pieds, mais ça m'a permis de rafraîchir un brin mes connaissances en SQLite, et d'enfin coder un vrai truc en Python3/GTK3 (bon, le corollaire, c'est que comme les devs de GTK ont encore tout recassé dans le thêmage, pour l'instant, c'est un peu moche, mais bon).
Le truc, en l'état, ressemble à ça :
On peut créer autant de tables qu'on veut (ici, j'ai deux tables, Artistes et Œuvres), avec autant de colonnes qu'on veut à l'intérieur (mais il n'est pour l'instant pas possible de modifier les colonnes, sauf à aller éditer le fichier de base de données à la main. J'arrangerai ça, un jour).
Les colonnes peuvent être de différents types :
- Texte monoligne (le cas de base, le plus simple),
- Texte multiligne (un bouton permet d'ouvrir une zone d'édition dans une popup si besoin),
- Case à cocher (la case est cochée s'il y a une donnée enregistrée, décochée si ce champ est vide),
- Choix multiple (pensez à configurer les différents choix en cliquant sur le bouton approprié lors de la création de la table),
- Coordonnées (qui pourront être modifiées en se baladant sur OpenStreetMap),
- Date (avec un taux de précision allant du jour au siècle, avec un affichage du type « XXIe siècle » dans le dernier cas),
- Image (qui sont, comme tout le reste, enregistrées directement dans la base).
Une fois la table créée, on peut (en passant par le menu) créer autant d'entrées que désirées, celles-ci apparaissant alors à la fois dans la liste de gauche et dans le panneau de travail à droite.
En sélectionnant l'une des entrées sur le panneau de travail, on peut accéder aux boutons de la barre d'outils, qui permettent, dans l'ordre, de visualiser/modifier les infos détaillées, de supprimer l'entrée, de visualiser les liens existants (et de les supprimer si besoin), et d'épingler l'entrée.
Épingler sert à rajouter un nouveau bouton dans la barre d'outil, qu'on pourra ensuite utilisé (après avoir sélectionné une autre entrée) pour créer des liens entre les différents éléments. Le dernier bouton sert à nettoyer la barre d'outil en désépinglant tout.
Naturellement, on peut glisser-déplacer les entrées sur le panneau de travail pour les placer où on veut ; l'ordre est enregistré dans la base pour être conservé d'une fois sur l'autre.
Il resterait probablement encore pas mal de trucs à faire, en particulier ajouter la possibilité de faire des recherches efficaces et de filtrer les éléments affichés (mais pas que, par exemple, il faudrait aussi trouver un moyen de faire fonctionner le calendrier de GTK avec des dates négatives, car pour l'instant, ce n'est pas trop ça…), mais ça commence à être vaguement utilisable.
Si ça vous branche, vous pouvez récupérer ça en clonant simplement le dépôt :
git clone git://fadrienn.irlnc.org/elzbase
(Ouais, j'ai toujours aussi peu d'imagination pour les noms ; si quelqu'un a une meilleure suggestion, je prends)
C'est utilisable directement (en lançant le fichier elzbase.py
), mais vous pouvez aussi, si vous préférez, compiler ça grâce à Cython (le Makefile qui va bien est fourni).
Note : dans un cas comme dans l'autre, les utilisateurs de Debian auront sans doute besoin d'installer au minimum les paquets python3-gi-cairo, gir1.2-webkit-3.0 et python3-roman. Je ne connais pas les paquets correspondants pour les autres systèmes.
Oh, si vous voulez la mini-base que j'ai créé pour faire la capture d'écran, je vous ai mis ça là (toutes les données sont rapidement fauchées sur Wikipédia, avec des « grandes tailles » des peintures plutôt petites, pour que le fichier ne soit pas trop lourd).
Naturellement, tout retour à ce sujet sera le bienvenu !