nanterre: améliorer la recherche par date de naissance (fixes #21415)

Le RSU contient des fiches dont la date est largement erronnée:
* soit au premier janvier de l'année de naissance
* soit avant 1903

Ce commit inclut dans la recherche automatiquement les fiches avec de
tels date même si une date précise est donnée.
This commit is contained in:
Benjamin Dauvergne 2018-01-11 16:35:23 +01:00 committed by Thomas NOEL
parent 8f02fb31e7
commit b1bbc814f9
1 changed files with 11 additions and 3 deletions

View File

@ -290,12 +290,20 @@ class PersonSearch(object):
after = datetime.date(int(birthdate['year']), 1, 1)
before = datetime.date(int(birthdate['year']), 12, 31)
if window_days:
after -= datetime.timedelta(days=window_days)
before += datetime.timedelta(days=window_days)
first_january_same_year = None
if before == after:
first_january_same_year = before.replace(month=1, day=1)
if window_days:
after -= datetime.timedelta(days=window_days)
before += datetime.timedelta(days=window_days)
query = Q(content__date_de_naissance__timestamp__gte=after)
query &= Q(content__date_de_naissance__timestamp__lte=before)
# always look for entities before 1903-01-01
query |= Q(content__date_de_naissance__timestamp__lte=datetime.date(1903, 1, 1))
# if search is exact look for first january of the same year
if first_january_same_year:
query |= Q(content__date_de_naissance__timestamp=first_january_same_year)
self.add_filter('birthdate', query)
return self