Coverage for backend/core/auxiliary/views/CopyFlowsheetView.py: 73%
22 statements
« prev ^ index » next coverage.py v7.10.7, created at 2025-11-06 23:27 +0000
« prev ^ index » next coverage.py v7.10.7, created at 2025-11-06 23:27 +0000
2from rest_framework.response import Response
3from core.auxiliary.models.SolveState import SolveValue, SolveState
4from core.auxiliary.serializers.SolveStateSerializer import SolveValueSerializer, SolveStateSerializer
5from drf_spectacular.utils import extend_schema, OpenApiParameter, OpenApiTypes
6from core.auxiliary.models.Expression import Expression
7from rest_framework.decorators import api_view
8from drf_spectacular.utils import extend_schema
9from rest_framework import serializers
10from core.validation import api_view_validate, sanitize_flowsheet_id
11from core.auxiliary.methods.CopyFlowsheet import copy_flowsheet_data
12from authentication.user.models import User
13from core.auxiliary.models.Flowsheet import Flowsheet
15@api_view_validate
16@extend_schema(parameters=[
17 OpenApiParameter(name='flowsheet', type=OpenApiTypes.INT, location=OpenApiParameter.QUERY, description="ID of the flowsheet to copy"),
18], responses={200: OpenApiTypes.INT})
19@api_view(['POST'])
20def copy_flowsheet(request) -> Response:
21 flowsheet_id = request.GET.get("flowsheet")
22 sanitize_flowsheet_id(flowsheet_id)
24 user: User = request.user
25 old_flowsheet = Flowsheet.objects.get(pk=flowsheet_id)
26 new_flowsheet = copy_flowsheet_data(old_flowsheet, user=user)
28 return Response(data=new_flowsheet.pk, status=200)