transfer partner
This commit is contained in:
parent
8e215b2555
commit
86e29173ba
|
|
@ -1,11 +1,15 @@
|
||||||
from pprint import pprint
|
from pprint import pprint
|
||||||
|
|
||||||
from establishment.models import Establishment
|
from establishment.models import Establishment
|
||||||
|
from partner.models import Partner
|
||||||
from transfer.models import EstablishmentBacklinks
|
from transfer.models import EstablishmentBacklinks
|
||||||
from transfer.serializers.partner import PartnerSerializer
|
from transfer.serializers.partner import PartnerSerializer
|
||||||
|
|
||||||
|
|
||||||
def transfer_partner():
|
def transfer_partner():
|
||||||
|
"""
|
||||||
|
Transfer data to Partner model only after transfer Establishment
|
||||||
|
"""
|
||||||
establishments = Establishment.objects.filter(old_id__isnull=False).values_list('old_id', flat=True)
|
establishments = Establishment.objects.filter(old_id__isnull=False).values_list('old_id', flat=True)
|
||||||
queryset = EstablishmentBacklinks.objects.filter(
|
queryset = EstablishmentBacklinks.objects.filter(
|
||||||
establishment_id__in=list(establishments),
|
establishment_id__in=list(establishments),
|
||||||
|
|
@ -24,6 +28,7 @@ def transfer_partner():
|
||||||
|
|
||||||
serialized_data = PartnerSerializer(data=list(queryset), many=True)
|
serialized_data = PartnerSerializer(data=list(queryset), many=True)
|
||||||
if serialized_data.is_valid():
|
if serialized_data.is_valid():
|
||||||
|
Partner.objects.all().delete() # TODO: закоментить, если требуется сохранить старые записи
|
||||||
serialized_data.save()
|
serialized_data.save()
|
||||||
else:
|
else:
|
||||||
pprint(f"Partner serializer errors: {serialized_data.errors}")
|
pprint(f"Partner serializer errors: {serialized_data.errors}")
|
||||||
|
|
|
||||||
|
|
@ -2,17 +2,6 @@ from pprint import pprint
|
||||||
|
|
||||||
from transfer import models as transfer_models
|
from transfer import models as transfer_models
|
||||||
from transfer.serializers import product as product_serializers
|
from transfer.serializers import product as product_serializers
|
||||||
from transfer.serializers.partner import PartnerSerializer
|
|
||||||
|
|
||||||
|
|
||||||
def transfer_partner():
|
|
||||||
queryset = transfer_models.EstablishmentBacklinks.objects.filter(type="Partner")
|
|
||||||
|
|
||||||
serialized_data = PartnerSerializer(data=list(queryset.values()), many=True)
|
|
||||||
if serialized_data.is_valid():
|
|
||||||
serialized_data.save()
|
|
||||||
else:
|
|
||||||
pprint(f"News serializer errors: {serialized_data.errors}")
|
|
||||||
|
|
||||||
|
|
||||||
def transfer_wine_color():
|
def transfer_wine_color():
|
||||||
|
|
@ -153,7 +142,6 @@ def transfer_plate_image():
|
||||||
|
|
||||||
|
|
||||||
data_types = {
|
data_types = {
|
||||||
"partner": [transfer_partner],
|
|
||||||
"wine_characteristics": [
|
"wine_characteristics": [
|
||||||
transfer_wine_sugar_content,
|
transfer_wine_sugar_content,
|
||||||
transfer_wine_color,
|
transfer_wine_color,
|
||||||
|
|
|
||||||
|
|
@ -1,29 +1,53 @@
|
||||||
from rest_framework import serializers
|
from rest_framework import serializers
|
||||||
|
|
||||||
|
from establishment.models import Establishment
|
||||||
from partner.models import Partner
|
from partner.models import Partner
|
||||||
|
|
||||||
|
|
||||||
class PartnerSerializer(serializers.Serializer):
|
class PartnerSerializer(serializers.Serializer):
|
||||||
pass
|
id = serializers.IntegerField()
|
||||||
# 'id',
|
establishment_id = serializers.IntegerField()
|
||||||
# 'establishment_id',
|
partnership_name = serializers.CharField(allow_null=True)
|
||||||
# 'partnership_name',
|
partnership_icon = serializers.CharField(allow_null=True)
|
||||||
# 'partnership_icon',
|
backlink_url = serializers.CharField(allow_null=True)
|
||||||
# 'backlink_url',
|
created_at = serializers.DateTimeField(format='%m-%d-%Y %H:%M:%S')
|
||||||
# 'created_at',
|
type = serializers.CharField(allow_null=True)
|
||||||
# 'type',
|
starting_date = serializers.DateField(allow_null=True)
|
||||||
# 'starting_date',
|
expiry_date = serializers.DateField(allow_null=True)
|
||||||
# 'expiry_date',
|
price_per_month = serializers.DecimalField(max_digits=10, decimal_places=2, allow_null=True)
|
||||||
# 'price_per_month',
|
|
||||||
|
|
||||||
|
def validate(self, data):
|
||||||
|
data.update({
|
||||||
|
'old_id': data.pop('id'),
|
||||||
|
'name': data['partnership_name'],
|
||||||
|
'url': data.pop('backlink_url'),
|
||||||
|
'image': self.get_image(data),
|
||||||
|
'establishment': self.get_establishment(data),
|
||||||
|
'type': Partner.PARTNER if data['type'] == 'Partner' else Partner.SPONSOR,
|
||||||
|
'created': data.pop('created_at'),
|
||||||
|
})
|
||||||
|
data.pop('partnership_icon')
|
||||||
|
data.pop('partnership_name')
|
||||||
|
data.pop('establishment_id')
|
||||||
|
return data
|
||||||
|
|
||||||
# def validate(self, data):
|
@staticmethod
|
||||||
# data["image"] = partnership_to_image_url.get(data["partnership_name"]).get(data["partnership_icon"])
|
def get_image(data):
|
||||||
# data.pop("partnership_name")
|
return partnership_to_image_url.get(data['partnership_name']).get(data['partnership_icon'])
|
||||||
# data.pop("partnership_icon")
|
|
||||||
# return data
|
@staticmethod
|
||||||
#
|
def get_establishment(data):
|
||||||
# def create(self, validated_data):
|
establishment = Establishment.objects.filter(old_id=data['establishment_id']).first()
|
||||||
# return Partner.objects.create(**validated_data)
|
if not establishment:
|
||||||
|
raise ValueError(f"Establishment not found with old_id {data['establishment_id']}: ")
|
||||||
|
return establishment
|
||||||
|
|
||||||
|
def create(self, validated_data):
|
||||||
|
obj, _ = Partner.objects.update_or_create(
|
||||||
|
old_id=validated_data['old_id'],
|
||||||
|
defaults=validated_data,
|
||||||
|
)
|
||||||
|
return obj
|
||||||
|
|
||||||
|
|
||||||
partnership_to_image_url = {
|
partnership_to_image_url = {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user