Coverage for backend/django/core/auxiliary/viewsets/NoteViewSet.py: 71%

24 statements  

« prev     ^ index     » next       coverage.py v7.10.7, created at 2025-12-18 04:00 +0000

1from drf_spectacular.utils import extend_schema, OpenApiParameter, OpenApiTypes 

2from core.viewset import ModelViewSet 

3from core.auxiliary.models.Note import Note 

4from core.auxiliary.serializers.NoteSerializer import NoteSerializer 

5from rest_framework import serializers, status 

6from rest_framework.decorators import action 

7from rest_framework.response import Response 

8 

9 

10class EditNoteSerializer(serializers.Serializer): 

11 note_id = serializers.IntegerField() 

12 note_title = serializers.CharField() 

13 note_content = serializers.CharField() 

14 

15class NoteViewSet(ModelViewSet): 

16 serializer_class = NoteSerializer 

17 

18 def get_queryset(self, **kwargs): 

19 return Note.objects.all() 

20 

21 @extend_schema( 

22 parameters=[ 

23 OpenApiParameter(name="simulationObject", required=True, type=OpenApiTypes.INT), 

24 ] 

25 ) 

26 

27 def list(self, request): 

28 queryset = Note.objects.filter(simulationObject=self.request.query_params.get('simulationObject', None)) 

29 serializer = self.get_serializer(queryset, many=True) 

30 return Response(serializer.data, status=status.HTTP_200_OK) 

31 

32 def update(self, request, *args, **kwargs): 

33 # Update the savedDate field 

34 instance = self.get_object() 

35 instance.set_saved_date() 

36 return super().update(request, *args, **kwargs)