Files
centurion_erp/app/itim/serializers/change.py

262 lines
5.5 KiB
Python

from rest_framework import serializers
from core.models.ticket.ticket_category import TicketCategory
from core.serializers.ticket_depreciated import (
Ticket,
TicketBaseSerializer,
TicketModelSerializer,
TicketViewSerializer
)
class ChangeTicketBaseSerializer(
TicketBaseSerializer
):
class Meta( TicketBaseSerializer.Meta ):
pass
class ChangeTicketModelSerializer(
TicketModelSerializer,
ChangeTicketBaseSerializer,
):
category = serializers.PrimaryKeyRelatedField(
allow_null = True,
queryset = TicketCategory.objects.filter(
change = True
),
required = False
)
status = serializers.ChoiceField(
[(e.value, e.label) for e in Ticket.TicketStatus.Change],
default = Ticket.TicketStatus.All.NEW,
required = False,
)
class Meta( TicketModelSerializer.Meta ):
fields = [
'id',
'assigned_teams',
'assigned_users',
'category',
'parent_ticket',
'created',
'modified',
'status',
'status_badge',
'title',
'description',
'estimate',
'duration',
'urgency',
'urgency_badge',
'impact',
'impact_badge',
'priority',
'priority_badge',
'external_ref',
'external_system',
'ticket_type',
'is_deleted',
'date_closed',
'opened_by',
'organization',
'project',
'milestone',
'planned_start_date',
'planned_finish_date',
'real_start_date',
'real_finish_date',
'subscribed_teams',
'subscribed_users',
'_urls',
]
read_only_fields = [
'id',
'display_name',
'parent_ticket',
'external_ref',
'external_system',
'status_badge',
'ticket_type',
'opened_by',
'_urls',
]
class ChangeAddTicketModelSerializer(
ChangeTicketModelSerializer,
):
"""Serializer for `Add` user
Args:
ChangeTicketModelSerializer (class): Model Serializer
"""
category = serializers.PrimaryKeyRelatedField(
read_only = True,
)
class Meta(ChangeTicketModelSerializer.Meta):
read_only_fields = [
'id',
'assigned_teams',
'assigned_users',
'category',
'created',
'modified',
'status',
'status_badge',
'estimate',
'duration',
'impact',
'priority',
'external_ref',
'external_system',
'ticket_type',
'is_deleted',
'date_closed',
'planned_start_date',
'planned_finish_date',
'real_start_date',
'real_finish_date',
'opened_by',
'project',
'milestone',
'subscribed_teams',
'subscribed_users',
'_urls',
]
class ChangeChangeTicketModelSerializer(
ChangeTicketModelSerializer,
):
"""Serializer for `Change` user
Args:
ChangeTicketModelSerializer (class): Change Model Serializer
"""
category = serializers.PrimaryKeyRelatedField(
read_only = True,
)
status = serializers.ChoiceField(
[(e.value, e.label) for e in Ticket.TicketStatus.Change],
read_only = True,
)
class Meta(ChangeTicketModelSerializer.Meta):
read_only_fields = [
'id',
'assigned_teams',
'assigned_users',
'category',
'created',
'modified',
'status',
'status_badge',
'estimate',
'duration',
'impact',
'priority',
'external_ref',
'external_system',
'ticket_type',
'is_deleted',
'date_closed',
'planned_start_date',
'planned_finish_date',
'real_start_date',
'real_finish_date',
'opened_by',
'organization',
'project',
'milestone',
'subscribed_teams',
'subscribed_users',
'_urls',
]
class ChangeTriageTicketModelSerializer(
ChangeTicketModelSerializer,
):
"""Serializer for `Triage` user
Args:
ChangeTicketModelSerializer (class): Change Model Serializer
"""
class Meta(ChangeTicketModelSerializer.Meta):
read_only_fields = [
'id',
'created',
'modified',
'status_badge',
'estimate',
'duration',
'external_ref',
'external_system',
'ticket_type',
'is_deleted',
'date_closed',
'opened_by',
'_urls',
]
class ChangeImportTicketModelSerializer(
ChangeTicketModelSerializer,
):
"""Serializer for `Import` user
Args:
ChangeTicketModelSerializer (class): Change Model Serializer
"""
class Meta(ChangeTicketModelSerializer.Meta):
read_only_fields = [
'id',
'display_name',
'status_badge',
'ticket_type',
'_urls',
]
is_import: bool = True
class ChangeTicketViewSerializer(
TicketViewSerializer,
ChangeTicketModelSerializer,
):
pass