From f7b62fc3c2bb4cff34d474b7f967cb8810ea0e29 Mon Sep 17 00:00:00 2001 From: Serghei MIHAI Date: Fri, 25 Jul 2014 14:43:49 +0200 Subject: [PATCH] dossiers: quotations table refactored Closes #5013 --- .../dossiers/templates/dossiers/quotations.html | 19 ++++++++++------ calebasse/dossiers/views.py | 25 +++++++++++++++++++--- 2 files changed, 35 insertions(+), 9 deletions(-) diff --git a/calebasse/dossiers/templates/dossiers/quotations.html b/calebasse/dossiers/templates/dossiers/quotations.html index 731846e..893bfdb 100644 --- a/calebasse/dossiers/templates/dossiers/quotations.html +++ b/calebasse/dossiers/templates/dossiers/quotations.html @@ -52,10 +52,11 @@ N° dossier Nom Prénom + Date de naissance État du dossier - Mises 1 - Mises 2 - Mises 3 + Date du prochain rendez-vou + Date du dernier rendez-vous + Mises ANAP @@ -71,10 +72,16 @@ {{ patient_record.object.id }} {{ patient_record.object.last_name }} {{ patient_record.object.first_name }} + {{ patient_record.object.birthdate|date:"SHORT_DATE_FORMAT" }} {{ patient_record.state }} - {% for mise in patient_record.object.mises_1.all %}{{ mise }}
{% endfor %} - {% for mise in patient_record.object.mises_2.all %}{{ mise }}
{% endfor %} - {% for mise in patient_record.object.mises_3.all %}{{ mise }}
{% endfor %} + {% if patient_record.next_rdv_date %} + {{ patient_record.next_rdv_date|date:"DATETIME_FORMAT" }} + {% endif %} + + {% if patient_record.last_rdv_date %} + {{ patient_record.last_rdv_date|date:"DATETIME_FORMAT" }} + {% endif %} + {% if patient_record.mises %}{% endif %} {% if patient_record.anap %}{% endif %} {% endfor %} diff --git a/calebasse/dossiers/views.py b/calebasse/dossiers/views.py index 45ba7b4..aba0b12 100644 --- a/calebasse/dossiers/views.py +++ b/calebasse/dossiers/views.py @@ -851,12 +851,27 @@ class PatientRecordsQuotationsView(cbv.ListView): deficiencies = [getattr(patient_record, field) \ for field in self.deficience_fields] anap = reduce(lambda f1, f2: f1 or f2, deficiencies) + mises = reduce(lambda m1, m2: m1+m2, [list(getattr(patient_record, field).all()) for field in self.mises_fields]) + next_rdv = get_next_rdv(patient_record) + last_rdv = get_last_rdv(patient_record) + + if next_rdv: + next_rdv_datetime = next_rdv.start_datetime + else: + next_rdv_datetime = None + if last_rdv: + last_rdv_datetime = last_rdv['start_datetime'] + else: + last_rdv_datetime = None patient_records.append( { 'object': patient_record, 'state': state, 'state_class': state_class, - 'anap': anap + 'anap': anap, + 'mises': mises, + 'next_rdv_date': next_rdv_datetime, + 'last_rdv_date': last_rdv_datetime } ) return patient_records @@ -864,12 +879,16 @@ class PatientRecordsQuotationsView(cbv.ListView): def get_queryset(self): form = forms.QuotationsForm(data=self.request.GET or None) qs = super(PatientRecordsQuotationsView, self).get_queryset() - self.deficience_fields = [field for field in self.model._meta.get_all_field_names() if field.startswith('deficiency_')] + all_field_names = self.model._meta.get_all_field_names() + self.deficience_fields = [field for field in all_field_names if field.startswith('deficiency_')] + self.mises_fields = [field for field in all_field_names if field.startswith('mises_')] without_quotations = self.request.GET.get('without_quotations') without_anap_quotations = self.request.GET.get('without_anap_quotations') if without_quotations: - qs = qs.filter(mises_1__isnull=True).filter(mises_2__isnull=True).filter(mises_3__isnull=True) + for field in self.mises_fields: + mise_field = {'%s__isnull' % field: True} + qs = qs.filter(**mise_field) if without_anap_quotations: for field in self.deficience_fields: -- 2.0.1