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, ModuleCategory, ModuleType
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_categories():
for lehrjahr in range(1,4):
module_category, created = ModuleCategory.objects.get_or_create(name=f"{lehrjahr}. Lehrjahr")
for type in range(1, 10):
ModuleType.objects.get_or_create(name=f"Lernfeld {type}")
def categorize_modules():
for category in ModuleCategory.objects.all():
modules = Module.objects.filter(category__isnull=True, meta_title__icontains=category.name)
print(f"{category.name}: {modules.count()}")
modules.update(category=category)
for type in ModuleType.objects.all():
modules = Module.objects.filter(category_type__isnull=True, meta_title__contains=type.name)
print(f"{type.name}: {modules.count()}")
modules.update(category_type=type)
def uncategorize_modules():
ModuleType.objects.all().delete()
ModuleCategory.objects.all().delete()
def delete_unused_categories():
for category in ModuleCategory.objects.all():
if not category.module_set.exists():
category.delete()
def delete_unused_types():
for type in ModuleType.objects.all():
if not type.module_set.exists():
type.delete()