refactor: performance booster optimization (#176)

* refactor: setup multiple select related

* chore: upgrade sentry sdk to latest version

* refactor: update module and cycle views to increase performance

* refactor: remove pagination and make the response simillar to paginated API

* fix: update staging to DEBUG True for all logging

* refactor: update the query count print statement

* refactor: my issues endpoint to remove n+1

* refactor: optimize queries for workspace and project

* fix: project member endpoint

* fix: revert back workspace members

* refactor: update base file to remove workspace and project query and update permission layer accordingly

* refactor: update read_only fields in read serializers

* fix: read only serializers

* chore: update drf package

* revert: drf version upgrade

* revert: read only fields update

* revert: update serializer to old state

* chore: update drf to latest version

* refactor: update dispatch to display method as well

* refactor: optimize  cycle and module issue queries

* refactor: optimize module endpoint and issue list endpoint

* refactor: update prefetch related in modules and cycles

* refactor: create permission mapping in permission file
This commit is contained in:
pablohashescobar 2023-01-17 01:50:27 +05:30 committed by GitHub
parent f12b7ef923
commit 894e26116b
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
12 changed files with 126 additions and 80 deletions

View file

@ -176,7 +176,7 @@ class InviteWorkspaceEndpoint(BaseAPIView):
workspace_members = WorkspaceMember.objects.filter(
workspace_id=workspace.id,
member__email__in=[email.get("email") for email in emails],
)
).select_related("member", "worspace", "workspace__owner")
if len(workspace_members):
return Response(
@ -339,7 +339,7 @@ class WorkspaceInvitationsViewset(BaseViewSet):
super()
.get_queryset()
.filter(workspace__slug=self.kwargs.get("slug"))
.select_related("workspace")
.select_related("workspace", "workspace__owner")
)
@ -353,7 +353,7 @@ class UserWorkspaceInvitationsEndpoint(BaseViewSet):
super()
.get_queryset()
.filter(email=self.request.user.email)
.select_related("workspace")
.select_related("workspace", "workspace__owner")
)
def create(self, request):
@ -524,7 +524,7 @@ class UserLastProjectWithWorkspaceEndpoint(BaseAPIView):
project_member = ProjectMember.objects.filter(
workspace_id=last_workspace_id, member=request.user
).select_related("workspace", "project", "member")
).select_related("workspace", "project", "member", "workspace__owner")
project_member_serializer = ProjectMemberSerializer(
project_member, many=True