diff --git a/osinaweb/osinacore/api/__pycache__/serializers.cpython-313.pyc b/osinaweb/osinacore/api/__pycache__/serializers.cpython-313.pyc index f0c31bcb..2cc6cd9a 100644 Binary files a/osinaweb/osinacore/api/__pycache__/serializers.cpython-313.pyc and b/osinaweb/osinacore/api/__pycache__/serializers.cpython-313.pyc differ diff --git a/osinaweb/osinacore/api/__pycache__/urls.cpython-313.pyc b/osinaweb/osinacore/api/__pycache__/urls.cpython-313.pyc index 724dc223..93cf6eca 100644 Binary files a/osinaweb/osinacore/api/__pycache__/urls.cpython-313.pyc and b/osinaweb/osinacore/api/__pycache__/urls.cpython-313.pyc differ diff --git a/osinaweb/osinacore/api/__pycache__/views.cpython-313.pyc b/osinaweb/osinacore/api/__pycache__/views.cpython-313.pyc index aa5066fd..2d76cd0c 100644 Binary files a/osinaweb/osinacore/api/__pycache__/views.cpython-313.pyc and b/osinaweb/osinacore/api/__pycache__/views.cpython-313.pyc differ diff --git a/osinaweb/osinacore/api/serializers.py b/osinaweb/osinacore/api/serializers.py index b94ac2ae..e2354a30 100644 --- a/osinaweb/osinacore/api/serializers.py +++ b/osinaweb/osinacore/api/serializers.py @@ -67,23 +67,31 @@ class ProjectStatusSerializer(serializers.ModelSerializer): fields = "__all__" class ProjectSerializer(serializers.ModelSerializer): - types = ProjectTypeSerializer(read_only=True, many=True, source="project_type") - members = StaffProfileSerializer(read_only=True, many=True) - manager = StaffProfileSerializer(read_only=True, many=False) - statuses = ProjectStatusSerializer(read_only=True, many=True, source="projectstatus_set") + #types = ProjectTypeSerializer(read_only=True, many=True, source="project_type") + #members = StaffProfileSerializer(read_only=True, many=True) + #manager = StaffProfileSerializer(read_only=True, many=False) + #statuses = ProjectStatusSerializer(read_only=True, many=True, source="projectstatus_set") class Meta: model = Project fields = "__all__" - def to_representation(self, instance): - representation = super().to_representation(instance) + #def to_representation(self, instance): + #representation = super().to_representation(instance) # Exclude manager from members list - manager_id = representation.get("manager", {}).get("id") - if manager_id: - representation["members"] = [ - member for member in representation["members"] - if member.get("id") != manager_id - ] - return representation \ No newline at end of file + #manager_id = representation.get("manager", {}).get("id") + #if manager_id: + #representation["members"] = [ + #member for member in representation["members"] + #if member.get("id") != manager_id + #] + #return representation + + +class EpicSerializer(serializers.ModelSerializer): + project = ProjectSerializer(read_only=True) + + class Meta: + model = Epic + fields = "__all__" \ No newline at end of file diff --git a/osinaweb/osinacore/api/urls.py b/osinaweb/osinacore/api/urls.py index 897b5363..23cb7994 100644 --- a/osinaweb/osinacore/api/urls.py +++ b/osinaweb/osinacore/api/urls.py @@ -6,4 +6,5 @@ urlpatterns = [ path("users/", UserProfilesAPIView.as_view(), name="users-with-profiles"), path("utilities/", BusinessDataAPIView.as_view(), name="utilities"), path("projects/", ProjectsAPIView.as_view(), name="projects"), + path("epics/", EpicsAPIView.as_view(), name="epics"), ] \ No newline at end of file diff --git a/osinaweb/osinacore/api/views.py b/osinaweb/osinacore/api/views.py index b4928b94..807f8055 100644 --- a/osinaweb/osinacore/api/views.py +++ b/osinaweb/osinacore/api/views.py @@ -71,4 +71,19 @@ class ProjectsAPIView(APIView): 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) \ No newline at end of file