58 lines
2.3 KiB
Python
58 lines
2.3 KiB
Python
from django.core.management.base import BaseCommand
|
|
|
|
from establishment.models import Establishment, SocialChoice, SocialNetwork
|
|
from transfer.models import EstablishmentInfos
|
|
|
|
|
|
class Command(BaseCommand):
|
|
help = 'Add social links values from old db to new db'
|
|
|
|
def handle(self, *args, **kwargs):
|
|
count = 0
|
|
|
|
facebook, _ = SocialChoice.objects.get_or_create(title='facebook')
|
|
twitter, _ = SocialChoice.objects.get_or_create(title='twitter')
|
|
instagram, _ = SocialChoice.objects.get_or_create(title='instagram')
|
|
|
|
queryset = EstablishmentInfos.objects.exclude(
|
|
establishment_id__isnull=True
|
|
).values_list('id', 'establishment_id', 'facebook', 'twitter', 'instagram')
|
|
|
|
for id, es_id, facebook_url, twitter_url, instagram_url in queryset:
|
|
establishment = Establishment.objects.filter(old_id=es_id).first()
|
|
if not establishment:
|
|
continue
|
|
|
|
if facebook_url:
|
|
if 'facebook.com/' not in facebook_url:
|
|
facebook_url = 'https://www.facebook.com/' + facebook_url
|
|
obj, _ = SocialNetwork.objects.get_or_create(
|
|
old_id=id,
|
|
establishment=establishment,
|
|
network=facebook,
|
|
url=facebook_url,
|
|
)
|
|
count += 1
|
|
if twitter_url:
|
|
if 'twitter.com/' not in twitter_url:
|
|
twitter_url = 'https://www.twitter.com/' + twitter_url
|
|
obj, _ = SocialNetwork.objects.get_or_create(
|
|
old_id=id,
|
|
establishment=establishment,
|
|
network=twitter,
|
|
url=twitter_url,
|
|
)
|
|
count += 1
|
|
if instagram_url:
|
|
if 'instagram.com/' not in instagram_url:
|
|
instagram = 'https://www.instagram.com/' + instagram_url
|
|
obj, _ = SocialNetwork.objects.get_or_create(
|
|
old_id=id,
|
|
establishment=establishment,
|
|
network=instagram,
|
|
url=instagram_url,
|
|
)
|
|
count += 1
|
|
|
|
self.stdout.write(self.style.WARNING(f'Created/updated {count} objects.'))
|