Merge branch 'develop' into feature/site-feature-api
This commit is contained in:
commit
55d3779d5f
29
apps/news/management/commands/add_author.py
Normal file
29
apps/news/management/commands/add_author.py
Normal file
|
|
@ -0,0 +1,29 @@
|
||||||
|
from django.core.management.base import BaseCommand
|
||||||
|
from django.db.models import F
|
||||||
|
from tqdm import tqdm
|
||||||
|
|
||||||
|
from account.models import User
|
||||||
|
from news.models import News
|
||||||
|
from transfer.models import PageTexts
|
||||||
|
|
||||||
|
|
||||||
|
class Command(BaseCommand):
|
||||||
|
help = 'Add author of News'
|
||||||
|
|
||||||
|
def handle(self, *args, **kwargs):
|
||||||
|
count = 0
|
||||||
|
news_list = News.objects.filter(created_by__isnull=True)
|
||||||
|
|
||||||
|
for news in tqdm(news_list, desc="Find author for exist news"):
|
||||||
|
old_news = PageTexts.objects.filter(id=news.old_id).annotate(
|
||||||
|
account_id=F('page__account_id'),
|
||||||
|
).first()
|
||||||
|
if old_news:
|
||||||
|
user = User.objects.filter(old_id=old_news.account_id).first()
|
||||||
|
if user:
|
||||||
|
news.created_by = user
|
||||||
|
news.modified_by = user
|
||||||
|
news.save()
|
||||||
|
count += 1
|
||||||
|
|
||||||
|
self.stdout.write(self.style.WARNING(f'Update {count} objects.'))
|
||||||
|
|
@ -38,6 +38,7 @@ def transfer_news():
|
||||||
image=F('page__attachment_suffix_url'),
|
image=F('page__attachment_suffix_url'),
|
||||||
template=F('page__template'),
|
template=F('page__template'),
|
||||||
tags=GroupConcat('page__tags__id'),
|
tags=GroupConcat('page__tags__id'),
|
||||||
|
account_id=F('page__account_id'),
|
||||||
)
|
)
|
||||||
|
|
||||||
serialized_data = NewsSerializer(data=list(queryset.values()), many=True)
|
serialized_data = NewsSerializer(data=list(queryset.values()), many=True)
|
||||||
|
|
|
||||||
|
|
@ -7,10 +7,12 @@ from tag.models import Tag
|
||||||
from transfer.models import PageMetadata
|
from transfer.models import PageMetadata
|
||||||
from utils.legacy_parser import parse_legacy_news_content
|
from utils.legacy_parser import parse_legacy_news_content
|
||||||
from utils.slug_generator import generate_unique_slug
|
from utils.slug_generator import generate_unique_slug
|
||||||
|
from account.models import User
|
||||||
|
|
||||||
|
|
||||||
class NewsSerializer(serializers.Serializer):
|
class NewsSerializer(serializers.Serializer):
|
||||||
id = serializers.IntegerField()
|
id = serializers.IntegerField()
|
||||||
|
account_id = serializers.IntegerField(allow_null=True)
|
||||||
tag_cat_id = serializers.IntegerField()
|
tag_cat_id = serializers.IntegerField()
|
||||||
news_type_id = serializers.IntegerField()
|
news_type_id = serializers.IntegerField()
|
||||||
news_title = serializers.CharField()
|
news_title = serializers.CharField()
|
||||||
|
|
@ -39,6 +41,8 @@ class NewsSerializer(serializers.Serializer):
|
||||||
'state': self.get_state(validated_data),
|
'state': self.get_state(validated_data),
|
||||||
'template': self.get_template(validated_data),
|
'template': self.get_template(validated_data),
|
||||||
'country': self.get_country(validated_data),
|
'country': self.get_country(validated_data),
|
||||||
|
'created_by': self.get_account(validated_data),
|
||||||
|
'modified_by': self.get_account(validated_data),
|
||||||
}
|
}
|
||||||
obj = News.objects.create(**payload)
|
obj = News.objects.create(**payload)
|
||||||
|
|
||||||
|
|
@ -126,3 +130,8 @@ class NewsSerializer(serializers.Serializer):
|
||||||
else:
|
else:
|
||||||
content = {data['locale']: data['title']}
|
content = {data['locale']: data['title']}
|
||||||
return content
|
return content
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def get_account(data):
|
||||||
|
"""Get account"""
|
||||||
|
return User.objects.filter(old_id=data['account_id']).first()
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,7 @@ services:
|
||||||
mysql_db:
|
mysql_db:
|
||||||
image: mysql:5.7
|
image: mysql:5.7
|
||||||
ports:
|
ports:
|
||||||
- "3306:3306"
|
- "3316:3306"
|
||||||
environment:
|
environment:
|
||||||
MYSQL_DATABASE: dev
|
MYSQL_DATABASE: dev
|
||||||
MYSQL_USER: dev
|
MYSQL_USER: dev
|
||||||
|
|
|
||||||
|
|
@ -99,3 +99,6 @@ TESTING = sys.argv[1:2] == ['test']
|
||||||
if TESTING:
|
if TESTING:
|
||||||
ELASTICSEARCH_INDEX_NAMES = {}
|
ELASTICSEARCH_INDEX_NAMES = {}
|
||||||
ELASTICSEARCH_DSL_AUTOSYNC = False
|
ELASTICSEARCH_DSL_AUTOSYNC = False
|
||||||
|
|
||||||
|
# INSTALLED APPS
|
||||||
|
INSTALLED_APPS.append('transfer.apps.TransferConfig')
|
||||||
Loading…
Reference in New Issue
Block a user