From ee781150fd27d37c0b453ec411bc49e43310cf48 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=92=D0=B8=D0=BA=D1=82=D0=BE=D1=80=20=D0=93=D0=BB=D0=B0?= =?UTF-8?q?=D0=B4=D0=BA=D0=B8=D1=85?= Date: Fri, 22 Nov 2019 10:38:03 +0300 Subject: [PATCH] Site settings --- .../management/commands/add_site_settings.py | 70 +++++++++++++++++++ apps/main/models.py | 2 + 2 files changed, 72 insertions(+) create mode 100644 apps/main/management/commands/add_site_settings.py diff --git a/apps/main/management/commands/add_site_settings.py b/apps/main/management/commands/add_site_settings.py new file mode 100644 index 00000000..dac98275 --- /dev/null +++ b/apps/main/management/commands/add_site_settings.py @@ -0,0 +1,70 @@ +from django.core.management.base import BaseCommand +from django.db import connections +from establishment.management.commands.add_position import namedtuplefetchall +from main.models import SiteSettings +from location.models import Country +from tqdm import tqdm + + +class Command(BaseCommand): + help = '''Add add site settings from old db to new db. + Run after country migrate!!!''' + + def site_sql(self): + with connections['legacy'].cursor() as cursor: + cursor.execute(''' + select + id, + country_code_2, + pinterest_page_url, + twitter_page_url, + facebook_page_url, + contact_email, + config, + released, + instagram_page_url, + ad_config + from sites as s + ''') + return namedtuplefetchall(cursor) + + def add_site_settings(self): + objects=[] + for s in tqdm(self.site_sql(), desc='Add site settings'): + country = Country.objects.filter(code=s.code) + sites = SiteSettings.objects.filter(country=country) + if not sites.exists(): + objects.append( + SiteSettings( + country=country, + pinterest_page_url=s.pinterest_page_url, + twitter_page_url=s.twitter_page_url, + facebook_page_url=s.facebook_page_url, + instagram_page_url=s.instagram_page_url, + contact_email=s.contact_email, + config=s.config, + ad_config=s.ad_config + ) + ) + SiteSettings.objects.bulk_create(objects) + self.stdout.write(self.style.WARNING(f'Add or get tag category objects.')) + + # def add_category_tag(self): + # objects = [] + # for c in tqdm(self.category_sql(), desc='Add category tags'): + # categories = TagCategory.objects.filter(index_name=c.category) + # if not categories.exists(): + # objects.append( + # TagCategory(label={"en-GB": c.category}, + # value_type=c.value_type, + # index_name=c.category, + # public=True + # ) + # ) + # else: + # categories.update(public=True) + # TagCategory.objects.bulk_create(objects) + # self.stdout.write(self.style.WARNING(f'Add or get tag category objects.')) + + def handle(self, *args, **kwargs): + pass \ No newline at end of file diff --git a/apps/main/models.py b/apps/main/models.py index 61a4d447..fcce88ab 100644 --- a/apps/main/models.py +++ b/apps/main/models.py @@ -69,6 +69,8 @@ class SiteSettings(ProjectBaseMixin): verbose_name=_('AD config')) currency = models.ForeignKey(Currency, on_delete=models.PROTECT, null=True, default=None) + old_id = models.IntegerField(blank=True, null=True) + objects = SiteSettingsQuerySet.as_manager() class Meta: