chore: project active filter (#3971)

This commit is contained in:
Bavisetti Narayan 2024-03-14 19:22:54 +05:30 committed by GitHub
parent 0bc4b6cece
commit 42b524b16a
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -88,7 +88,10 @@ class ProjectViewSet(WebhookMixin, BaseViewSet):
.get_queryset() .get_queryset()
.filter(workspace__slug=self.kwargs.get("slug")) .filter(workspace__slug=self.kwargs.get("slug"))
.filter( .filter(
Q(project_projectmember__member=self.request.user) Q(
project_projectmember__member=self.request.user,
project_projectmember__is_active=True,
)
| Q(network=2) | Q(network=2)
) )
.select_related( .select_related(
@ -173,10 +176,7 @@ class ProjectViewSet(WebhookMixin, BaseViewSet):
for field in request.GET.get("fields", "").split(",") for field in request.GET.get("fields", "").split(",")
if field if field
] ]
projects = ( projects = self.get_queryset().order_by("sort_order", "name")
self.get_queryset()
.order_by("sort_order", "name")
)
if request.GET.get("per_page", False) and request.GET.get( if request.GET.get("per_page", False) and request.GET.get(
"cursor", False "cursor", False
): ):
@ -576,9 +576,11 @@ class ProjectJoinEndpoint(BaseAPIView):
_ = WorkspaceMember.objects.create( _ = WorkspaceMember.objects.create(
workspace_id=project_invite.workspace_id, workspace_id=project_invite.workspace_id,
member=user, member=user,
role=15 role=(
if project_invite.role >= 15 15
else project_invite.role, if project_invite.role >= 15
else project_invite.role
),
) )
else: else:
# Else make him active # Else make him active
@ -685,9 +687,14 @@ class ProjectMemberViewSet(BaseViewSet):
) )
bulk_project_members = [] bulk_project_members = []
member_roles = {member.get("member_id"): member.get("role") for member in members} member_roles = {
member.get("member_id"): member.get("role") for member in members
}
# Update roles in the members array based on the member_roles dictionary # Update roles in the members array based on the member_roles dictionary
for project_member in ProjectMember.objects.filter(project_id=project_id, member_id__in=[member.get("member_id") for member in members]): for project_member in ProjectMember.objects.filter(
project_id=project_id,
member_id__in=[member.get("member_id") for member in members],
):
project_member.role = member_roles[str(project_member.member_id)] project_member.role = member_roles[str(project_member.member_id)]
project_member.is_active = True project_member.is_active = True
bulk_project_members.append(project_member) bulk_project_members.append(project_member)
@ -710,9 +717,9 @@ class ProjectMemberViewSet(BaseViewSet):
role=member.get("role", 10), role=member.get("role", 10),
project_id=project_id, project_id=project_id,
workspace_id=project.workspace_id, workspace_id=project.workspace_id,
sort_order=sort_order[0] - 10000 sort_order=(
if len(sort_order) sort_order[0] - 10000 if len(sort_order) else 65535
else 65535, ),
) )
) )
bulk_issue_props.append( bulk_issue_props.append(
@ -733,7 +740,10 @@ class ProjectMemberViewSet(BaseViewSet):
bulk_issue_props, batch_size=10, ignore_conflicts=True bulk_issue_props, batch_size=10, ignore_conflicts=True
) )
project_members = ProjectMember.objects.filter(project_id=project_id, member_id__in=[member.get("member_id") for member in members]) project_members = ProjectMember.objects.filter(
project_id=project_id,
member_id__in=[member.get("member_id") for member in members],
)
serializer = ProjectMemberRoleSerializer(project_members, many=True) serializer = ProjectMemberRoleSerializer(project_members, many=True)
return Response(serializer.data, status=status.HTTP_201_CREATED) return Response(serializer.data, status=status.HTTP_201_CREATED)