diff --git a/project/services/event.py b/project/services/event.py index bbd2204..51b6cfc 100644 --- a/project/services/event.py +++ b/project/services/event.py @@ -291,8 +291,8 @@ def get_events_query(params): event_filter = and_(event_filter, Event.dates.any(date_filter)) return ( Event.query.join(Event.admin_unit) - .join(EventPlace, isouter=True) - .join(Location, isouter=True) + .join(Event.event_place, isouter=True) + .join(EventPlace.location, isouter=True) .options( contains_eager(Event.event_place).contains_eager(EventPlace.location), joinedload(Event.categories), diff --git a/tests/services/test_event.py b/tests/services/test_event.py index 40bace1..b230bdf 100644 --- a/tests/services/test_event.py +++ b/tests/services/test_event.py @@ -183,3 +183,22 @@ def test_get_recurring_events(client, seeder, app): assert len(recurring_events) == 1 assert recurring_events[0].id == event_id + + +def test_get_events_query(client, seeder, app): + _, admin_unit_id = seeder.setup_base() + seeder.create_event(admin_unit_id) + seeder.upsert_event_place(admin_unit_id, "Other Place") + + with app.app_context(): + from project.services.event import get_events_query + from project.services.event_search import EventSearchParams + + params = EventSearchParams() + params.admin_unit_id = admin_unit_id + params.can_read_private_events = True + + events = get_events_query(params) + pagination = events.paginate() + + assert pagination.total == 1