Development #207
Vérification de la présence de demandes non cloturées à la suppression d'un formulaire
0%
Description
Actuellement on peut supprimer un formulaire sans ce soucier s'il existe des demandes en cours reliées à celui-ci. Lorsque l'on supprime le formulaire, les demandes liées disparaissent.
Il faudrait vérifier la présence de demandes en cours avant de pouvoir supprimer le formulaire.
Fichiers
Révisions associées
Historique
Mis à jour par Thomas Noël il y a plus de 12 ans
Ok pour vérifier, on peut. Mais que faire ensuite (si la personne clique sur "supprimer le formulaire" et que des formdata sont présents, on lui propose quoi ?)
Mis à jour par Marie Kuntz il y a plus de 4 ans
on pourrait alerter et bloquer (empêcher) la suppression
Mis à jour par Frédéric Péters il y a plus de 3 ans
- Fichier 0001-admin-don-t-allow-removal-of-form-if-there-are-open-.patch 0001-admin-don-t-allow-removal-of-form-if-there-are-open-.patch ajouté
- Statut changé de Nouveau à Solution proposée
- Patch proposed changé de Non à Oui
Mis à jour par Thomas Noël il y a plus de 3 ans
Quelle est ton idée derrière le check_open_forms_at_deletion=False sur les fiches ?
Mis à jour par Frédéric Péters il y a plus de 3 ans
Que je n'étais pas bien sûr aujourd'hui de vouloir introduire ce comportement de refus de suppression pour les fiches.
Mis à jour par Thomas Noël il y a plus de 3 ans
Frédéric Péters a écrit :
Que je n'étais pas bien sûr aujourd'hui de vouloir introduire ce comportement de refus de suppression pour les fiches.
Je vois dans ce refus, pour ma part, une protection anti-bourdes que j'aime à savoir présente... tu veux pas uniformiser le comportement et on verra si ça gêne vraiment à l'usage ?
Mis à jour par Frédéric Péters il y a plus de 3 ans
- Fichier 0001-admin-check-for-contents-before-removal-of-forms-car.patch 0001-admin-check-for-contents-before-removal-of-forms-car.patch ajouté
Revu ainsi mais ça m'a permis d'imaginer ce qui était réellement mon problème à faire pareil pour les fiches : on interdit la suppression quand il y a des demandes ouvertes, mais pour les fiches on n'a pas vraiment cette notion de "ouvertes". Du coup ce que j'ai fait là c'est pour les fiches, interdire tout bonnement.
Mis à jour par Thomas Noël il y a plus de 3 ans
Parfait sur le principe.
Mais j'ai l'impression qu'un petit malin pourrait quand même forger une requête avec un submit=blabla qui ferait quand même le delete ? Si oui, ajouter un "if check_count_message: raise AccessForbiddenError(check_count_message)" avant le self.formdef.remove_self() ? (peut-être que je me trompe et qu'un submit bidon arrivera sur un form.has_errors et dans ce cas, c'est validé)
Et au passage, supprimer les commentaires sans objet :
else: # XXX: remove form data #for formdata in FormData.select(FormData.q.formdefID == self.formdef.id): # formdata.destroySelf() self.formdef.remove_self() return redirect('..')
Mis à jour par Frédéric Péters il y a plus de 3 ans
J'ai poussé en wip/ une branche avec :
- if form.get_widget('cancel').parse(): + if form.get_widget('cancel').parse() or (form.is_submitted() and check_count_message):
Mis à jour par Thomas Noël il y a plus de 3 ans
- Statut changé de Solution proposée à Solution validée
Go (dès que jenkins est vert)
Mis à jour par Frédéric Péters il y a plus de 3 ans
(c'est pour le prochain cycle de toute façon)
Mis à jour par Frédéric Péters il y a plus de 3 ans
- Statut changé de Solution validée à Résolu (à déployer)
commit fb1908b2ab589aad77f6d33839bd312047212de6 Author: Frédéric Péters <fpeters@entrouvert.com> Date: Fri Jul 17 14:23:23 2020 +0200 admin: check for contents before removal of forms/cards (#207)
Mis à jour par Frédéric Péters il y a plus de 3 ans
- Statut changé de Résolu (à déployer) à Solution déployée
admin: check for contents before removal of forms/cards (#207)