author for review text
This commit is contained in:
parent
ac2dc2344e
commit
0152538333
1
.gitignore
vendored
1
.gitignore
vendored
|
|
@ -28,3 +28,4 @@ celerybeat.pid
|
||||||
/gm_viktor.dump
|
/gm_viktor.dump
|
||||||
/docker-compose.dump.yml
|
/docker-compose.dump.yml
|
||||||
/gm_production_20191029.sql
|
/gm_production_20191029.sql
|
||||||
|
/apps/transfer/log
|
||||||
|
|
|
||||||
|
|
@ -55,13 +55,15 @@ def transfer_text_review():
|
||||||
text__isnull=True
|
text__isnull=True
|
||||||
).exclude(
|
).exclude(
|
||||||
text__iexact=''
|
text__iexact=''
|
||||||
).values('review_id', 'locale', 'text')
|
).values('review_id', 'locale', 'text', 'updated_by', 'created_at', 'updated_at')
|
||||||
|
|
||||||
serialized_data = ReviewTextSerializer(data=list(queryset), many=True)
|
print(queryset.count())
|
||||||
if serialized_data.is_valid():
|
|
||||||
serialized_data.save()
|
# serialized_data = ReviewTextSerializer(data=list(queryset), many=True)
|
||||||
else:
|
# if serialized_data.is_valid():
|
||||||
pprint(f"ReviewTextSerializer serializer errors: {serialized_data.errors}")
|
# serialized_data.save()
|
||||||
|
# else:
|
||||||
|
# pprint(f"ReviewTextSerializer serializer errors: {serialized_data.errors}")
|
||||||
|
|
||||||
|
|
||||||
def make_en_text_review():
|
def make_en_text_review():
|
||||||
|
|
@ -142,5 +144,8 @@ data_types = {
|
||||||
],
|
],
|
||||||
"product_review": [
|
"product_review": [
|
||||||
transfer_product_reviews,
|
transfer_product_reviews,
|
||||||
|
],
|
||||||
|
"transfer_text_review": [
|
||||||
|
transfer_text_review,
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -58,7 +58,8 @@ class Command(BaseCommand):
|
||||||
'setup_clean_db',
|
'setup_clean_db',
|
||||||
'languages', # №4 - перенос языков
|
'languages', # №4 - перенос языков
|
||||||
'set_unused_regions',
|
'set_unused_regions',
|
||||||
'update_fake_country_flag'
|
'update_fake_country_flag',
|
||||||
|
'transfer_text_review', # переводы для review с их авторами - запускать после overlook и product_review
|
||||||
]
|
]
|
||||||
|
|
||||||
def handle(self, *args, **options):
|
def handle(self, *args, **options):
|
||||||
|
|
@ -68,7 +69,8 @@ class Command(BaseCommand):
|
||||||
if len(data_type) != 1:
|
if len(data_type) != 1:
|
||||||
data_type = list(set(option for option in options.keys() if options[option]) & set(self.SHORT_DATA_TYPES))
|
data_type = list(set(option for option in options.keys() if options[option]) & set(self.SHORT_DATA_TYPES))
|
||||||
if len(data_type) != 1:
|
if len(data_type) != 1:
|
||||||
print("You must set correct option!\r\nYou can get options list with \r\n\r\n\tmanage.py help transfer\r\n")
|
print(
|
||||||
|
"You must set correct option!\r\nYou can get options list with \r\n\r\n\tmanage.py help transfer\r\n")
|
||||||
exit(1)
|
exit(1)
|
||||||
else:
|
else:
|
||||||
data_type = data_type[0]
|
data_type = data_type[0]
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
from rest_framework import serializers
|
from rest_framework import serializers
|
||||||
from review.models import Review
|
from review.models import Review, ReviewTextAuthor
|
||||||
from account.models import User
|
from account.models import User
|
||||||
from translation.models import Language
|
from translation.models import Language
|
||||||
from establishment.models import Establishment
|
from establishment.models import Establishment
|
||||||
|
|
@ -97,24 +97,41 @@ class ReviewTextSerializer(serializers.Serializer):
|
||||||
review_id = serializers.IntegerField()
|
review_id = serializers.IntegerField()
|
||||||
locale = serializers.CharField(allow_null=True)
|
locale = serializers.CharField(allow_null=True)
|
||||||
text = serializers.CharField()
|
text = serializers.CharField()
|
||||||
|
updated_by = serializers.IntegerField(allow_null=True)
|
||||||
|
created_at = serializers.DateTimeField(format='%m-%d-%Y %H:%M:%S')
|
||||||
|
updated_at = serializers.DateTimeField(format='%m-%d-%Y %H:%M:%S')
|
||||||
|
|
||||||
def validate(self, data):
|
def validate(self, data):
|
||||||
data.update({
|
data.update({
|
||||||
'new_text': self.get_text(data),
|
'new_text': self.get_text(data),
|
||||||
'review': self.get_review(data),
|
'review': self.get_review(data),
|
||||||
|
'author': self.get_author(data),
|
||||||
})
|
})
|
||||||
data.pop('review_id')
|
data.pop('review_id')
|
||||||
data.pop('locale')
|
|
||||||
data.pop('text')
|
data.pop('text')
|
||||||
return data
|
return data
|
||||||
|
|
||||||
def create(self, validated_data):
|
def create(self, validated_data):
|
||||||
review = validated_data['review']
|
review = validated_data['review']
|
||||||
|
author_payload = {
|
||||||
|
'review': review,
|
||||||
|
'author': validated_data['author'],
|
||||||
|
'locale': validated_data['locale'] or 'en-GB',
|
||||||
|
'created': validated_data['created_at'],
|
||||||
|
}
|
||||||
if review.text:
|
if review.text:
|
||||||
review.text.update(validated_data['new_text'])
|
review.text.update(validated_data['new_text'])
|
||||||
else:
|
else:
|
||||||
review.text = validated_data['new_text']
|
review.text = validated_data['new_text']
|
||||||
review.save()
|
review.save()
|
||||||
|
|
||||||
|
if validated_data['author'] and validated_data['locale']:
|
||||||
|
review_author, _ = ReviewTextAuthor.objects.update_or_create(
|
||||||
|
review=review,
|
||||||
|
locale=author_payload['locale'],
|
||||||
|
defaults=author_payload,
|
||||||
|
)
|
||||||
|
|
||||||
return review
|
return review
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
|
|
@ -130,6 +147,12 @@ class ReviewTextSerializer(serializers.Serializer):
|
||||||
raise ValueError(f"Review not found with old_id {data['review_id']}: ")
|
raise ValueError(f"Review not found with old_id {data['review_id']}: ")
|
||||||
return review
|
return review
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def get_author(data):
|
||||||
|
user = User.objects.filter(old_id=data['updated_by']).first()
|
||||||
|
if user:
|
||||||
|
return user
|
||||||
|
|
||||||
|
|
||||||
class LanguageSerializer(serializers.ModelSerializer):
|
class LanguageSerializer(serializers.ModelSerializer):
|
||||||
LANGUAGES = {
|
LANGUAGES = {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user