Coverage for backend/django/core/auxiliary/views/CopyFlowsheetView.py: 100%

18 statements  

« prev     ^ index     » next       coverage.py v7.10.7, created at 2026-02-12 01:47 +0000

1 

2from rest_framework.response import Response 

3from drf_spectacular.utils import extend_schema, OpenApiParameter, OpenApiTypes 

4from rest_framework.decorators import api_view 

5from drf_spectacular.utils import extend_schema 

6from core.validation import api_view_validate, sanitize_flowsheet_id 

7from core.auxiliary.methods.CopyFlowsheet import copy_flowsheet_data 

8from authentication.user.models import User 

9from core.auxiliary.models.Flowsheet import Flowsheet 

10 

11@api_view_validate 

12@extend_schema(parameters=[ 

13 OpenApiParameter(name='flowsheet', type=OpenApiTypes.INT, location=OpenApiParameter.QUERY, description="ID of the flowsheet to copy"), 

14], responses={200: OpenApiTypes.INT}) 

15@api_view(['POST']) 

16def copy_flowsheet(request) -> Response: 

17 flowsheet_id = request.GET.get("flowsheet") 

18 sanitize_flowsheet_id(flowsheet_id) 

19 

20 user: User = request.user 

21 old_flowsheet = Flowsheet.objects.get(pk=flowsheet_id) 

22 new_flowsheet = copy_flowsheet_data(old_flowsheet, user=user) 

23 

24 return Response(data=new_flowsheet.pk, status=200)