feat(api): Add a Common Model serializer to be inherited by all model serializers

ref: #248 #385 #388 nofusscomputing/centurion_erp_ui#26
This commit is contained in:
2024-11-12 01:19:06 +09:30
parent c54c91f4bf
commit f345dd366c
28 changed files with 172 additions and 29 deletions

View File

@ -4,6 +4,8 @@ from rest_framework import serializers
from access.models import Organization
from api.serializers import common
from app.serializers.user import UserBaseSerializer
@ -40,7 +42,10 @@ class OrganizationBaseSerializer(serializers.ModelSerializer):
class OrganizationModelSerializer(OrganizationBaseSerializer):
class OrganizationModelSerializer(
common.CommonModelSerializer,
OrganizationBaseSerializer
):
_urls = serializers.SerializerMethodField('get_url')

View File

@ -3,6 +3,9 @@ from rest_framework.reverse import reverse
from rest_framework import serializers
from access.models import TeamUsers
from api.serializers import common
from app.serializers.user import UserBaseSerializer
@ -49,7 +52,10 @@ class TeamUserBaseSerializer(serializers.ModelSerializer):
class TeamUserModelSerializer(TeamUserBaseSerializer):
class TeamUserModelSerializer(
common.CommonModelSerializer,
TeamUserBaseSerializer
):
_urls = serializers.SerializerMethodField('get_url')

View File

@ -3,6 +3,9 @@ from rest_framework.reverse import reverse
from rest_framework import serializers
from access.models import Team
from api.serializers import common
from access.serializers.organization import OrganizationBaseSerializer
from app.serializers.permission import PermissionBaseSerializer
@ -52,7 +55,10 @@ class TeamBaseSerializer(serializers.ModelSerializer):
class TeamModelSerializer(TeamBaseSerializer):
class TeamModelSerializer(
common.CommonModelSerializer,
TeamBaseSerializer
):
_urls = serializers.SerializerMethodField('get_url')

View File

@ -0,0 +1,9 @@
from rest_framework import serializers
from core import fields as centurion_field
class CommonModelSerializer(CommonBaseSerializer):
model_notes = centurion_field.MarkdownField( required = False )

View File

@ -8,6 +8,8 @@ from access.serializers.teams import TeamBaseSerializer
from app.serializers.user import UserBaseSerializer
from api.serializers import common
from assistance.models.knowledge_base import KnowledgeBase
from assistance.serializers.knowledge_base_category import KnowledgeBaseCategoryBaseSerializer
@ -54,7 +56,10 @@ class KnowledgeBaseBaseSerializer(serializers.ModelSerializer):
class KnowledgeBaseModelSerializer(KnowledgeBaseBaseSerializer):
class KnowledgeBaseModelSerializer(
common.CommonModelSerializer,
KnowledgeBaseBaseSerializer
):
_urls = serializers.SerializerMethodField('get_url')

View File

@ -9,6 +9,8 @@ from access.serializers.teams import TeamBaseSerializer
from app.serializers.user import UserBaseSerializer
from api.serializers import common
from assistance.models.knowledge_base import KnowledgeBaseCategory
@ -55,7 +57,10 @@ class KnowledgeBaseCategoryBaseSerializer(serializers.ModelSerializer):
class KnowledgeBaseCategoryModelSerializer(KnowledgeBaseCategoryBaseSerializer):
class KnowledgeBaseCategoryModelSerializer(
common.CommonModelSerializer,
KnowledgeBaseCategoryBaseSerializer
):
_urls = serializers.SerializerMethodField('get_url')

View File

@ -4,6 +4,8 @@ from rest_framework.reverse import reverse
from access.serializers.organization import OrganizationBaseSerializer
from api.serializers import common
from config_management.models.groups import ConfigGroups
from itam.serializers.device import DeviceBaseSerializer
@ -52,7 +54,10 @@ class ConfigGroupBaseSerializer(serializers.ModelSerializer):
class ConfigGroupModelSerializer(ConfigGroupBaseSerializer):
class ConfigGroupModelSerializer(
common.CommonModelSerializer,
ConfigGroupBaseSerializer
):
_urls = serializers.SerializerMethodField('get_url')

View File

@ -4,6 +4,8 @@ from rest_framework.reverse import reverse
from access.serializers.organization import OrganizationBaseSerializer
from api.serializers import common
from config_management.models.groups import ConfigGroupSoftware
from config_management.serializers.config_group import ConfigGroups, ConfigGroupBaseSerializer
@ -55,7 +57,10 @@ class ConfigGroupSoftwareBaseSerializer(serializers.ModelSerializer):
class ConfigGroupSoftwareModelSerializer(ConfigGroupSoftwareBaseSerializer):
class ConfigGroupSoftwareModelSerializer(
common.CommonModelSerializer,
ConfigGroupSoftwareBaseSerializer
):
_urls = serializers.SerializerMethodField('get_url')

View File

@ -5,6 +5,8 @@ from access.serializers.organization import OrganizationBaseSerializer
from app.serializers.user import UserBaseSerializer
from api.serializers import common
from core.models.manufacturer import Manufacturer
@ -39,7 +41,10 @@ class ManufacturerBaseSerializer(serializers.ModelSerializer):
]
class ManufacturerModelSerializer(ManufacturerBaseSerializer):
class ManufacturerModelSerializer(
common.CommonModelSerializer,
ManufacturerBaseSerializer
):
_urls = serializers.SerializerMethodField('get_url')

View File

@ -3,6 +3,8 @@ from rest_framework import serializers
from access.serializers.organization import OrganizationBaseSerializer
from api.serializers import common
from core.models.ticket.ticket_category import TicketCategory
@ -39,7 +41,10 @@ class TicketCategoryBaseSerializer(serializers.ModelSerializer):
]
class TicketCategoryModelSerializer(TicketCategoryBaseSerializer):
class TicketCategoryModelSerializer(
common.CommonModelSerializer,
TicketCategoryBaseSerializer
):
_urls = serializers.SerializerMethodField('get_url')

View File

@ -5,6 +5,8 @@ from access.serializers.organization import OrganizationBaseSerializer
from app.serializers.user import UserBaseSerializer
from api.serializers import common
from core.models.ticket.ticket_comment_category import TicketCommentCategory
@ -39,7 +41,10 @@ class TicketCommentCategoryBaseSerializer(serializers.ModelSerializer):
]
class TicketCommentCategoryModelSerializer(TicketCommentCategoryBaseSerializer):
class TicketCommentCategoryModelSerializer(
common.CommonModelSerializer,
TicketCommentCategoryBaseSerializer
):
_urls = serializers.SerializerMethodField('get_url')

View File

@ -7,6 +7,7 @@ from rest_framework import serializers
from access.serializers.organization import OrganizationBaseSerializer
from api.serializers import common
from api.viewsets.common import ModelViewSet
from core.fields.icon import Icon, IconField
@ -48,7 +49,10 @@ class DeviceBaseSerializer(serializers.ModelSerializer):
'url',
]
class DeviceModelSerializer(DeviceBaseSerializer):
class DeviceModelSerializer(
common.CommonModelSerializer,
DeviceBaseSerializer
):
_urls = serializers.SerializerMethodField('get_url')

View File

@ -4,6 +4,8 @@ from rest_framework import serializers
from access.serializers.organization import OrganizationBaseSerializer
from api.serializers import common
from core.serializers.manufacturer import ManufacturerBaseSerializer
from itam.models.device_models import DeviceModel
@ -42,7 +44,10 @@ class DeviceModelBaseSerializer(serializers.ModelSerializer):
]
class DeviceModelModelSerializer(DeviceModelBaseSerializer):
class DeviceModelModelSerializer(
common.CommonModelSerializer,
DeviceModelBaseSerializer
):
_urls = serializers.SerializerMethodField('get_url')

View File

@ -2,10 +2,10 @@ from rest_framework import serializers
from rest_framework.fields import empty
from rest_framework.reverse import reverse
from access.serializers.organization import OrganizationBaseSerializer
from api.serializers import common
from core.fields.badge import Badge, BadgeField
from itam.models.device import Device, DeviceSoftware
@ -49,7 +49,10 @@ class DeviceSoftwareBaseSerializer(serializers.ModelSerializer):
]
class DeviceSoftwareModelSerializer(DeviceSoftwareBaseSerializer):
class DeviceSoftwareModelSerializer(
common.CommonModelSerializer,
DeviceSoftwareBaseSerializer
):
_urls = serializers.SerializerMethodField('get_url')

View File

@ -3,6 +3,8 @@ from rest_framework import serializers
from access.serializers.organization import OrganizationBaseSerializer
from api.serializers import common
from itam.models.device import DeviceType
@ -38,7 +40,10 @@ class DeviceTypeBaseSerializer(serializers.ModelSerializer):
]
class DeviceTypeModelSerializer(DeviceTypeBaseSerializer):
class DeviceTypeModelSerializer(
common.CommonModelSerializer,
DeviceTypeBaseSerializer
):
_urls = serializers.SerializerMethodField('get_url')

View File

@ -4,6 +4,8 @@ from rest_framework import serializers
from access.serializers.organization import OrganizationBaseSerializer
from api.serializers import common
from core.serializers.manufacturer import ManufacturerBaseSerializer
from itam.models.operating_system import OperatingSystem
@ -42,7 +44,10 @@ class OperatingSystemBaseSerializer(serializers.ModelSerializer):
]
class OperatingSystemModelSerializer(OperatingSystemBaseSerializer):
class OperatingSystemModelSerializer(
common.CommonModelSerializer,
OperatingSystemBaseSerializer
):

View File

@ -4,6 +4,8 @@ from rest_framework import serializers
from access.serializers.organization import OrganizationBaseSerializer
from api.serializers import common
from core.serializers.manufacturer import ManufacturerBaseSerializer
from itam.models.operating_system import OperatingSystem, OperatingSystemVersion
@ -54,7 +56,10 @@ class OperatingSystemVersionBaseSerializer(serializers.ModelSerializer):
]
class OperatingSystemVersionModelSerializer(OperatingSystemVersionBaseSerializer):
class OperatingSystemVersionModelSerializer(
common.CommonModelSerializer,
OperatingSystemVersionBaseSerializer
):

View File

@ -3,6 +3,8 @@ from rest_framework import serializers
from access.serializers.organization import OrganizationBaseSerializer
from api.serializers import common
from core.serializers.manufacturer import ManufacturerBaseSerializer
from itam.models.software import Software
@ -41,7 +43,10 @@ class SoftwareBaseSerializer(serializers.ModelSerializer):
]
class SoftwareModelSerializer(SoftwareBaseSerializer):
class SoftwareModelSerializer(
common.CommonModelSerializer,
SoftwareBaseSerializer
):
_urls = serializers.SerializerMethodField('get_url')

View File

@ -3,6 +3,8 @@ from rest_framework import serializers
from access.serializers.organization import OrganizationBaseSerializer
from api.serializers import common
from core.serializers.manufacturer import ManufacturerBaseSerializer
from itam.models.software import SoftwareCategory
@ -40,7 +42,10 @@ class SoftwareCategoryBaseSerializer(serializers.ModelSerializer):
]
class SoftwareCategoryModelSerializer(SoftwareCategoryBaseSerializer):
class SoftwareCategoryModelSerializer(
common.CommonModelSerializer,
SoftwareCategoryBaseSerializer
):
_urls = serializers.SerializerMethodField('get_url')

View File

@ -3,6 +3,8 @@ from rest_framework import serializers
from access.serializers.organization import OrganizationBaseSerializer
from api.serializers import common
from itam.models.software import Software, SoftwareVersion
from itam.serializers.software import SoftwareBaseSerializer
@ -50,7 +52,10 @@ class SoftwareVersionBaseSerializer(serializers.ModelSerializer):
]
class SoftwareVersionModelSerializer(SoftwareVersionBaseSerializer):
class SoftwareVersionModelSerializer(
common.CommonModelSerializer,
SoftwareVersionBaseSerializer
):
_urls = serializers.SerializerMethodField('get_url')

View File

@ -3,6 +3,8 @@ from rest_framework import serializers
from access.serializers.organization import OrganizationBaseSerializer
from api.serializers import common
from itam.serializers.device import DeviceBaseSerializer
from itim.serializers.cluster_type import ClusterTypeBaseSerializer
@ -41,7 +43,10 @@ class ClusterBaseSerializer(serializers.ModelSerializer):
]
class ClusterModelSerializer(ClusterBaseSerializer):
class ClusterModelSerializer(
common.CommonModelSerializer,
ClusterBaseSerializer
):
_urls = serializers.SerializerMethodField('get_url')

View File

@ -3,6 +3,8 @@ from rest_framework import serializers
from access.serializers.organization import OrganizationBaseSerializer
from api.serializers import common
from itam.serializers.device import DeviceBaseSerializer
from itim.models.clusters import ClusterType
@ -40,7 +42,10 @@ class ClusterTypeBaseSerializer(serializers.ModelSerializer):
]
class ClusterTypeModelSerializer(ClusterTypeBaseSerializer):
class ClusterTypeModelSerializer(
common.CommonModelSerializer,
ClusterTypeBaseSerializer
):
_urls = serializers.SerializerMethodField('get_url')

View File

@ -3,6 +3,8 @@ from rest_framework import serializers
from access.serializers.organization import OrganizationBaseSerializer
from api.serializers import common
from itam.serializers.device import DeviceBaseSerializer
from itim.models.services import Port
@ -43,7 +45,10 @@ class PortBaseSerializer(serializers.ModelSerializer):
class PortModelSerializer(PortBaseSerializer):
class PortModelSerializer(
common.CommonModelSerializer,
PortBaseSerializer
):
_urls = serializers.SerializerMethodField('get_url')

View File

@ -4,6 +4,8 @@ from rest_framework.reverse import reverse
from access.serializers.organization import OrganizationBaseSerializer
from api.serializers import common
from itim.serializers.cluster import ClusterBaseSerializer
from itim.serializers.port import PortBaseSerializer
from itim.models.services import Service
@ -43,7 +45,10 @@ class ServiceBaseSerializer(serializers.ModelSerializer):
]
class ServiceModelSerializer(ServiceBaseSerializer):
class ServiceModelSerializer(
common.CommonModelSerializer,
ServiceBaseSerializer
):
_urls = serializers.SerializerMethodField('get_url')

View File

@ -4,6 +4,8 @@ from rest_framework.reverse import reverse
from access.serializers.organization import OrganizationBaseSerializer
from api.serializers import common
from project_management.models.project_milestone import ProjectMilestone
from project_management.serializers.project import Project, ProjectBaseSerializer
@ -52,7 +54,10 @@ class ProjectMilestoneBaseSerializer(serializers.ModelSerializer):
]
class ProjectMilestoneModelSerializer(ProjectMilestoneBaseSerializer):
class ProjectMilestoneModelSerializer(
common.CommonModelSerializer,
ProjectMilestoneBaseSerializer
):
_urls = serializers.SerializerMethodField('get_url')

View File

@ -4,6 +4,8 @@ from rest_framework.reverse import reverse
from access.serializers.organization import OrganizationBaseSerializer
from api.serializers import common
from assistance.serializers.knowledge_base import KnowledgeBaseBaseSerializer
from project_management.models.project_states import ProjectState
@ -43,7 +45,10 @@ class ProjectStateBaseSerializer(serializers.ModelSerializer):
class ProjectStateModelSerializer(ProjectStateBaseSerializer):
class ProjectStateModelSerializer(
common.CommonModelSerializer,
ProjectStateBaseSerializer
):
_urls = serializers.SerializerMethodField('get_url')

View File

@ -4,6 +4,8 @@ from rest_framework.reverse import reverse
from access.serializers.organization import OrganizationBaseSerializer
from api.serializers import common
from assistance.serializers.knowledge_base import KnowledgeBaseBaseSerializer
from project_management.models.project_types import ProjectType
@ -42,7 +44,10 @@ class ProjectTypeBaseSerializer(serializers.ModelSerializer):
]
class ProjectTypeModelSerializer(ProjectTypeBaseSerializer):
class ProjectTypeModelSerializer(
common.CommonModelSerializer,
ProjectTypeBaseSerializer
):
_urls = serializers.SerializerMethodField('get_url')

View File

@ -4,6 +4,8 @@ from rest_framework import serializers
from access.serializers.organization import OrganizationBaseSerializer
from api.serializers import common
from settings.models.external_link import ExternalLink
@ -40,7 +42,10 @@ class ExternalLinkBaseSerializer(serializers.ModelSerializer):
class ExternalLinkModelSerializer(ExternalLinkBaseSerializer):
class ExternalLinkModelSerializer(
common.CommonModelSerializer,
ExternalLinkBaseSerializer
):
_urls = serializers.SerializerMethodField('get_url')