diff --git a/apps/establishment/transfer_data.py b/apps/establishment/transfer_data.py index 15f9524d..71ca9f0a 100644 --- a/apps/establishment/transfer_data.py +++ b/apps/establishment/transfer_data.py @@ -28,7 +28,7 @@ def transfer_establishment(): data = { 'old_id': item.id, 'name': item.name, - 'name_translated': item.index_name, + 'transliterated_name': item.index_name, 'slug': item.slug, 'type': item.type, 'phone': item.phone, diff --git a/apps/review/admin.py b/apps/review/admin.py index 2a7326ae..4d50ceda 100644 --- a/apps/review/admin.py +++ b/apps/review/admin.py @@ -7,3 +7,5 @@ from utils.admin import BaseModelAdminMixin @admin.register(models.Review) class ReviewAdminModel(BaseModelAdminMixin, admin.ModelAdmin): """Admin model for model Review.""" + + raw_id_fields = ('reviewer', 'language', 'child', 'country') diff --git a/apps/review/migrations/0010_inquiries_published.py b/apps/review/migrations/0010_inquiries_published.py new file mode 100644 index 00000000..1a28fa2a --- /dev/null +++ b/apps/review/migrations/0010_inquiries_published.py @@ -0,0 +1,18 @@ +# Generated by Django 2.2.7 on 2019-11-11 11:42 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('review', '0009_auto_20191110_0615'), + ] + + operations = [ + migrations.AddField( + model_name='inquiries', + name='published', + field=models.BooleanField(default=False, verbose_name='is published'), + ), + ] diff --git a/apps/review/transfer_data.py b/apps/review/transfer_data.py index 23a1a37b..50d81d61 100644 --- a/apps/review/transfer_data.py +++ b/apps/review/transfer_data.py @@ -24,6 +24,7 @@ def transfer_languages(): def transfer_reviews(): + # TODO: убрать LIKE UPPER("%%paris%%"), accounts.email IN queryset = Reviews.objects.raw("""SELECT reviews.id, reviews.vintage, reviews.establishment_id, reviews.reviewer_id, review_texts.text AS text, reviews.mark, reviews.published_at, review_texts.created_at AS published, review_texts.locale AS locale, @@ -55,9 +56,8 @@ def transfer_reviews(): ON (establishments.location_id = locations.id) INNER JOIN cities ON (locations.city_id = cities.id) - WHERE UPPER(cities.name) LIKE UPPER("%%paris%%") - AND NOT establishments.type = "Wineyard" - AND establishments.type IS NOT NULL AND locations.timezone IS NOT NULL + WHERE establishments.type IS NOT NULL AND locations.timezone IS NOT NULL + AND NOT establishments.type = "Wineyard" ) ORDER BY review_texts.created_at DESC """) @@ -101,15 +101,19 @@ def transfer_inquiries(): # отфильтровать по review, account, establishment # TODO: нужно ли переносить данные у которых нет привязки к аккаунту? .filter(account__isnull=False) inquiries = Inquiries.objects.exclude( - Q(review__reviewer_id__gt=0) | - Q(review__reviewer_id__isnull=True) | - Q(review__mark__isnull=True) | - Q(review__reviewtexts__text__isnull=True) | - Q(review__reviewtexts__locale__isnull=True) | - Q(review__establishment__type='Wineyard') | - Q(review__establishment__location__timezone__isnull=True) | - Q(account__confirmed_at__isnull=True) | - Q(account__email__in=STOP_LIST) + Q(review__reviewer_id__lte=0) | # + + Q(review__reviewer_id__isnull=True) | # + + Q(review__mark__isnull=True) | # + + Q(review__reviewtexts__text__isnull=True) | # + + Q(review__reviewtexts__locale__isnull=True) | # + + Q(review__establishment__type__isnull=True) | # + + Q(review__establishment__type='Wineyard') | # + + Q(review__establishment__location__timezone__isnull=True) | # + + Q(review__establishment__location__isnull=True) | # + + Q(account__confirmed_at__isnull=True) | # + + Q(account__email__in=STOP_LIST) | # + + Q(review_id__in=( + 47558, 43703, 89320, 92150, 90162, 113639, 92084, 96145, 92492, 92489, 92497, 116790, 116930, 114799)) ) serialized_data = InquiriesSerializer(data=list(inquiries.values()), many=True) diff --git a/apps/transfer/management/commands/transfer.py b/apps/transfer/management/commands/transfer.py index 9f72c09c..24da538c 100644 --- a/apps/transfer/management/commands/transfer.py +++ b/apps/transfer/management/commands/transfer.py @@ -9,19 +9,19 @@ class Command(BaseCommand): ВНИМАНИЕ: первые буквы типов данных должны быть уникальны! """ SHORT_DATA_TYPES = [ - 'dictionaries', - 'news', - 'account', + 'dictionaries', # №2 - перенос стран, регионов, городов, адресов + 'news', # перенос новостей (после №2) + 'account', # №1 - перенос пользователей 'subscriber', 'recipe', 'partner', - 'establishment', + 'establishment', # №3 - перенос заведений 'gallery', - 'commercial', - 'overlook', + 'commercial', # перенос рекламмы (очередность не важна) + 'overlook', # №5 - перенос языков, отзывов 'tmp', 'menu', - 'location_establishment', + 'location_establishment', # №4 - добавление адресов для перенесенных заведений 'whirligig', 'identities', ] @@ -29,7 +29,7 @@ class Command(BaseCommand): LONG_DATA_TYPES = [ 'update_country_flag', 'comment', - 'inquiries', + 'inquiries', # №6 - перенос запросов оценок ] def handle(self, *args, **options): diff --git a/apps/transfer/serializers/establishment.py b/apps/transfer/serializers/establishment.py index 78db0995..cee07b79 100644 --- a/apps/transfer/serializers/establishment.py +++ b/apps/transfer/serializers/establishment.py @@ -35,7 +35,7 @@ class EstablishmentSerializer(serializers.ModelSerializer): 'created', 'old_id', # + 'name', # + - 'name_translated', # + + 'transliterated_name', # + 'tz', # + 'website', # + 'facebook', # + diff --git a/apps/transfer/serializers/inquiries.py b/apps/transfer/serializers/inquiries.py index 19766979..c56b9e07 100644 --- a/apps/transfer/serializers/inquiries.py +++ b/apps/transfer/serializers/inquiries.py @@ -49,15 +49,13 @@ class InquiriesSerializer(serializers.Serializer): try: return Inquiries.objects.create(**validated_data) except Exception as e: - pass - # raise ValueError(f"Error creating Inquiries with {validated_data}: {e}") + raise ValueError(f"Error creating Inquiries with {validated_data}: {e}") @staticmethod def get_review(data): review = Review.objects.filter(old_id=data['review_id']).first() if not review: - pass - # 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 @staticmethod diff --git a/apps/transfer/serializers/reviews.py b/apps/transfer/serializers/reviews.py index 024ea033..7bfe2004 100644 --- a/apps/transfer/serializers/reviews.py +++ b/apps/transfer/serializers/reviews.py @@ -12,7 +12,7 @@ class ReviewSerializer(serializers.ModelSerializer): published = serializers.DateTimeField() published_at = serializers.DateTimeField(allow_null=True) establishment_id = serializers.IntegerField() - text = serializers.CharField() + text = serializers.CharField(allow_null=True, allow_blank=True) locale = serializers.CharField() aasm_state = serializers.CharField(allow_null=True)