Remove Tree structure from moduleCategory and CategoryType

This commit is contained in:
Lorenz Padberg 2023-07-27 15:52:25 +02:00
parent e99c703f55
commit b5705cc991
5 changed files with 30 additions and 29 deletions

View File

@ -21,25 +21,25 @@ def create_default_categories():
for lehrjahr in range(1,4): for lehrjahr in range(1,4):
module_category, created = ModuleCategory.objects.get_or_create(name=f"{lehrjahr}. Lehrjahr") module_category, created = ModuleCategory.objects.get_or_create(name=f"{lehrjahr}. Lehrjahr")
for type in range(1, 10): for type in range(1, 10):
ModuleType.objects.get_or_create(name=f"Lernfeld {type}", category=module_category) ModuleType.objects.get_or_create(name=f"Lernfeld {type}")
def categorize_modules(): def categorize_modules():
for category in ModuleCategory.objects.all(): for category in ModuleCategory.objects.all():
modules = Module.objects.filter(category__isnull=True, category_type__isnull=True, meta_title__icontains=category.name) modules = Module.objects.filter(category__isnull=True, meta_title__icontains=category.name)
print(f"{category.name}: {modules.count()}") print(f"{category.name}: {modules.count()}")
modules.update(category=category) modules.update(category=category)
for type in ModuleType.objects.all(): for type in ModuleType.objects.all():
modules = Module.objects.filter(category=type.category, category_type__isnull=True, meta_title__contains=type.name) modules = Module.objects.filter(category_type__isnull=True, meta_title__contains=type.name)
print(f"{type.category} {type.name}: {modules.count()}") print(f"{type.name}: {modules.count()}")
modules.update(category_type=type) modules.update(category_type=type)
def uncategorize_modules(): def uncategorize_modules():
ModuleCategory.objects.all().delete()
ModuleType.objects.all().delete() ModuleType.objects.all().delete()
ModuleCategory.objects.all().delete()
def delete_unused_categories(): def delete_unused_categories():
for category in ModuleCategory.objects.all(): for category in ModuleCategory.objects.all():

View File

@ -1,5 +1,5 @@
from django.core.management import BaseCommand from django.core.management import BaseCommand
from books.categorize_modules import categorize_modules, delete_unused_categories, delete_unused_types from books.categorize_modules import categorize_modules, delete_unused_categories, delete_unused_types, uncategorize_modules
from books.categorize_modules import create_default_categories from books.categorize_modules import create_default_categories
@ -7,6 +7,7 @@ from books.categorize_modules import create_default_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()
create_default_categories() create_default_categories()
categorize_modules() categorize_modules()
delete_unused_types() delete_unused_types()

View File

@ -28,19 +28,12 @@ class ModuleType(models.Model):
class Meta: class Meta:
verbose_name = _("module type") verbose_name = _("module type")
verbose_name_plural = _("module types") verbose_name_plural = _("module types")
ordering = ("category", "name") ordering = ("name",)
name = models.CharField(max_length=255) name = models.CharField(max_length=255)
category = models.ForeignKey(
ModuleCategory,
on_delete=models.PROTECT,
null=False,
default=default_category,
related_name="module_types",
)
def __str__(self): def __str__(self):
return f"{self.category} - {self.name}" return f"{self.name}"
class Module(StrictHierarchyPage): class Module(StrictHierarchyPage):

View File

@ -0,0 +1,15 @@
from graphene import relay
from graphene import relay
from graphene_django import DjangoObjectType
from books.models import ModuleCategory
class ModuleCategoryNode(DjangoObjectType):
class Meta:
model = ModuleCategory
interfaces = (relay.Node,)
only_fields = [
"id",
"name",
]

View File

@ -8,11 +8,12 @@ from wagtail import hooks
from .models.module import ModuleCategory, ModuleType, Module from .models.module import ModuleCategory, ModuleType, Module
from django.utils.translation import gettext_lazy as _ from django.utils.translation import gettext_lazy as _
class ModuleAdmin(ModelAdmin): class ModuleAdmin(ModelAdmin):
model = Module model = Module
list_display = ("title", "meta_title", "category", "category_type") list_display = ("title", "meta_title", "category", "category_type")
search_fields = ("title", "meta_title") search_fields = ("title", "meta_title")
list_filter = ("category","category_type") list_filter = ("category", "category_type")
class ModuleCategoryAdmin(ModelAdmin): class ModuleCategoryAdmin(ModelAdmin):
@ -23,17 +24,9 @@ class ModuleCategoryAdmin(ModelAdmin):
class ModuleTypeAdmin(ModelAdmin): class ModuleTypeAdmin(ModelAdmin):
model = ModuleType model = ModuleType
list_display = ( list_display = ("name",)
"name", ordering = ("name",)
"category", inspect_view_fields = ("name",)
)
list_filter = ("category",)
ordering = ("category", "name")
inspect_view_enabled = True
inspect_view_fields = (
"name",
"category",
)
class InstrumentGroup(ModelAdminGroup): class InstrumentGroup(ModelAdminGroup):
@ -46,4 +39,3 @@ class InstrumentGroup(ModelAdminGroup):
modeladmin_register(InstrumentGroup) modeladmin_register(InstrumentGroup)