From 0f4fd66992d619af9ddc62abfbb4c8f522bebf94 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mika=C3=ABl=20Ates?= Date: Thu, 15 Jan 2015 13:11:14 +0100 Subject: [PATCH] Convert string dates to datetime and display with short format. --- calebasse/cv2helper.py | 76 +++++++++++++++++++ .../dossiers/templates/dossiers/cv2.html | 18 +++-- calebasse/dossiers/views.py | 7 +- 3 files changed, 90 insertions(+), 11 deletions(-) create mode 100644 calebasse/cv2helper.py diff --git a/calebasse/cv2helper.py b/calebasse/cv2helper.py new file mode 100644 index 00000000..70410466 --- /dev/null +++ b/calebasse/cv2helper.py @@ -0,0 +1,76 @@ +from datetime import datetime + +from django.conf import settings + + +def parse_date_ddmmyyyy(str_date): + fmt = '%d%m%Y' + return datetime.strptime(str_date, fmt) + +def parse_date_yymmdd(str_date): + fmt = '%y%m%d' + return datetime.strptime(str_date, fmt) + +def setter_date_ddmmyyyy(field): + try: + return parse_date_ddmmyyyy(str(field)) + except: + pass + +def setter_date_yymmdd(field): + try: + return parse_date_yymmdd(str(field)) + except: + pass + +def setter_periode(start, end): + try: + return parse_date_ddmmyyyy(str(start)), parse_date_ddmmyyyy(str(end)) + except: + pass + +if settings.CV2PARSER: + from cv2parser import cvitale + + def parse(filename): + cv = cvitale.parse(filename) + for beneficiaire in cv.listeBenef.get_element(): + """ + ident + """ + beneficiaire.ident.naissance.date = \ + setter_date_ddmmyyyy(beneficiaire.ident.naissance.date) + beneficiaire.ident.naissance.dateEnCarte = \ + setter_date_yymmdd(beneficiaire.ident.naissance.dateEnCarte) + beneficiaire.ident.dateCertification = \ + setter_date_ddmmyyyy(beneficiaire.ident.dateCertification) + """ + amo + """ + if beneficiaire.amo.listePeriodesDroits: + for p in beneficiaire.amo.listePeriodesDroits.get_element(): + p.debut, p.fin = setter_periode(p.debut, p.fin) + if beneficiaire.amo.service and \ + beneficiaire.amo.service.periodeService: + p = beneficiaire.amo.service.periodeService + p.debut, p.fin = setter_periode(p.debut, p.fin) + """ + mutuelle + """ + if beneficiaire.mutuelle and beneficiaire.mutuelle.listePeriodes: + for p in beneficiaire.mutuelle.listePeriodes.get_element(): + p.debut, p.fin = setter_periode(p.debut, p.fin) + """ + amc + """ + if beneficiaire.amc and beneficiaire.amc.validiteDonnees: + p = beneficiaire.amc.validiteDonnees + p.debut, p.fin = setter_periode(p.debut, p.fin) + """ + cmu + """ + if beneficiaire.cmu and beneficiaire.cmu.periode: + p = beneficiaire.cmu.periode + p.debut, p.fin = setter_periode(p.debut, p.fin) + + return cv diff --git a/calebasse/dossiers/templates/dossiers/cv2.html b/calebasse/dossiers/templates/dossiers/cv2.html index 4224a357..d9d4bd73 100644 --- a/calebasse/dossiers/templates/dossiers/cv2.html +++ b/calebasse/dossiers/templates/dossiers/cv2.html @@ -13,14 +13,18 @@
  • {{ beneficiaire.ident.nomUsuel }}
  • {% if beneficiaire.ident.nomPatronymique %}
  • {{ beneficiaire.ident.nomPatronymique }}
  • {% endif %}
  • {{ beneficiaire.ident.prenomUsuel }}
  • -
  • {% if beneficiaire.ident.naissance.dateEnCarte %}{{ beneficiaire.ident.naissance.dateEnCarte }}{% else %}{{ beneficiaire.ident.naissance.date }}{% endif %}
  • +
  • {% if beneficiaire.ident.naissance.dateEnCarte %}{{ beneficiaire.ident.naissance.dateEnCarte|date:"SHORT_DATE_FORMAT" }}{% else %}{{ beneficiaire.ident.naissance.date|date:"SHORT_DATE_FORMAT" }}{% endif %}
  • {{ beneficiaire.ident.nir }}
  • {% if beneficiaire.ident.adresse %}
  • {% endif %}
  • {{ beneficiaire.ident.rangDeNaissance }}
  • {% if beneficiaire.ident.nirCertifie %}
  • {{ beneficiaire.ident.nirCertifie }}
  • {% endif %} - {% if beneficiaire.ident.dateCertification %}
  • {{ beneficiaire.ident.dateCertification }}
  • {% endif %} + {% if beneficiaire.ident.dateCertification %}
  • {{ beneficiaire.ident.dateCertification|date:"SHORT_DATE_FORMAT" }}
  • {% endif %} {% else %} Problème de lecture du bloc identification. {% endif %} @@ -37,10 +41,10 @@ {% if beneficiaire.amo.infoCompl %}
  • {{ beneficiaire.amo.infoCompl }}
  • {% endif %}
  • {{ beneficiaire.amo.centreCarte }}
  • {% if beneficiaire.amo.listePeriodesDroits %}
  • {% endif %}
  • {{ beneficiaire.amo.medecinTraitant }}
  • - {% if beneficiaire.amo.service %}
  • {{ beneficiaire.amo.codeService }} - {{ beneficiaire.amo.periodeService.debut }} - {{ beneficiaire.amo.periodeService.fin }}
  • {% endif %} + {% if beneficiaire.amo.service %}
  • {{ beneficiaire.amo.codeService }} - {{ beneficiaire.amo.periodeService.debut|date:"SHORT_DATE_FORMAT" }} - {{ beneficiaire.amo.periodeService.fin|date:"SHORT_DATE_FORMAT" }}
  • {% endif %} {% else %} Problème de lecture du bloc amo. {% endif %} @@ -54,7 +58,7 @@ {% if beneficiaire.mutuelle.numIdent %}
  • {{ beneficiaire.mutuelle.numIdent }}
  • {% endif %} {% if beneficiaire.mutuelle.services %}
  • {{ beneficiaire.mutuelle.services.typeService }} - {{ beneficiaire.mutuelle.services.servicesAssocies }}
  • {% endif %} {% if beneficiaire.mutuelle.listePeriodes %}
  • {% endif %} {% if beneficiaire.mutuelle.indicTraitement %}
  • {{ beneficiaire.mutuelle.indicTraitement }}
  • {% endif %} {% if beneficiaire.mutuelle.codeSTS %}
  • {{ beneficiaire.mutuelle.codeSTS }}
  • {% endif %} @@ -68,7 +72,7 @@ {% if beneficiaire.amc.numComplEDI %}
  • {{ beneficiaire.amc.numCompleEDI }}
  • {% endif %} {% if beneficiaire.amc.numAdherent %}
  • {{ beneficiaire.amc.numAdherent }}
  • {% endif %} {% if beneficiaire.amc.indicTraitement %}
  • {{ beneficiaire.amc.indicTraitement }}
  • {% endif %} - {% if beneficiaire.amc.validiteDonnees %}
  • {{ beneficiaire.amc.validiteDonnees.debut }} - {{ beneficiaire.amc.validiteDonnees.fin }}
  • {% endif %} + {% if beneficiaire.amc.validiteDonnees %}
  • {{ beneficiaire.amc.validiteDonnees.debut|date:"SHORT_DATE_FORMAT" }} - {{ beneficiaire.amc.validiteDonnees.fin|date:"SHORT_DATE_FORMAT" }}
  • {% endif %} {% if beneficiaire.amc.codeRoutageFlux %}
  • {{ beneficiaire.amc.codeRoutageFlux }}
  • {% endif %} {% if beneficiaire.amc.identHote %}
  • {{ beneficiaire.amc.identHote }}
  • {% endif %} {% if beneficiaire.amc.nomDomaine %}
  • {{ beneficiaire.amc.nomDomaine }}
  • {% endif %} @@ -81,7 +85,7 @@ {% if beneficiaire.cmu %} Couverture Maladie Universelle {% if beneficiaire.cmu.typeCMU %}
  • {{ beneficiaire.cmu.typeCMU }}
  • {% endif %} - {% if beneficiaire.cmu.periode %}
  • {{ beneficiaire.cmu.periode.debut }} - {{ beneficiaire.cmu.periode.fin }}
  • {% endif %} + {% if beneficiaire.cmu.periode %}
  • {{ beneficiaire.cmu.periode.debut|date:"SHORT_DATE_FORMAT" }} - {{ beneficiaire.cmu.periode.fin|date:"SHORT_DATE_FORMAT" }}
  • {% endif %}
    {% endif %} diff --git a/calebasse/dossiers/views.py b/calebasse/dossiers/views.py index 2a150f5b..a47505a0 100644 --- a/calebasse/dossiers/views.py +++ b/calebasse/dossiers/views.py @@ -37,13 +37,12 @@ from calebasse.facturation.invoice_header import render_to_pdf_file from calebasse.decorators import validator_only +from calebasse import cv2helper + from ..utils import get_service_setting, is_validator, get_last_file logger = logging.getLogger('calebasse.dossiers') -if settings.CV2PARSER: - from cv2parser import cvitale - class NewPatientRecordView(cbv.FormView, cbv.ServiceViewMixin): form_class = forms.NewPatientRecordForm template_name = 'dossiers/patientrecord_new.html' @@ -378,7 +377,7 @@ class ReadCV2View(cbv.FormView): prefix=reader_identifier, suffix='.xml') ctx['cv'] = None try: - ctx['cv'] = cvitale.parse(filename) + ctx['cv'] = cv2helper.parse(filename) except Exception, e: logger.warning("%s" % str(e)) try: