138 lines
4.2 KiB
Python
138 lines
4.2 KiB
Python
from pprint import pprint
|
|
from django.conf import settings
|
|
|
|
from tag.models import TagCategory
|
|
from transfer import models as transfer_models
|
|
from transfer.serializers.partner import PartnerSerializer
|
|
from transfer.serializers import product as product_serializers
|
|
|
|
|
|
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():
|
|
wine_color_index_name = 'wine_color'
|
|
|
|
TagCategory.objects.get_or_create(
|
|
index_name=wine_color_index_name,
|
|
defaults={
|
|
'label': {settings.FALLBACK_LOCALE: wine_color_index_name},
|
|
'value_type': TagCategory.STRING,
|
|
'index_name': wine_color_index_name,
|
|
'public': True
|
|
})
|
|
queryset = transfer_models.WineColor.objects.all()
|
|
serialized_data = product_serializers.WineColorSerializer(
|
|
data=list(queryset.values()),
|
|
many=True)
|
|
if serialized_data.is_valid():
|
|
serialized_data.save()
|
|
else:
|
|
pprint(f"WineColorSerializer errors: {serialized_data.errors}")
|
|
|
|
|
|
def transfer_wine_bottles_produced():
|
|
bottles_produced_index_name = 'bottles_produced'
|
|
|
|
TagCategory.objects.get_or_create(
|
|
index_name=bottles_produced_index_name,
|
|
defaults={
|
|
'label': {settings.FALLBACK_LOCALE: bottles_produced_index_name},
|
|
'value_type': TagCategory.STRING,
|
|
'index_name': bottles_produced_index_name,
|
|
'public': True
|
|
})
|
|
raw_queryset = transfer_models.Products.objects.raw(
|
|
"""
|
|
SELECT
|
|
DISTINCT bottles_produced,
|
|
1 as id
|
|
FROM products
|
|
WHERE bottles_produced IS NOT NULL
|
|
AND bottles_produced !='';
|
|
"""
|
|
)
|
|
queryset = [vars(query) for query in raw_queryset]
|
|
serialized_data = product_serializers.BottlesProducedSerializer(
|
|
data=queryset,
|
|
many=True)
|
|
if serialized_data.is_valid():
|
|
serialized_data.save()
|
|
else:
|
|
pprint(f"transfer_wine_bottles_produced errors: {serialized_data.errors}")
|
|
|
|
|
|
def transfer_wine_standard():
|
|
queryset = transfer_models.WineClassification.objects.filter(parent_id__isnull=True)
|
|
serialized_data = product_serializers.WineStandardSerializer(
|
|
data=list(queryset.values()),
|
|
many=True)
|
|
if serialized_data.is_valid():
|
|
serialized_data.save()
|
|
else:
|
|
pprint(f"transfer_wine_standard errors: {serialized_data.errors}")
|
|
|
|
|
|
def transfer_wine_classifications():
|
|
queryset = transfer_models.WineClassification.objects.filter(parent_id__isnull=False)
|
|
serialized_data = product_serializers.WineStandardClassificationSerializer(
|
|
data=list(queryset.values()),
|
|
many=True)
|
|
if serialized_data.is_valid():
|
|
serialized_data.save()
|
|
else:
|
|
pprint(f"transfer_wine_classifications errors: {serialized_data.errors}")
|
|
|
|
|
|
def transfer_product_brand():
|
|
raw_queryset = transfer_models.Products.objects.raw(
|
|
"""
|
|
SELECT
|
|
DISTINCT brand,
|
|
1 as id
|
|
FROM products
|
|
WHERE brand IS NOT NULL
|
|
AND brand !='';
|
|
"""
|
|
)
|
|
queryset = [vars(query) for query in raw_queryset]
|
|
serialized_data = product_serializers.ProductBrandSerializer(
|
|
data=queryset,
|
|
many=True)
|
|
if serialized_data.is_valid():
|
|
serialized_data.save()
|
|
else:
|
|
pprint(f"transfer_product_brand errors: {serialized_data.errors}")
|
|
|
|
|
|
def transfer_product():
|
|
queryset = transfer_models.Products.objects.all()
|
|
serialized_data = product_serializers.ProductSerializer(
|
|
data=list(queryset.values()),
|
|
many=True)
|
|
if serialized_data.is_valid():
|
|
serialized_data.save()
|
|
else:
|
|
pprint(f"transfer_product errors: {serialized_data.errors}")
|
|
|
|
|
|
data_types = {
|
|
"partner": [transfer_partner],
|
|
"wine_characteristics": [
|
|
transfer_wine_color,
|
|
transfer_wine_bottles_produced,
|
|
transfer_wine_standard,
|
|
transfer_wine_classifications],
|
|
"product": [
|
|
transfer_product_brand,
|
|
transfer_product
|
|
],
|
|
}
|