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 functools import reduce
from gallery.models import Image from gallery.models import Image
from translation.models import SiteInterfaceDictionary from translation.models import SiteInterfaceDictionary
from main.models import SiteSettings
class WineColorSerializer(TransferSerializerMixin): class WineColorSerializer(TransferSerializerMixin):
@ -496,12 +497,14 @@ class PlateSerializer(TransferSerializerMixin):
id = serializers.IntegerField() id = serializers.IntegerField()
name = serializers.CharField() name = serializers.CharField()
vintage = serializers.CharField() vintage = serializers.CharField()
site_id = serializers.IntegerField()
class Meta(ProductSerializer.Meta): class Meta(ProductSerializer.Meta):
fields = ( fields = (
'id', 'id',
'name', 'name',
'vintage', 'vintage',
'site_id',
) )
def validate(self, attrs): def validate(self, attrs):
@ -513,9 +516,9 @@ class PlateSerializer(TransferSerializerMixin):
attrs['vintage'] = self.get_vintage_year(attrs.pop('vintage')) attrs['vintage'] = self.get_vintage_year(attrs.pop('vintage'))
attrs['product_type'] = product_type attrs['product_type'] = product_type
attrs['state'] = self.Meta.model.PUBLISHED attrs['state'] = self.Meta.model.PUBLISHED
attrs['subtype'] = self.get_product_sub_type(product_type, attrs['subtype'] = self.get_product_sub_type(product_type, self.PRODUCT_SUB_TYPE_INDEX_NAME)
self.PRODUCT_SUB_TYPE_INDEX_NAME)
attrs['slug'] = self.get_slug(name, old_id) attrs['slug'] = self.get_slug(name, old_id)
attrs['site'] = self.get_site(attrs.pop('site_id', None))
return attrs return attrs
def create(self, validated_data): def create(self, validated_data):
@ -532,6 +535,12 @@ class PlateSerializer(TransferSerializerMixin):
obj.subtypes.add(*[i for i in subtypes if i]) obj.subtypes.add(*[i for i in subtypes if i])
return obj 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): class PlateImageSerializer(TransferSerializerMixin):