Merge branch 'master' into nanterre-recette
This commit is contained in:
commit
c010acdc07
|
@ -225,7 +225,10 @@ class PersonSearch(object):
|
|||
for identifier in identifiers:
|
||||
self = self.search_identifier(identifier)
|
||||
for birthdate in birthdates:
|
||||
self = self.search_birthdate(birthdate)
|
||||
if email or identifier or names:
|
||||
self = self.search_birthdate(birthdate, window_days=0)
|
||||
else:
|
||||
self = self.search_birthdate(birthdate)
|
||||
self = self.search_names(names)
|
||||
return self
|
||||
|
||||
|
@ -258,7 +261,7 @@ class PersonSearch(object):
|
|||
self.add_filter('key', q)
|
||||
return self
|
||||
|
||||
def search_birthdate(self, birthdate, window_days=0):
|
||||
def search_birthdate(self, birthdate, window_days=None):
|
||||
self = copy.deepcopy(self)
|
||||
|
||||
if hasattr(birthdate, 'year'):
|
||||
|
@ -291,7 +294,7 @@ class PersonSearch(object):
|
|||
before = datetime.date(int(birthdate['year']), 12, 31)
|
||||
|
||||
first_january_same_year = None
|
||||
if before == after:
|
||||
if before == after and window_days is not None:
|
||||
first_january_same_year = before.replace(month=1, day=1)
|
||||
if window_days:
|
||||
after -= datetime.timedelta(days=window_days)
|
||||
|
@ -299,11 +302,16 @@ class PersonSearch(object):
|
|||
|
||||
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)
|
||||
# windows days is only used by the duplicate search and when the
|
||||
# birthdate is not the only query, we use this fact to augment the
|
||||
# search window with dates before 1903 and dates on the first day of
|
||||
# the same year, to match dubious imports.
|
||||
if window_days is not None:
|
||||
# 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
|
||||
|
||||
|
|
Loading…
Reference in New Issue