mirror of
https://github.com/lucaspalomodevelop/eventcally.git
synced 2026-03-13 00:07:22 +00:00
Merge pull request #537 from eventcally/issues/536
Advanced keyword filter #536
This commit is contained in:
commit
bc3576452d
@ -69,9 +69,16 @@ def fill_event_filter(event_filter, params: EventSearchParams):
|
||||
|
||||
if params.keyword:
|
||||
tq = func.websearch_to_tsquery("german", params.keyword)
|
||||
like_keyword = "%" + params.keyword + "%"
|
||||
event_filter = and_(
|
||||
event_filter,
|
||||
or_(
|
||||
Event.__ts_vector__.op("@@")(tq),
|
||||
Event.name.ilike(like_keyword),
|
||||
EventPlace.name.ilike(like_keyword),
|
||||
Location.city.ilike(like_keyword),
|
||||
EventOrganizer.name.ilike(like_keyword),
|
||||
),
|
||||
)
|
||||
|
||||
if params.category_id:
|
||||
@ -250,6 +257,7 @@ def get_event_dates_query(params: EventSearchParams):
|
||||
.join(Event.admin_unit)
|
||||
.join(Event.event_place, isouter=True)
|
||||
.join(EventPlace.location, isouter=True)
|
||||
.join(Event.organizer, isouter=True)
|
||||
)
|
||||
|
||||
if admin_unit_reference:
|
||||
@ -268,7 +276,7 @@ def get_event_dates_query(params: EventSearchParams):
|
||||
.joinedload(Event.categories)
|
||||
.load_only(EventCategory.id, EventCategory.name),
|
||||
joinedload(EventDate.event)
|
||||
.joinedload(Event.organizer)
|
||||
.contains_eager(Event.organizer)
|
||||
.load_only(EventOrganizer.id, EventOrganizer.name),
|
||||
joinedload(EventDate.event).joinedload(Event.photo).load_only(Image.id),
|
||||
joinedload(EventDate.event)
|
||||
@ -382,6 +390,7 @@ def get_events_query(params: EventSearchParams):
|
||||
Event.query.join(Event.admin_unit)
|
||||
.join(Event.event_place, isouter=True)
|
||||
.join(EventPlace.location, isouter=True)
|
||||
.join(Event.organizer, isouter=True)
|
||||
)
|
||||
|
||||
if admin_unit_reference:
|
||||
|
||||
@ -176,7 +176,9 @@ def test_search_public_status(client, seeder: Seeder, utils: UtilActions, app, d
|
||||
assert response.json["items"][0]["event"]["id"] == published_id
|
||||
|
||||
url = utils.get_url(
|
||||
"api_v1_event_date_search", public_status=["published", "planned"]
|
||||
"api_v1_event_date_search",
|
||||
public_status=["published", "planned"],
|
||||
sort="-created_at",
|
||||
)
|
||||
response = utils.get_json_ok(url)
|
||||
assert len(response.json["items"]) == 1
|
||||
@ -185,8 +187,8 @@ def test_search_public_status(client, seeder: Seeder, utils: UtilActions, app, d
|
||||
seeder.authorize_api_access(user_id, admin_unit_id)
|
||||
response = utils.get_json_ok(url)
|
||||
assert len(response.json["items"]) == 2
|
||||
assert response.json["items"][0]["event"]["id"] == published_id
|
||||
assert response.json["items"][1]["event"]["id"] == planned_id
|
||||
assert response.json["items"][0]["event"]["id"] == planned_id
|
||||
assert response.json["items"][1]["event"]["id"] == published_id
|
||||
|
||||
|
||||
def test_search_oneDay(client, seeder: Seeder, utils: UtilActions):
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user