-
Notifications
You must be signed in to change notification settings - Fork 3
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Les datadir sont supposés être des dépôts git #96
Comments
La gestion de plusieurs dossiers contenant des chansons n'est pas encore clairement résolu. Par exemple, cela nécéssite de stocker dans la BDD à quel dossier appartient quelle chanson. bref, je pense qu'on peut se limite à un seul dossier pour l'instant, |
Je ne sais pas si c'est approprié, mais je suis actuellement dans une réflexion peut-être similaire pour une GED. |
Oui, c'est ma prochaine tache dans 3 semaines.
Edit : en fait non, on a besoin de git pour la gestion des versions.
Il servira plus tard, a effectuer les mises a jour en BDD.
Tu peut develloper un peu ? Je ne vois pas trop ce que tu veux dire. |
Un autre problème, en lien avec celui-là (je peux créer un autre ticket si nécessaire) est que si deux chansons ont le même titre, une seule des deux apparait. C'est un comportement non souhaité, car rien n'interdit que deux chansons différentes aient le même titre (exemples). Je n'ai pas regardé la base de donnée, mais je suppose que la clef qui identifie de manière unique une chanson dans la base est actuellement le titre. Pour corriger cela, il suffit de faire en sorte que cette clef soit le nom du fichier. Et pour la gestion des datadirs, on peut considérer comme clef le couple (datadir, chemin). Comme ça :
Par contre, ça veut dire que si un jour on autorise autre chose qu'un datadir ou un nom de fichier comme source des chansons, cela ne fonctionne plus. |
Tu peux développer un peu ? Je ne vois pas trop ce que tu veux dire. Je dit en réponse à << cela nécessite de stocker dans la BDD à quel dossier appartient quelle chanson. Par ailleurs, que faire si une chanson est présente dans deux dossiers ?>> Comme on ne se connait pas et que je ne connais pas le modèle de données, je reformule depuis le tout début quitte à enfoncer des portes ouvertes... Dans les systèmes GED habituels, les éléments sont stockés dans une arborescences de répertoires à n niveaux, qui sous-entend :
Les systèmes de tags (étiquettes en Français) permettent quant à eux d'attribuer plusieurs tags à un même élément… mais ne "hiérarchisent" pas les ressources entre elles. L'avantage du tag, c'est qu'il permet également de proposer un système de recherche & de navigation intuitif. En cliquant sur le tag "80s", je m'attends à voir la liste de tous les titres tagués avec "80s". |
@Soundy25 Le fait qu'une chanson = un fichier placé quelque part dans l'arborescence est du au fait que patanet n'est pas un projet isolé : il utilise la bibliothèque patacrep, créée plusieurs années plus tôt, et qui elle fonctionne en assemblant plusieurs fichiers de chansons pour en faire un carnet de chants. Le choix a également été fait de faire un système qui s'appuie sur les fichiers de chansons de patadata, et qui bénéficie de ses améliorations. Stocker les chants purement dans une base de données (sans arborescence de fichiers) aurait peut-être été le choix fait si patanet avait été créée ex-nihilo, mais ça n'est pas le cas, et changer de paradigme nécessiterait pas mal de boulot. Après, on peut aussi imaginer d'autres altenatives (pour conserver patacrep) :
Je pense que si patanet avait été créée ex-nihilo, comme un projet indépendant, la solution pure BDD aurait été meilleure. Mais vu l'histoire, et le lien avec patacrep et patadata, la solution actuelle est loin d'être mauvaise.
Avoir plusieurs chansons ayant le même nom n'est pour moi pas un problème, puisque le nom du fichier n'est, pour pataweb, qu'une clef utilisée en interne, et pour patacrep, qu'un moyen de désigner la chanson, mais qui n'apparait pas dans le carnet final. Ainsi, on peut nommer nos fichiers |
Très bien, merci Paternal pour ce retour aux racines du projet... ^^ |
Les datadirs sont des dépôts git pour gerer le versionnement des fichiers de chants tout en permettant une édition en ligne des paroles/accords.
Je pense que c'est en effet le mieux à faire dans ce cas. Il faudra de toute manière faire des vérifications sur les datadirs si on en a plusieurs, on effectuera cette verification en même temps. |
Dans patacrep, les datadirs sont n'importe quel dossier, et il n'est nul part mentionné que ces dossiers doivent être gérés par git, et encore moins qu'ils doivent être la racine d'un dépôt git.
Par contre, cette supposition est faite dans patanet : generator/songs.py. À cet endroit, le chemin d'une chanson est défini comme le chemin relatif à la racine du projet git. Plus tard, dans generator/views/songs.py, on construit le chemin absolu de la chanson comme
SONGS_LIBRARY_DIR + 'songs' + songs.file_path
. Cela est incohérent, et ne fonctionnera pas siSONGS_LIBRARY_DIR
n'est pas le dépôt d'un dépôt git.Ce qu'il faut faire est :
Ou alors préciser (et vérifier, et lever une erreur au lancement de l'application) que les datadirs doivent être la racine d'un dépôt git.
Autre question : À quoi correspond
SONGS_LIBRARY_DIR
? Si c'est unDATADIR
, pourquoi avoir changé le nom ?Autre question : Est-il prévu d'autoriser plusieurs datadir ? Dans ce cas, il faudrait remplacer
SONGS_LIBRARY_DIR
parDATADIRS
, qui serait alors une liste de répertoires, et modifier ailleurs dans le code toutes les références àSONGS_LIBRARY_DIR
.The text was updated successfully, but these errors were encountered: