Coverage for backend/django/core/auxiliary/viewsets/RecycleDataViewSet.py: 95%
33 statements
« prev ^ index » next coverage.py v7.10.7, created at 2026-07-22 05:22 +0000
« prev ^ index » next coverage.py v7.10.7, created at 2026-07-22 05:22 +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 (
6 RecycleDataSerializer,
7 RecyclePropertySerializer,
8)
9from ..models.RecycleData import RecycleData, RecycleProperty
10from flowsheetInternals.unitops.services.edit_operations.mixins import (
11 FlowsheetHistoryUpdateMixin,
12)
15class RecycleDataViewSet(FlowsheetHistoryUpdateMixin, ModelViewSet):
16 serializer_class = RecycleDataSerializer
17 history_label = "Change recycle connection"
19 def get_queryset(self):
20 if hasattr(self, "_cached_queryset"):
21 return self._cached_queryset
23 from flowsheetInternals.graphicData.models.graphicObjectModel import (
24 GraphicObject,
25 )
27 queryset = RecycleData.objects.all()
28 projectId = self.request.query_params.get("projectId", None)
29 if projectId is not None: 29 ↛ 30line 29 didn't jump to line 30 because the condition on line 29 was never true
30 queryset = queryset.filter(
31 simulationObject__flowsheet_state__flowsheet_id=projectId
32 )
34 groupId = self.request.query_params.get("group", None)
35 if groupId is not None:
36 graphicObjects = GraphicObject.objects.filter(group=groupId).select_related(
37 "simulationObject"
38 )
39 simulation_object_ids = [
40 graphicObject.simulationObject.id for graphicObject in graphicObjects
41 ]
42 queryset = queryset.filter(simulationObject__id__in=simulation_object_ids)
44 self._cached_queryset = queryset
45 return queryset
47 @extend_schema(
48 parameters=[
49 OpenApiParameter(name="projectId", required=False, type=OpenApiTypes.INT),
50 OpenApiParameter(name="group", required=False, type=OpenApiTypes.INT),
51 ]
52 )
53 def list(self, request):
54 return super().list(request)
57class RecyclePropertyViewSet(FlowsheetHistoryUpdateMixin, ModelViewSet):
58 serializer_class = RecyclePropertySerializer
59 history_label = "Change recycle property"
61 def get_queryset(self):
62 return RecycleProperty.objects.all()