base-adresse: provide ordering options to cities endpoint (#74374) #103

Merged
pmarillonnet merged 1 commits from wip/74374-base-adresse-cities-endpoint-ordering into main 2023-02-16 14:12:43 +01:00
Owner
No description provided.
Ghost requested changes 2023-02-12 08:49:16 +01:00
@ -347,2 +348,4 @@
'region_code': {'description': _('Region code'), 'example_value': '11'},
'department_code': {'description': _('Department code'), 'example_value': '75'},
'ordering': {
'description': _('Comma-separated ordering fields'),
First-time contributor

Ici il faudrait préciser la liste des clés de tri (name, unaccent_name, code, zipcode, population, departement, region) et je mettrais "-population,zipcode,unaccent_name,name" en exemple, sous-entendant que c'est la valeur par défaut, et "documentant" au passage l'usage du "-".

Ici il faudrait préciser la liste des clés de tri (name, unaccent_name, code, zipcode, population, departement, region) et je mettrais "-population,zipcode,unaccent_name,name" en exemple, sous-entendant que c'est la valeur par défaut, et "documentant" au passage l'usage du "-".
Author
Owner

Ok, j’ai ajouté la liste des clés, et j’ai modifié l’exemple comme tu le suggères ici.

Ok, j’ai ajouté la liste des clés, et j’ai modifié l’exemple comme tu le suggères ici.
@ -377,0 +384,4 @@
if ordering:
try:
if ',' in ordering:
First-time contributor

Ce "if" n'est pas utile, car cities.order_by(*ordering.split(',')) fonctionne aussi avec une chaîne sans virgule.

Ce "if" n'est pas utile, car `cities.order_by(*ordering.split(','))` fonctionne aussi avec une chaîne sans virgule.
Author
Owner

Bien vu, en effet, j’avais loupé ça. C’est corrigé, c’est plus simple ainsi.

Bien vu, en effet, j’avais loupé ça. C’est corrigé, c’est plus simple ainsi.
@ -377,0 +385,4 @@
if ordering:
try:
if ',' in ordering:
ordered = cities.order_by(*ordering.split(','))
First-time contributor

Ici il faut juste modifier la query_set cities et laisser la suite (le return des cities) s'appliquer tranquillement. A voir d'ailleurs d'il faut faire le select_related('department', 'region') avant ou après.

Ici il faut juste modifier la query_set cities et laisser la suite (le return des cities) s'appliquer tranquillement. A voir d'ailleurs d'il faut faire le select_related('department', 'region') avant ou après.
Author
Owner

Le problème est que le FieldError n’est pas levé lors du order_by (comportement “lazy”), seulement lorsque le sql est réellement exécuté, c’est-à-dire lors de

return {'data': [city.to_json() for city in cities]}

Le problème est que le FieldError n’est pas levé lors du order_by (comportement “lazy”), seulement lorsque le sql est réellement exécuté, c’est-à-dire lors de > return {'data': [city.to_json() for city in cities]}
@ -377,0 +390,4 @@
ordered = cities.order_by(ordering)
return {'data': [city.to_json() for city in ordered]}
except FieldError:
self.logger.error(f'cities: erroneous ordering query {ordering}')
First-time contributor

Il faut faire une APIError qui retourne une 400 (un self.logger.error ça fait surtout une trace sentry, non merci ;) )

Il faut faire une APIError qui retourne une 400 (un self.logger.error ça fait surtout une trace sentry, non merci ;) )
Author
Owner

Ok, j’avais mélangé ces deux choses. C’est corrigé dans la branche.

Ok, j’avais mélangé ces deux choses. C’est corrigé dans la branche.
pmarillonnet force-pushed wip/74374-base-adresse-cities-endpoint-ordering from 4c2a9f34d1 to bec630fb32 2023-02-13 09:32:27 +01:00 Compare
pmarillonnet force-pushed wip/74374-base-adresse-cities-endpoint-ordering from bec630fb32 to acdf6b94e5 2023-02-13 09:52:19 +01:00 Compare
pmarillonnet requested review from Ghost Team 2023-02-13 09:52:53 +01:00
Ghost approved these changes 2023-02-16 12:04:59 +01:00
Ghost left a comment
First-time contributor

(juste un seul commentaire, tu en fais ce que tu veux)

(juste un seul commentaire, tu en fais ce que tu veux)
@ -377,0 +389,4 @@
if ordering:
try:
ordered = cities.order_by(*ordering.split(','))
return {'data': [city.to_json() for city in ordered]}
First-time contributor

en mode pénible, je dirais de sortir le return du try/except

en mode pénible, je dirais de sortir le return du try/except
pmarillonnet merged commit b542c7b956 into main 2023-02-16 14:12:43 +01:00
pmarillonnet deleted branch wip/74374-base-adresse-cities-endpoint-ordering 2023-02-16 14:12:44 +01:00
Sign in to join this conversation.
No reviewers
No Label
No Milestone
No Assignees
2 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: entrouvert/passerelle#103
No description provided.