From 831cb4bc81a48f7418f645d3d0a4998e3c8abda1 Mon Sep 17 00:00:00 2001 From: Dmitriy Kuzmenko Date: Fri, 6 Dec 2019 18:17:16 +0300 Subject: [PATCH] add home_page --- _dockerfiles/db/Dockerfile | 2 +- .../commands/add_home_page_carousel.py | 37 +++++++++++++++++++ apps/transfer/models.py | 2 +- make_data_migration.sh | 2 + project/settings/base.py | 3 ++ project/settings/local.py | 2 +- 6 files changed, 45 insertions(+), 3 deletions(-) create mode 100644 apps/main/management/commands/add_home_page_carousel.py diff --git a/_dockerfiles/db/Dockerfile b/_dockerfiles/db/Dockerfile index e8a9ded3..c3e35955 100644 --- a/_dockerfiles/db/Dockerfile +++ b/_dockerfiles/db/Dockerfile @@ -1,3 +1,3 @@ -FROM mdillon/postgis:latest +FROM mdillon/postgis:10 RUN localedef -i ru_RU -c -f UTF-8 -A /usr/share/locale/locale.alias ru_RU.UTF-8 ENV LANG ru_RU.utf8 diff --git a/apps/main/management/commands/add_home_page_carousel.py b/apps/main/management/commands/add_home_page_carousel.py new file mode 100644 index 00000000..5d4f2703 --- /dev/null +++ b/apps/main/management/commands/add_home_page_carousel.py @@ -0,0 +1,37 @@ +from django.core.management.base import BaseCommand +from tqdm import tqdm + +from establishment.models import Establishment +from main.models import Carousel +from transfer.models import HomePages +from location.models import Country +from django.db.models import F + + +class Command(BaseCommand): + help = '''Add establishment form HomePage to Carousel!''' + + @staticmethod + def get_country(country_code): + return Country.objects.filter(code__iexact=country_code).first() + + def handle(self, *args, **kwargs): + objects = [] + deleted = 0 + hp_list = HomePages.objects.annotate( + country=F('site__country_code_2'), + ).all() + for hm in tqdm(hp_list, desc='Add home_page.establishments to carousel'): + est = Establishment.objects.filter(old_id=hm.selection_of_week).first() + if est: + if est.carousels.exists(): + est.carousels.all().delete() + deleted += 1 + carousel = Carousel( + content_object=est, + country=self.get_country(hm.country) + ) + objects.append(carousel) + Carousel.objects.bulk_create(objects) + self.stdout.write( + self.style.WARNING(f'Created {len(objects)}/Deleted {deleted} carousel objects.')) \ No newline at end of file diff --git a/apps/transfer/models.py b/apps/transfer/models.py index 2ebcfb65..019f38aa 100644 --- a/apps/transfer/models.py +++ b/apps/transfer/models.py @@ -1000,7 +1000,7 @@ class ProductNotes(MigrateMixin): db_table = 'product_notes' -class HomePages(models.Model): +class HomePages(MigrateMixin): using = 'legacy' site = models.ForeignKey(Sites, models.DO_NOTHING, blank=True, null=True) diff --git a/make_data_migration.sh b/make_data_migration.sh index 70e27ccb..13fba591 100755 --- a/make_data_migration.sh +++ b/make_data_migration.sh @@ -2,6 +2,8 @@ ./manage.py transfer -a ./manage.py transfer -d ./manage.py transfer -e +./manage.py transfer -n +./manage.py rm_empty_images # команда для удаления картинок с относительным урлом из news.description ./manage.py upd_transportation ./manage.py transfer --fill_city_gallery ./manage.py transfer -l diff --git a/project/settings/base.py b/project/settings/base.py index 1d2c5744..76af8966 100644 --- a/project/settings/base.py +++ b/project/settings/base.py @@ -524,3 +524,6 @@ INTERNATIONAL_COUNTRY_CODES = ['www', 'main', 'next'] THUMBNAIL_ENGINE = 'utils.thumbnail_engine.GMEngine' COOKIE_DOMAIN = None + +ELASTICSEARCH_DSL = {} +ELASTICSEARCH_INDEX_NAMES = {} diff --git a/project/settings/local.py b/project/settings/local.py index c56f9042..d9c7cab8 100644 --- a/project/settings/local.py +++ b/project/settings/local.py @@ -42,7 +42,7 @@ DATABASES = { 'HOST': os.environ.get('DB_HOSTNAME'), 'PORT': os.environ.get('DB_PORT'), 'OPTIONS': { - 'options': '-c search_path=gm' + 'options': '-c search_path=gm,public' }, }, 'legacy': {