refactor location transfer 1

This commit is contained in:
alex 2020-02-03 16:57:00 +03:00
parent 084db83c92
commit 2a9ef2c704
4 changed files with 55 additions and 37 deletions

View File

@ -779,9 +779,9 @@ def set_unused_regions():
data_types = { data_types = {
"dictionaries": [ "dictionaries": [
# transfer_countries, # transfer_countries, # !!! см setup_clean_db
# transfer_regions, # transfer_regions, # !!! см setup_clean_db
# transfer_cities, # transfer_cities, # !!! см setup_clean_db
transfer_addresses, transfer_addresses,
transfer_wine_region, transfer_wine_region,
transfer_wine_sub_region, transfer_wine_sub_region,

View File

@ -1,9 +1,5 @@
from pprint import pprint 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 establishment.models import Establishment
from product.models import Product from product.models import Product
from review.models import Inquiries as NewInquiries, Review from review.models import Inquiries as NewInquiries, Review
@ -77,10 +73,7 @@ def make_en_text_review():
def transfer_inquiries(): def transfer_inquiries():
reviews = Review.objects.all().values_list('old_id', flat=True) reviews = Review.objects.all().values_list('old_id', flat=True)
inquiries = Inquiries.objects.exclude( inquiries = Inquiries.objects.exclude(account__confirmed_at__isnull=True).filter(review_id__in=list(reviews))
Q(account__confirmed_at__isnull=True) |
Q(account__email__in=STOP_LIST)
).filter(review_id__in=list(reviews))
serialized_data = InquiriesSerializer(data=list(inquiries.values()), many=True) serialized_data = InquiriesSerializer(data=list(inquiries.values()), many=True)
if serialized_data.is_valid(): if serialized_data.is_valid():

View File

@ -26,7 +26,7 @@ class CountrySerializer(serializers.ModelSerializer):
def validate(self, data): def validate(self, data):
data["code"] = self.get_country_code(data) data["code"] = self.get_country_code(data)
del(data['country_code_2']) del (data['country_code_2'])
data['old_id'] = data.pop('id') data['old_id'] = data.pop('id')
@ -84,10 +84,10 @@ class RegionSerializer(serializers.ModelSerializer):
data['parent_region'] = parent_region data['parent_region'] = parent_region
data['code'] = data.pop('subregion_code') data['code'] = data.pop('subregion_code')
del(data['region_code']) del (data['region_code'])
else: else:
data['code'] = data.pop('region_code') data['code'] = data.pop('region_code')
del(data['subregion_code']) del (data['subregion_code'])
return data return data
@ -98,7 +98,7 @@ class RegionSerializer(serializers.ModelSerializer):
raise ValueError(f"Country error with {data}: {e}") raise ValueError(f"Country error with {data}: {e}")
data["country"] = country data["country"] = country
del(data['country_code_2']) del (data['country_code_2'])
return data return data
@ -160,7 +160,7 @@ class CitySerializer(serializers.ModelSerializer):
raise ValueError(f"Region not found with {data}: {e}") raise ValueError(f"Region not found with {data}: {e}")
data['region'] = region data['region'] = region
del(data['subregion_code']) del (data['subregion_code'])
try: try:
country = models.Country.objects.get(code=data['country_code_2']) 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}") raise ValueError(f"Country not found with {data}: {e}")
data['country'] = country data['country'] = country
del(data['country_code_2']) del (data['country_code_2'])
return data return data
@ -224,13 +224,11 @@ class AddressSerializer(serializers.ModelSerializer):
return data return data
def set_city(self, data): def set_city(self, data):
try: city = models.City.objects.filter(mysql_id=data['city_id']).first()
city = models.City.objects.filter(mysql_id=data['city_id']).first() if not city:
except models.City.DoesNotExist as e: raise ValueError(f"City not found with ID {data['city_id']}")
raise ValueError(f"City not found with {data}: {e}")
data['city'] = city data['city_id'] = city.id
del(data['city_id'])
return data return data
def set_address(self, data): def set_address(self, data):
@ -256,7 +254,7 @@ class AddressSerializer(serializers.ModelSerializer):
if "number" not in data: if "number" not in data:
data['number'] = 0 data['number'] = 0
else: else:
del(data['address']) del (data['address'])
data['number'] = 0 data['number'] = 0
return data return data
@ -273,14 +271,13 @@ class AddressSerializer(serializers.ModelSerializer):
else: else:
data['coordinates'] = None data['coordinates'] = None
del(data['latitude']) del (data['latitude'])
del(data['longitude']) del (data['longitude'])
return data return data
class WineRegionSerializer(TransferSerializerMixin): class WineRegionSerializer(TransferSerializerMixin):
id = serializers.IntegerField() id = serializers.IntegerField()
name = serializers.CharField() name = serializers.CharField()
desc = serializers.CharField(allow_null=True) desc = serializers.CharField(allow_null=True)
@ -307,9 +304,7 @@ class WineRegionSerializer(TransferSerializerMixin):
return attrs return attrs
class WineSubRegionSerializer(WineRegionSerializer): class WineSubRegionSerializer(WineRegionSerializer):
id = serializers.IntegerField() id = serializers.IntegerField()
name = serializers.CharField() name = serializers.CharField()
parent_id = serializers.IntegerField() parent_id = serializers.IntegerField()
@ -336,7 +331,6 @@ class WineSubRegionSerializer(WineRegionSerializer):
class WineVillageSerializer(TransferSerializerMixin): class WineVillageSerializer(TransferSerializerMixin):
id = serializers.IntegerField() id = serializers.IntegerField()
name = serializers.CharField() name = serializers.CharField()
parent_id = serializers.IntegerField() parent_id = serializers.IntegerField()
@ -424,15 +418,14 @@ class CityMapCorrectSerializer(CityMapSerializer):
def create(self, validated_data): def create(self, validated_data):
city = validated_data.pop('city') city = validated_data.pop('city')
city.map1=validated_data['map1'], city.map1 = validated_data['map1'],
city.map2=validated_data['map2'], city.map2 = validated_data['map2'],
city.map_ref=validated_data['map_ref'], city.map_ref = validated_data['map_ref'],
city.situation=validated_data['situation'] city.situation = validated_data['situation']
city.save() city.save()
class CepageWineRegionSerializer(TransferSerializerMixin): class CepageWineRegionSerializer(TransferSerializerMixin):
CATEGORY_LABEL = 'Cepage' CATEGORY_LABEL = 'Cepage'
CATEGORY_INDEX_NAME = slugify(CATEGORY_LABEL) CATEGORY_INDEX_NAME = slugify(CATEGORY_LABEL)

View File

@ -41,9 +41,41 @@
# requester -> requester # requester -> requester
#./manage.py add_ownership #./manage.py add_ownership
# Заполнение моделей Country, Region, City из ruby_data
# для City перенос из старой бд, заполнение флагов и фото
# --------------------------
./manage.py transfer --setup_clean_db ./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 -d
./manage.py transfer -e ./manage.py transfer -e
./manage.py transfer -n ./manage.py transfer -n
./manage.py rm_empty_images # команда для удаления картинок с относительным урлом из news.description ./manage.py rm_empty_images # команда для удаления картинок с относительным урлом из news.description