blob: 57c63fbc8c21b0e2c8fae49f19b6ea579a9a0091 [file] [log] [blame]
import os
from django.conf import settings
from django.core.management import call_command
from django.core.management.base import BaseCommand
from wagtail.core.models import Page, Site
class Command(BaseCommand):
def add_arguments(self, parser):
parser.add_argument('filename')
def handle(self, **options):
fixtures_dir = os.path.join(
settings.BASE_DIR,
'django_airavata',
'wagtailapps',
'base',
'fixtures')
# options['filename'] may or may not contain the .json extension
fixture_file = os.path.join(fixtures_dir, options['filename'])
if not os.path.exists(fixture_file):
fixture_file = os.path.join(
fixtures_dir, f"{options['filename']}.json")
# Wagtail creates default Site and Page instances during install, but we already have
# them in the data load. Remove the auto-generated ones.
if Site.objects.filter(hostname='localhost').exists():
Site.objects.get(hostname='localhost').delete()
if Page.objects.filter(
title='Welcome to your new Wagtail site!').exists():
Page.objects.get(
title='Welcome to your new Wagtail site!').delete()
call_command('loaddata', fixture_file, verbosity=0)
call_command('set_wagtail_site')
call_command('fix_page_revision_content_type')
self.stdout.write(
self.style.SUCCESS(f"{options['filename']} is loaded successfully....!")
)