-
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
Behavior in case of deletion #35
Comments
Je propose:
Ses carnets sont supprimés ("désinscription")
Suppression des éléments relatifs au carnet (seulement des liaisons)
Suppression des chants et de l'artiste correspondant, aucune compilation possible à l'avenir (la suppression est demandée par les ayants droits)
Suppression des chants concernés, et des artistes si ils n'ont plus de chant Ma proposition est assez extrême : si des éléments ont été supprimés, ils ne sont pas récupérables et ne seront pas compilés |
La politique "traditionnelle" de Django dans ce cas est d'utiliser le champ Pour le reste, je suis d'accord avec toi. Il reste quand même le cas d'une suppression pour cause de duplication. On peut ajouter quelques méthodes pour gérer ça. |
ok pour le désactiver, mais est-ce qu'on garde ses carnets de chants ? (publics / privés) |
Les publics oui, et les privés, ça ne coute pas grand chose en fait. |
Ben, ca dépend de la forme de stockage des carnets de chants (à l'heure actuelle c'est quand même pas mal de lignes dans pas mal de tables différentes) |
Pour les carnets, on est pas obligé de les supprimer (il n'y a pas de problème légal je pense), et même si on a 2000 utilisateurs, avec 4 carnets chacun, ça fait quelque chose comme 20 000 entrée dans la base. Ce n'est pas forcément très grave. Mais oui, on peut aussi supprimer les entrées correspondants aux carnets privés dans le cas d'une demande de suppression de compte par l'utilisateur. |
Un carnet c'est une entrée dans la table "Songbook" et une centaine dans la table "ItemsInSongbook" (+ SongInSongbook, ArtisitInSongbook)... ca fait un peu plus que 20 000!
Dans ce cas, il peut les supprimer lui-même avant de demander la suppression |
Pas faux =) Je vais regarder s'il y a un signal Django de désactivation d'un utilisateur. Il pourrait servir à supprimer ses carnets lors de la désactivation, en filtrant les carnets privé/publics. |
@oliverpool : je te sens très crispé à l'égard de ce que j'ai codé; c'est pas la peine :) : comme je l'ai déjà dit, si ce n'est pas la bonne solution, je n'ai aucun problème à le modifier. Revenons à la discussion. Est-ce-que je me trompe, où on se retrouve peu à peu dans le cas proposé il y a une semaine :
? Parce que, pour la cohérence, je ne vois pas pourquoi s'embêter à gérer d'anciennes versions de chants pour des carnets existants alors qu'on supprime des carnets les chants qui disparaissent de la repo. Je penche de plus en plus pour cette solution. On oublie les différentes versions de chants pour les différents carnets; il y a une version : celle du head, point barre. Au moins dans un premier temps. Je pense qu'il sera possible de revenir dessus si un fort souhait s'exprimait. Pour l'archivage, on explique aux utilisateurs qu'ils sont responsables de la conservation de leur PDF, et que rien ne garantit qu'ils pourront le regénérer tel quel. |
Pour moi ce n'est pas la même chose : on supprime les carnets en même temps que les utilisateurs, et les chants si on a la demande des ayant-droits, mais on garde la possibilité qu'il existe plusieurs versions, et on laisse aux utilisateur le choix de la leur.
Ça peut en effet être une solution : on lance le truc, puis on demande s'il y a des intéressés =) |
Effectivement c'est une bonne idée. En plus, une fois le site lancé, les utilisateurs auront peut-être des besoins et des idées différentes !
"Crispé" est peut-être un peu fort (et de toute les manières, je continuerai de contribuer au design, quelque soit le back-end ;-) Donc du coup on on dit que dans un premier temps on supporte une seule version (l'actuelle) ? |
Allons-y ! Je propose aussi une remise à plat des migrations south au passage, j'ai eu quelques difficultés pour passer à la dernière version =) |
Ok ! Quelques aspects qui en découlent :
|
Excellente idée !
Bonne idée aussi (mais qui va pas être évidente à coder). |
et de différents types : fs simple, vcs, db, web api, ... rhôôoô, c'est bô...
oui, heu... non... enfin, on est raisonnable et on attend, quoi ;) |
Et pourquoi pas dans une classe abstraite dont hériterai |
parce qu'un fichier n'est pas une généralisation d'un chant pour notre application, ça irait donc contre un des principes de l'OOP. À juste titre : je peux envisager d'avoir des chants qui n'ont qu'une représentation en BDD, ou que je récupère via une API Web, auquel cas l'abstraction imposée 'GitFile' me gènerait.
... qui peuvent aussi avoir d'autres formes de stockage qu'un fichier GIT (URL, ...). Ce qui serait (enfin, sera un jour peut-être ;) ) envisageable, c'est de faire une abstraction "stockage" qui se spécialise en "gitfile", "db", "webapi", "url", "file", ... pour couvrir différents modes de stockage des éléments. Toutefois, pour l'instant, je suis de l'avis que :
|
Ça me va =) |
Alors je reviens sur cette issue avec l'état actuel du projet
Plutôt que de mettre le chemin à NULL, je propose de mettre le
Le même script doit pouvoir servir directement : on effectue l'import des nouveaux chants, la mise à jour des chants existants (mise à jour du On peut essayer de regarder l’historique des fichiers et détecter si il y a une différence ? Cela semnle possible à coups de GitPython (http://pythonhosted.org/GitPython/0.3.1/reference.html#git.diff.Diff), mais pas évident si le diff contient beaucoup de fichiers. |
Histoire de faire un truc clair (et si possible avoir une conclusion définitive).
Comment veut-on gérer les suppressions des éléments suivants (et dans quels cas une telle suppression à lieu):
The text was updated successfully, but these errors were encountered: