Coverage for backend/django/core/auxiliary/views/DeleteMSSData.py: 68%
22 statements
« prev ^ index » next coverage.py v7.10.7, created at 2026-02-12 01:47 +0000
« prev ^ index » next coverage.py v7.10.7, created at 2026-02-12 01:47 +0000
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
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()
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"]
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()
40 return Response(status=200, data=f"Deleted all uploaded data (DataRows and DataCells) for flowsheet {flowsheet_id} and scenario {scenario_id}.")