-
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
Song edition #132
Comments
Ça sent assez fort l'usine à gaz ça. On doit pouvoir trouver quelque chose de plus simple à implémenter qui soit encore utilisable. Pour une V1, pourquoi ne pas bloquer simplement toute édition par un autre utilisateur pendant N min ? Sinon le reste me semble pas trop mal =) |
On peut effectivement faire un lock pendant un certain temps, mais si la personne soumet le formulaire après, comme le gère-t-on ? |
Soit le fichier est locké par quelqu'un d'autre, et on invite à recommencer dans N min, soit il ne l'est pas et on peut en effet comparer un hash pour décider d'accepter ou de refuser les modifs. |
Je suis perso pas tellement pour les blocages dans une appli... l'opérateur devrait être autonome et ne jamais faire face à une "opération infaisable". |
Les locks à N min offrent aussi un vecteur d'attaque pour éviter toutes les éditions de chants. |
C'est vrai. Mais je n'ai pas mieux qui n'expose pas l'ensemble de la machinerie git à l'utilisateur. Je vais y réfléchir un peu =) |
Le hash que j'ai évoqué n'est pas nécessairement en lien avec git: juste un "bête" md5 du fichier quelque soit sont état dans git. |
Dans un premier temps, si le hash a changé entre-temps, on peut simplement demander à l'utilisateur de répéter ses changements (pas de diff ou autre - pour éviter de l'effrayer) |
@Luthaf : je souhaite faire quelques tests d'interface. Que me conseilles-tu pour "pseudo-récupérer" les données ? (contenu du chant, titre de l'album, langue...) Dans un premier temps, ces fonctions renverront un Lorem Ipsum, puis une fois le format ChordPro finalisé, elles retourneront les bonnes valeurs. |
Ces fonctions peuvent être des méthodes/propriétés du modèle |
Même si patacrep/patadata#19 n'est pas encore complètement résolue, j'ai commencé un éditeur live pour ChordPro: https://github.com/oliverpool/chordpro-editor. Il est pour l'instant extrêmement simple: il rajoute seulement un arrière plan aux différents types de paragraphes qu'il connait. Il est difficile de faire mieux qu'un arrière plan sans devoir faire un nombre considérable d'ajustements (en cas de sélection, de suppression du markup...). En revanche, il est tout à fait possible de rajouter des boutons pour transformer un paragraphe en refrain, verse ou autre. Au niveau backend, cela ne change rien: le textarea (contenant le code songpro "pur") sera envoyé directement. Pour des raisons de simplicité, je pense qu'il faut séparer les paroles et le reste (titre, album, définition des accords & co.) |
💯 |
Poursuite de #50.
Puisqu'on part sur un format de fichier chordpro, on esquive normalement la plupart des problèmes de sécurité.
Au niveau de l'interface, je verrai bien une zone comme github (avec des onglets - mais probablement situés en bas):
Au niveau technique, je pense utiliser le texte brut comme référence et synchroniser les autres onglets via javascript (du coup python reçoit juste le contenu du textarea).
Concernant l'édition concurrent par deux personnes, j'imagine un système de "compare-and-swap".
Lors de l'édition, on embarque le hash (md5) du fichier dans la page (input hidden). Lors de la soumission, le fichier est vérouillé (avec https://pypi.python.org/pypi/lockfile par exemple), le hash est calculé:
The text was updated successfully, but these errors were encountered: