api.py 1.26 KB
from django_filters.rest_framework import DjangoFilterBackend
from rest_framework import viewsets, filters, mixins
from rest_framework.permissions import IsAuthenticated

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


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()