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

114 lines
4.8 KiB
Python

import os
import random
import shutil
from django.conf import settings
from django.contrib.auth import get_user_model
from django.core.management import BaseCommand
from rooms.factories import RoomFactory
from rooms.models import Room
from user.factories import UserGroupFactory
from user.models import UserGroup
data = [
{
'title': 'Ein historisches Festival',
'appearance': 'red',
# 'group': 'Klasse 3b - 2018/2019'
# 'entries': [1, 1, 1, 1, 1, 1]
},
{
'title': 'Erfahrungen Lehrbeginn',
'appearance': 'green',
# 'group': 'Klasse 3b - 2018/2019'
# 'entries': [1]
},
{
'title': 'Interview «Mein neues Umfeld»',
'appearance': 'brown',
# 'group': 'Hans Muster und 12 weitere Personen'
# 'entries': [1, 1, 1, 1, 1, 1]
}
]
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 filter_data(self, input_data, filter_keyword):
filters = [filter_keyword] if not isinstance(filter_keyword, list) else filter_keyword
return {k: v for (k, v) in input_data.items() if not (k in filters)}
def handle(self, *args, **options):
# 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
# )
Room.objects.all().delete()
UserGroup.objects.all().delete()
for i in range(0, 6):
UserGroupFactory(users=(random.choices(get_user_model().objects.all(), k=3)))
for room_idx, room_data in enumerate(data):
RoomFactory.create(**room_data)
# for book_idx, book_data in enumerate(data):
# book = BookFactory.create(parent=site.root_page, **self.filter_data(book_data, 'topics'))
#
# default_topics = [{} for i in range(0, random.randint(5, 8))]
# topics_data = book_data.get('topics', default_topics)
#
# for topic_idx, topic_data in enumerate(topics_data):
# topic = TopicFactory.create(parent=book, **self.filter_data(topic_data, 'modules'))
#
# default_modules = [{} for i in range(0, random.randint(3, 6))]
# modules_data = topic_data.get('modules', default_modules)
#
# for module_idx, module_data in enumerate(modules_data):
# module = ModuleFactory.create(parent=topic, **self.filter_data(module_data, ['objective_groups', 'chapters']))
#
# default_objective_groups = [{} for i in range(0, 2)]
# objective_group_data = module_data.get('objective_groups', default_objective_groups)
#
# for objective_group_idx, objective_group_entry in enumerate(objective_group_data):
# factory_params = self.filter_data(objective_group_entry, 'objectives')
# objective_group = ObjectiveGroupFactory.create(module=module,
# user=None,
# **factory_params)
#
# default_objectives = [{} for i in range(0, 4)]
# objectives_data = objective_group_entry.get('objectives', default_objectives)
#
# for objective_idx, objective_data in enumerate(objectives_data):
# objective = ObjectiveFactory.create(group=objective_group, **objective_data)
#
# default_chapters = [{} for i in range(0, 2)]
# chapters_data = module_data.get('chapters', default_chapters)
#
# for chapter_idx, chapter_data in enumerate(chapters_data):
# chapter = ChapterFactory.create(parent=module, **self.filter_data(chapter_data, 'content_blocks'))
#
# default_content_blocks = [{} for i in range(0, 4)]
# content_blocks_data = chapter_data.get('content_blocks', default_content_blocks)
#
# for content_block_idx, content_block_data in enumerate(content_blocks_data):
# # ContentBlockFactory.create(parent=chapter, **self.filter_data(content_block_data, 'contents'))
# ContentBlockFactory.create(parent=chapter, **content_block_data)