diff --git a/apps/main/migrations/0024_auto_20191031_1439.py b/apps/main/migrations/0024_auto_20191031_1439.py new file mode 100644 index 00000000..304c83fe --- /dev/null +++ b/apps/main/migrations/0024_auto_20191031_1439.py @@ -0,0 +1,48 @@ +# Generated by Django 2.2.4 on 2019-10-31 14:39 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('main', '0023_merge_20191028_0725'), + ] + + operations = [ + migrations.AddField( + model_name='carousel', + name='active', + field=models.BooleanField(default=False, verbose_name='old active'), + ), + migrations.AddField( + model_name='carousel', + name='attachment_suffix_url', + field=models.TextField(blank=True, default=None, null=True, verbose_name='old attachment_suffix_url'), + ), + migrations.AddField( + model_name='carousel', + name='description', + field=models.CharField(blank=True, default=None, max_length=255, null=True, verbose_name='old description'), + ), + migrations.AddField( + model_name='carousel', + name='link', + field=models.CharField(blank=True, default=None, max_length=255, null=True, verbose_name='old link'), + ), + migrations.AddField( + model_name='carousel', + name='link_title', + field=models.CharField(blank=True, default=None, max_length=255, null=True, verbose_name='old link_title'), + ), + migrations.AddField( + model_name='carousel', + name='old_id', + field=models.PositiveIntegerField(blank=True, default=None, null=True, verbose_name='old id'), + ), + migrations.AddField( + model_name='carousel', + name='title', + field=models.CharField(blank=True, default=None, max_length=255, null=True, verbose_name='old title'), + ), + ] diff --git a/apps/main/models.py b/apps/main/models.py index 6af4e4d8..98e12289 100644 --- a/apps/main/models.py +++ b/apps/main/models.py @@ -285,6 +285,14 @@ class Carousel(models.Model): object_id = models.PositiveIntegerField() content_object = generic.GenericForeignKey('content_type', 'object_id') + old_id = models.PositiveIntegerField(_('old id'), blank=True, null=True, default=None) + title = models.CharField(_('old title'), max_length=255, blank=True, null=True, default=None) + link = models.CharField(_('old link'), max_length=255, blank=True, null=True, default=None) + attachment_suffix_url = models.TextField(_('old attachment_suffix_url'), blank=True, null=True, default=None) + description = models.CharField(_('old description'), max_length=255, blank=True, null=True, default=None) + link_title = models.CharField(_('old link_title'), max_length=255, blank=True, null=True, default=None) + active = models.BooleanField(_('old active'), default=False) + objects = CarouselQuerySet.as_manager() class Meta: diff --git a/apps/main/transfer.py b/apps/main/transfer.py index 5d9caafe..52bde4d9 100644 --- a/apps/main/transfer.py +++ b/apps/main/transfer.py @@ -71,7 +71,8 @@ card = { "facebook_page_url": "facebook_page_url", "instagram_page_url": "instagram_page_url", "contact_email": "contact_email", - "config": ("config", "django.db.models.JSONField") #TODO в качесте ключа использовать country_code_2 из legacy - ? + "config": ("config", "django.db.models.JSONField") + # TODO в качесте ключа использовать country_code_2 из legacy - ? }, # "relations": { # # Как работать c отношение OneToOneField @@ -133,7 +134,7 @@ card = { "vintage_year": "year", } }, - #TODO вопрос с content_type + # TODO вопрос с content_type "relations": { "AwardTypes": [( ("award_type", None), @@ -143,4 +144,4 @@ card = { } } -used_apps = ("locations", ) \ No newline at end of file +used_apps = ("locations",) diff --git a/apps/main/transfer_data.py b/apps/main/transfer_data.py new file mode 100644 index 00000000..a532fb3d --- /dev/null +++ b/apps/main/transfer_data.py @@ -0,0 +1,19 @@ +from pprint import pprint + +from transfer.models import CarouselElements +from transfer.serializers.carousel import CarouselSerializer + + +def transfer_carousel(): + queryset = CarouselElements.objects.all() + + serialized_data = CarouselSerializer(data=list(queryset.values()), many=True) + if serialized_data.is_valid(): + serialized_data.save() + else: + pprint(f'News serializer errors: {serialized_data.errors}') + + +data_types = { + 'whirligig': [transfer_carousel] +} diff --git a/apps/transfer/management/commands/transfer.py b/apps/transfer/management/commands/transfer.py index f3abbfab..8d627616 100644 --- a/apps/transfer/management/commands/transfer.py +++ b/apps/transfer/management/commands/transfer.py @@ -21,7 +21,8 @@ class Command(BaseCommand): 'overlook', 'tmp', 'menu', - 'location_establishment' + 'location_establishment', + 'whirligig', ] def handle(self, *args, **options): diff --git a/apps/transfer/models.py b/apps/transfer/models.py index ccda8cd6..d81479a7 100644 --- a/apps/transfer/models.py +++ b/apps/transfer/models.py @@ -938,3 +938,25 @@ class KeyValueMetadatumKeyValueMetadatumEstablishments(MigrateMixin): # class Meta: # managed = False # db_table = 'wine_types' + +class CarouselElements(MigrateMixin): + using = 'legacy' + + title = models.CharField(max_length=255, blank=True, null=True) + link = models.CharField(max_length=255, blank=True, null=True) + home_page_id = models.IntegerField(blank=True, null=True) + created_at = models.DateTimeField() + updated_at = models.DateTimeField() + attachment_file_name = models.CharField(max_length=255, blank=True, null=True) + attachment_content_type = models.CharField(max_length=255, blank=True, null=True) + attachment_file_size = models.IntegerField(blank=True, null=True) + attachment_updated_at = models.DateTimeField(blank=True, null=True) + attachment_suffix_url = models.TextField(blank=True, null=True) + geometries = models.CharField(max_length=1024, blank=True, null=True) + active = models.IntegerField(blank=True, null=True) + description = models.CharField(max_length=255, blank=True, null=True) + link_title = models.CharField(max_length=255, blank=True, null=True) + + class Meta: + managed = False + db_table = 'carousel_elements' diff --git a/apps/transfer/serializers/carousel.py b/apps/transfer/serializers/carousel.py new file mode 100644 index 00000000..dbc3a139 --- /dev/null +++ b/apps/transfer/serializers/carousel.py @@ -0,0 +1,26 @@ +from rest_framework import serializers + +from main.models import Carousel + + +class CarouselSerializer(serializers.Serializer): + # id = serializers.IntegerField() + # tag_cat_id = serializers.IntegerField() + # news_type_id = serializers.IntegerField() + # news_title = serializers.CharField() + # title = serializers.CharField() + # summary = serializers.CharField(allow_null=True, allow_blank=True) + # body = serializers.CharField(allow_null=True) + # created_at = serializers.DateTimeField(format='%m-%d-%Y %H:%M:%S') + # slug = serializers.CharField() + # state = serializers.CharField() + # template = serializers.CharField() + # country_code = serializers.CharField(allow_null=True) + # locale = serializers.CharField() + # image = serializers.CharField() + # tags = serializers.CharField(allow_null=True) + + def create(self, validated_data): + payload = {} + obj = Carousel.objects.create(**payload) + return obj