From 96fd106cca1ec2cdadef96773efaefe3af4c0630 Mon Sep 17 00:00:00 2001 From: littlewolf Date: Tue, 19 Nov 2019 12:05:32 +0300 Subject: [PATCH] Add correction location.country for collections --- apps/location/transfer_data.py | 45 +++++++++++++++++++++++++--------- 1 file changed, 34 insertions(+), 11 deletions(-) diff --git a/apps/location/transfer_data.py b/apps/location/transfer_data.py index f1eb12d8..9020394e 100644 --- a/apps/location/transfer_data.py +++ b/apps/location/transfer_data.py @@ -1,12 +1,12 @@ from transfer.serializers import location as location_serializers from transfer import models as transfer_models -from location.models import Country, Region, City, Address +from location.models import Country, Region, City, Address, WineRegion from pprint import pprint import json from django.conf import settings from django.core.exceptions import MultipleObjectsReturned - +from collection.models import Collection from requests import get @@ -369,17 +369,40 @@ def fix_location_address(): address.save() +def fix_location_collection(): + collections = Collection.objects.filter(old_id__isnull=False) + for collection in collections: + try: + mysql_collection = transfer_models.Collections.objects.\ + raw(f"""select + s.country_code_2, + c.id + from collections as c + join sites s on s.id = c.site_id where c.id={collection.old_id}""")[0] + except: + continue + + try: + correct_country = Country.objects.get(code=mysql_collection.country_code_2, mysql_ids__isnull=False) + except Country.DoesNotExist: + continue + + collection.country = correct_country + collection.save() + + def fix_location_models(): - try: - ruby_data_file = open(f"{settings.PROJECT_ROOT}/apps/location/ruby_data.py", "r") - ruby_data = json.loads(ruby_data_file.read()) - except FileNotFoundError: - ruby_data = get_ruby_data() - - add_correct_location_models(ruby_data) - - fix_location_address() + # try: + # ruby_data_file = open(f"{settings.PROJECT_ROOT}/apps/location/ruby_data.py", "r") + # ruby_data = json.loads(ruby_data_file.read()) + # except FileNotFoundError: + # ruby_data = get_ruby_data() + # + # add_correct_location_models(ruby_data) + # + # fix_location_address() + fix_location_collection() data_types = {