From 8b194f83246bdc967e6360bab528b7ea700fdb6b Mon Sep 17 00:00:00 2001 From: alex Date: Tue, 19 Nov 2019 16:40:03 +0300 Subject: [PATCH] fix transfer review text --- apps/review/transfer_data.py | 18 ++++++++++++------ apps/transfer/serializers/reviews.py | 6 +++++- 2 files changed, 17 insertions(+), 7 deletions(-) diff --git a/apps/review/transfer_data.py b/apps/review/transfer_data.py index 9ccb6c80..ea5fba88 100644 --- a/apps/review/transfer_data.py +++ b/apps/review/transfer_data.py @@ -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, diff --git a/apps/transfer/serializers/reviews.py b/apps/transfer/serializers/reviews.py index a6cb1124..25649b12 100644 --- a/apps/transfer/serializers/reviews.py +++ b/apps/transfer/serializers/reviews.py @@ -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):