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 ], }