diff --git a/apps/location/transfer_data.py b/apps/location/transfer_data.py index 9362da20..649d85a6 100644 --- a/apps/location/transfer_data.py +++ b/apps/location/transfer_data.py @@ -779,9 +779,9 @@ def set_unused_regions(): data_types = { "dictionaries": [ - # transfer_countries, - # transfer_regions, - # transfer_cities, + # transfer_countries, # !!! см setup_clean_db + # transfer_regions, # !!! см setup_clean_db + # transfer_cities, # !!! см setup_clean_db transfer_addresses, transfer_wine_region, transfer_wine_sub_region, diff --git a/apps/review/transfer_data.py b/apps/review/transfer_data.py index db5dce42..25ef2fb9 100644 --- a/apps/review/transfer_data.py +++ b/apps/review/transfer_data.py @@ -1,9 +1,5 @@ from pprint import pprint -from django.db.models import Q - -from account.models import User -from account.transfer_data import STOP_LIST from establishment.models import Establishment from product.models import Product from review.models import Inquiries as NewInquiries, Review @@ -77,10 +73,7 @@ def make_en_text_review(): def transfer_inquiries(): reviews = Review.objects.all().values_list('old_id', flat=True) - inquiries = Inquiries.objects.exclude( - Q(account__confirmed_at__isnull=True) | - Q(account__email__in=STOP_LIST) - ).filter(review_id__in=list(reviews)) + inquiries = Inquiries.objects.exclude(account__confirmed_at__isnull=True).filter(review_id__in=list(reviews)) serialized_data = InquiriesSerializer(data=list(inquiries.values()), many=True) if serialized_data.is_valid(): diff --git a/apps/transfer/serializers/location.py b/apps/transfer/serializers/location.py index b2130ad5..568102fe 100644 --- a/apps/transfer/serializers/location.py +++ b/apps/transfer/serializers/location.py @@ -26,7 +26,7 @@ class CountrySerializer(serializers.ModelSerializer): def validate(self, data): data["code"] = self.get_country_code(data) - del(data['country_code_2']) + del (data['country_code_2']) data['old_id'] = data.pop('id') @@ -84,10 +84,10 @@ class RegionSerializer(serializers.ModelSerializer): data['parent_region'] = parent_region data['code'] = data.pop('subregion_code') - del(data['region_code']) + del (data['region_code']) else: data['code'] = data.pop('region_code') - del(data['subregion_code']) + del (data['subregion_code']) return data @@ -98,7 +98,7 @@ class RegionSerializer(serializers.ModelSerializer): raise ValueError(f"Country error with {data}: {e}") data["country"] = country - del(data['country_code_2']) + del (data['country_code_2']) return data @@ -160,7 +160,7 @@ class CitySerializer(serializers.ModelSerializer): raise ValueError(f"Region not found with {data}: {e}") data['region'] = region - del(data['subregion_code']) + del (data['subregion_code']) try: country = models.Country.objects.get(code=data['country_code_2']) @@ -168,7 +168,7 @@ class CitySerializer(serializers.ModelSerializer): raise ValueError(f"Country not found with {data}: {e}") data['country'] = country - del(data['country_code_2']) + del (data['country_code_2']) return data @@ -224,13 +224,11 @@ class AddressSerializer(serializers.ModelSerializer): return data def set_city(self, data): - try: - city = models.City.objects.filter(mysql_id=data['city_id']).first() - except models.City.DoesNotExist as e: - raise ValueError(f"City not found with {data}: {e}") + city = models.City.objects.filter(mysql_id=data['city_id']).first() + if not city: + raise ValueError(f"City not found with ID {data['city_id']}") - data['city'] = city - del(data['city_id']) + data['city_id'] = city.id return data def set_address(self, data): @@ -256,7 +254,7 @@ class AddressSerializer(serializers.ModelSerializer): if "number" not in data: data['number'] = 0 else: - del(data['address']) + del (data['address']) data['number'] = 0 return data @@ -273,14 +271,13 @@ class AddressSerializer(serializers.ModelSerializer): else: data['coordinates'] = None - del(data['latitude']) - del(data['longitude']) + del (data['latitude']) + del (data['longitude']) return data class WineRegionSerializer(TransferSerializerMixin): - id = serializers.IntegerField() name = serializers.CharField() desc = serializers.CharField(allow_null=True) @@ -307,9 +304,7 @@ class WineRegionSerializer(TransferSerializerMixin): return attrs - class WineSubRegionSerializer(WineRegionSerializer): - id = serializers.IntegerField() name = serializers.CharField() parent_id = serializers.IntegerField() @@ -336,7 +331,6 @@ class WineSubRegionSerializer(WineRegionSerializer): class WineVillageSerializer(TransferSerializerMixin): - id = serializers.IntegerField() name = serializers.CharField() parent_id = serializers.IntegerField() @@ -362,7 +356,7 @@ class CityMapSerializer(serializers.ModelSerializer): map2 = serializers.CharField(allow_blank=True, allow_null=True) map_ref = serializers.CharField(allow_blank=True, allow_null=True) situation = serializers.CharField(allow_blank=True, allow_null=True) - + class Meta: model = models.City fields = ( @@ -424,15 +418,14 @@ class CityMapCorrectSerializer(CityMapSerializer): def create(self, validated_data): city = validated_data.pop('city') - city.map1=validated_data['map1'], - city.map2=validated_data['map2'], - city.map_ref=validated_data['map_ref'], - city.situation=validated_data['situation'] + city.map1 = validated_data['map1'], + city.map2 = validated_data['map2'], + city.map_ref = validated_data['map_ref'], + city.situation = validated_data['situation'] city.save() class CepageWineRegionSerializer(TransferSerializerMixin): - CATEGORY_LABEL = 'Cepage' CATEGORY_INDEX_NAME = slugify(CATEGORY_LABEL) diff --git a/make_data_migration.sh b/make_data_migration.sh index 0012f659..44a8b29c 100755 --- a/make_data_migration.sh +++ b/make_data_migration.sh @@ -41,9 +41,41 @@ # requester -> requester #./manage.py add_ownership - +# Заполнение моделей Country, Region, City из ruby_data +# для City перенос из старой бд, заполнение флагов и фото +# -------------------------- ./manage.py transfer --setup_clean_db + +# Заполнение модели Address из Locations +# -------------------------- +# id +# city_id +# zip_code +# latitude +# longitude +# address + +# Заполнение модели WineRegion из WineLocations +# -------------------------- +# id +# name +# desc +# latitude +# longitude + +# Заполнение модели WineSubRegion из WineVillage +# -------------------------- +# id +# name +# parent_id + +# Заполнение модели WineSubRegion из WineLocations +# -------------------------- +# id +# name +# parent_id ./manage.py transfer -d + ./manage.py transfer -e ./manage.py transfer -n ./manage.py rm_empty_images # команда для удаления картинок с относительным урлом из news.description