refactor inquiries
This commit is contained in:
parent
2512400885
commit
b0177dfe13
|
|
@ -28,7 +28,7 @@ def transfer_establishment():
|
||||||
data = {
|
data = {
|
||||||
'old_id': item.id,
|
'old_id': item.id,
|
||||||
'name': item.name,
|
'name': item.name,
|
||||||
'name_translated': item.index_name,
|
'transliterated_name': item.index_name,
|
||||||
'slug': item.slug,
|
'slug': item.slug,
|
||||||
'type': item.type,
|
'type': item.type,
|
||||||
'phone': item.phone,
|
'phone': item.phone,
|
||||||
|
|
|
||||||
|
|
@ -7,3 +7,5 @@ from utils.admin import BaseModelAdminMixin
|
||||||
@admin.register(models.Review)
|
@admin.register(models.Review)
|
||||||
class ReviewAdminModel(BaseModelAdminMixin, admin.ModelAdmin):
|
class ReviewAdminModel(BaseModelAdminMixin, admin.ModelAdmin):
|
||||||
"""Admin model for model Review."""
|
"""Admin model for model Review."""
|
||||||
|
|
||||||
|
raw_id_fields = ('reviewer', 'language', 'child', 'country')
|
||||||
|
|
|
||||||
18
apps/review/migrations/0010_inquiries_published.py
Normal file
18
apps/review/migrations/0010_inquiries_published.py
Normal file
|
|
@ -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'),
|
||||||
|
),
|
||||||
|
]
|
||||||
|
|
@ -24,6 +24,7 @@ def transfer_languages():
|
||||||
|
|
||||||
|
|
||||||
def transfer_reviews():
|
def transfer_reviews():
|
||||||
|
# TODO: убрать LIKE UPPER("%%paris%%"), accounts.email IN
|
||||||
queryset = Reviews.objects.raw("""SELECT reviews.id, reviews.vintage, reviews.establishment_id,
|
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,
|
reviews.reviewer_id, review_texts.text AS text, reviews.mark, reviews.published_at,
|
||||||
review_texts.created_at AS published, review_texts.locale AS locale,
|
review_texts.created_at AS published, review_texts.locale AS locale,
|
||||||
|
|
@ -55,9 +56,8 @@ def transfer_reviews():
|
||||||
ON (establishments.location_id = locations.id)
|
ON (establishments.location_id = locations.id)
|
||||||
INNER JOIN cities
|
INNER JOIN cities
|
||||||
ON (locations.city_id = cities.id)
|
ON (locations.city_id = cities.id)
|
||||||
WHERE UPPER(cities.name) LIKE UPPER("%%paris%%")
|
WHERE establishments.type IS NOT NULL AND locations.timezone IS NOT NULL
|
||||||
AND NOT establishments.type = "Wineyard"
|
AND NOT establishments.type = "Wineyard"
|
||||||
AND establishments.type IS NOT NULL AND locations.timezone IS NOT NULL
|
|
||||||
)
|
)
|
||||||
ORDER BY review_texts.created_at DESC
|
ORDER BY review_texts.created_at DESC
|
||||||
""")
|
""")
|
||||||
|
|
@ -101,15 +101,19 @@ def transfer_inquiries():
|
||||||
# отфильтровать по review, account, establishment
|
# отфильтровать по review, account, establishment
|
||||||
# TODO: нужно ли переносить данные у которых нет привязки к аккаунту? .filter(account__isnull=False)
|
# TODO: нужно ли переносить данные у которых нет привязки к аккаунту? .filter(account__isnull=False)
|
||||||
inquiries = Inquiries.objects.exclude(
|
inquiries = Inquiries.objects.exclude(
|
||||||
Q(review__reviewer_id__gt=0) |
|
Q(review__reviewer_id__lte=0) | # +
|
||||||
Q(review__reviewer_id__isnull=True) |
|
Q(review__reviewer_id__isnull=True) | # +
|
||||||
Q(review__mark__isnull=True) |
|
Q(review__mark__isnull=True) | # +
|
||||||
Q(review__reviewtexts__text__isnull=True) |
|
Q(review__reviewtexts__text__isnull=True) | # +
|
||||||
Q(review__reviewtexts__locale__isnull=True) |
|
Q(review__reviewtexts__locale__isnull=True) | # +
|
||||||
Q(review__establishment__type='Wineyard') |
|
Q(review__establishment__type__isnull=True) | # +
|
||||||
Q(review__establishment__location__timezone__isnull=True) |
|
Q(review__establishment__type='Wineyard') | # +
|
||||||
Q(account__confirmed_at__isnull=True) |
|
Q(review__establishment__location__timezone__isnull=True) | # +
|
||||||
Q(account__email__in=STOP_LIST)
|
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)
|
serialized_data = InquiriesSerializer(data=list(inquiries.values()), many=True)
|
||||||
|
|
|
||||||
|
|
@ -9,19 +9,19 @@ class Command(BaseCommand):
|
||||||
ВНИМАНИЕ: первые буквы типов данных должны быть уникальны!
|
ВНИМАНИЕ: первые буквы типов данных должны быть уникальны!
|
||||||
"""
|
"""
|
||||||
SHORT_DATA_TYPES = [
|
SHORT_DATA_TYPES = [
|
||||||
'dictionaries',
|
'dictionaries', # №2 - перенос стран, регионов, городов, адресов
|
||||||
'news',
|
'news', # перенос новостей (после №2)
|
||||||
'account',
|
'account', # №1 - перенос пользователей
|
||||||
'subscriber',
|
'subscriber',
|
||||||
'recipe',
|
'recipe',
|
||||||
'partner',
|
'partner',
|
||||||
'establishment',
|
'establishment', # №3 - перенос заведений
|
||||||
'gallery',
|
'gallery',
|
||||||
'commercial',
|
'commercial', # перенос рекламмы (очередность не важна)
|
||||||
'overlook',
|
'overlook', # №5 - перенос языков, отзывов
|
||||||
'tmp',
|
'tmp',
|
||||||
'menu',
|
'menu',
|
||||||
'location_establishment',
|
'location_establishment', # №4 - добавление адресов для перенесенных заведений
|
||||||
'whirligig',
|
'whirligig',
|
||||||
'identities',
|
'identities',
|
||||||
]
|
]
|
||||||
|
|
@ -29,7 +29,7 @@ class Command(BaseCommand):
|
||||||
LONG_DATA_TYPES = [
|
LONG_DATA_TYPES = [
|
||||||
'update_country_flag',
|
'update_country_flag',
|
||||||
'comment',
|
'comment',
|
||||||
'inquiries',
|
'inquiries', # №6 - перенос запросов оценок
|
||||||
]
|
]
|
||||||
|
|
||||||
def handle(self, *args, **options):
|
def handle(self, *args, **options):
|
||||||
|
|
|
||||||
|
|
@ -35,7 +35,7 @@ class EstablishmentSerializer(serializers.ModelSerializer):
|
||||||
'created',
|
'created',
|
||||||
'old_id', # +
|
'old_id', # +
|
||||||
'name', # +
|
'name', # +
|
||||||
'name_translated', # +
|
'transliterated_name', # +
|
||||||
'tz', # +
|
'tz', # +
|
||||||
'website', # +
|
'website', # +
|
||||||
'facebook', # +
|
'facebook', # +
|
||||||
|
|
|
||||||
|
|
@ -49,15 +49,13 @@ class InquiriesSerializer(serializers.Serializer):
|
||||||
try:
|
try:
|
||||||
return Inquiries.objects.create(**validated_data)
|
return Inquiries.objects.create(**validated_data)
|
||||||
except Exception as e:
|
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
|
@staticmethod
|
||||||
def get_review(data):
|
def get_review(data):
|
||||||
review = Review.objects.filter(old_id=data['review_id']).first()
|
review = Review.objects.filter(old_id=data['review_id']).first()
|
||||||
if not review:
|
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
|
return review
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
|
|
|
||||||
|
|
@ -12,7 +12,7 @@ class ReviewSerializer(serializers.ModelSerializer):
|
||||||
published = serializers.DateTimeField()
|
published = serializers.DateTimeField()
|
||||||
published_at = serializers.DateTimeField(allow_null=True)
|
published_at = serializers.DateTimeField(allow_null=True)
|
||||||
establishment_id = serializers.IntegerField()
|
establishment_id = serializers.IntegerField()
|
||||||
text = serializers.CharField()
|
text = serializers.CharField(allow_null=True, allow_blank=True)
|
||||||
locale = serializers.CharField()
|
locale = serializers.CharField()
|
||||||
aasm_state = serializers.CharField(allow_null=True)
|
aasm_state = serializers.CharField(allow_null=True)
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user