Fixes: 1) Corrected products' filtering options on interfaces

This commit is contained in:
Egor Pavlovich Gorbunov 2025-08-25 00:41:02 +03:00
parent 9e1430b05c
commit 54d8889ffa
3 changed files with 10 additions and 2 deletions

View file

@ -155,6 +155,7 @@ class Query(ObjectType):
is_active=True, is_active=True,
brand__is_active=True, brand__is_active=True,
category__is_active=True, category__is_active=True,
stocks__isnull=False,
stocks__vendor__is_active=True, stocks__vendor__is_active=True,
) )
.select_related("brand", "category") .select_related("brand", "category")

View file

@ -4,6 +4,7 @@ import requests
from constance import config from constance import config
from django.contrib.gis.geos import Point from django.contrib.gis.geos import Point
from django.db import models from django.db import models
from modeltranslation.manager import MultilingualManager
logger = logging.getLogger("django") logger = logging.getLogger("django")
@ -64,10 +65,14 @@ class AddressManager(models.Manager):
)[0] )[0]
class ProductManager(models.Manager): class ProductManager(MultilingualManager):
def available(self): def available(self):
return self.filter( return self.filter(
is_active=True, brand__is_active=True, category__is_active=True, stocks__vendor__is_active=True is_active=True,
brand__is_active=True,
category__is_active=True,
stocks__isnull=False,
stocks__vendor__is_active=True,
) )
def available_in_stock(self): def available_in_stock(self):
@ -75,6 +80,7 @@ class ProductManager(models.Manager):
is_active=True, is_active=True,
brand__is_active=True, brand__is_active=True,
category__is_active=True, category__is_active=True,
stocks__isnull=False,
stocks__vendor__is_active=True, stocks__vendor__is_active=True,
stocks__quantity__gt=0, stocks__quantity__gt=0,
) )

View file

@ -544,6 +544,7 @@ class ProductViewSet(EvibesViewSet):
is_active=True, is_active=True,
brand__is_active=True, brand__is_active=True,
category__is_active=True, category__is_active=True,
stocks__isnull=False,
stocks__vendor__is_active=True, stocks__vendor__is_active=True,
) )