diff --git a/archilance/management/commands/fill_locations.py b/archilance/management/commands/fill_locations.py new file mode 100644 index 0000000..381dca2 --- /dev/null +++ b/archilance/management/commands/fill_locations.py @@ -0,0 +1,338 @@ +import pydash as _; +from django.core.management import BaseCommand + +_.map = _.map_; +_.filter = _.filter_ + +from common.models import Location + + +COUNTRIES = ('Азербайджан', + 'Армения', + 'Белоруссия', + 'Казахстан', + 'Киргизия', + 'Молдавия', + 'Россия', + 'Таджикистан', + 'Туркмения', + 'Узбекистан') + +REGIONS = ( + ('Республика Адыгея', 'Россия'), + ('Республика Алтай', 'Россия'), + ('Республика Башкортостан', 'Россия'), + ('Республика Бурятия', 'Россия'), + ('Республика Дагестан', 'Россия'), + ('Республика Ингушетия', 'Россия'), + ('Кабардино-Балкарская республика', 'Россия'), + ('Республика Калмыкия', 'Россия'), + ('Карачаево-Черкесская республика', 'Россия'), + ('Республика Карелия', 'Россия'), + ('Республика Коми', 'Россия'), + ('Республика Крым', 'Россия'), + ('Республика Марий Эл', 'Россия'), + ('Республика Мордовия', 'Россия'), + ('Республика Саха (Якутия)', 'Россия'), + ('Республика Северная Осетия — Алания', 'Россия'), + ('Республика Татарстан', 'Россия'), + ('Республика Тыва', 'Россия'), + ('Удмуртская республика', 'Россия'), + ('Республика Хакасия', 'Россия'), + ('Чеченская республика', 'Россия'), + ('Чувашская республика', 'Россия'), + ('Алтайский край', 'Россия'), + ('Забайкальский край', 'Россия'), + ('Камчатский край', 'Россия'), + ('Краснодарский край', 'Россия'), + ('Красноярский край', 'Россия'), + ('Пермский край', 'Россия'), + ('Приморский край', 'Россия'), + ('Ставропольский край', 'Россия'), + ('Хабаровский край', 'Россия'), + ('Амурская область', 'Россия'), + ('Архангельская область', 'Россия'), + ('Астраханская область', 'Россия'), + ('Белгородская область', 'Россия'), + ('Брянская область', 'Россия'), + ('Владимирская область', 'Россия'), + ('Волгоградская область', 'Россия'), + ('Вологодская область', 'Россия'), + ('Воронежская область', 'Россия'), + ('Ивановская область', 'Россия'), + ('Иркутская область', 'Россия'), + ('Калининградская область', 'Россия'), + ('Калужская область', 'Россия'), + ('Кемеровская область', 'Россия'), + ('Кировская область', 'Россия'), + ('Костромская область', 'Россия'), + ('Курганская область', 'Россия'), + ('Курская область', 'Россия'), + ('Ленинградская область', 'Россия'), + ('Липецкая область', 'Россия'), + ('Магаданская область', 'Россия'), + ('Московская область', 'Россия'), + ('Мурманская область', 'Россия'), + ('Нижегородская область', 'Россия'), + ('Новгородская область', 'Россия'), + ('Новосибирская область', 'Россия'), + ('Омская область', 'Россия'), + ('Оренбургская область', 'Россия'), + ('Орловская область', 'Россия'), + ('Пензенская область', 'Россия'), + ('Псковская область', 'Россия'), + ('Ростовская область', 'Россия'), + ('Рязанская область', 'Россия'), + ('Самарская область', 'Россия'), + ('Саратовская область', 'Россия'), + ('Сахалинская область', 'Россия'), + ('Свердловская область', 'Россия'), + ('Смоленская область', 'Россия'), + ('Тамбовская область', 'Россия'), + ('Тверская область', 'Россия'), + ('Томская область', 'Россия'), + ('Тульская область', 'Россия'), + ('Тюменская область', 'Россия'), + ('Ульяновская область', 'Россия'), + ('Челябинская область', 'Россия'), + ('Ярославская область', 'Россия'), + ('Москва', 'Россия'), + ('Санкт-Петербург', 'Россия'), + ('Севастополь', 'Россия'), + ('Еврейская автономная область', 'Россия'), + ('Ненецкий автономный округ', 'Россия'), + ('Ханты-Мансийский автономный округ - Югра', 'Россия'), + ('Чукотский автономный округ', 'Россия'), + ('Ямало-Ненецкий автономный округ', 'Россия'), + + ('Арагацотнская область', 'Армения'), + ('Араратская область', 'Армения'), + ('Армавирская область', 'Армения'), + ('Вайоцдзорская область', 'Армения'), + ('Гехаркуникская область', 'Армения'), + ('Котайкская область', 'Армения'), + ('Лорийская область', 'Армения'), + ('Сюникская область', 'Армения'), + ('Тавушская область', 'Армения'), + ('Ширакская область', 'Армения'), + ('Ереван', 'Армения'), + + ('Минск', 'Белоруссия'), + ('Брестская область', 'Белоруссия'), + ('Витебская область', 'Белоруссия'), + ('Гомельская область', 'Белоруссия'), + ('Гродненская область', 'Белоруссия'), + ('Минская область', 'Белоруссия'), + ('Могилёвская область', 'Белоруссия'), + + ('Акмолинская область', 'Казахстан'), + ('Актюбинская область', 'Казахстан'), + ('Алматинская область', 'Казахстан'), + ('Атырауская область', 'Казахстан'), + ('Восточно-Казахстанская область', 'Казахстан'), + ('Жамбылская область', 'Казахстан'), + ('Западно-Казахстанская область', 'Казахстан'), + ('Карагандинская область', 'Казахстан'), + ('Костанайская область', 'Казахстан'), + ('Кызылординская область', 'Казахстан'), + ('Мангистауская область', 'Казахстан'), + ('Павлодарская область', 'Казахстан'), + ('Северо-Казахстанская область', 'Казахстан'), + ('Южно-Казахстанская область', 'Казахстан'), + ('Астана', 'Казахстан'), + ('Алма-Ата', 'Казахстан'), + + ('Бишкек', 'Киргизия'), + ('Ош', 'Киргизия'), + ('Баткенская область', 'Киргизия'), + ('Джалал-Абадская область', 'Киргизия'), + ('Иссык-Кульская область', 'Киргизия'), + ('Нарынская область', 'Киргизия'), + ('Ошская область', 'Киргизия'), + ('Таласская область', 'Киргизия'), + ('Чуйская область', 'Киргизия'), + + ('Муниципий Кишинёв', 'Молдавия'), + ('Муниципий Бельцы', 'Молдавия'), + ('Муниципий Бендеры', 'Молдавия'), + ('Бессарабский район', 'Молдавия'), + ('Бричанский район', 'Молдавия'), + ('Глодянский район', 'Молдавия'), + ('Дондюшанский район', 'Молдавия'), + ('Дрокиевский район', 'Молдавия'), + ('Дубоссарский район', 'Молдавия'), + ('Единецкий район', 'Молдавия'), + ('Кагульский район', 'Молдавия'), + ('Каларашский район', 'Молдавия'), + ('Кантемирский район', 'Молдавия'), + ('Каушанский район', 'Молдавия'), + ('Криулянский район', 'Молдавия'), + ('Леовский район', 'Молдавия'), + ('Ниспоренский район', 'Молдавия'), + ('Новоаненский район', 'Молдавия'), + ('Окницкий район', 'Молдавия'), + ('Оргеевский район', 'Молдавия'), + ('Резинский район', 'Молдавия'), + ('Рышканский район', 'Молдавия'), + ('Сорокский район', 'Молдавия'), + ('Страшенский район', 'Молдавия'), + ('Сынжерейский район', 'Молдавия'), + ('Тараклийский район', 'Молдавия'), + ('Теленештский район', 'Молдавия'), + ('Унгенский район', 'Молдавия'), + ('Фалештский район', 'Молдавия'), + ('Флорештский район', 'Молдавия'), + ('Хынчештский район', 'Молдавия'), + ('Чимишлийский район', 'Молдавия'), + ('Шолданештский район', 'Молдавия'), + ('Штефан-Водский район', 'Молдавия'), + ('Яловенский район', 'Молдавия'), + + ('Душанбе', 'Таджикистан'), + ('Горно-Бадахшанская автономная область', 'Таджикистан'), + ('Согдийская область', 'Таджикистан'), + ('Хатлонская область', 'Таджикистан'), + ('Районы республиканского подчинения', 'Таджикистан'), + + ('Ашхабад', 'Туркмения'), + ('Ахалский велаят', 'Туркмения'), + ('Балканский велаят', 'Туркмения'), + ('Дашогузский велаят', 'Туркмения'), + ('Лебапский велаят', 'Туркмения'), + ('Марыйский велаят', 'Туркмения'), + + ('Ташкент', 'Узбекистан'), + ('Республика Каракалпакстан', 'Узбекистан'), + ('Андижанская область', 'Узбекистан'), + ('Бухарская область', 'Узбекистан'), + ('Джизакская область', 'Узбекистан'), + ('Кашкадарьинская область', 'Узбекистан'), + ('Навоийская область', 'Узбекистан'), + ('Наманганская область', 'Узбекистан'), + ('Самаркандская область', 'Узбекистан'), + ('Сурхандарьинская область', 'Узбекистан'), + ('Сырдарьинская область', 'Узбекистан'), + ('Ташкентская область', 'Узбекистан'), + ('Ферганская область', 'Узбекистан'), + ('Хорезмская область', 'Узбекистан'), + + ('Апшеронский район', 'Азербайджан'), + ('Агдамский район', 'Азербайджан'), + ('Агдашский район', 'Азербайджан'), + ('Агджабединский район', 'Азербайджан'), + ('Аджигабульский район', 'Азербайджан'), + ('Агстафинский район', 'Азербайджан'), + ('Астаринский район', 'Азербайджан'), + ('Ахсуйский район', 'Азербайджан'), + ('Баку', 'Азербайджан'), + ('Балакенский район', 'Азербайджан'), + ('Бардинский район', 'Азербайджан'), + ('Бейлаганский район', 'Азербайджан'), + ('Билясуварский район', 'Азербайджан'), + ('Габалинский район', 'Азербайджан'), + ('Газахский район', 'Азербайджан'), + ('Гахский район', 'Азербайджан'), + ('Геокчайский район', 'Азербайджан'), + ('Геранбойский район', 'Азербайджан'), + ('Гёйгёльский район', 'Азербайджан'), + ('Гобустанский район', 'Азербайджан'), + ('Губадлинский район', 'Азербайджан'), + ('Губинский район', 'Азербайджан'), + ('Гусарский район', 'Азербайджан'), + ('Гянджа', 'Азербайджан'), + ('Дашкесанский район', 'Азербайджан'), + ('Джалилабадский район', 'Азербайджан'), + ('Джебраильский район', 'Азербайджан'), + ('Евлахский район', 'Азербайджан'), + ('Евлах', 'Азербайджан'), + ('Загатальский район', 'Азербайджан'), + ('Зангеланский район', 'Азербайджан'), + ('Зердабский район', 'Азербайджан'), + ('Имишлинский район', 'Азербайджан'), + ('Исмаиллинский район', 'Азербайджан'), + ('Кедабекский район', 'Азербайджан'), + ('Кельбаджарский район', 'Азербайджан'), + ('Кюрдамирский район', 'Азербайджан'), + ('Лачинский район', 'Азербайджан'), + ('Ленкоранский район', 'Азербайджан'), + ('Ленкорань', 'Азербайджан'), + ('Лерикский район', 'Азербайджан'), + ('Масаллинский район', 'Азербайджан'), + ('Мингечевир', 'Азербайджан'), + ('Нафталан', 'Азербайджан'), + ('Нефтечалинский район', 'Азербайджан'), + ('Огузский район', 'Азербайджан'), + ('Саатлинский район', 'Азербайджан'), + ('Сабирабадский район', 'Азербайджан'), + ('Салянский район', 'Азербайджан'), + ('Самухский район', 'Азербайджан'), + ('Сиазаньский район', 'Азербайджан'), + ('Сумгаит', 'Азербайджан'), + ('Товузский район', 'Азербайджан'), + ('Тертерский район', 'Азербайджан'), + ('Уджарский район', 'Азербайджан'), + ('Физулинский район', 'Азербайджан'), + ('Ханкенди', 'Азербайджан'), + ('Хачмазский район', 'Азербайджан'), + ('Ходжавендский район', 'Азербайджан'), + ('Ходжалинский район', 'Азербайджан'), + ('Хызинский район', 'Азербайджан'), + ('Шабранский район', 'Азербайджан'), + ('Шамкирский район', 'Азербайджан'), + ('Шекинский район', 'Азербайджан'), + ('Шеки', 'Азербайджан'), + ('Шемахинский район', 'Азербайджан'), + ('Ширван', 'Азербайджан'), + ('Шушинский район', 'Азербайджан'), + ('Шуша', 'Азербайджан'), + ('Ярдымлинский район', 'Азербайджан'), +) + +CITIES = ( + ('Москва', 'Москва'), + ('Санкт-Петербург', 'Санкт-Петербург'), + ('Ташкент', 'Ташкент'), + ('Баку', 'Баку'), + ('Минск', 'Минск'), + ('Новосибирск', 'Новосибирская область'), + ('Алма-Ата', 'Алма-Ата'), + ('Екатеринбург', 'Свердловская область'), + ('Нижний Новгород', 'Нижегородская область'), + ('Самара', 'Самарская область'), + ('Казань', 'Республика Татарстан'), + ('Омск', 'Омская область'), + ('Челябинск', 'Челябинская область'), + ('Ереван', 'Ереван'), + ('Ростов-на-Дону', 'Ростовская область'), + ('Уфа', 'Республика Башкортостан'), + ('Волгоград', 'Волгоградская область'), + ('Пермь', 'Пермский край'), + ('Красноярск', 'Красноярский край'), +) + + +class Command(BaseCommand): + def handle(self, *args, **options): + print('---------------------------------------') + print('Generating locations...') + print('---------------------------------------') + + _root = Location.objects.get_or_create(name='_root', type='_root')[0] + + for country in COUNTRIES: + Location.objects.get_or_create(name=country, type='country', parent=_root) + print(country) + + for region in REGIONS: + region_name = region[0] + country_name = region[1] + country = Location.objects.get(name=country_name, type='country') + Location.objects.get_or_create(name=region_name, type='region', parent=country) + print(region_name, country_name) + + for city in CITIES: + city_name = city[0] + region_name = city[1] + region = Location.objects.get(name=region_name, type='region') + Location.objects.get_or_create(name=city_name, type='town', parent=region) + print(city_name, region_name) \ No newline at end of file