Merge branch 'development' into diego
This commit is contained in:
@@ -35,7 +35,7 @@ class Product(models.Model):
|
||||
discount = models.DecimalField('Descuento', max_digits=5, decimal_places=2, null=True, blank=True)
|
||||
stock = models.PositiveIntegerField('Stock', null=True)
|
||||
tags = TagField(to=TreeTag)
|
||||
category = SingleTagField(null=True) # main tag category
|
||||
category = SingleTagField(blank=True, null=True) # main tag category
|
||||
attributes = TagField(to=TreeTag, related_name='product_attributes')
|
||||
identifiers = models.TextField('Identificador único de producto', null=True, blank=True)
|
||||
|
||||
|
||||
@@ -7,6 +7,18 @@ from utils.tag_serializers import TagListSerializerField, TaggitSerializer, Sing
|
||||
|
||||
class ProductSerializer(TaggitSerializer, serializers.ModelSerializer):
|
||||
|
||||
tags = TagListSerializerField(required=False)
|
||||
category = SingleTagSerializerField(required=False) # main tag category
|
||||
attributes = TagListSerializerField(required=False)
|
||||
# image = serializers.SerializerMethodField()
|
||||
|
||||
class Meta:
|
||||
model = Product
|
||||
exclude = ['created', 'updated', 'creator']
|
||||
|
||||
|
||||
class ProductSearchSerializer(TaggitSerializer, serializers.ModelSerializer):
|
||||
|
||||
tags = TagListSerializerField(required=False)
|
||||
category = SingleTagSerializerField(required=False) # main tag category
|
||||
attributes = TagListSerializerField(required=False)
|
||||
|
||||
@@ -18,7 +18,7 @@ from rest_framework.decorators import api_view, permission_classes, action
|
||||
import requests
|
||||
|
||||
from products.models import Product
|
||||
from products.serializers import ProductSerializer, TagFilterSerializer
|
||||
from products.serializers import ProductSerializer, TagFilterSerializer, ProductSearchSerializer
|
||||
from companies.models import Company
|
||||
from history.models import HistorySync
|
||||
|
||||
@@ -48,7 +48,7 @@ class ProductViewSet(viewsets.ModelViewSet):
|
||||
|
||||
@action(detail=True, methods=['GET',])
|
||||
def related(request):
|
||||
# find the most similar products
|
||||
# TODO: find the most similar products
|
||||
return Response(data=[])
|
||||
|
||||
|
||||
@@ -175,7 +175,7 @@ def product_search(request):
|
||||
# extract filters from result_set
|
||||
filters = extract_search_filters(result_set)
|
||||
# serialize and respond
|
||||
product_serializer = ProductSerializer(result_set, many=True)
|
||||
product_serializer = ProductSearchSerializer(result_set, many=True, context={'request': request})
|
||||
return Response(data={"filters": filters, "products": product_serializer.data})
|
||||
except Exception as e:
|
||||
return Response({"errors": {"details": str(type(e))}}, status=status.HTTP_500_INTERNAL_SERVER_ERROR)
|
||||
|
||||
Reference in New Issue
Block a user