feat(itam): Serializer for ITAssetBase

ref: #741 #692
This commit is contained in:
2025-05-05 01:00:14 +09:30
parent 9a88b75654
commit efde919689
2 changed files with 87 additions and 0 deletions

View File

@ -225,6 +225,10 @@ 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')
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')
router.register('itam/device/(?P<device_id>[0-9]+)/software', device_software_v2.ViewSet, basename='_api_v2_device_software')

View File

@ -0,0 +1,83 @@
from rest_framework import serializers
from drf_spectacular.utils import extend_schema_serializer
from access.serializers.organization import OrganizationBaseSerializer
from accounting.serializers.asset import (
BaseSerializer,
ModelSerializer as AssetBaseModelSerializer,
ViewSerializer as AssetBaseViewSerializer,
)
from itam.models.itam_asset_base import ITAMAssetBase
@extend_schema_serializer(component_name = 'ITAssetBaseModelSerializer')
class ModelSerializer(
AssetBaseModelSerializer,
BaseSerializer
):
"""IT Asset Base Model"""
_urls = serializers.SerializerMethodField('get_url')
class Meta:
model = ITAMAssetBase
fields = [
'id',
'display_name',
'organization',
'itam_type',
'asset_number',
'serial_number',
# 'status',
# 'category',
'created',
'modified',
'_urls',
]
read_only_fields = [
'id',
'display_name',
'itam_type',
'created',
'modified',
'_urls',
]
def validate(self, attrs):
attrs = super().validate( attrs )
return attrs
def is_valid(self, raise_exception = False):
is_valid = super().is_valid( raise_exception = raise_exception )
return is_valid
@extend_schema_serializer(component_name = 'ITAssetBaseViewSerializer')
class ViewSerializer(
AssetBaseViewSerializer,
ModelSerializer
):
"""IT Asset Base View Model"""
organization = OrganizationBaseSerializer(many=False, read_only=True)