solve conflicts with categories

This commit is contained in:
Diego Calvo
2021-03-19 14:11:56 +01:00
3 changed files with 25 additions and 2 deletions

View File

@@ -793,7 +793,7 @@ class ProductSearchTest(TestCase):
]
q = quote("zapatos rojos")
url = f"{self.endpoint}?q={q}&category=ropa&category=nueva"
url = f"{self.endpoint}?q={q}&category[]=ropa&category[]=nueva"
# send in request
response = self.client.get(url)
# check response

View File

@@ -10,7 +10,7 @@ from django.utils import timezone
import requests
from products.models import Product
from products.models import Product, CategoryTag
from companies.models import Company
from history.models import HistorySync
from PIL import Image
@@ -144,11 +144,23 @@ def ranked_product_search(keyword, shipping_cost=None, discount=None, categories
# filter by category
if categories is not None:
<<<<<<< HEAD
query = Q()
for entry in categories:
query = query | Q(category__name__contains=entry)
products_qs = products_qs.filter(query)
# products_qs = products_qs.filter(category__name__in=categories)
=======
# products_qs = products_qs.filter(category__name__in=categories)
descendants = []
for entry in categories:
cat = CategoryTag.objects.filter(label__iexact=entry).first()
# append category tag, and children
descendants.append(cat)
descendants.extend(cat.children.all())
products_qs = products_qs.filter(category__in=descendants)
>>>>>>> development
# filter by tags
if tags is not None:

View File

@@ -183,11 +183,22 @@ def product_search(request):
products_qs = Product.objects.filter(active=True)
# filter by category
if categories is not None:
<<<<<<< HEAD
query = Q()
for entry in categories:
query = query | Q(category__name__contains=entry)
products_qs = products_qs.filter(query)
=======
descendants = []
for entry in categories:
cat = CategoryTag.objects.filter(label__iexact=entry).first()
# append category tag, and children
descendants.append(cat)
descendants.extend(cat.children.all())
products_qs = products_qs.filter(category__in=descendants)
>>>>>>> development
# filter by tags
if tags is not None:
products_qs = products_qs.filter(tags__name__icontains=tags)