feat(access): Enable specifying the kb model to use for linking kb article to a model
ref: #707
This commit is contained in:
@ -65,6 +65,8 @@ class Entity(
|
||||
|
||||
# app_namespace = 'access'
|
||||
|
||||
kb_model_name = 'entity'
|
||||
|
||||
note_basename = '_api_v2_entity_note'
|
||||
|
||||
documentation = ''
|
||||
|
@ -172,6 +172,13 @@ class TenancyObject(SaveHistory):
|
||||
the API version, i.e. `v2:devops`.
|
||||
"""
|
||||
|
||||
kb_model_name: str = None
|
||||
"""Model name to use for KB article linking
|
||||
|
||||
This value is derived from `<model>._meta.model_name`. This value should
|
||||
only be used when there is model inheritence.
|
||||
"""
|
||||
|
||||
note_basename: str = None
|
||||
"""URL BaseName for the notes endpoint.
|
||||
|
||||
|
@ -41,6 +41,12 @@ class TenancyObjectTestCases:
|
||||
assert issubclass(TenancyObject, SaveHistory)
|
||||
|
||||
|
||||
def test_has_attribute_kb_model_name(self):
|
||||
"""Attribute _kb_model_name exists """
|
||||
|
||||
assert hasattr(self.item, 'kb_model_name')
|
||||
|
||||
|
||||
def test_has_attribute_organization(self):
|
||||
""" Field organization exists """
|
||||
|
||||
|
@ -60,16 +60,23 @@ class CommonModelSerializer(CommonBaseSerializer):
|
||||
|
||||
get_url = {
|
||||
'_self': item.get_url( request = self._context['view'].request ),
|
||||
'knowledge_base': reverse(
|
||||
"v2:_api_v2_model_kb-list",
|
||||
request=self._context['view'].request,
|
||||
kwargs={
|
||||
'model': self.Meta.model._meta.model_name,
|
||||
'model_pk': item.pk
|
||||
}
|
||||
),
|
||||
}
|
||||
|
||||
kb_model_name = self.Meta.model._meta.model_name
|
||||
if getattr(item, 'kb_model_name'):
|
||||
|
||||
kb_model_name = item.kb_model_name
|
||||
|
||||
|
||||
get_url['knowledge_base'] = reverse(
|
||||
'v2:_api_v2_model_kb-list',
|
||||
request=self._context['view'].request,
|
||||
kwargs={
|
||||
'model': kb_model_name,
|
||||
'model_pk': item.pk
|
||||
}
|
||||
)
|
||||
|
||||
if getattr(self.Meta.model, 'save_model_history', True):
|
||||
|
||||
get_url['history'] = reverse(
|
||||
|
Reference in New Issue
Block a user