Add Explicit Ordering to ModuleLevels and Categories

This commit is contained in:
Lorenz Padberg 2023-08-31 10:49:15 +02:00
parent 630671ba00
commit d91d80b6da
3 changed files with 47 additions and 16 deletions

View File

@ -0,0 +1,31 @@
# Generated by Django 3.2.16 on 2023-08-31 08:45
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('books', '0043_auto_20230822_1219'),
]
operations = [
migrations.AlterModelOptions(
name='modulecategory',
options={'ordering': ('order', 'name'), 'verbose_name': 'module type', 'verbose_name_plural': 'module types'},
),
migrations.AlterModelOptions(
name='modulelevel',
options={'ordering': ('order', 'name'), 'verbose_name': 'module level', 'verbose_name_plural': 'module Levels'},
),
migrations.AddField(
model_name='modulecategory',
name='order',
field=models.PositiveIntegerField(default=99, help_text='Order in the Dropdown List'),
),
migrations.AddField(
model_name='modulelevel',
name='order',
field=models.PositiveIntegerField(default=99, help_text='Order in the Dropdown List'),
),
]

View File

@ -1,10 +1,10 @@
from django.db import models
from django import forms from django import forms
from django.db import models
from django.utils import timezone from django.utils import timezone
from django.utils.translation import gettext as _
from wagtail.admin.forms import WagtailAdminPageForm
from wagtail.admin.panels import FieldPanel, TabbedInterface, ObjectList from wagtail.admin.panels import FieldPanel, TabbedInterface, ObjectList
from wagtail.fields import RichTextField from wagtail.fields import RichTextField
from wagtail.admin.forms import WagtailAdminPageForm
from django.utils.translation import gettext as _
from core.constants import DEFAULT_RICH_TEXT_FEATURES from core.constants import DEFAULT_RICH_TEXT_FEATURES
from core.wagtail_utils import StrictHierarchyPage, get_default_settings from core.wagtail_utils import StrictHierarchyPage, get_default_settings
@ -20,25 +20,28 @@ class ModuleLevel(models.Model):
filter_attribute_type = models.CharField( filter_attribute_type = models.CharField(
max_length=16, choices=FILTER_ATTRIBUTE_TYPE, default=EXACT max_length=16, choices=FILTER_ATTRIBUTE_TYPE, default=EXACT
) )
order = models.PositiveIntegerField(null=False, blank=False, default=99, help_text='Order in the Dropdown List')
def __str__(self):
return self.name
class Meta: class Meta:
verbose_name_plural = _("module Levels") verbose_name_plural = _("module Levels")
verbose_name = _("module level") verbose_name = _("module level")
ordering = ("order", "name")
def __str__(self):
return self.name
class ModuleCategory(models.Model): class ModuleCategory(models.Model):
class Meta:
verbose_name = _("module type")
verbose_name_plural = _("module types")
ordering = ("name",)
name = models.CharField(max_length=255) name = models.CharField(max_length=255)
filter_attribute_type = models.CharField( filter_attribute_type = models.CharField(
max_length=16, choices=FILTER_ATTRIBUTE_TYPE, default=EXACT max_length=16, choices=FILTER_ATTRIBUTE_TYPE, default=EXACT
) )
order = models.PositiveIntegerField(null=False, blank=False, default=99, help_text='Order in the Dropdown List')
class Meta:
verbose_name = _("module type")
verbose_name_plural = _("module types")
ordering = ("order", "name")
def __str__(self): def __str__(self):
return f"{self.name}" return f"{self.name}"

View File

@ -16,15 +16,12 @@ class ModuleAdmin(ModelAdmin):
class ModuleLevelAdmin(ModelAdmin): class ModuleLevelAdmin(ModelAdmin):
model = ModuleLevel model = ModuleLevel
list_display = ("name",) list_display = ("name","filter_attribute_type", "order")
ordering = ("name",)
class ModuleCategoryAdmin(ModelAdmin): class ModuleCategoryAdmin(ModelAdmin):
model = ModuleCategory model = ModuleCategory
list_display = ("name",) list_display = ("name", "filter_attribute_type", "order")
ordering = ("name",)
inspect_view_fields = ("name",)
class InstrumentGroup(ModelAdminGroup): class InstrumentGroup(ModelAdminGroup):