refactor(assistance): MV kb category model to its own file

ref: #783
This commit is contained in:
2025-06-04 07:15:26 +09:30
parent 507182983b
commit 734c29f41b
8 changed files with 133 additions and 122 deletions

View File

@ -5,126 +5,12 @@ from access.fields import *
from access.models.team import Team from access.models.team import Team
from access.models.tenancy import TenancyObject from access.models.tenancy import TenancyObject
from assistance.models.knowledge_base_category import KnowledgeBaseCategory
User = django.contrib.auth.get_user_model() User = django.contrib.auth.get_user_model()
class KnowledgeBaseCategory(TenancyObject):
class Meta:
ordering = [
'name',
]
verbose_name = "Knowledge Base Category"
verbose_name_plural = "Knowledge Base Categories"
parent_category = models.ForeignKey(
'self',
blank = True,
default = None,
help_text = 'Category this category belongs to',
null = True,
on_delete = models.SET_NULL,
verbose_name = 'Parent Category',
)
name = models.CharField(
blank = False,
help_text = 'Name/Title of the Category',
max_length = 50,
unique = False,
verbose_name = 'Title',
)
target_team = models.ManyToManyField(
Team,
blank = True,
default = None,
help_text = 'Team(s) to grant access to the article',
verbose_name = 'Target Team(s)',
)
target_user = models.ForeignKey(
User,
blank = True,
default = None,
help_text = 'User(s) to grant access to the article',
null = True,
on_delete = models.SET_NULL,
verbose_name = 'Target Users(s)',
)
created = AutoCreatedField()
modified = AutoLastModifiedField()
page_layout: dict = [
{
"name": "Details",
"slug": "details",
"sections": [
{
"layout": "double",
"left": [
'organization',
'parent_category',
'name',
'target_user',
'target_team',
],
"right": [
'model_notes',
'created',
'modified',
]
}
]
},
{
"name": "Notes",
"slug": "notes",
"sections": []
},
]
table_fields: list = [
'name',
'parent_category',
'is_global',
'organization',
]
def __str__(self):
return self.name
def save_history(self, before: dict, after: dict) -> bool:
from assistance.models.knowledge_base_category_history import KnowledgeBaseCategoryHistory
history = super().save_history(
before = before,
after = after,
history_model = KnowledgeBaseCategoryHistory,
)
return history
class KnowledgeBase(TenancyObject): class KnowledgeBase(TenancyObject):

View File

@ -0,0 +1,124 @@
import django
from django.db import models
from access.fields import *
from access.models.team import Team
from access.models.tenancy import TenancyObject
User = django.contrib.auth.get_user_model()
class KnowledgeBaseCategory(TenancyObject):
class Meta:
ordering = [
'name',
]
verbose_name = "Knowledge Base Category"
verbose_name_plural = "Knowledge Base Categories"
parent_category = models.ForeignKey(
'self',
blank = True,
default = None,
help_text = 'Category this category belongs to',
null = True,
on_delete = models.SET_NULL,
verbose_name = 'Parent Category',
)
name = models.CharField(
blank = False,
help_text = 'Name/Title of the Category',
max_length = 50,
unique = False,
verbose_name = 'Title',
)
target_team = models.ManyToManyField(
Team,
blank = True,
default = None,
help_text = 'Team(s) to grant access to the article',
verbose_name = 'Target Team(s)',
)
target_user = models.ForeignKey(
User,
blank = True,
default = None,
help_text = 'User(s) to grant access to the article',
null = True,
on_delete = models.SET_NULL,
verbose_name = 'Target Users(s)',
)
created = AutoCreatedField()
modified = AutoLastModifiedField()
page_layout: dict = [
{
"name": "Details",
"slug": "details",
"sections": [
{
"layout": "double",
"left": [
'organization',
'parent_category',
'name',
'target_user',
'target_team',
],
"right": [
'model_notes',
'created',
'modified',
]
}
]
},
{
"name": "Notes",
"slug": "notes",
"sections": []
},
]
table_fields: list = [
'name',
'parent_category',
'is_global',
'organization',
]
def __str__(self):
return self.name
def save_history(self, before: dict, after: dict) -> bool:
from assistance.models.knowledge_base_category_history import KnowledgeBaseCategoryHistory
history = super().save_history(
before = before,
after = after,
history_model = KnowledgeBaseCategoryHistory,
)
return history

View File

@ -11,7 +11,7 @@ from centurion.serializers.user import UserBaseSerializer
from api.serializers import common from api.serializers import common
from assistance.models.knowledge_base import KnowledgeBaseCategory from assistance.models.knowledge_base_category import KnowledgeBaseCategory

View File

@ -13,7 +13,7 @@ from api.tests.abstract.api_permissions_viewset import APIPermissions
from api.tests.abstract.api_serializer_viewset import SerializersTestCases from api.tests.abstract.api_serializer_viewset import SerializersTestCases
from api.tests.abstract.test_metadata_functional import MetadataAttributesFunctional from api.tests.abstract.test_metadata_functional import MetadataAttributesFunctional
from assistance.models.knowledge_base import KnowledgeBaseCategory from assistance.models.knowledge_base_category import KnowledgeBaseCategory
from settings.models.app_settings import AppSettings from settings.models.app_settings import AppSettings

View File

@ -14,7 +14,8 @@ from access.models.team_user import TeamUsers
from api.tests.abstract.api_fields import APITenancyObject from api.tests.abstract.api_fields import APITenancyObject
from assistance.models.knowledge_base import KnowledgeBase, KnowledgeBaseCategory from assistance.models.knowledge_base import KnowledgeBase
from assistance.models.knowledge_base_category import KnowledgeBaseCategory
User = django.contrib.auth.get_user_model() User = django.contrib.auth.get_user_model()

View File

@ -14,7 +14,7 @@ from access.models.team_user import TeamUsers
from api.tests.abstract.api_fields import APITenancyObject from api.tests.abstract.api_fields import APITenancyObject
from assistance.models.knowledge_base import KnowledgeBase, KnowledgeBaseCategory from assistance.models.knowledge_base_category import KnowledgeBaseCategory
User = django.contrib.auth.get_user_model() User = django.contrib.auth.get_user_model()

View File

@ -16,7 +16,7 @@ from access.models.team_user import TeamUsers
from centurion.tests.abstract.model_permissions import ModelPermissions from centurion.tests.abstract.model_permissions import ModelPermissions
from assistance.models.knowledge_base import KnowledgeBaseCategory from assistance.models.knowledge_base_category import KnowledgeBaseCategory
User = django.contrib.auth.get_user_model() User = django.contrib.auth.get_user_model()

View File

@ -4,7 +4,7 @@ from centurion.tests.unit.test_unit_models import (
from django.test import TestCase from django.test import TestCase
from assistance.models.knowledge_base import KnowledgeBaseCategory from assistance.models.knowledge_base_category import KnowledgeBaseCategory