solve conflicts with categories
This commit is contained in:
@@ -793,7 +793,7 @@ class ProductSearchTest(TestCase):
|
|||||||
]
|
]
|
||||||
|
|
||||||
q = quote("zapatos rojos")
|
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
|
# send in request
|
||||||
response = self.client.get(url)
|
response = self.client.get(url)
|
||||||
# check response
|
# check response
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ from django.utils import timezone
|
|||||||
|
|
||||||
import requests
|
import requests
|
||||||
|
|
||||||
from products.models import Product
|
from products.models import Product, CategoryTag
|
||||||
from companies.models import Company
|
from companies.models import Company
|
||||||
from history.models import HistorySync
|
from history.models import HistorySync
|
||||||
from PIL import Image
|
from PIL import Image
|
||||||
@@ -144,11 +144,23 @@ def ranked_product_search(keyword, shipping_cost=None, discount=None, categories
|
|||||||
|
|
||||||
# filter by category
|
# filter by category
|
||||||
if categories is not None:
|
if categories is not None:
|
||||||
|
<<<<<<< HEAD
|
||||||
query = Q()
|
query = Q()
|
||||||
for entry in categories:
|
for entry in categories:
|
||||||
query = query | Q(category__name__contains=entry)
|
query = query | Q(category__name__contains=entry)
|
||||||
products_qs = products_qs.filter(query)
|
products_qs = products_qs.filter(query)
|
||||||
# products_qs = products_qs.filter(category__name__in=categories)
|
# 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
|
# filter by tags
|
||||||
if tags is not None:
|
if tags is not None:
|
||||||
|
|||||||
@@ -183,11 +183,22 @@ def product_search(request):
|
|||||||
products_qs = Product.objects.filter(active=True)
|
products_qs = Product.objects.filter(active=True)
|
||||||
# filter by category
|
# filter by category
|
||||||
if categories is not None:
|
if categories is not None:
|
||||||
|
<<<<<<< HEAD
|
||||||
query = Q()
|
query = Q()
|
||||||
for entry in categories:
|
for entry in categories:
|
||||||
query = query | Q(category__name__contains=entry)
|
query = query | Q(category__name__contains=entry)
|
||||||
products_qs = products_qs.filter(query)
|
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
|
# filter by tags
|
||||||
if tags is not None:
|
if tags is not None:
|
||||||
products_qs = products_qs.filter(tags__name__icontains=tags)
|
products_qs = products_qs.filter(tags__name__icontains=tags)
|
||||||
|
|||||||
Reference in New Issue
Block a user