Project

General

Profile

« Previous | Next » 

Revision 1af9e727

Added by Frédéric Péters (de retour le 27 mai) over 9 years ago

dossiers: make the age format configurable via service settings

Closes #5469

View differences:

calebasse/dossiers/models.py
21 21
from calebasse.actes.models import Act
22 22

  
23 23
from ..middleware.request import get_request
24
from ..utils import get_service_setting
24 25

  
25 26
DEFAULT_ACT_NUMBER_DIAGNOSTIC = 6
26 27
DEFAULT_ACT_NUMBER_TREATMENT = 30
......
368 369
                return None
369 370
        return None
370 371

  
371
    def age(self):
372
    def age(self, age_format=None):
372 373
        if not self.birthdate:
373 374
            return 'inconnu'
375

  
376
        if not age_format:
377
            age_format = get_service_setting('age_format')
378

  
374 379
        now = datetime.today().date()
375 380
        age = relativedelta(now, self.birthdate)
376
        if age.years < 2:
377
            # for children < 2 years, return the number of months
378
            months = age.years * 12 + age.months
379
            if months:
380
                return '%s mois' % months
381
            return '%s jours' % age.days
382
        return '%s ans' % age.years
381

  
382
        # by default we return the number of months for children < 2 years, but
383
        # there's a service setting to have it always displayed that way.
384
        months = age.years * 12 + age.months
385
        if months == 0:
386
            components = []
387
        elif age.years < 2 or age_format == 'months_only':
388
            components = ['%s mois' % months]
389
        else:
390
            components = ['%s ans' % age.years]
391
            if age.months:
392
                components.append('%s mois' % age.months)
393

  
394
        # under three months, we also display the number of days
395
        if months < 3:
396
            if age.days == 1:
397
                components.append("%s jour" % age.days)
398
            elif age.days > 1:
399
                components.append('%s jours' % age.days)
400

  
401
        return ' et '.join(components)
383 402

  
384 403

  
385 404
class PatientRecordManager(models.Manager):

Also available in: Unified diff