From 285a86e8bed745a90565faa78a371f39b6986006 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?B=C3=A9renger=20Dalle-Cort?= Date: Wed, 24 Apr 2024 13:25:42 -0400 Subject: [PATCH] fix(api): join events only when date_from/to are set --- api/src/crud/jobCrud.py | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/api/src/crud/jobCrud.py b/api/src/crud/jobCrud.py index c63a06b..ba41fc5 100644 --- a/api/src/crud/jobCrud.py +++ b/api/src/crud/jobCrud.py @@ -64,14 +64,16 @@ def get_page(session: Session, # 2) Handle filters related to the events # contains_eager is required to ensure events are loaded - query = session.query(models.Job).join(models.Job.events).options(contains_eager(models.Job.events)) - if date_from != None and date_to != None: - query = query.filter( models.Event.date.between(date_from, date_to) ) - elif date_from != None: - query = query.filter( models.Event.date >= date_from ) - elif date_to != None: - query = query.filter( models.Event.date <= date_to ) + if date_from != None or date_to != None: + + query = query.join(models.Event).options(contains_eager(models.Job.events)) + + if date_from != None : + query = query.filter( models.Event.date >= date_from ) + + if date_to != None: + query = query.filter( models.Event.date <= date_to ) # 3) Handle pagination query = query.offset(skip).limit(limit)