diff --git a/apps/transfer/serializers/product.py b/apps/transfer/serializers/product.py index dddc1bcc..a28217d0 100644 --- a/apps/transfer/serializers/product.py +++ b/apps/transfer/serializers/product.py @@ -12,6 +12,7 @@ from django.conf import settings from functools import reduce from gallery.models import Image from translation.models import SiteInterfaceDictionary +from main.models import SiteSettings class WineColorSerializer(TransferSerializerMixin): @@ -496,12 +497,14 @@ class PlateSerializer(TransferSerializerMixin): id = serializers.IntegerField() name = serializers.CharField() vintage = serializers.CharField() + site_id = serializers.IntegerField() class Meta(ProductSerializer.Meta): fields = ( 'id', 'name', 'vintage', + 'site_id', ) def validate(self, attrs): @@ -513,9 +516,9 @@ class PlateSerializer(TransferSerializerMixin): attrs['vintage'] = self.get_vintage_year(attrs.pop('vintage')) attrs['product_type'] = product_type attrs['state'] = self.Meta.model.PUBLISHED - attrs['subtype'] = self.get_product_sub_type(product_type, - self.PRODUCT_SUB_TYPE_INDEX_NAME) + attrs['subtype'] = self.get_product_sub_type(product_type, self.PRODUCT_SUB_TYPE_INDEX_NAME) attrs['slug'] = self.get_slug(name, old_id) + attrs['site'] = self.get_site(attrs.pop('site_id', None)) return attrs def create(self, validated_data): @@ -532,6 +535,12 @@ class PlateSerializer(TransferSerializerMixin): obj.subtypes.add(*[i for i in subtypes if i]) return obj + def get_site(self, old_id: int): + if old_id: + site_qs = SiteSettings.objects.filter(old_id=old_id) + if site_qs.exists(): + return site_qs.first() + class PlateImageSerializer(TransferSerializerMixin):