Une petite base de données

Message 1, par Elzen

§ 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 :


Capture d'écran


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 :


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 (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 !

Message 2, par На краю

§ Posté le 19/05/2016 à 3h 21m 02

Super, merci infiniment ! :)

Message 3, par Elzen

§ Posté le 21/05/2016 à 18h 33m 39

De rien 😊


grim7reaper avait posté quelques commentaires sur le code, mais nous avons, d'un commun accord, décidé de déplacer cette discussion technique vers le Topic des Codeurs.


De cette manière, ce sujet peut être réservé aux gens lambda qui ne parlent pas code couramment, mais qui pourraient avoir des remarques d'un niveau moins technique.

Envoyer une réponse