diff --git a/osinaweb/db.sqlite3 b/osinaweb/db.sqlite3 index 06ca3edb..713078a0 100644 Binary files a/osinaweb/db.sqlite3 and b/osinaweb/db.sqlite3 differ diff --git a/osinaweb/osinacore/__pycache__/admin.cpython-313.pyc b/osinaweb/osinacore/__pycache__/admin.cpython-313.pyc index a03ad416..8f7af81a 100644 Binary files a/osinaweb/osinacore/__pycache__/admin.cpython-313.pyc and b/osinaweb/osinacore/__pycache__/admin.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 1b1b7c66..6aaaa0fe 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 3ae4083e..517924fb 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 39a4d546..210318d1 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 c9439b74..b0093d24 100644 --- a/osinaweb/osinacore/api/serializers.py +++ b/osinaweb/osinacore/api/serializers.py @@ -183,4 +183,23 @@ class TaskSerializer(serializers.ModelSerializer): def get_duration(self, obj): hours, minutes, seconds = obj.total_task_time() - return f"{str(hours).zfill(2)}:{str(minutes).zfill(2)}:{str(seconds).zfill(2)}" \ No newline at end of file + return f"{str(hours).zfill(2)}:{str(minutes).zfill(2)}:{str(seconds).zfill(2)}" + + + +class DailyReportSerializer(serializers.ModelSerializer): + staff = StaffProfileSerializer(read_only=True) + date = serializers.SerializerMethodField() + + + class Meta: + model = DailyReport + fields = "__all__" + + + def get_date(self, obj): + try: + # Combine the date and time strings into one datetime object + return datetime.strptime(f"{obj.date} {obj.time}", "%Y-%m-%d %I:%M %p") + except Exception: + return None \ No newline at end of file diff --git a/osinaweb/osinacore/api/urls.py b/osinaweb/osinacore/api/urls.py index 7598cb6c..3ea93523 100644 --- a/osinaweb/osinacore/api/urls.py +++ b/osinaweb/osinacore/api/urls.py @@ -10,4 +10,5 @@ urlpatterns = [ path("milestones/", MileStoneAPIView.as_view(), name="milestones"), path("userstories/", UserStoryAPIView.as_view(), name="userstories"), path('tasks//', TaskAPIView.as_view(), name='project-tasks'), + path("reports/", DailyReportAPIView.as_view(), name="reports"), ] \ No newline at end of file diff --git a/osinaweb/osinacore/api/views.py b/osinaweb/osinacore/api/views.py index ac7baad0..e4d608e2 100644 --- a/osinaweb/osinacore/api/views.py +++ b/osinaweb/osinacore/api/views.py @@ -130,4 +130,13 @@ class TaskAPIView(APIView): tasks = Task.objects.filter(project=project) data = TaskSerializer(tasks, many=True).data + return Response(data, status=status.HTTP_200_OK) + + +class DailyReportAPIView(APIView): + def get(self, request): + + dailyreport = DailyReport.objects.all() + data = DailyReportSerializer(dailyreport, many=True).data + return Response(data, status=status.HTTP_200_OK) \ No newline at end of file