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,
'phone': item.phone,
'created': item.created_at,
'state': item.state,
'description': {},
'website': None,
'facebook': None,

View File

@ -24,6 +24,7 @@ class EstablishmentSerializer(serializers.ModelSerializer):
facebook = 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)
state = serializers.CharField(allow_null=True)
tz = serializers.CharField()
created = serializers.DateTimeField(format='%m-%d-%Y %H:%M:%S')
@ -47,6 +48,7 @@ class EstablishmentSerializer(serializers.ModelSerializer):
'location', # + получить новые объекты Address по old_id
'email', # + создать объект для ContactEmail
'phone', # + создать объект для ContactPhone
'state', # + создать объект для ContactPhone
)
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']),
'address_id': self.get_address(data['location']),
'establishment_type_id': self.get_type(data),
'is_publish': data.get('state') == 'published',
})
data.pop('location')
data.pop('type')
data.pop('state')
return data
@transaction.atomic