From 3676381be957e990d1328a1b373a5b4f58fc4bbb Mon Sep 17 00:00:00 2001 From: Raphael Odini Date: Tue, 5 Mar 2024 13:28:41 +0100 Subject: [PATCH] feat(products): new filter by categories_tags (#234) --- app/crud.py | 6 ++++++ app/schemas.py | 1 + 2 files changed, 7 insertions(+) diff --git a/app/crud.py b/app/crud.py index 5ca95215..4bdcd48f 100644 --- a/app/crud.py +++ b/app/crud.py @@ -185,6 +185,12 @@ def get_products_query(filters: ProductFilter | None = None): """Useful for pagination.""" query = select(Product) if filters: + # TEMP: manage array filtering manually (not available in fastapi-filter) # noqa + if filters.categories_tags__contains: + query = query.filter( + Product.categories_tags.contains([filters.categories_tags__contains]) + ) + filters.categories_tags__contains = None query = filters.filter(query) query = filters.sort(query) return query diff --git a/app/schemas.py b/app/schemas.py index a1494475..e17fe0aa 100644 --- a/app/schemas.py +++ b/app/schemas.py @@ -451,6 +451,7 @@ class ProductFilter(Filter): code: Optional[str] | None = None source: Optional[Flavor] | None = None product_name__like: Optional[str] | None = None + categories_tags__contains: Optional[str] | None = None brands__like: Optional[str] | None = None nutriscore_grade: Optional[str] | None = None unique_scans_n__gte: Optional[int] | None = None