61 lines
2.1 KiB
Python
61 lines
2.1 KiB
Python
from users.models import User
|
||
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_levels_and_categories():
|
||
ModuleLevel.objects.get_or_create(name=f"Alle Lehrjahre", filter_attribute_type="all", order=0)
|
||
|
||
for lehrjahr in range(1,4):
|
||
module_category, created = ModuleLevel.objects.get_or_create(name=f"{lehrjahr}. Lehrjahr", order=lehrjahr)
|
||
|
||
|
||
ModuleCategory.objects.get_or_create(name=f"Alle Lernfelder", filter_attribute_type="all", order=0)
|
||
|
||
for category in range(1, 5):
|
||
ModuleCategory.objects.get_or_create(name=f"Lernfeld {category}", order=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=category.name)
|
||
print(f"{category.name}: {modules.count()}")
|
||
modules.update(category=category)
|
||
|
||
|
||
def uncategorize_modules():
|
||
User.objects.all().update(last_module_level=None)
|
||
#
|
||
ModuleCategory.objects.all().delete()
|
||
ModuleLevel.objects.all().delete()
|
||
|
||
def delete_unused_levels():
|
||
for level in ModuleLevel.objects.filter(filter_attribute_type="exact"):
|
||
if not level.module_set.exists():
|
||
level.delete()
|
||
|
||
def delete_unused_categories():
|
||
for category in ModuleCategory.objects.filter(filter_attribute_type="exact"):
|
||
if not category.module_set.exists():
|
||
category.delete()
|