Coverage for backend/core/auxiliary/viewsets/RecycleDataViewSet.py: 71%

32 statements  

« prev     ^ index     » next       coverage.py v7.10.7, created at 2025-11-06 23:27 +0000

1from core.viewset import ModelViewSet 

2from drf_spectacular.utils import extend_schema 

3from drf_spectacular.types import OpenApiTypes 

4from drf_spectacular.openapi import OpenApiParameter 

5from ..serializers.RecycleDataSerializer import RecycleDataSerializer, RecyclePropertySerializer 

6from ..models.RecycleData import RecycleData, RecycleProperty 

7class RecycleDataViewSet(ModelViewSet): 

8 serializer_class = RecycleDataSerializer 

9 

10 def get_queryset(self): 

11 if hasattr(self, '_cached_queryset'): 11 ↛ 12line 11 didn't jump to line 12 because the condition on line 11 was never true

12 return self._cached_queryset 

13 

14 from flowsheetInternals.graphicData.models.graphicObjectModel import GraphicObject 

15 queryset = RecycleData.objects.all() 

16 projectId = self.request.query_params.get('projectId', None) 

17 if projectId is not None: 17 ↛ 18line 17 didn't jump to line 18 because the condition on line 17 was never true

18 queryset = queryset.filter(simulationObject__flowsheet__id=projectId) 

19 

20 groupId = self.request.query_params.get('group', None) 

21 if groupId is not None: 21 ↛ 22line 21 didn't jump to line 22 because the condition on line 21 was never true

22 graphicObjects = GraphicObject.objects.filter(group=groupId).select_related("simulationObject") 

23 simulation_object_ids = [graphicObject.simulationObject.id for graphicObject in graphicObjects] 

24 queryset = queryset.filter(simulationObject__id__in=simulation_object_ids) 

25 

26 self._cached_queryset = queryset 

27 return queryset 

28 

29 @extend_schema( 

30 parameters=[ 

31 OpenApiParameter(name="projectId", required=False, type=OpenApiTypes.INT), 

32 OpenApiParameter(name="group", required=False, type=OpenApiTypes.INT), 

33 ] 

34 ) 

35 def list(self, request): 

36 return super().list(request) 

37 

38 

39class RecyclePropertyViewSet(ModelViewSet): 

40 serializer_class = RecyclePropertySerializer 

41 

42 def get_queryset(self): 

43 return RecycleProperty.objects.all() 

44 

45 def update(self, request, *args, **kwargs): 

46 return super().update(request, *args, **kwargs)