add is_publish

This commit is contained in:
alex 2019-10-29 17:16:51 +03:00
parent 59371fae9a
commit b41ec3eebd
3 changed files with 23 additions and 0 deletions

View File

@ -0,0 +1,18 @@
from django.core.management.base import BaseCommand
from establishment.models import Establishment
from transfer.models import Establishments
class Command(BaseCommand):
help = 'Add publish values from old db to new db'
def handle(self, *args, **kwargs):
old_establishments = Establishments.objects.all()
count = 0
for item in old_establishments:
obj = Establishment.objects.filter(old_id=item.id).first()
if obj:
count += 1
obj.is_publish = item.state == 'published'
self.stdout.write(self.style.WARNING(f'Updated {count} objects.'))

View File

@ -30,6 +30,7 @@ def transfer_establishment():
'type': item.type, 'type': item.type,
'phone': item.phone, 'phone': item.phone,
'created': item.created_at, 'created': item.created_at,
'state': item.state,
'description': {}, 'description': {},
'website': None, 'website': None,
'facebook': None, 'facebook': None,

View File

@ -24,6 +24,7 @@ class EstablishmentSerializer(serializers.ModelSerializer):
facebook = serializers.CharField(allow_null=True, allow_blank=True) facebook = serializers.CharField(allow_null=True, allow_blank=True)
twitter = serializers.CharField(allow_null=True, allow_blank=True) twitter = serializers.CharField(allow_null=True, allow_blank=True)
booking = serializers.CharField(allow_null=True, allow_blank=True) booking = serializers.CharField(allow_null=True, allow_blank=True)
state = serializers.CharField(allow_null=True)
tz = serializers.CharField() tz = serializers.CharField()
created = serializers.DateTimeField(format='%m-%d-%Y %H:%M:%S') created = serializers.DateTimeField(format='%m-%d-%Y %H:%M:%S')
@ -47,6 +48,7 @@ class EstablishmentSerializer(serializers.ModelSerializer):
'location', # + получить новые объекты Address по old_id 'location', # + получить новые объекты Address по old_id
'email', # + создать объект для ContactEmail 'email', # + создать объект для ContactEmail
'phone', # + создать объект для ContactPhone 'phone', # + создать объект для ContactPhone
'state', # + создать объект для ContactPhone
) )
def validate(self, data): def validate(self, data):
@ -54,9 +56,11 @@ class EstablishmentSerializer(serializers.ModelSerializer):
'slug': generate_unique_slug(Establishment, data['slug'] if data['slug'] else data['name']), 'slug': generate_unique_slug(Establishment, data['slug'] if data['slug'] else data['name']),
'address_id': self.get_address(data['location']), 'address_id': self.get_address(data['location']),
'establishment_type_id': self.get_type(data), 'establishment_type_id': self.get_type(data),
'is_publish': data.get('state') == 'published',
}) })
data.pop('location') data.pop('location')
data.pop('type') data.pop('type')
data.pop('state')
return data return data
@transaction.atomic @transaction.atomic