Bug #24025
utiliser err_desc au lieu (en plus de) reason
0%
Description
En cas de pépin, Chrono renvoie un message genre {"reason":"already cancelled","err":1}
Mais dans les softs Publik c'est err_desc (voire err_class) qui est attendu, par exemple pour l'affichage technique dans l'historique d'une demande.
Fichiers
Révisions associées
Historique
Mis à jour par Thomas Noël il y a presque 6 ans
- Fichier Capture d’écran de 2018-05-23 14-35-41.png Capture d’écran de 2018-05-23 14-35-41.png ajouté
- Statut changé de Nouveau à En cours
- Assigné à mis à Thomas Noël
Exemple de «non-affichage» ci-joint, parce que w.c.s. n'affiche que err/err_desc/err_class.
Mis à jour par Thomas Noël il y a presque 6 ans
- Fichier 0001-use-err_desc-in-error-responses-24025.patch 0001-use-err_desc-in-error-responses-24025.patch ajouté
- Patch proposed changé de Non à Oui
Mis à jour par Frédéric Péters il y a presque 6 ans
On ne "tricherait" pas plutôt dans w.c.s. et lui faire afficher "reason" ?
Mis à jour par Thomas Noël il y a presque 6 ans
Frédéric Péters a écrit :
On ne "tricherait" pas plutôt dans w.c.s. et lui faire afficher "reason" ?
Ouaip. Ça aurait l'avantage d'afficher les erreurs passées actuelles → #24031
(mais à un moment va falloir qu'on fixe quelque chose de clair sur nos APIs, et err_desc ça me semble clair, essayons d'y rester)
Mis à jour par Frédéric Péters il y a presque 6 ans
(mais à un moment va falloir qu'on fixe quelque chose de clair sur nos APIs, et err_desc ça me semble clair, essayons d'y rester)
Oui, d'accord avec ça (mais je dirais err_class pour une identification technique, et err_desc pouvant contenir une description en français).
Mis à jour par Lauréline Guérin il y a plus de 4 ans
- Assigné à changé de Thomas Noël à Lauréline Guérin
Mis à jour par Lauréline Guérin il y a plus de 4 ans
Mis à jour par Thomas Noël il y a plus de 4 ans
En plus du test unitaire dans tests/test_api_utils.py je trouverais bien de garder quelques assert resp.json['reason'] == ...
dans les premiers tests de tests/test_api.py
avec un petit commentaire genre "# legacy"
Ultra détail, tu peux mettre (C) 2019 dans au début de chrono/api/utils.py (ça c'est juste pour faire croire que je relis vraiment tout).
Concernant la remarque précédent de Frédéric :
je dirais err_class pour une identification technique, et err_desc pouvant contenir une description en français)
Je la trouve très bien : on y gagnerait vraiment pour afficher les erreurs au admin fonctionnels dans w.c.s. Mais "reason" est peut-être aujourd'hui utilisée dans des conditions, et donc on ne peut pas en changer le contenu. Il faudrait que reason reste telle quelle (en anglais) et err_desc soit la versionefrançaise. Ca veut dire, à mon avis, qu'il faudrait avoir dans toute réponse les deux versions, genre :
return Response({ 'err': 1, 'reason': 'count cannot be less than or equal to zero', # legacy 'err_desc': _('count cannot be less than or equal to zero'), })
sans avoir donc de surcharge de Response. A voir si on veut ajouter aussi un "err_class" genre "ValueError" ou "chrono.NoMoreDeskAvailableError", "chrono.SoldOutError" ..
Sauf si tu as une autre idée Lauréline.
Mis à jour par Lauréline Guérin il y a plus de 4 ans
vu sur jabber:
- err_class en anglais
- err_desc en français
- garder la surcharge de Response pour ajouter reason = err_class
Mis à jour par Lauréline Guérin il y a plus de 4 ans
- Fichier 0001-api-return-err_desc-reason-in-case-of-error-24025.patch 0001-api-return-err_desc-reason-in-case-of-error-24025.patch ajouté
- Statut changé de En cours à Solution proposée
Mis à jour par Thomas Noël il y a plus de 4 ans
Au niveau de cancel_error il va manquer de quoi aider gettext à découvrir les messages à traduire dans le .po. Pour ça il faut ajouter des gettext_noop(...) dans les cancel_error = '...'
qui précèdent, genre
from django.utils.translation import ugettext_lazy as _ ... cancel_error = gettext_noop('cancel booking: booking does no exist') ... 'err_class': cancel_error, 'err_desc': _(cancel_error),
Mis à jour par Lauréline Guérin il y a plus de 4 ans
Mis à jour par Thomas Noël il y a plus de 4 ans
- Statut changé de Solution proposée à Solution validée
Mis à jour par Lauréline Guérin il y a plus de 4 ans
- Statut changé de Solution validée à Résolu (à déployer)
commit 3bf36a16170c71d24f5a0d79109acd100863422d Author: Lauréline Guérin <zebuline@entrouvert.com> Date: Thu Oct 31 09:42:22 2019 +0100 api: return err_desc & reason in case of error (#24025)
Mis à jour par Frédéric Péters il y a plus de 4 ans
- Statut changé de Résolu (à déployer) à Solution déployée
api: return err_desc & reason in case of error (#24025)