Development #32828
planitec : pourvoir filtrer sur la capacité d'une salle et sur les champs du reférentiel (endpoint getfreegaps et getplacesreferential)
0%
Description
Actuellement ce endpoint accepte deux filtres max_capacity
et min_capacity
, mais si des filtres sur des champs personnalisés sont utilisés en même temps alors ceux-ci prennent le pas et les filtres de capacité sont ignorés :
# Places restriction if place_id is not None: places_id = [int(place_id)] elif kwargs: places_id = self._filter_places_referential( self._get_places_referential(), kwargs).keys() else: places_id = self._get_places_by_capacity(int(min_capacity), int(max_capacity))
On voudrait pouvoir utiliser les deux en même temps.
Fichiers
Révisions associées
Historique
Mis à jour par Stéphane Laget il y a presque 5 ans
Ceci est notamment utile lorsque le nombre de salles proposé est important afin d'avoir une sélection qui correspond aux besoins de l'usager.
Mis à jour par Emmanuel Cazenave il y a presque 5 ans
- Sujet changé de planitec : pourvoir filtrer sur la capacité d'une salle et sur les champs du reférentiel (endpoint getfreegaps) à planitec : pourvoir filtrer sur la capacité d'une salle et sur les champs du reférentiel (endpoint getfreegaps et getplacesreferential)
Tant qu'on y est ajoutons le filtrage du référentiel des salles par capacité.
Bref je résume : les endpoints getfreegaps
et getplacesreferential
doivent gérer les filtres de capacité et les filtres sur les champs personnalisés.
Le code sur les filtres a été fait au fil de l'eau, c'est l'occasion de reprendre proprement et d'offrir un fonctionnement homogène sur ces deux endpoint.
Mis à jour par Emmanuel Cazenave il y a presque 5 ans
- Fichier 0001-planitec-filters-homogenisation-32828.patch 0001-planitec-filters-homogenisation-32828.patch ajouté
- Statut changé de Nouveau à Solution proposée
- Patch proposed changé de Non à Oui
J'en profite également pour simplifier la syntaxe du filtrage sur les champs personnalisés, on passe de
https://endpoint-url?referential_some_cutom_field=foo
à
https://endpoint-url?some_cutom_field=foo
J'avais du me faire des nœuds au cerveau, préfixer par referential_
n'est pas nécessaire, vive la simplicité.
Mis à jour par Emmanuel Cazenave il y a presque 5 ans
- Fichier 0001-planitec-filters-homogenisation-32828.patch 0001-planitec-filters-homogenisation-32828.patch ajouté
Mini correction.
Mis à jour par Thomas Noël il y a presque 5 ans
Sur le except ValueError lors de la conversion int(), faire carrément un except (ValueError, TypeError) (genre si c'est None ou autre type qui marche pas)
Optimisation de la mort qui tue : ajouter un "break" après le "skip = True"
Petite erreur de programmation au niveau du filter_value = int(filter_value) qui va modifier la filter_value alors qu'on la ré-utilise éventuellement ensuite.
Mis à jour par Emmanuel Cazenave il y a presque 5 ans
- Fichier 0001-planitec-filters-homogenisation-32828.patch 0001-planitec-filters-homogenisation-32828.patch ajouté
Thomas Noël a écrit :
Sur le except ValueError lors de la conversion int(), faire carrément un except (ValueError, TypeError) (genre si c'est None ou autre type qui marche pas)
Fait.
Optimisation de la mort qui tue : ajouter un "break" après le "skip = True"
Petite erreur de programmation au niveau du filter_value = int(filter_value) qui va modifier la filter_value alors qu'on la ré-utilise éventuellement ensuite.
Un break bien placé prend en compte ces deux remarques.
Mis à jour par Thomas Noël il y a presque 5 ans
- Statut changé de Solution proposée à Solution validée
Mis à jour par Emmanuel Cazenave il y a presque 5 ans
- Statut changé de Solution validée à Résolu (à déployer)
commit b06a0d68e90f7529f935b9a522a999b242110000 Author: Emmanuel Cazenave <ecazenave@entrouvert.com> Date: Fri May 17 15:51:53 2019 +0200 planitec: filters homogenisation (#32828)
Mis à jour par Frédéric Péters il y a presque 5 ans
- Statut changé de Résolu (à déployer) à Solution déployée
planitec: filters homogenisation (#32828)