toulouse-maelis: add DUI to already linked error (#86594) #460
|
@ -1704,7 +1704,10 @@ class ToulouseMaelis(BaseResource, HTTPResource):
|
|||
)
|
||||
def create_family(self, request, post_data, NameID=None):
|
||||
if self.link_set.filter(name_id=NameID).exists():
|
||||
raise APIError('User already linked to family')
|
||||
raise APIError(
|
||||
|
||||
'User already linked to family',
|
||||
extra_dict={'link': self.link_set.filter(name_id=NameID).values()[0]},
|
||||
)
|
||||
self.check_and_adapt_family_payload_in_referential(post_data)
|
||||
|
||||
response = self.call('Family', 'createFamily', **post_data)
|
||||
|
@ -1753,7 +1756,10 @@ class ToulouseMaelis(BaseResource, HTTPResource):
|
|||
)
|
||||
def create_rl1(self, request, post_data, NameID=None):
|
||||
if self.link_set.filter(name_id=NameID).exists():
|
||||
raise APIError('User already linked to family')
|
||||
raise APIError(
|
||||
'User already linked to family',
|
||||
extra_dict={'link': self.link_set.filter(name_id=NameID).values()[0]},
|
||||
)
|
||||
self.check_and_adapt_create_rl1_payload_in_referential(post_data)
|
||||
|
||||
response = self.call('Family', 'createFamily', **post_data)
|
||||
|
|
|
@ -2704,7 +2704,7 @@ def test_create_family_empty_referential_key_error(con, app):
|
|||
assert resp.json['err_desc'] == "category: '' does not match '.+'"
|
||||
|
||||
|
||||
def test_create_family_already_linked_error(con, app):
|
||||
def test_create_family_already_linked_error(con, app, freezer):
|
||||
url = get_endpoint('create-family')
|
||||
params = {
|
||||
'category': 'ACCEUI',
|
||||
|
@ -2719,10 +2719,22 @@ def test_create_family_already_linked_error(con, app):
|
|||
'rl1/adresse/zipcode': '75014',
|
||||
}
|
||||
|
||||
freezer.move_to('2024-02-07 10:21:00')
|
||||
Link.objects.create(resource=con, family_id='1312', name_id='local')
|
||||
resp = app.post_json(url + '?NameID=local', params=params)
|
||||
assert resp.json['err'] == 1
|
||||
assert resp.json['err_desc'] == 'User already linked to family'
|
||||
link = resp.json['link']
|
||||
link['id'] = 'xx'
|
||||
link['resource_id'] = 'yy'
|
||||
assert link == {
|
||||
bdauvergne
commented
Nickel. Nickel.
|
||||
'id': 'xx',
|
||||
'resource_id': 'yy',
|
||||
'name_id': 'local',
|
||||
'family_id': '1312',
|
||||
'created': '2024-02-07T10:21:00Z',
|
||||
'updated': '2024-02-07T10:21:00Z',
|
||||
}
|
||||
|
||||
|
||||
def test_create_family_maelis_error(family_service, con, app):
|
||||
|
@ -3051,7 +3063,7 @@ def test_create_rl1_empty_referential_key_error(con, app):
|
|||
assert resp.json['err_desc'] == "rl1/civility: '' does not match '.+'"
|
||||
|
||||
|
||||
def test_create_rl1_already_linked_error(con, app):
|
||||
def test_create_rl1_already_linked_error(con, app, freezer):
|
||||
url = get_endpoint('create-rl1')
|
||||
params = {
|
||||
'category': 'ACCEUI',
|
||||
|
@ -3066,10 +3078,22 @@ def test_create_rl1_already_linked_error(con, app):
|
|||
'rl1/adresse/zipcode': '75014',
|
||||
}
|
||||
|
||||
freezer.move_to('2024-02-07 10:21:00')
|
||||
Link.objects.create(resource=con, family_id='1312', name_id='local')
|
||||
resp = app.post_json(url + '?NameID=local', params=params)
|
||||
assert resp.json['err'] == 1
|
||||
assert resp.json['err_desc'] == 'User already linked to family'
|
||||
link = resp.json['link']
|
||||
link['id'] = 'xx'
|
||||
link['resource_id'] = 'yy'
|
||||
assert link == {
|
||||
'id': 'xx',
|
||||
'resource_id': 'yy',
|
||||
'name_id': 'local',
|
||||
'family_id': '1312',
|
||||
'created': '2024-02-07T10:21:00Z',
|
||||
'updated': '2024-02-07T10:21:00Z',
|
||||
}
|
||||
|
||||
|
||||
def test_create_rl1_wrong_referential_key_error(con, app):
|
||||
|
|
Loading…
Reference in New Issue
Si c'est un message à afficher en IHM ça vaudrait la peine qu'il soit traduit + mettre la traduction dans la PR, tu pourrais aussi mettre le DUI tout seul dans un paramètre de l'APIError via extra_dict.
Cette précision c'est dans le but d'autonomiser les agents,
par exemple sur le ticket #3895 : que le message trouvé dans l'inspecteur sur
form_workflow_data_creation_rl1_error_response_err_desc
leur soit plus parlant (ou pour moi qui me retrouve à vouloir le préciser dans les tickets).
Ce n'est donc pas à destination d'une IHM.
Et je ne pense pas que les agents iront fouiller au delà, dans d'autres variables ...response_extra_dict...
Après, j'ai fait en sorte que l'on n'ait aucune traduction sur ce connecteur (contrib) pour me faciliter les développements.
Dans ce connecteur tous les textes sont en français, sauf cependant les APIError qui sont toutes en anglais.
Je changerais tout ça si tu penses que c'est souhaitable, mais alors je passerais par un autre ticket pour garder un semblant de cohérence.
Cela dit, dis-moi et je fais, et on peut même rejeter ce ticket qui n'a pas réellement d'importance.
On peut demander à des agents d'aller regarder dans l'inspecteur, j'espère bien qu'ils n'y ont pas accès. Je demande juste d'utiliser gettext ici.
Ou bien de ne pas mettre le DUI dans le message mais une clé sur le coté, comme ça pas de traduction nécessaire mais dans le workflow il faut tester err_desc puis afficher un message customisé en parant de ..._response_dui je me réfère aux intentions de Cédric dans http://redmine.sigec.fr/issues/3895#note-5 si tu mets le DUI dans le message et en anglais il ne pourra pas faire grand chose à part l'afficher tel quel.
Ben alors pour être cohérent met l'APIError en français ici, mais pas partout vu que ça pourrait péter des worklows qui testent err_desc (je ne connais pas les pratique de Stéphane et Cédric à ce sujet).