1010from time_tracker .filters .time_report_filter import TimeReportFilter
1111from time_tracker .serializers import TimeReportProfileSerializer
1212from time_tracker .serializers import TimeReportProjectSerializer
13+ from django_filters .rest_framework import DjangoFilterBackend
1314
1415
1516class TimeReportViewSet (viewsets .ModelViewSet ):
17+ """
18+ Working with TimeReport data
19+
20+ retrieve:
21+ Return the given time report.
22+
23+ list:
24+ Return a list of all the existing time report.
25+
26+ create:
27+ Create a new time report.
28+
29+ update:
30+ Create a new time report instance.
31+
32+ partial_update:
33+ Update an existing time report
34+
35+ destroy:
36+ Delete an existing time report
37+
38+ """
39+
1640 queryset = TimeReport .objects .all ()
1741 serializer_class = TimeReportSerializer
1842 permission_classes = (TimeReportPermission ,)
19- filter_backends = (filters . DjangoFilterBackend , filters .OrderingFilter )
43+ filter_backends = (DjangoFilterBackend , filters .OrderingFilter )
2044 filter_class = TimeReportFilter
2145 ordering_fields = ('date' , 'id' )
2246 ordering = ('-date' , '-id' )
@@ -33,7 +57,7 @@ def get_profiles_reports(self, request):
3357 user = self .request .user
3458 time_report = TimeReportFilter (request .GET , queryset = TimeReport .objects .total_time_by (user , 'profile' , 'profile__first_name' ))
3559
36- serializer = TimeReportProfileSerializer (time_report , many = True )
60+ serializer = TimeReportProfileSerializer (time_report . qs , many = True )
3761 return Response (serializer .data )
3862
3963 def get_projects_reports (self , request ):
@@ -43,7 +67,7 @@ def get_projects_reports(self, request):
4367 user = self .request .user
4468 time_report = TimeReportFilter (request .GET , queryset = TimeReport .objects .total_time_by (user , 'project' , 'project__name' ))
4569
46- serializer = TimeReportProjectSerializer (time_report , many = True )
70+ serializer = TimeReportProjectSerializer (time_report . qs , many = True )
4771 return Response (serializer .data )
4872
4973 def get_total_hours (self , request ):
@@ -54,4 +78,4 @@ def get_total_hours(self, request):
5478 time_report = TimeReportFilter (request .GET , queryset = TimeReport .objects .active_projects (user , seconds__gt = 0 ))
5579 time_report = time_report .qs .aggregate (total_seconds = Sum ('seconds' ))
5680 time_report ['total_hours' ] = TimeReport .sec_to_hours (time_report ['total_seconds' ])
57- return Response (time_report )
81+ return Response (time_report )
0 commit comments