Skip to content

Commit

Permalink
refactor(core): When fetching a ticket, fetch related fields
Browse files Browse the repository at this point in the history
ref: #471 #511
  • Loading branch information
jon-nfc committed Jan 31, 2025
1 parent 062708d commit f198cd0
Showing 1 changed file with 39 additions and 34 deletions.
73 changes: 39 additions & 34 deletions app/core/viewsets/ticket.py
Original file line number Diff line number Diff line change
Expand Up @@ -193,17 +193,52 @@ def get_permission_required(self):

def get_queryset(self):

if self.queryset:

return self.queryset

self.get_ticket_type()


if self.kwargs.get('pk', None):

queryset = self.model.objects.select_related(
'organization',
'category',
'project',
'milestone',
'opened_by',
).prefetch_related(
'assigned_teams',
'assigned_users',
'subscribed_teams',
'subscribed_users',
).filter( pk = int( self.kwargs['pk'] ) )

else:

queryset = self.model.objects.select_related(
'organization',
'category',
'project',
'milestone',
'opened_by',
).prefetch_related(
'assigned_teams',
'assigned_users',
'subscribed_teams',
'subscribed_users',
)

if str(self._ticket_type).lower().replace(' ', '_') == 'project_task':

queryset = super().get_queryset().filter(
queryset = queryset.filter(
project_id = int(self.kwargs['project_id'])
)

else:

queryset = super().get_queryset().filter(
queryset = queryset.filter(
ticket_type = self._ticket_type_id
)

Expand Down Expand Up @@ -257,34 +292,7 @@ def get_serializer_class(self):
or self.action == 'update'
):

organization = None


if (
self.action == 'create'
):

if self.request.data is not None:

if 'organization' in self.request.data:

organization = int(self.request.data['organization'])

organization = Organization.objects.get(
pk = organization
)

elif (
(
self.action == 'partial_update'
or self.action == 'partial_update'
)
and self.kwargs.get('pk', None)
):

organization = self.model.objects.get(
pk = int(self.kwargs['pk'])
).organization
organization = self._obj_organization


if organization:
Expand Down Expand Up @@ -340,10 +348,7 @@ def get_serializer_class(self):
self.serializer_class = globals()[serializer_prefix + 'TicketViewSerializer']

else:
self.serializer_class = globals()[serializer_prefix + 'TicketModelSerializer']
self.serializer_class = globals()[serializer_prefix + 'TicketModelSerializer']

return self.serializer_class

self.serializer_class = globals()[serializer_prefix + 'TicketModelSerializer']

return self.serializer_class

0 comments on commit f198cd0

Please sign in to comment.