@ -85,12 +85,6 @@ class ReactUIMetadata(OverRideJSONAPIMetadata):
|
||||
|
||||
app_namespace = ''
|
||||
|
||||
if getattr(view, 'model', None):
|
||||
|
||||
if getattr(view.model, 'get_app_namespace', None):
|
||||
|
||||
app_namespace = view.model().get_app_namespace()
|
||||
|
||||
base_model = getattr(view, 'base_model', None)
|
||||
|
||||
if base_model is not None:
|
||||
@ -103,6 +97,13 @@ class ReactUIMetadata(OverRideJSONAPIMetadata):
|
||||
app_namespace = base_model.app_namespace + ':'
|
||||
|
||||
|
||||
if getattr(view, 'model', None):
|
||||
|
||||
if getattr(view.model, 'get_app_namespace', None):
|
||||
|
||||
app_namespace = view.model().get_app_namespace()
|
||||
|
||||
|
||||
if view.kwargs.get('pk', None) is not None:
|
||||
|
||||
qs = view.get_queryset()[0]
|
||||
@ -629,6 +630,17 @@ class ReactUIMetadata(OverRideJSONAPIMetadata):
|
||||
}
|
||||
})
|
||||
|
||||
if request.feature_flag['2025-00007']:
|
||||
|
||||
nav['itam']['pages'] = {
|
||||
'view_itamassetbase': {
|
||||
"display_name": "IT Assets",
|
||||
"name": "itasset",
|
||||
"link": "/itam/it_asset"
|
||||
},
|
||||
**nav['itam']['pages']
|
||||
}
|
||||
|
||||
if request.feature_flag['2025-00006']:
|
||||
|
||||
nav['assistance']['pages'].update({
|
||||
|
@ -226,8 +226,8 @@ router.register('core/(?P<item_class>[a-z_]+)/(?P<item_id>[0-9]+)/item_ticket',
|
||||
|
||||
router.register('itam', itam_index_v2.Index, basename='_api_v2_itam_home')
|
||||
|
||||
# from accounting.viewsets import asset
|
||||
# router.register('itam/(?P<asset_model>device)?', asset.ViewSet, feature_flag = '2025-00004', basename='_api_v2_device')
|
||||
from accounting.viewsets import asset
|
||||
router.register('itam/(?P<asset_model>[it_asset]+)', asset.ViewSet, feature_flag = '2025-00007', basename='_api_v2_itam_asset')
|
||||
|
||||
router.register('itam/device', device_v2.ViewSet, basename='_api_v2_device')
|
||||
router.register('itam/device/(?P<device_id>[0-9]+)/operating_system', device_operating_system.ViewSet, basename='_api_v2_device_operating_system')
|
||||
|
@ -1,6 +1,8 @@
|
||||
from django.apps import apps
|
||||
from django.db import models
|
||||
|
||||
from rest_framework.reverse import reverse
|
||||
|
||||
from accounting.models.asset_base import AssetBase
|
||||
|
||||
|
||||
@ -87,7 +89,56 @@ class ITAMAssetBase(
|
||||
)
|
||||
|
||||
|
||||
page_layout: list = []
|
||||
|
||||
page_layout: list = [
|
||||
{
|
||||
"name": "Details",
|
||||
"slug": "details",
|
||||
"sections": [
|
||||
{
|
||||
"layout": "double",
|
||||
"left": [
|
||||
'organization',
|
||||
'asset_type',
|
||||
'itam_type',
|
||||
'asset_number',
|
||||
'serial_number',
|
||||
],
|
||||
"right": [
|
||||
'model_notes',
|
||||
'created',
|
||||
'modified',
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Knowledge Base",
|
||||
"slug": "kb_articles",
|
||||
"sections": [
|
||||
{
|
||||
"layout": "table",
|
||||
"field": "knowledge_base",
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Tickets",
|
||||
"slug": "tickets",
|
||||
"sections": [
|
||||
{
|
||||
"layout": "table",
|
||||
"field": "tickets",
|
||||
}
|
||||
],
|
||||
},
|
||||
{
|
||||
"name": "Notes",
|
||||
"slug": "notes",
|
||||
"sections": []
|
||||
},
|
||||
]
|
||||
|
||||
|
||||
table_fields: list = [
|
||||
'id',
|
||||
@ -108,6 +159,22 @@ class ITAMAssetBase(
|
||||
|
||||
return self._meta.verbose_name + ' - ' + self.asset_number
|
||||
|
||||
|
||||
|
||||
def get_url( self, request = None ) -> str:
|
||||
|
||||
kwargs = self.get_url_kwargs()
|
||||
|
||||
url_path_name = '_api_v2_itam_asset'
|
||||
|
||||
if request:
|
||||
|
||||
return reverse(f"v2:{url_path_name}-detail", request=request, kwargs = kwargs )
|
||||
|
||||
|
||||
return reverse(f"v2:{url_path_name}-detail", kwargs = kwargs )
|
||||
|
||||
|
||||
|
||||
def save(self, force_insert=False, force_update=False, using=None, update_fields=None):
|
||||
|
||||
|
Reference in New Issue
Block a user