Anomalie #1661
closedSuppression de plusieurs contributions
100%
Description
Dans Galette, on a cherché à supprimer les contributions obsolètes des adhésions jusqu'au 31/08/2018.
Lorsqu'on va sur "Liste des contributions" avec un filtre tel que celui-ci :
On obtient bien la liste de toutes les contributions avec les adhérents concernés.
Si on sélectionne plusieurs contributions pour suppression on obtient le message suivant :
Pour la même sélection, l'export csv fonctionne.
A noter que la suppression individuelle avec l’icône sur la même ligne fonctionne.
Files
Updated by Johan Cwiklinski almost 2 years ago
C'est un problème que j'ai constaté récemment sur la version de développement, il semble que ce ne soit pas vraiment nouveau :/
Je n'ai pas été en mesure de déterminer ce qui a provoqué ce problème, je n'ai pas de correctif à proposer pour le moment.
Updated by Guillaume AGNIERAY almost 2 years ago
Sur la version de développement j'ai d'abord cette erreur :
Type: InvalidArgumentException Message: Missing data for URL segment: type File: /home/vhosts/galette/galette/vendor/slim/slim/Slim/Router.php Line: 381
Je pense ne pas me tromper en corrigeant cette ligne : source:/galette/lib/Galette/Controllers/Crud/ContributionsController.php@develop#L699
if (isset($post['delete'])) {
return $response
->withStatus(301)
->withHeader('Location', $this->router->pathFor('removeContributions', ['type' => $type])); // <- ICI
}
Et je tombe ensuite sur :
Type: ErrorException Message: Undefined array key 'id' File: /home/vhosts/galette/galette/lib/Galette/Controllers/Crud/ContributionsController.php Line: 952 Trace: #0 /home/vhosts/galette/galette/lib/Galette/Controllers/Crud/ContributionsController.php(952): {closure}() #1 /home/vhosts/galette/galette/lib/Galette/Controllers/CrudController.php(171): Galette\\Controllers\\Crud\\ContributionsController->confirmRemoveTitle() #2 /home/vhosts/galette/galette/lib/Galette/Controllers/CrudController.php(148): Galette\\Controllers\\CrudController->getconfirmDeleteParams() #3 [internal function]: Galette\\Controllers\\CrudController->confirmDelete()
Qui amène donc ici : source:/galette/lib/Galette/Controllers/Crud/ContributionsController.php@develop#L952
À ce niveau, le problème est vraisemblablement sur &args
. Les ids semblent absents.
J'imaginais simplement ajouter l'argument dans handleBatch()
une nouvelle fois :
if (isset($post['delete'])) {
return $response
->withStatus(301)
->withHeader('Location', $this->router->pathFor('removeContributions', ['type' => $type, 'ids' => $post['entries_sel']])); // <- ICI
}
Mais je retombe sur la même erreur. Et je ne parviens pas à récupérer $args
avec Analog depuis handleBatch()
pour l'inspecter et vérifier si je transmets les ids correctement ou pas :s
Updated by Johan Cwiklinski almost 2 years ago
- Category set to Core
- Assignee set to Johan Cwiklinski
- Target version set to 1.0.0
Guillaume Agniéray a écrit (#note-3):
Mais je retombe sur la même erreur. Et je ne parviens pas à récupérer
$args
avec Analog depuishandleBatch()
pour l'inspecter et vérifier si je transmets les ids correctement ou pas :s
J'en étais arrivé à peu près au même problème... La suppression "en masse" est censée être générique, sauf pour la liste des adhérents pour laquelle des spécificités ont toujours existé.
À l'heure actuelle, il n'y a plus que la liste des adhérents sur laquelle la suppression en masse continue de fonctionner - je ne sais pas à quel moment la transmission des ID a été perdue, je n'ai pas été en mesure de le retracer via l'historique du dépôt.
Deux choix s'offrent alors : corriger pour que ça devienne générique de nouveau (solution la plus propre, mais aussi la plus complexe) ou traiter chaque cas de manière spécifique. Ce qui est dommage avec la seconde solution, c'est que les plugins ne peuvent pas en tirer partie facilement d'une part, et que le but ces temps-ci est plutôt à la mise en commun du code :)
Je suis pris sur d'autres sujets à l'heure actuelle, je reviendrai sur le sujet ultérieurement.
Updated by Johan Cwiklinski over 1 year ago
- Status changed from Nouveau to Résolu
- % Done changed from 0 to 100
J'ai corrigé ça récemment ;)
Updated by Johan Cwiklinski about 1 year ago
Probablement corrigé par 21a3afa5e14fe385dcd8191c9c73bf8aac838164