@ -5,126 +5,12 @@ from access.fields import *
|
||||
from access.models.team import Team
|
||||
from access.models.tenancy import TenancyObject
|
||||
|
||||
from assistance.models.knowledge_base_category import KnowledgeBaseCategory
|
||||
|
||||
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):
|
||||
|
||||
|
||||
|
124
app/assistance/models/knowledge_base_category.py
Normal file
124
app/assistance/models/knowledge_base_category.py
Normal 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
|
@ -11,7 +11,7 @@ from centurion.serializers.user import UserBaseSerializer
|
||||
|
||||
from api.serializers import common
|
||||
|
||||
from assistance.models.knowledge_base import KnowledgeBaseCategory
|
||||
from assistance.models.knowledge_base_category import KnowledgeBaseCategory
|
||||
|
||||
|
||||
|
||||
|
@ -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.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
|
||||
|
||||
|
@ -14,7 +14,8 @@ from access.models.team_user import TeamUsers
|
||||
|
||||
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()
|
||||
|
||||
|
@ -14,7 +14,7 @@ from access.models.team_user import TeamUsers
|
||||
|
||||
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()
|
||||
|
||||
|
@ -16,7 +16,7 @@ from access.models.team_user import TeamUsers
|
||||
|
||||
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()
|
||||
|
||||
|
@ -4,7 +4,7 @@ from centurion.tests.unit.test_unit_models import (
|
||||
|
||||
from django.test import TestCase
|
||||
|
||||
from assistance.models.knowledge_base import KnowledgeBaseCategory
|
||||
from assistance.models.knowledge_base_category import KnowledgeBaseCategory
|
||||
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user