fix(core): Ensure import user can set field opened_by when importing tickets

ref: #248 #382
This commit is contained in:
2024-11-07 14:34:39 +09:30
parent 0b258b3638
commit a47da4d957
6 changed files with 40 additions and 3 deletions

View File

@ -21,7 +21,6 @@ class RequestTicketBaseSerializer(
pass
class RequestTicketModelSerializer(
TicketModelSerializer,
RequestTicketBaseSerializer,
@ -247,6 +246,9 @@ class RequestImportTicketModelSerializer(
]
is_import: bool = True
class RequestTicketViewSerializer(
TicketViewSerializer,

View File

@ -75,6 +75,8 @@ class TicketBaseSerializer(serializers.ModelSerializer):
'url',
]
is_import: bool = False
class TicketModelSerializer(TicketBaseSerializer):
@ -279,7 +281,21 @@ class TicketModelSerializer(TicketBaseSerializer):
if hasattr(self._context['view'], 'request'):
data['opened_by_id'] = self._context['view'].request.user.id
if self.is_import:
if data['opened_by'] is None:
raise centurion_exception.ValidationError(
detail = {
'opened_by': 'Opened by user is required'
},
code = 'required',
)
else:
data['opened_by_id'] = self._context['view'].request.user.id
if hasattr(self._context['view'], '_ticket_type_id'):
@ -299,7 +315,14 @@ class TicketModelSerializer(TicketBaseSerializer):
subscribed_users: list = data['subscribed_users']
data['subscribed_users'] = subscribed_users + [ data['opened_by_id'] ]
if self.is_import:
data['subscribed_users'] = subscribed_users + [ data['opened_by'].id ]
else:
data['subscribed_users'] = subscribed_users + [ data['opened_by_id'] ]
data['status'] = int(Ticket.TicketStatus.All.NEW)

View File

@ -249,6 +249,9 @@ class ChangeImportTicketModelSerializer(
]
is_import: bool = True
class ChangeTicketViewSerializer(
TicketViewSerializer,

View File

@ -247,6 +247,9 @@ class IncidentImportTicketModelSerializer(
]
is_import: bool = True
class IncidentTicketViewSerializer(
TicketViewSerializer,

View File

@ -248,6 +248,9 @@ class ProblemImportTicketModelSerializer(
]
is_import: bool = True
class ProblemTicketViewSerializer(
TicketViewSerializer,

View File

@ -246,6 +246,9 @@ class ProjectTaskImportTicketModelSerializer(
]
is_import: bool = True
class ProjectTaskTicketViewSerializer(
TicketViewSerializer,