misc: handle decimal attributes when importing / exporting fields (#86531) #1093

Merged
csechet merged 1 commits from wip/86531-decimal-field-attributes into main 2024-02-05 16:09:55 +01:00
Owner

Pas sûr de où mettre les tests, je veux bien un indice.

Pas sûr de où mettre les tests, je veux bien un indice.
Owner

Pas sûr de où mettre les tests, je veux bien un indice.

Dans tests/test_formdef_import.py.

> Pas sûr de où mettre les tests, je veux bien un indice. Dans tests/test_formdef_import.py.
csechet force-pushed wip/86531-decimal-field-attributes from 44ad4e9c49 to 0997fe2dc7 2024-02-05 12:10:15 +01:00 Compare
fpeters requested changes 2024-02-05 12:14:38 +01:00
@ -88,0 +88,4 @@
def init_with_json(self, elem, include_id=False):
super().init_with_json(elem, include_id)
self.min_value = self.convert_value_from_anything(self.min_value)
self.max_value = self.convert_value_from_anything(self.max_value)
Owner

convert_value_from_anything c'est pour la valeur du champ lui-même, ici ça pourrait juste être Decimal(self.min.value), il me semble.

convert_value_from_anything c'est pour la valeur du champ lui-même, ici ça pourrait juste être Decimal(self.min.value), il me semble.
csechet force-pushed wip/86531-decimal-field-attributes from 0997fe2dc7 to 61116aad96 2024-02-05 12:15:44 +01:00 Compare
csechet force-pushed wip/86531-decimal-field-attributes from 61116aad96 to ea8a49dc19 2024-02-05 13:19:50 +01:00 Compare
fpeters requested changes 2024-02-05 14:12:56 +01:00
@ -88,0 +89,4 @@
super().init_with_json(elem, include_id)
self.min_value = decimal.Decimal(self.min_value)
if self.max_value is not None:
self.max_value = decimal.Decimal(self.max_value)
Owner

min_value pourrait être None également (mais sa valeur par défaut est à 0); il me semble que le même if devrait existe pour ce cas. (après ça ok)

min_value pourrait être None également (mais sa valeur par défaut est à 0); il me semble que le même if devrait existe pour ce cas. (après ça ok)
csechet force-pushed wip/86531-decimal-field-attributes from ea8a49dc19 to a2b5f40911 2024-02-05 16:00:27 +01:00 Compare
Author
Owner

Il y a une asymétrie entre le code d'export, qui ne sérialise pas les attributs à None et le code d'import, qui ne sette pas les attributs qui ne sont pas sérialisés et donc les laisse à leur valeur par défaut s'ils ne sont pas dans le JSon ou le XML. Dans le cas de min_value, ce sont deux choses différentes : la valeur par défaut est 0, None a une signification particulière.

J'ai géré spécifiquement pour NumericField, mais ça peut créer des incohérences à l'import pour tous les champs qui peuvent prendre une valeur None, mais qui ont une valeur par défaut différente de None. (mais je n'ai pas trouvé d'autres cas que min_value, donc on s'en fout probablement).

Il y a une asymétrie entre le code d'export, qui ne sérialise pas les attributs à None et le code d'import, qui ne sette pas les attributs qui ne sont pas sérialisés et donc les laisse à leur valeur par défaut s'ils ne sont pas dans le JSon ou le XML. Dans le cas de min_value, ce sont deux choses différentes : la valeur par défaut est 0, None a une signification particulière. J'ai géré spécifiquement pour NumericField, mais ça peut créer des incohérences à l'import pour tous les champs qui peuvent prendre une valeur None, mais qui ont une valeur par défaut différente de None. (mais je n'ai pas trouvé d'autres cas que min_value, donc on s'en fout probablement).
fpeters approved these changes 2024-02-05 16:05:01 +01:00
fpeters left a comment
Owner

ok top.

ok top.
csechet merged commit e7e3b99fa5 into main 2024-02-05 16:09:55 +01:00
csechet deleted branch wip/86531-decimal-field-attributes 2024-02-05 16:09:55 +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/wcs#1093
No description provided.