fix transfer review text

This commit is contained in:
alex 2019-11-19 16:40:03 +03:00
parent 9d816ade6b
commit 8b194f8324
2 changed files with 17 additions and 7 deletions

View File

@ -2,10 +2,10 @@ from pprint import pprint
from django.db.models import Q
from product.models import Product
from account.models import User
from account.transfer_data import STOP_LIST
from establishment.models import Establishment
from product.models import Product
from review.models import Inquiries as NewInquiries, Review
from transfer.models import Reviews, ReviewTexts, Inquiries, GridItems, InquiryPhotos
from transfer.serializers.grid import GridItemsSerializer
@ -38,7 +38,7 @@ def transfer_reviews():
establishment_id__in=list(establishments),
).values('id', 'reviewer_id', 'aasm_state', 'created_at', 'establishment_id', 'mark', 'vintage')
serialized_data = ReviewSerializer(data=list(queryset.values()), many=True)
serialized_data = ReviewSerializer(data=list(queryset), many=True)
if serialized_data.is_valid():
serialized_data.save()
else:
@ -48,17 +48,23 @@ def transfer_reviews():
def transfer_text_review():
reviews = Review.objects.filter(old_id__isnull=False).values_list('old_id', flat=True)
queryset = ReviewTexts.objects.filter(
review_id__in=list(reviews),
review_id__in=list(reviews)
).exclude(
Q(text__isnull=True) | Q(text='')
text__iregex=r'[\s[ \t\n\r\f]*]+'
).exclude(
text__isnull=True
).exclude(
text__iexact=''
).values('review_id', 'locale', 'text')
serialized_data = ReviewTextSerializer(data=list(queryset.values()), many=True)
serialized_data = ReviewTextSerializer(data=list(queryset)[20000:30000], many=True)
if serialized_data.is_valid():
serialized_data.save()
else:
pprint(f"ReviewTextSerializer serializer errors: {serialized_data.errors}")
def make_en_text_review():
for review in Review.objects.filter(old_id__isnull=False):
text = review.text
if text and 'en-GB' not in text:
@ -106,7 +112,6 @@ def transfer_inquiry_photos():
def transfer_product_reviews():
products = Product.objects.filter(
old_id__isnull=False).values_list('old_id', flat=True)
@ -130,6 +135,7 @@ data_types = {
# transfer_languages,
transfer_reviews,
transfer_text_review,
make_en_text_review,
],
'inquiries': [
transfer_inquiries,

View File

@ -103,6 +103,9 @@ class ReviewTextSerializer(serializers.Serializer):
'new_text': self.get_text(data),
'review': self.get_review(data),
})
data.pop('review_id')
data.pop('locale')
data.pop('text')
return data
def create(self, validated_data):
@ -117,7 +120,8 @@ class ReviewTextSerializer(serializers.Serializer):
@staticmethod
def get_text(data):
locale = data['locale'] or 'en-GB'
return {locale: data['text']}
text = data['text']
return {locale: text}
@staticmethod
def get_review(data):