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, 'title': '1. 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': [ { 'order': 1, 'title': 'Video', 'meta_title': 'Intro', 'teaser': 'Die Berufsbildung ist ein neuer Lebensabschnitt' }, { 'order': 2, 'title': 'Mein neues Umfeld', 'meta_title': 'Modul 1', 'teaser': 'Wie erging es Ihnen am ersten Arbeits- und Schultag?' }, { 'order': 3, 'title': 'Lehrvertrag', 'meta_title': 'Modul 2', 'teaser': 'Haben Sie etwas in Ihrem Lehrvertrag noch nicht verstanden?' }, { 'order': 4, 'title': 'Miteinander reden', 'meta_title': 'Modul 3', 'teaser': 'Welches war Ihre letzte schwierige Gesprächs- situation?' }, { 'order': 5, 'title': 'Lerntipps', 'meta_title': 'Modul 4', 'teaser': 'Wie gehen Sie vor, wenn Sie sich auf eine Prüfung vor-bereiten?' } ] }, { 'order': 2, 'title': '2. Geld und Kauf' }, { 'order': 3, 'title': '3. Risiko und Sicherheit' }, { 'order': 4, 'title': '4. Demokratie und Mitgestaltung' }, { 'order': 5, 'title': '5. Kultur und Kunst' }, { 'order': 6, 'title': '6. Die Schweiz in Europa und der Welt' }, { 'order': 7, 'title': '7. Markt und Konsum' }, { 'order': 8, 'title': '8. Globale Herausforderungen' }, { 'order': 9, 'title': '9. Wohnen und Zusammenleben' }, { 'order': 10, 'title': '10. Arbeit und Zukunft' }, { 'order': 11, 'title': '11. Grundsätzliches zum Recht' }, ] } ] 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)