skillbox/server/books/categorize_modules.py

53 lines
1.7 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

from .models.module import Module, ModuleLevel, ModuleCategory
def analyze_module_meta_titles():
all_nodes = []
for module in Module.objects.all():
print(f"{module.get_parent() } {module.meta_title} : {module.title}")
nodes = [i.strip() for i in [module.get_parent().title] + module.meta_title.split(' ')]
all_nodes.append(nodes)
print("")
for i in range(3):
leafs = [node[i] for node in all_nodes if len(node) > i+1]
leafs.sort()
print(f"{i}.: {set(leafs)}")
def create_default_levcels_and_categories():
for lehrjahr in range(1,4):
module_category, created = ModuleLevel.objects.get_or_create(name=f"{lehrjahr}. Lehrjahr")
for category in range(1, 10):
ModuleCategory.objects.get_or_create(name=f"Lernfeld {category}")
def categorize_modules():
for level in ModuleLevel.objects.all():
modules = Module.objects.filter(level__isnull=True, meta_title__icontains=level.name)
print(f"{level.name}: {modules.count()}")
modules.update(level=level)
for category in ModuleCategory.objects.all():
modules = Module.objects.filter(category__isnull=True, meta_title__contains=type.name)
print(f"{category.name}: {modules.count()}")
modules.update(category=category)
def uncategorize_modules():
ModuleCategory.objects.all().delete()
ModuleLevel.objects.all().delete()
def delete_unused_levels():
for level in ModuleLevel.objects.all():
if not level.module_set.exists():
level.delete()
def delete_unused_categories():
for category in ModuleCategory.objects.all():
if not category.module_set.exists():
category.delete()