migrate inquiries grid
This commit is contained in:
parent
7106249d1e
commit
d5799ca768
18
apps/review/migrations/0011_auto_20191111_1439.py
Normal file
18
apps/review/migrations/0011_auto_20191111_1439.py
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
# Generated by Django 2.2.4 on 2019-11-11 14:39
|
||||
|
||||
from django.db import migrations
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('review', '0010_inquiries_published'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.RenameField(
|
||||
model_name='griditems',
|
||||
old_name='decs',
|
||||
new_name='desc',
|
||||
),
|
||||
]
|
||||
18
apps/review/migrations/0012_griditems_old_id.py
Normal file
18
apps/review/migrations/0012_griditems_old_id.py
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
# Generated by Django 2.2.4 on 2019-11-11 14:42
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('review', '0011_auto_20191111_1439'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name='griditems',
|
||||
name='old_id',
|
||||
field=models.PositiveIntegerField(blank=True, default=None, null=True, verbose_name='old id'),
|
||||
),
|
||||
]
|
||||
|
|
@ -116,11 +116,12 @@ class Inquiries(ProjectBaseMixin):
|
|||
|
||||
|
||||
class GridItems(ProjectBaseMixin):
|
||||
old_id = models.PositiveIntegerField(_('old id'), blank=True, null=True, default=None)
|
||||
inquiry = models.ForeignKey(Inquiries, verbose_name=_('inquiry'), on_delete=models.CASCADE, related_name='grids')
|
||||
sub_name = models.CharField(_('sub name'), max_length=255, blank=True, null=True)
|
||||
name = models.CharField(_('name'), max_length=255, blank=True, null=True)
|
||||
value = models.FloatField(_('value'), blank=True, null=True)
|
||||
decs = models.TextField(_('description'), blank=True, null=True)
|
||||
desc = models.TextField(_('description'), blank=True, null=True)
|
||||
dish_title = models.CharField(_('dish title'), max_length=255, blank=True, null=True)
|
||||
|
||||
class Meta:
|
||||
|
|
|
|||
|
|
@ -1,11 +1,14 @@
|
|||
import json
|
||||
from pprint import pprint
|
||||
|
||||
from django.db.models import Q
|
||||
|
||||
from account.transfer_data import STOP_LIST
|
||||
from transfer.models import Reviews, ReviewTexts, Inquiries
|
||||
from review.models import Inquiries as NewInquiries, Review
|
||||
from transfer.models import Reviews, ReviewTexts, Inquiries, GridItems
|
||||
from transfer.serializers.grid import GridItemsSerializer
|
||||
from transfer.serializers.inquiries import InquiriesSerializer
|
||||
from transfer.serializers.reviews import LanguageSerializer, ReviewSerializer, Establishment
|
||||
from pprint import pprint
|
||||
import json
|
||||
|
||||
|
||||
def transfer_languages():
|
||||
|
|
@ -98,23 +101,11 @@ def transfer_reviews():
|
|||
|
||||
|
||||
def transfer_inquiries():
|
||||
# отфильтровать по review, account, establishment
|
||||
# TODO: нужно ли переносить данные у которых нет привязки к аккаунту? .filter(account__isnull=False)
|
||||
reviews = Review.objects.all().values_list('old_id', flat=True)
|
||||
inquiries = Inquiries.objects.exclude(
|
||||
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))
|
||||
)
|
||||
Q(account__confirmed_at__isnull=True) |
|
||||
Q(account__email__in=STOP_LIST)
|
||||
).filter(review_id__in=list(reviews))
|
||||
|
||||
serialized_data = InquiriesSerializer(data=list(inquiries.values()), many=True)
|
||||
if serialized_data.is_valid():
|
||||
|
|
@ -123,10 +114,24 @@ def transfer_inquiries():
|
|||
pprint(f"Inquiries serializer errors: {serialized_data.errors}")
|
||||
|
||||
|
||||
def transfer_grid():
|
||||
inquiries = NewInquiries.objects.all().values_list('old_id', flat=True)
|
||||
grids = GridItems.objects.filter(inquiry_id__in=list(inquiries))
|
||||
|
||||
serialized_data = GridItemsSerializer(data=list(grids.values()), many=True)
|
||||
if serialized_data.is_valid():
|
||||
serialized_data.save()
|
||||
else:
|
||||
pprint(f"GridItems serializer errors: {serialized_data.errors}")
|
||||
|
||||
|
||||
data_types = {
|
||||
"overlook": [
|
||||
transfer_languages,
|
||||
transfer_reviews
|
||||
],
|
||||
'inquiries': [transfer_inquiries]
|
||||
'inquiries': [
|
||||
transfer_inquiries,
|
||||
transfer_grid,
|
||||
]
|
||||
}
|
||||
|
|
|
|||
|
|
@ -32,7 +32,6 @@ class Command(BaseCommand):
|
|||
'inquiries', # №6 - перенос запросов оценок
|
||||
'wine_characteristics',
|
||||
'product',
|
||||
'comment',
|
||||
]
|
||||
|
||||
def handle(self, *args, **options):
|
||||
|
|
|
|||
|
|
@ -1123,7 +1123,7 @@ class GridItems(MigrateMixin):
|
|||
sub_item_name = models.CharField(max_length=255, blank=True, null=True)
|
||||
item_name = models.CharField(max_length=255, blank=True, null=True)
|
||||
value = models.FloatField(blank=True, null=True)
|
||||
decs = models.TextField(blank=True, null=True)
|
||||
desc = models.TextField(blank=True, null=True)
|
||||
dish_title = models.CharField(max_length=255, blank=True, null=True)
|
||||
|
||||
class Meta:
|
||||
|
|
|
|||
38
apps/transfer/serializers/grid.py
Normal file
38
apps/transfer/serializers/grid.py
Normal file
|
|
@ -0,0 +1,38 @@
|
|||
from rest_framework import serializers
|
||||
|
||||
from review.models import Inquiries, GridItems
|
||||
|
||||
|
||||
class GridItemsSerializer(serializers.Serializer):
|
||||
id = serializers.IntegerField()
|
||||
created_at = serializers.DateTimeField(format='%m-%d-%Y %H:%M:%S')
|
||||
inquiry_id = serializers.IntegerField()
|
||||
sub_item_name = serializers.CharField(allow_null=True, allow_blank=True)
|
||||
item_name = serializers.CharField(allow_null=True, allow_blank=True)
|
||||
value = serializers.FloatField(allow_null=True)
|
||||
desc = serializers.CharField(allow_null=True, allow_blank=True)
|
||||
dish_title = serializers.CharField(allow_null=True, allow_blank=True)
|
||||
|
||||
def validate(self, data):
|
||||
data.update({
|
||||
'old_id': data.pop('id'),
|
||||
'created': data.pop('created_at'),
|
||||
'sub_name': data.pop('sub_item_name'),
|
||||
'name': data.pop('item_name'),
|
||||
'inquiry': self.get_inquiry(data),
|
||||
})
|
||||
data.pop('inquiry_id')
|
||||
return data
|
||||
|
||||
def create(self, validated_data):
|
||||
try:
|
||||
return GridItems.objects.create(**validated_data)
|
||||
except Exception as e:
|
||||
raise ValueError(f"Error creating GridItems with {validated_data}: {e}")
|
||||
|
||||
@staticmethod
|
||||
def get_inquiry(data):
|
||||
inquiry = Inquiries.objects.filter(old_id=data['inquiry_id']).first()
|
||||
if not inquiry:
|
||||
raise ValueError(f"Inquiries not found with old_id {data['inquiry_id']}")
|
||||
return inquiry
|
||||
|
|
@ -12,7 +12,6 @@ services:
|
|||
MYSQL_PASSWORD: octosecret123
|
||||
MYSQL_ROOT_PASSWORD: rootPassword
|
||||
volumes:
|
||||
- .:/code
|
||||
- gm-mysql_db:/var/lib/mysql
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user