Sur un site hébergeant des documents, les révisions sur les documents sont activées
Lors de la suppression d’un document, l’objet éditorial est complètement supprimé de la base ce qui semble normal, mais pas ses révisions.
Ces révisions sont donc toujours listées dans le nombre des listes de révisions mais ne sont pas visible car l’autorisation de les voir est à false car l’objet n’existe plus.
Rien de plus logique et normal, cependant :
on se retrouve avec des listes trouées;
on se retrouve avec en base du contenu qui ne servira plus à rien
La question :
Qui doit supprimer ces révisions?
Le plugin révision par je ne sais quel stratagème?
Le plugin ajoutant cet objet éditorial?
Je penche pour le point 2 car c’est lui qui ajoute dans sa définition de table le fait que les révisions puissent y être activées.
Si c’est le point 2 de défini, il faudrait rajouter un upgrade dans le plugin medias supprimant les révisions de documents disparus et à la fin de l’action de suppression, ajouter la suppression des révisions si le plugin est actif.
La solution :
Je le fais ou vous avez d’autres idées, revendications?
Du coup ça parait pas génial de devoir gérer ça dans chaque plugin client… car ça implique qu’il sache que les revisions existent.
Je pense plutôt que ça a sa place dans le cron de nettoyage des révisions, qui regarde les objets référencés qui n’existent plus, avec une jointure bien sentie, et les supprime.
> Rien de plus logique et normal, cependant :
> - on se retrouve avec des listes trouées;
> - on se retrouve avec en base du contenu qui ne servira plus à rien
>
Ta remarque m'amène à une question: quand on supprime un objet, si on
supprime aussi les révisions: il n'y plus de moyen de revenir en
arrière (à part les backup qui auraient pu être faits par ailleurs)
???
Si les objets sont supprimés de la base comme les documents ou d'autres
objets comme les articles après un temps donné il est effectivement
impossible aux révisions de retrouver leur petits donc à ce moment là elles
doivent être supprimées aussi car inutilisables.
Etant donné qu'elles sont liées à un objet particulier qui n'existe plus et
qui si recréé aura un identifiant différent.
Les objets ont un statut poubelle pendant lequel ils sont encore
dans la BDD et pendant ce temps ils peuvent être restaurés.
Les révisions doivent rester pendant ce temps
mais il serait juste que celles qui portent sur un objet à la poubelle
ne s'affichent pas dans la liste, par défaut.
Une fois l'objet réellement supprimé de la BDD, les révisions doivent aussi être supprimées.
S'il faut un mécanisme pour revenir en arrière, ce n'est pas le rôle des révisions.