Add instrument category model
This commit is contained in:
parent
ae3dfdd17f
commit
d172e9a005
|
|
@ -0,0 +1,31 @@
|
|||
# Generated by Django 3.2.13 on 2022-09-13 08:20
|
||||
|
||||
from django.db import migrations, models
|
||||
import django.db.models.deletion
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('basicknowledge', '0018_alter_basicknowledge_contents'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.CreateModel(
|
||||
name='InstrumentCategory',
|
||||
fields=[
|
||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('name', models.CharField(max_length=255, unique=True)),
|
||||
('background', models.CharField(max_length=7, verbose_name='background color')),
|
||||
('foreground', models.CharField(max_length=7, verbose_name='foreground color')),
|
||||
],
|
||||
options={
|
||||
'verbose_name_plural': 'instrument categories',
|
||||
},
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='instrumenttype',
|
||||
name='new_category',
|
||||
field=models.ForeignKey(default=None, null=True, on_delete=django.db.models.deletion.PROTECT, to='basicknowledge.instrumentcategory'),
|
||||
),
|
||||
]
|
||||
|
|
@ -15,6 +15,18 @@ SOCIETY = 'society'
|
|||
INTERDISCIPLINARY = 'interdisciplinary'
|
||||
|
||||
|
||||
class InstrumentCategory(models.Model):
|
||||
name = models.CharField(max_length=255, unique=True)
|
||||
background = models.CharField('background color', max_length=7)
|
||||
foreground = models.CharField('foreground color', max_length=7)
|
||||
|
||||
def __str__(self):
|
||||
return self.name
|
||||
|
||||
class Meta:
|
||||
verbose_name_plural = 'instrument categories'
|
||||
|
||||
|
||||
class InstrumentType(models.Model):
|
||||
CATEGORY_CHOICES = (
|
||||
(LANGUAGE_COMMUNICATION, 'Sprache & Kommunikation'),
|
||||
|
|
@ -27,6 +39,12 @@ class InstrumentType(models.Model):
|
|||
max_length=100,
|
||||
choices=CATEGORY_CHOICES
|
||||
)
|
||||
new_category = models.ForeignKey(
|
||||
InstrumentCategory,
|
||||
on_delete=models.PROTECT,
|
||||
null=True,
|
||||
default=None
|
||||
)
|
||||
|
||||
@property
|
||||
def type(self):
|
||||
|
|
@ -36,7 +54,6 @@ class InstrumentType(models.Model):
|
|||
return self.type
|
||||
|
||||
|
||||
|
||||
class BasicKnowledge(StrictHierarchyPage):
|
||||
parent_page_types = ['books.book']
|
||||
|
||||
|
|
|
|||
|
|
@ -8,5 +8,12 @@ class InstrumentAdmin(ModelAdmin):
|
|||
list_display = ('title', 'new_type', 'status_string')
|
||||
search_fields = ('title', 'new_type__name')
|
||||
|
||||
class InstrumentCategoryAdmin(ModelAdmin):
|
||||
model = InstrumentCategory
|
||||
|
||||
class InstrumentTypeAdmin(ModelAdmin):
|
||||
model = InstrumentType
|
||||
|
||||
modeladmin_register(InstrumentAdmin)
|
||||
modeladmin_register(InstrumentCategoryAdmin)
|
||||
modeladmin_register(InstrumentTypeAdmin)
|
||||
|
|
|
|||
|
|
@ -9,7 +9,8 @@ from wagtail.core.models import Page, Site
|
|||
from wagtail.core.rich_text import RichText
|
||||
|
||||
from assignments.models import Assignment
|
||||
from basicknowledge.models import BasicKnowledge, INTERDISCIPLINARY, InstrumentType, LANGUAGE_COMMUNICATION, SOCIETY
|
||||
from basicknowledge.models import BasicKnowledge, INTERDISCIPLINARY, InstrumentCategory, InstrumentType, \
|
||||
LANGUAGE_COMMUNICATION, SOCIETY
|
||||
from books.blocks import AssignmentBlock, BasicKnowledgeBlock, ImageUrlBlock, LinkBlock, VideoBlock
|
||||
from books.models import Book, Chapter, ContentBlock, Module, TextBlock, Topic
|
||||
from core.factories import BasePageFactory, DummyImageFactory, fake, fake_paragraph, fake_title
|
||||
|
|
@ -70,6 +71,15 @@ class TextBlockFactory(wagtail_factories.StructBlockFactory):
|
|||
model = TextBlock
|
||||
|
||||
|
||||
class InstrumentCategoryFactory(factory.DjangoModelFactory):
|
||||
class Meta:
|
||||
model = InstrumentCategory
|
||||
django_get_or_create = ('name',)
|
||||
|
||||
name = factory.Iterator([LANGUAGE_COMMUNICATION, SOCIETY, INTERDISCIPLINARY])
|
||||
foreground = factory.Iterator(['FF0000', 'FFFFFF', '000000'])
|
||||
background = factory.Iterator(['FF0000', 'FFFFFF', '000000'])
|
||||
|
||||
class InstrumentTypeFactory(factory.DjangoModelFactory):
|
||||
class Meta:
|
||||
model = InstrumentType
|
||||
|
|
|
|||
|
|
@ -511,6 +511,13 @@ type InstrumentBookmarkNode implements Node {
|
|||
instrument: InstrumentNode!
|
||||
}
|
||||
|
||||
type InstrumentCategoryNode {
|
||||
id: ID!
|
||||
name: String!
|
||||
background: String!
|
||||
foreground: String!
|
||||
}
|
||||
|
||||
type InstrumentNode implements Node {
|
||||
title: String!
|
||||
slug: String!
|
||||
|
|
|
|||
Loading…
Reference in New Issue