diff --git a/apps/news/migrations/0021_auto_20191021_1120.py b/apps/news/migrations/0021_auto_20191021_1120.py new file mode 100644 index 00000000..4aa1104e --- /dev/null +++ b/apps/news/migrations/0021_auto_20191021_1120.py @@ -0,0 +1,18 @@ +# Generated by Django 2.2.4 on 2019-10-21 11:20 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('news', '0020_remove_news_author'), + ] + + operations = [ + migrations.AlterField( + model_name='news', + name='slug', + field=models.SlugField(max_length=255, unique=True, verbose_name='News slug'), + ), + ] diff --git a/apps/news/models.py b/apps/news/models.py index 6e91b912..4558f3dd 100644 --- a/apps/news/models.py +++ b/apps/news/models.py @@ -113,7 +113,7 @@ class News(BaseAttributes, TranslatedFieldsMixin): start = models.DateTimeField(verbose_name=_('Start')) end = models.DateTimeField(blank=True, null=True, default=None, verbose_name=_('End')) - slug = models.SlugField(unique=True, max_length=50, + slug = models.SlugField(unique=True, max_length=255, verbose_name=_('News slug')) playlist = models.IntegerField(_('playlist')) state = models.PositiveSmallIntegerField(default=WAITING, choices=STATE_CHOICES, diff --git a/apps/news/transfer_data.py b/apps/news/transfer_data.py index 06b6510d..15c4b032 100644 --- a/apps/news/transfer_data.py +++ b/apps/news/transfer_data.py @@ -7,10 +7,13 @@ from pprint import pprint def transfer_news(): news_type, _ = NewsType.objects.get_or_create(name="News") - queryset = PageTexts.objects.all().annotate(news_type=Value(news_type.id, output_field=IntegerField())) + queryset = PageTexts.objects.filter(page__type="News").annotate(news_type=Value(news_type.id, output_field=IntegerField()), + playlist=Value(1, output_field=IntegerField())) + # queryset = PageTexts.objects.all().annotate(news_type=Value(news_type.id, output_field=IntegerField())) queryset = queryset.annotate(attachment_file_name=F('page__attachment_file_name')) queryset = queryset.annotate(template=F('page__template')) + serialized_data = NewsSerializer(data=list(queryset.values()), many=True) if serialized_data.is_valid(): serialized_data.save() diff --git a/apps/transfer/migrations/__init__.py b/apps/transfer/migrations/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/apps/transfer/serializers/news.py b/apps/transfer/serializers/news.py index ae99e45b..cd685c7a 100644 --- a/apps/transfer/serializers/news.py +++ b/apps/transfer/serializers/news.py @@ -1,5 +1,8 @@ from rest_framework import serializers from news.models import News +from uuid import uuid4 +import datetime +from django.conf import settings class NewsSerializer(serializers.ModelSerializer): @@ -8,10 +11,13 @@ class NewsSerializer(serializers.ModelSerializer): description = serializers.SerializerMethodField() title = serializers.SerializerMethodField() template = serializers.SerializerMethodField() + state = serializers.SerializerMethodField() + created_at = serializers.DateTimeField(source="start", format='%m-%d-%Y %H:%M:%S') class Meta: model = News fields = ( + "created_at", "state", "template", "image_url", @@ -19,11 +25,32 @@ class NewsSerializer(serializers.ModelSerializer): "title", "description", "slug", - "news_type" + "news_type", + "playlist" ) def get_template(self, obj): - return obj.template + if obj.template == "main": + return News.MAIN + elif obj.template == "main.pdf.erb": + return News.MAIN_PDF_ERB + else: + return News.NEWSPAPER + + def get_state(self, obj): + if obj.state == "published": + return News.PUBLISHED + elif obj.state == "hidden": + return News.HIDDEN + elif obj.state == "published_exclusive": + return News.PUBLISHED_EXCLUSIVE + else: + return News.WAITING + + # django.db.utils.IntegrityError: "start" NOT NULL + # def get_start(self, obj): + # # return obj.created_at + # return datetime.datetime.now().isoformat() def get_title(self, obj): return f'{"en-GB": {obj.title}}'