fix plates transfer

This commit is contained in:
Anatoly 2020-01-24 17:49:34 +03:00
parent 3254573897
commit 36c4641ed0

View File

@ -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):