Salim Elliye 2 weeks ago
parent 27471ae5a3
commit 005637b6d3

@ -67,23 +67,31 @@ class ProjectStatusSerializer(serializers.ModelSerializer):
fields = "__all__" fields = "__all__"
class ProjectSerializer(serializers.ModelSerializer): class ProjectSerializer(serializers.ModelSerializer):
types = ProjectTypeSerializer(read_only=True, many=True, source="project_type") #types = ProjectTypeSerializer(read_only=True, many=True, source="project_type")
members = StaffProfileSerializer(read_only=True, many=True) #members = StaffProfileSerializer(read_only=True, many=True)
manager = StaffProfileSerializer(read_only=True, many=False) #manager = StaffProfileSerializer(read_only=True, many=False)
statuses = ProjectStatusSerializer(read_only=True, many=True, source="projectstatus_set") #statuses = ProjectStatusSerializer(read_only=True, many=True, source="projectstatus_set")
class Meta: class Meta:
model = Project model = Project
fields = "__all__" fields = "__all__"
def to_representation(self, instance): #def to_representation(self, instance):
representation = super().to_representation(instance) #representation = super().to_representation(instance)
# Exclude manager from members list # Exclude manager from members list
manager_id = representation.get("manager", {}).get("id") #manager_id = representation.get("manager", {}).get("id")
if manager_id: #if manager_id:
representation["members"] = [ #representation["members"] = [
member for member in representation["members"] #member for member in representation["members"]
if member.get("id") != manager_id #if member.get("id") != manager_id
] #]
return representation #return representation
class EpicSerializer(serializers.ModelSerializer):
project = ProjectSerializer(read_only=True)
class Meta:
model = Epic
fields = "__all__"

@ -6,4 +6,5 @@ urlpatterns = [
path("users/", UserProfilesAPIView.as_view(), name="users-with-profiles"), path("users/", UserProfilesAPIView.as_view(), name="users-with-profiles"),
path("utilities/", BusinessDataAPIView.as_view(), name="utilities"), path("utilities/", BusinessDataAPIView.as_view(), name="utilities"),
path("projects/", ProjectsAPIView.as_view(), name="projects"), path("projects/", ProjectsAPIView.as_view(), name="projects"),
path("epics/", EpicsAPIView.as_view(), name="epics"),
] ]

@ -71,4 +71,19 @@ class ProjectsAPIView(APIView):
data.append(project_data) data.append(project_data)
return Response(data, status=status.HTTP_200_OK)
class EpicsAPIView(APIView):
def get(self, request):
data = []
epics = Epic.objects.all()
for epic in epics:
epic_data = EpicSerializer(epic).data
data.append(epic_data)
return Response(data, status=status.HTTP_200_OK) return Response(data, status=status.HTTP_200_OK)
Loading…
Cancel
Save