Add filter_attribute_type (all / exact)

This commit is contained in:
Lorenz Padberg 2023-08-21 15:46:07 +02:00
parent 8444a48c26
commit 44f20c102b
3 changed files with 16 additions and 8 deletions

View File

@ -1,3 +1,4 @@
from users.models import User
from .models.module import Module, ModuleLevel, ModuleCategory
def analyze_module_meta_titles():
@ -17,10 +18,15 @@ def analyze_module_meta_titles():
print(f"{i}.: {set(leafs)}")
def create_default_levcels_and_categories():
def create_default_levels_and_categories():
ModuleLevel.objects.get_or_create(name=f"Alle Lehrjahre", filter_attribute_type="all")
for lehrjahr in range(1,4):
module_category, created = ModuleLevel.objects.get_or_create(name=f"{lehrjahr}. Lehrjahr")
ModuleCategory.objects.get_or_create(name=f"Alle Lernfelder", filter_attribute_type="all")
for category in range(1, 10):
ModuleCategory.objects.get_or_create(name=f"Lernfeld {category}")
@ -32,21 +38,23 @@ def categorize_modules():
modules.update(level=level)
for category in ModuleCategory.objects.all():
modules = Module.objects.filter(category__isnull=True, meta_title__contains=type.name)
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.all():
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.all():
for category in ModuleCategory.objects.filter(filter_attribute_type="exact"):
if not category.module_set.exists():
category.delete()

View File

@ -1,14 +1,14 @@
from django.core.management import BaseCommand
from books.categorize_modules import categorize_modules, delete_unused_levels, uncategorize_modules, \
delete_unused_categories
from books.categorize_modules import create_default_levcels_and_categories
from books.categorize_modules import create_default_levels_and_categories
class Command(BaseCommand):
def handle(self, *args, **options):
self.stdout.write("Categorizing modules")
uncategorize_modules()
create_default_levcels_and_categories()
create_default_levels_and_categories()
categorize_modules()
delete_unused_levels()
delete_unused_categories()

View File

@ -1,11 +1,11 @@
from django.core.management import BaseCommand
from books.categorize_modules import categorize_modules, create_default_levcels_and_categories
from books.categorize_modules import categorize_modules, create_default_levels_and_categories
class Command(BaseCommand):
def handle(self, *args, **options):
self.stdout.write("Create defaut categories")
create_default_levcels_and_categories()
create_default_levels_and_categories()
self.stdout.write("Finish")