Coverage for backend/django/core/auxiliary/views/DeleteMSSData.py: 68%

22 statements  

« prev     ^ index     » next       coverage.py v7.10.7, created at 2026-02-11 21:43 +0000

1 

2from rest_framework.response import Response 

3from core.auxiliary.models.DataRow import DataRow 

4from drf_spectacular.utils import extend_schema 

5from core.auxiliary.models.DataColumn import DataColumn 

6from rest_framework.decorators import api_view 

7from drf_spectacular.utils import extend_schema 

8from rest_framework import serializers 

9from core.validation import api_view_validate 

10 

11 

12class DeleteDataSerializer(serializers.Serializer): 

13 # THe data format is e.g: 

14 # { 

15 # "data": { 

16 # "heater_enthalpy": [1, 2, 3, 4, 5], 

17 # "heater_temperature": [1, 2, 3, 4, 5] 

18 # } 

19 # "flowsheet": 1 

20 # } 

21 flowsheet = serializers.IntegerField() 

22 scenario = serializers.IntegerField() 

23 

24@api_view_validate 

25@extend_schema(request=DeleteDataSerializer, responses=None) 

26@api_view(['POST']) 

27def delete_data(request) -> Response: 

28 serializer = DeleteDataSerializer(data=request.data) 

29 serializer.is_valid(raise_exception=True) 

30 flowsheet_id = serializer.validated_data["flowsheet"] 

31 scenario_id = serializer.validated_data["scenario"] 

32 

33 DataRow.objects.filter( 

34 flowsheet_id=flowsheet_id, 

35 scenario_id=scenario_id 

36 ).delete() 

37 # Step 2 (optional): delete DataColumns that are now unused (no DataCells linked) 

38 DataColumn.objects.filter(scenario_id=scenario_id, dataCells__isnull=True).delete() 

39 

40 return Response(status=200, data=f"Deleted all uploaded data (DataRows and DataCells) for flowsheet {flowsheet_id} and scenario {scenario_id}.")