@ -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):
|
||||||
|
|
||||||
|
|
||||||
|
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 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.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
|
||||||
|
|
||||||
|
@ -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()
|
||||||
|
|
||||||
|
@ -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()
|
||||||
|
|
||||||
|
@ -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()
|
||||||
|
|
||||||
|
@ -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
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user