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 from .models.module import Module, ModuleLevel, ModuleCategory
def analyze_module_meta_titles(): def analyze_module_meta_titles():
@ -17,10 +18,15 @@ def analyze_module_meta_titles():
print(f"{i}.: {set(leafs)}") 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): for lehrjahr in range(1,4):
module_category, created = ModuleLevel.objects.get_or_create(name=f"{lehrjahr}. Lehrjahr") 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): for category in range(1, 10):
ModuleCategory.objects.get_or_create(name=f"Lernfeld {category}") ModuleCategory.objects.get_or_create(name=f"Lernfeld {category}")
@ -32,21 +38,23 @@ def categorize_modules():
modules.update(level=level) modules.update(level=level)
for category in ModuleCategory.objects.all(): 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()}") print(f"{category.name}: {modules.count()}")
modules.update(category=category) modules.update(category=category)
def uncategorize_modules(): def uncategorize_modules():
User.objects.all().update(last_module_level=None)
#
ModuleCategory.objects.all().delete() ModuleCategory.objects.all().delete()
ModuleLevel.objects.all().delete() ModuleLevel.objects.all().delete()
def delete_unused_levels(): 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(): if not level.module_set.exists():
level.delete() level.delete()
def delete_unused_categories(): 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(): if not category.module_set.exists():
category.delete() category.delete()

View File

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

View File

@ -1,11 +1,11 @@
from django.core.management import BaseCommand 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): class Command(BaseCommand):
def handle(self, *args, **options): def handle(self, *args, **options):
self.stdout.write("Create defaut categories") self.stdout.write("Create defaut categories")
create_default_levcels_and_categories() create_default_levels_and_categories()
self.stdout.write("Finish") self.stdout.write("Finish")