api.py 1.36 KB
from rest_framework import viewsets, filters, mixins, status
from django_filters.rest_framework import DjangoFilterBackend
from rest_framework.response import Response
from rest_framework.permissions import IsAuthenticated
from rest_framework.decorators import action

from .models import Edicto, Precio
from .serializer import EdictoSerializer, PrecioSerializer
from .filters import EdictoFilter, PrecioFilter
from .permissions import IsAdminOrAuthorized


class EdictoViewSet(mixins.CreateModelMixin,
                    mixins.RetrieveModelMixin,
                    mixins.UpdateModelMixin,
                    mixins.ListModelMixin,
                    viewsets.GenericViewSet):

    serializer_class = EdictoSerializer
    permission_classes = [IsAuthenticated, ]
    filter_backends = (DjangoFilterBackend, filters.OrderingFilter)
    filterset_class = EdictoFilter
    queryset = Edicto.objects.all()
    ordering_fields = ('fecha_creacion', 'id', 'estado')
    ordering = ('fecha_publicacion',)
    lookup_field = 'uuid'


class PrecioViewSet(viewsets.ReadOnlyModelViewSet):
    serializer_class = PrecioSerializer
    permission_classes = [IsAuthenticated, IsAdminOrAuthorized]
    filter_backends = (DjangoFilterBackend, filters.OrderingFilter)
    filterset_class = PrecioFilter
    ordering_fields = ('usuario', )
    ordering = 'usuario'
    queryset = Precio.objects.all()