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():
|
||||||
|
|
@ -50,8 +39,8 @@ def transfer_wine_bottles_produced():
|
||||||
)
|
)
|
||||||
queryset = [vars(query) for query in raw_queryset]
|
queryset = [vars(query) for query in raw_queryset]
|
||||||
serialized_data = product_serializers.WineBottlesProducedSerializer(
|
serialized_data = product_serializers.WineBottlesProducedSerializer(
|
||||||
data=queryset,
|
data=queryset,
|
||||||
many=True)
|
many=True)
|
||||||
if serialized_data.is_valid():
|
if serialized_data.is_valid():
|
||||||
serialized_data.save()
|
serialized_data.save()
|
||||||
else:
|
else:
|
||||||
|
|
@ -69,8 +58,8 @@ def transfer_wine_classification_type():
|
||||||
)
|
)
|
||||||
queryset = [vars(query) for query in raw_queryset]
|
queryset = [vars(query) for query in raw_queryset]
|
||||||
serialized_data = product_serializers.WineClassificationTypeSerializer(
|
serialized_data = product_serializers.WineClassificationTypeSerializer(
|
||||||
data=queryset,
|
data=queryset,
|
||||||
many=True)
|
many=True)
|
||||||
if serialized_data.is_valid():
|
if serialized_data.is_valid():
|
||||||
serialized_data.save()
|
serialized_data.save()
|
||||||
else:
|
else:
|
||||||
|
|
@ -79,10 +68,10 @@ def transfer_wine_classification_type():
|
||||||
|
|
||||||
def transfer_wine_standard():
|
def transfer_wine_standard():
|
||||||
queryset = transfer_models.ProductClassification.objects.filter(parent_id__isnull=True) \
|
queryset = transfer_models.ProductClassification.objects.filter(parent_id__isnull=True) \
|
||||||
.exclude(type='Classification')
|
.exclude(type='Classification')
|
||||||
serialized_data = product_serializers.ProductStandardSerializer(
|
serialized_data = product_serializers.ProductStandardSerializer(
|
||||||
data=list(queryset.values()),
|
data=list(queryset.values()),
|
||||||
many=True)
|
many=True)
|
||||||
if serialized_data.is_valid():
|
if serialized_data.is_valid():
|
||||||
serialized_data.save()
|
serialized_data.save()
|
||||||
else:
|
else:
|
||||||
|
|
@ -92,8 +81,8 @@ def transfer_wine_standard():
|
||||||
def transfer_wine_classifications():
|
def transfer_wine_classifications():
|
||||||
queryset = transfer_models.ProductClassification.objects.filter(type='Classification')
|
queryset = transfer_models.ProductClassification.objects.filter(type='Classification')
|
||||||
serialized_data = product_serializers.ProductClassificationSerializer(
|
serialized_data = product_serializers.ProductClassificationSerializer(
|
||||||
data=list(queryset.values()),
|
data=list(queryset.values()),
|
||||||
many=True)
|
many=True)
|
||||||
if serialized_data.is_valid():
|
if serialized_data.is_valid():
|
||||||
serialized_data.save()
|
serialized_data.save()
|
||||||
else:
|
else:
|
||||||
|
|
@ -104,8 +93,8 @@ def transfer_product():
|
||||||
errors = []
|
errors = []
|
||||||
queryset = transfer_models.Products.objects.all()
|
queryset = transfer_models.Products.objects.all()
|
||||||
serialized_data = product_serializers.ProductSerializer(
|
serialized_data = product_serializers.ProductSerializer(
|
||||||
data=list(queryset.values()),
|
data=list(queryset.values()),
|
||||||
many=True)
|
many=True)
|
||||||
if serialized_data.is_valid():
|
if serialized_data.is_valid():
|
||||||
serialized_data.save()
|
serialized_data.save()
|
||||||
else:
|
else:
|
||||||
|
|
@ -117,8 +106,8 @@ def transfer_product_note():
|
||||||
errors = []
|
errors = []
|
||||||
queryset = transfer_models.ProductNotes.objects.exclude(text='')
|
queryset = transfer_models.ProductNotes.objects.exclude(text='')
|
||||||
serialized_data = product_serializers.ProductNoteSerializer(
|
serialized_data = product_serializers.ProductNoteSerializer(
|
||||||
data=list(queryset.values()),
|
data=list(queryset.values()),
|
||||||
many=True)
|
many=True)
|
||||||
if serialized_data.is_valid():
|
if serialized_data.is_valid():
|
||||||
serialized_data.save()
|
serialized_data.save()
|
||||||
else:
|
else:
|
||||||
|
|
@ -130,8 +119,8 @@ def transfer_plate():
|
||||||
errors = []
|
errors = []
|
||||||
queryset = transfer_models.Merchandise.objects.all()
|
queryset = transfer_models.Merchandise.objects.all()
|
||||||
serialized_data = product_serializers.PlateSerializer(
|
serialized_data = product_serializers.PlateSerializer(
|
||||||
data=list(queryset.values()),
|
data=list(queryset.values()),
|
||||||
many=True)
|
many=True)
|
||||||
if serialized_data.is_valid():
|
if serialized_data.is_valid():
|
||||||
serialized_data.save()
|
serialized_data.save()
|
||||||
else:
|
else:
|
||||||
|
|
@ -143,8 +132,8 @@ def transfer_plate_image():
|
||||||
errors = []
|
errors = []
|
||||||
queryset = transfer_models.Merchandise.objects.all()
|
queryset = transfer_models.Merchandise.objects.all()
|
||||||
serialized_data = product_serializers.PlateImageSerializer(
|
serialized_data = product_serializers.PlateImageSerializer(
|
||||||
data=list(queryset.values()),
|
data=list(queryset.values()),
|
||||||
many=True)
|
many=True)
|
||||||
if serialized_data.is_valid():
|
if serialized_data.is_valid():
|
||||||
serialized_data.save()
|
serialized_data.save()
|
||||||
else:
|
else:
|
||||||
|
|
@ -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,
|
||||||
|
|
@ -161,12 +149,12 @@ data_types = {
|
||||||
transfer_wine_classification_type,
|
transfer_wine_classification_type,
|
||||||
transfer_wine_standard,
|
transfer_wine_standard,
|
||||||
transfer_wine_classifications,
|
transfer_wine_classifications,
|
||||||
],
|
],
|
||||||
"product": [
|
"product": [
|
||||||
transfer_product,
|
transfer_product,
|
||||||
],
|
],
|
||||||
"product_note": [
|
"product_note": [
|
||||||
transfer_product_note,
|
transfer_product_note,
|
||||||
],
|
],
|
||||||
"souvenir": [
|
"souvenir": [
|
||||||
transfer_plate,
|
transfer_plate,
|
||||||
|
|
|
||||||
|
|
@ -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