From a81b817107fd758ac786a0ac89cbe6e32c85b687 Mon Sep 17 00:00:00 2001 From: Benjamin Dauvergne Date: Wed, 6 Mar 2019 12:18:02 +0100 Subject: [PATCH 3/3] mdph13: add a text property to dossiers (fixes #31116) --- passerelle/contrib/mdph13/models.py | 16 ++++++++++++++++ tests/test_mdph13.py | 6 ++++-- 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/passerelle/contrib/mdph13/models.py b/passerelle/contrib/mdph13/models.py index 275079c..aa82049 100644 --- a/passerelle/contrib/mdph13/models.py +++ b/passerelle/contrib/mdph13/models.py @@ -109,6 +109,8 @@ class MDPH13Resource(BaseResource, HTTPResource): # Reorganize entourage beneficiaire = data.get('beneficiaire', {}) + if not isinstance(beneficiaire, dict): + raise APIError('beneficiaire-must-be-a-dict', data=data) entourage = beneficiaire.get('entourage') if entourage is not None: if not isinstance(entourage, list): @@ -251,6 +253,19 @@ class MDPH13Resource(BaseResource, HTTPResource): qs.delete() return {'deleted': count} + @classmethod + def _make_display_name(cls, mdph_file): + prenom = mdph_file.get('beneficiaire', {}).get('prenom', '') + nom = mdph_file.get('beneficiaire', {}).get('nom', '') + numero = mdph_file['numero'] + parts = [] + if prenom: + parts.append(prenom) + if nom: + parts.append(nom.upper()) + parts.append(u'#%s' % numero) + return ' '.join(parts) + @endpoint(name='dossiers', description=_('Get datas for all links, or for a specified one'), perm='can_access', @@ -298,6 +313,7 @@ class MDPH13Resource(BaseResource, HTTPResource): file_data.update(to_json().err_to_response(e)) else: file_data.update({ + 'text': self._make_display_name(mdph_file), 'dossier': mdph_file, }) data.append(file_data) diff --git a/tests/test_mdph13.py b/tests/test_mdph13.py index 0fc98b3..61cc204 100644 --- a/tests/test_mdph13.py +++ b/tests/test_mdph13.py @@ -39,8 +39,8 @@ VALID_RESPONSE = json.dumps({ "data": { "numero": FILE_NUMBER, "beneficiaire": { - "nom": "MARTINI", - "prenom": "ALFONSO", + "nom": "Martini", + "prenom": "Alfonso", "tel_mobile": "06 01 02 03 04", "tel_fixe": "04.01.02.03.04", "date_de_naissance": "1951-03-23", @@ -409,6 +409,7 @@ def test_dossier_ok(mdph13, mock_http): assert response['data'][0]['numero_dossier'] == FILE_NUMBER assert response['data'][0]['date_de_naissance'] == DOB.isoformat() assert response['data'][0]['dossier']['numero'] == FILE_NUMBER + assert response['data'][0]['text'] == 'Alfonso MARTINI #%s' % FILE_NUMBER assert len(response['data'][0]['dossier']['beneficiaire']['entourage']) == 2 assert len(response['data'][0]['dossier']['beneficiaire']['entourage']['parents']) == 2 assert len(response['data'][0]['dossier']['beneficiaire']['entourage']['aidants']) == 1 @@ -431,6 +432,7 @@ def test_dossier_with_link_id_ok(mdph13, mock_http): assert response['data']['numero_dossier'] == FILE_NUMBER assert response['data']['date_de_naissance'] == DOB.isoformat() assert response['data']['dossier']['numero'] == FILE_NUMBER + assert response['data']['text'] == 'Alfonso MARTINI #%s' % FILE_NUMBER assert len(response['data']['dossier']['beneficiaire']['entourage']) == 2 assert len(response['data']['dossier']['beneficiaire']['entourage']['parents']) == 2 assert len(response['data']['dossier']['beneficiaire']['entourage']['aidants']) == 1 -- 2.20.1