fix(core): Ensure import user can set field opened_by
when importing tickets
ref: #248 #382
This commit is contained in:
@ -21,7 +21,6 @@ class RequestTicketBaseSerializer(
|
||||
pass
|
||||
|
||||
|
||||
|
||||
class RequestTicketModelSerializer(
|
||||
TicketModelSerializer,
|
||||
RequestTicketBaseSerializer,
|
||||
@ -247,6 +246,9 @@ class RequestImportTicketModelSerializer(
|
||||
]
|
||||
|
||||
|
||||
is_import: bool = True
|
||||
|
||||
|
||||
|
||||
class RequestTicketViewSerializer(
|
||||
TicketViewSerializer,
|
||||
|
@ -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)
|
||||
|
||||
|
@ -249,6 +249,9 @@ class ChangeImportTicketModelSerializer(
|
||||
]
|
||||
|
||||
|
||||
is_import: bool = True
|
||||
|
||||
|
||||
|
||||
class ChangeTicketViewSerializer(
|
||||
TicketViewSerializer,
|
||||
|
@ -247,6 +247,9 @@ class IncidentImportTicketModelSerializer(
|
||||
]
|
||||
|
||||
|
||||
is_import: bool = True
|
||||
|
||||
|
||||
|
||||
class IncidentTicketViewSerializer(
|
||||
TicketViewSerializer,
|
||||
|
@ -248,6 +248,9 @@ class ProblemImportTicketModelSerializer(
|
||||
]
|
||||
|
||||
|
||||
is_import: bool = True
|
||||
|
||||
|
||||
|
||||
class ProblemTicketViewSerializer(
|
||||
TicketViewSerializer,
|
||||
|
@ -246,6 +246,9 @@ class ProjectTaskImportTicketModelSerializer(
|
||||
]
|
||||
|
||||
|
||||
is_import: bool = True
|
||||
|
||||
|
||||
|
||||
class ProjectTaskTicketViewSerializer(
|
||||
TicketViewSerializer,
|
||||
|
Reference in New Issue
Block a user