transfer partner
This commit is contained in:
parent
8e215b2555
commit
86e29173ba
|
|
@ -1,11 +1,15 @@
|
|||
from pprint import pprint
|
||||
|
||||
from establishment.models import Establishment
|
||||
from partner.models import Partner
|
||||
from transfer.models import EstablishmentBacklinks
|
||||
from transfer.serializers.partner import PartnerSerializer
|
||||
|
||||
|
||||
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)
|
||||
queryset = EstablishmentBacklinks.objects.filter(
|
||||
establishment_id__in=list(establishments),
|
||||
|
|
@ -24,6 +28,7 @@ def transfer_partner():
|
|||
|
||||
serialized_data = PartnerSerializer(data=list(queryset), many=True)
|
||||
if serialized_data.is_valid():
|
||||
Partner.objects.all().delete() # TODO: закоментить, если требуется сохранить старые записи
|
||||
serialized_data.save()
|
||||
else:
|
||||
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.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():
|
||||
|
|
@ -50,8 +39,8 @@ def transfer_wine_bottles_produced():
|
|||
)
|
||||
queryset = [vars(query) for query in raw_queryset]
|
||||
serialized_data = product_serializers.WineBottlesProducedSerializer(
|
||||
data=queryset,
|
||||
many=True)
|
||||
data=queryset,
|
||||
many=True)
|
||||
if serialized_data.is_valid():
|
||||
serialized_data.save()
|
||||
else:
|
||||
|
|
@ -69,8 +58,8 @@ def transfer_wine_classification_type():
|
|||
)
|
||||
queryset = [vars(query) for query in raw_queryset]
|
||||
serialized_data = product_serializers.WineClassificationTypeSerializer(
|
||||
data=queryset,
|
||||
many=True)
|
||||
data=queryset,
|
||||
many=True)
|
||||
if serialized_data.is_valid():
|
||||
serialized_data.save()
|
||||
else:
|
||||
|
|
@ -79,10 +68,10 @@ def transfer_wine_classification_type():
|
|||
|
||||
def transfer_wine_standard():
|
||||
queryset = transfer_models.ProductClassification.objects.filter(parent_id__isnull=True) \
|
||||
.exclude(type='Classification')
|
||||
.exclude(type='Classification')
|
||||
serialized_data = product_serializers.ProductStandardSerializer(
|
||||
data=list(queryset.values()),
|
||||
many=True)
|
||||
data=list(queryset.values()),
|
||||
many=True)
|
||||
if serialized_data.is_valid():
|
||||
serialized_data.save()
|
||||
else:
|
||||
|
|
@ -92,8 +81,8 @@ def transfer_wine_standard():
|
|||
def transfer_wine_classifications():
|
||||
queryset = transfer_models.ProductClassification.objects.filter(type='Classification')
|
||||
serialized_data = product_serializers.ProductClassificationSerializer(
|
||||
data=list(queryset.values()),
|
||||
many=True)
|
||||
data=list(queryset.values()),
|
||||
many=True)
|
||||
if serialized_data.is_valid():
|
||||
serialized_data.save()
|
||||
else:
|
||||
|
|
@ -104,8 +93,8 @@ def transfer_product():
|
|||
errors = []
|
||||
queryset = transfer_models.Products.objects.all()
|
||||
serialized_data = product_serializers.ProductSerializer(
|
||||
data=list(queryset.values()),
|
||||
many=True)
|
||||
data=list(queryset.values()),
|
||||
many=True)
|
||||
if serialized_data.is_valid():
|
||||
serialized_data.save()
|
||||
else:
|
||||
|
|
@ -117,8 +106,8 @@ def transfer_product_note():
|
|||
errors = []
|
||||
queryset = transfer_models.ProductNotes.objects.exclude(text='')
|
||||
serialized_data = product_serializers.ProductNoteSerializer(
|
||||
data=list(queryset.values()),
|
||||
many=True)
|
||||
data=list(queryset.values()),
|
||||
many=True)
|
||||
if serialized_data.is_valid():
|
||||
serialized_data.save()
|
||||
else:
|
||||
|
|
@ -130,8 +119,8 @@ def transfer_plate():
|
|||
errors = []
|
||||
queryset = transfer_models.Merchandise.objects.all()
|
||||
serialized_data = product_serializers.PlateSerializer(
|
||||
data=list(queryset.values()),
|
||||
many=True)
|
||||
data=list(queryset.values()),
|
||||
many=True)
|
||||
if serialized_data.is_valid():
|
||||
serialized_data.save()
|
||||
else:
|
||||
|
|
@ -143,8 +132,8 @@ def transfer_plate_image():
|
|||
errors = []
|
||||
queryset = transfer_models.Merchandise.objects.all()
|
||||
serialized_data = product_serializers.PlateImageSerializer(
|
||||
data=list(queryset.values()),
|
||||
many=True)
|
||||
data=list(queryset.values()),
|
||||
many=True)
|
||||
if serialized_data.is_valid():
|
||||
serialized_data.save()
|
||||
else:
|
||||
|
|
@ -153,7 +142,6 @@ def transfer_plate_image():
|
|||
|
||||
|
||||
data_types = {
|
||||
"partner": [transfer_partner],
|
||||
"wine_characteristics": [
|
||||
transfer_wine_sugar_content,
|
||||
transfer_wine_color,
|
||||
|
|
@ -161,12 +149,12 @@ data_types = {
|
|||
transfer_wine_classification_type,
|
||||
transfer_wine_standard,
|
||||
transfer_wine_classifications,
|
||||
],
|
||||
],
|
||||
"product": [
|
||||
transfer_product,
|
||||
],
|
||||
"product_note": [
|
||||
transfer_product_note,
|
||||
transfer_product_note,
|
||||
],
|
||||
"souvenir": [
|
||||
transfer_plate,
|
||||
|
|
|
|||
|
|
@ -1,29 +1,53 @@
|
|||
from rest_framework import serializers
|
||||
|
||||
from establishment.models import Establishment
|
||||
from partner.models import Partner
|
||||
|
||||
|
||||
class PartnerSerializer(serializers.Serializer):
|
||||
pass
|
||||
# 'id',
|
||||
# 'establishment_id',
|
||||
# 'partnership_name',
|
||||
# 'partnership_icon',
|
||||
# 'backlink_url',
|
||||
# 'created_at',
|
||||
# 'type',
|
||||
# 'starting_date',
|
||||
# 'expiry_date',
|
||||
# 'price_per_month',
|
||||
id = serializers.IntegerField()
|
||||
establishment_id = serializers.IntegerField()
|
||||
partnership_name = serializers.CharField(allow_null=True)
|
||||
partnership_icon = serializers.CharField(allow_null=True)
|
||||
backlink_url = serializers.CharField(allow_null=True)
|
||||
created_at = serializers.DateTimeField(format='%m-%d-%Y %H:%M:%S')
|
||||
type = serializers.CharField(allow_null=True)
|
||||
starting_date = serializers.DateField(allow_null=True)
|
||||
expiry_date = serializers.DateField(allow_null=True)
|
||||
price_per_month = serializers.DecimalField(max_digits=10, decimal_places=2, allow_null=True)
|
||||
|
||||
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):
|
||||
# data["image"] = partnership_to_image_url.get(data["partnership_name"]).get(data["partnership_icon"])
|
||||
# data.pop("partnership_name")
|
||||
# data.pop("partnership_icon")
|
||||
# return data
|
||||
#
|
||||
# def create(self, validated_data):
|
||||
# return Partner.objects.create(**validated_data)
|
||||
@staticmethod
|
||||
def get_image(data):
|
||||
return partnership_to_image_url.get(data['partnership_name']).get(data['partnership_icon'])
|
||||
|
||||
@staticmethod
|
||||
def get_establishment(data):
|
||||
establishment = Establishment.objects.filter(old_id=data['establishment_id']).first()
|
||||
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 = {
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user