From eef9f43d349a90c46e8264dc37392aa79c5862bf Mon Sep 17 00:00:00 2001 From: Benjamin Dauvergne Date: Tue, 19 Mar 2019 18:09:40 +0100 Subject: [PATCH 2/2] mpdh13: order demands by date (#31562) --- passerelle/contrib/mdph13/models.py | 5 ++++- tests/test_mdph13.py | 5 +++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/passerelle/contrib/mdph13/models.py b/passerelle/contrib/mdph13/models.py index 2831678..01cd287 100644 --- a/passerelle/contrib/mdph13/models.py +++ b/passerelle/contrib/mdph13/models.py @@ -23,8 +23,9 @@ import re import requests from django.db import models, transaction -from django.utils import six +from django.utils import six, dateparse from django.utils.translation import ugettext_lazy as _ +from django.utils.timezone import now from passerelle.utils.jsonresponse import APIError, to_json from passerelle.utils.api import endpoint @@ -124,6 +125,8 @@ class MDPH13Resource(BaseResource, HTTPResource): # Reorganize demandes demandes = data.get('demandes') + # ISO8601 dates are lexicographicaly orderable + demandes.sort(key=lambda demande: demande.get('date_demande') or '', reverse=True) if demandes: if not isinstance(demandes, list): raise APIError('demandes-must-be-a-list', data=content) diff --git a/tests/test_mdph13.py b/tests/test_mdph13.py index c788cbd..40e2125 100644 --- a/tests/test_mdph13.py +++ b/tests/test_mdph13.py @@ -403,6 +403,11 @@ def test_dossier_ok(mdph13, mock_http): assert len(response['data'][0]['dossier']['demandes']) == 2 assert len(response['data'][0]['dossier']['demandes']['en_cours']) == 1 assert len(response['data'][0]['dossier']['demandes']['historique']) == 7 + # check demands are ordered by date + assert response['data'][0]['dossier']['demandes']['historique'][0]['date_demande'] == '2015-11-26' + dates = [demande['date_demande'] for demande in response['data'][0]['dossier']['demandes']['historique']] + assert sorted(dates, reverse=True) == dates + def test_dossier_with_link_id_ok(mdph13, mock_http): -- 2.20.1