Files
django-ram/ram/roster/views.py
Daniele Viganò 1c07c6a7a9 Add a custom manager to filter private and unpublished stuff (#39)
* Implement a customer manager for flatpages

* Implement public manager for private objects

* Add support for unpublished objects in roster and consist

* Add support for unpublished objects in bookshelf

* Update filtering on REST views

* Use uuid in urls.py

* Increment version
2024-11-04 15:00:34 +01:00

45 lines
1.3 KiB
Python

from rest_framework.generics import ListAPIView, RetrieveAPIView
from rest_framework.schemas.openapi import AutoSchema
from roster.models import RollingStock
from roster.serializers import RollingStockSerializer
class RosterList(ListAPIView):
serializer_class = RollingStockSerializer
def get_queryset(self):
return RollingStock.objects.get_published(self.request.user)
class RosterGet(RetrieveAPIView):
serializer_class = RollingStockSerializer
lookup_field = "uuid"
schema = AutoSchema(operation_id_base="retrieveRollingStockByUUID")
def get_queryset(self):
return RollingStock.objects.get_published(self.request.user)
class RosterAddress(ListAPIView):
serializer_class = RollingStockSerializer
schema = AutoSchema(operation_id_base="retrieveRollingStockByAddress")
def get_queryset(self):
address = self.kwargs["address"]
return RollingStock.objects.get_published(self.request.user).filter(
address=address
)
class RosterClass(ListAPIView):
serializer_class = RollingStockSerializer
schema = AutoSchema(operation_id_base="retrieveRollingStockByClass")
def get_queryset(self):
_class = self.kwargs["class"]
return RollingStock.objects.get_published(self.request.user).filter(
rolling_class__identifier=_class
)