diff --git a/osinaweb/osinacore/__pycache__/models.cpython-313.pyc b/osinaweb/osinacore/__pycache__/models.cpython-313.pyc index 96df60ef..59f1929c 100644 Binary files a/osinaweb/osinacore/__pycache__/models.cpython-313.pyc and b/osinaweb/osinacore/__pycache__/models.cpython-313.pyc differ diff --git a/osinaweb/osinacore/api/__pycache__/serializers.cpython-313.pyc b/osinaweb/osinacore/api/__pycache__/serializers.cpython-313.pyc index e625c811..58d564a7 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 337f462e..724dc223 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 cb780573..aa5066fd 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 d7a7357a..c086778e 100644 --- a/osinaweb/osinacore/api/serializers.py +++ b/osinaweb/osinacore/api/serializers.py @@ -47,4 +47,31 @@ class StaffProfileSerializer(serializers.ModelSerializer): class Meta: model = StaffProfile + fields = "__all__" + + + +class ProjectTypeSerializer(serializers.ModelSerializer): + + + class Meta: + model = ProjectType + fields = "__all__" + + +class ProjectStatusSerializer(serializers.ModelSerializer): + + + class Meta: + model = ProjectStatus + 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") + + class Meta: + model = Project fields = "__all__" \ No newline at end of file diff --git a/osinaweb/osinacore/api/urls.py b/osinaweb/osinacore/api/urls.py index 8a77cbf4..897b5363 100644 --- a/osinaweb/osinacore/api/urls.py +++ b/osinaweb/osinacore/api/urls.py @@ -5,4 +5,5 @@ from .views import * urlpatterns = [ path("users/", UserProfilesAPIView.as_view(), name="users-with-profiles"), path("utilities/", BusinessDataAPIView.as_view(), name="utilities"), + path("projects/", ProjectsAPIView.as_view(), name="projects"), ] \ No newline at end of file diff --git a/osinaweb/osinacore/api/views.py b/osinaweb/osinacore/api/views.py index 000fd193..b4928b94 100644 --- a/osinaweb/osinacore/api/views.py +++ b/osinaweb/osinacore/api/views.py @@ -56,4 +56,19 @@ class BusinessDataAPIView(APIView): def get(self, request): data = get_all_business_related_data() - return Response(data) \ No newline at end of file + return Response(data) + + +class ProjectsAPIView(APIView): + def get(self, request): + data = [] + + projects = Project.objects.all() + + for project in projects: + project_data = ProjectSerializer(project).data + + + data.append(project_data) + + return Response(data, status=status.HTTP_200_OK) \ No newline at end of file