from rest_framework import mixins, status, viewsets
from rest_framework.response import Response
from ..models import CronogramaTermoRecebimentoDefinitivo, TermoRecebimentoDefinitivo
from .permissions import PermissaoParaCadastrarTermoRecebimentoDefinitivo
from .serializers.serializers import TermoRecebimentoDefinitivoSerializer
from .serializers.serializers_create import TermoRecebimentoDefinitivoCreateSerializer
[docs]
class TermoRecebimentoDefinitivoViewSet(
mixins.CreateModelMixin,
viewsets.GenericViewSet,
):
"""Criação do Termo de Recebimento Definitivo (Salvar e Enviar)."""
lookup_field = "uuid"
serializer_class = TermoRecebimentoDefinitivoCreateSerializer
queryset = TermoRecebimentoDefinitivo.objects.all().order_by("-criado_em")
permission_classes = (PermissaoParaCadastrarTermoRecebimentoDefinitivo,)
[docs]
def create(self, request, *args, **kwargs):
"""Cria o termo (valida, persiste e retorna 201 com o serializador
de saída)."""
serializer = self.get_serializer(data=request.data)
serializer.is_valid(raise_exception=True)
self.perform_create(serializer)
instance = serializer.instance
output_serializer = TermoRecebimentoDefinitivoSerializer(instance)
return Response(output_serializer.data, status=status.HTTP_201_CREATED)