skillbox/server/core/management/commands/dummy_data.py

182 lines
5.3 KiB
Python

import os
import shutil
import wagtail_factories
from django.conf import settings
from django.core import management
from django.core.management import BaseCommand
from django.db import connection
from wagtail.core.models import Page
from book.factories import BookFactory, TopicFactory, ModuleFactory
from core.factories import UserFactory
data = [
{
'title': 'Gesellschaft',
'topics': [
{
'order': 1,
'name': 'Berufliche Grundbildung',
'teaser': 'Die berufliche Grundbildung lehrt Sie, den Arbeitsalltag erfolgreich zu bewältigen, Ihre Fähigkeiten zu entwickeln und beruflich flexibel zu sein. Ebenso wichtig ist der Umgang mit verschiedensten Mitmenschen. Eine angemessene mündliche Kommunikation erleichtert das Zusammenleben und Zusammenarbeiten.',
'modules': [
{
'title': 'Video',
'meta_title': 'Intro',
'teaser': 'Die Berufsbildung ist ein neuer Lebensabschnitt'
}
]
},
{
'order': 2,
'name': '',
'teaser': '',
'modules': [
{
'title': '',
'meta_title': '',
'teaser': ''
}
]
},
{
'order': 3,
'name': '',
'teaser': '',
'modules': [
{
'title': '',
'meta_title': '',
'teaser': ''
}
]
},
{
'order': 4,
'name': '',
'teaser': '',
'modules': [
{
'title': '',
'meta_title': '',
'teaser': ''
}
]
},
{
'order': 1,
'name': '',
'teaser': '',
'modules': [
{
'title': '',
'meta_title': '',
'teaser': ''
}
]
},
{
'order': 1,
'name': '',
'teaser': '',
'modules': [
{
'title': '',
'meta_title': '',
'teaser': ''
}
]
},
{
'order': 1,
'name': '',
'teaser': '',
'modules': [
{
'title': '',
'meta_title': '',
'teaser': ''
}
]
},
{
'order': 1,
'name': '',
'teaser': '',
'modules': [
{
'title': '',
'meta_title': '',
'teaser': ''
}
]
},
{
'order': 1,
'name': '',
'teaser': '',
'modules': [
{
'title': '',
'meta_title': '',
'teaser': ''
}
]
},
{
'order': 1,
'name': '',
'teaser': '',
'modules': [
{
'title': '',
'meta_title': '',
'teaser': ''
}
]
},
]
}
]
class Command(BaseCommand):
def ensure_clean_dir(self, folder):
path = os.path.join(settings.MEDIA_ROOT, folder)
if os.path.exists(path):
shutil.rmtree(path)
if not os.path.exists(path):
os.makedirs(path)
def handle(self, *args, **options):
with connection.cursor() as cursor:
cursor.execute("DROP SCHEMA IF EXISTS public CASCADE;")
cursor.execute(
"CREATE SCHEMA IF NOT EXISTS public AUTHORIZATION {};".format(settings.DATABASES['default']['USER']))
cursor.execute("GRANT ALL ON SCHEMA public TO postgres;")
management.call_command('migrate', verbosity=0, interactive=False)
self.ensure_clean_dir('images')
self.ensure_clean_dir('original_images')
self.ensure_clean_dir('documents')
site = wagtail_factories.SiteFactory.create(is_default_site=True)
Page.objects.filter(title='Root').delete()
u = UserFactory(
username='test',
is_staff=True,
is_superuser=True
)
for i in range(0, 4):
UserFactory(username='user{}'.format(i))
book = BookFactory.create(parent=site.root_page)
for idx_topic in range(0, 11):
topic = TopicFactory.create(parent=book)
for idc_module in range(0, 5):
module = ModuleFactory.create(parent=topic)