Add consists API

This commit is contained in:
2022-04-02 23:31:32 +02:00
parent b598e38f70
commit faf44d7c0c
5 changed files with 57 additions and 3 deletions

View File

@@ -25,7 +25,11 @@ class Consist(models.Model):
class ConsistItem(models.Model):
consist = models.ForeignKey(Consist, on_delete=models.CASCADE)
consist = models.ForeignKey(
Consist,
on_delete=models.CASCADE,
related_name="consist_item"
)
rolling_stock = models.ForeignKey(RollingStock, on_delete=models.CASCADE)
order = models.PositiveIntegerField(default=0, blank=False, null=False)

View File

@@ -0,0 +1,24 @@
from rest_framework import serializers
from consist.models import Consist, ConsistItem
from metadata.serializers import CompanySerializer, TagSerializer
# from roster.serializers import RollingStockSerializer
class ConsistItemSerializer(serializers.ModelSerializer):
# rolling_stock = RollingStockSerializer()
class Meta:
model = ConsistItem
fields = ("order", "rolling_stock")
class ConsistSerializer(serializers.ModelSerializer):
company = CompanySerializer()
consist_item = ConsistItemSerializer(many=True)
tags = TagSerializer(many=True)
class Meta:
model = Consist
fields = "__all__"

6
dcc/consist/urls.py Normal file
View File

@@ -0,0 +1,6 @@
from django.urls import path
from consist.views import ConsistList
urlpatterns = [
path("list", ConsistList.as_view()),
]

View File

@@ -1,3 +1,21 @@
from django.shortcuts import render
from rest_framework.generics import ListAPIView, RetrieveAPIView
# Create your views here.
from consist.models import Consist
from consist.serializers import ConsistSerializer
class ConsistList(ListAPIView):
queryset = Consist.objects.all()
serializer_class = ConsistSerializer
class ConsistGet(RetrieveAPIView):
queryset = Consist.objects.all()
serializer_class = ConsistSerializer
lookup_field = "uuid"
# class RosterIdentifier(RetrieveAPIView):
# queryset = RollingStock.objects.all()
# serializer_class = RollingStockSerializer
# lookup_field = "identifier"

View File

@@ -18,6 +18,7 @@ from django.conf.urls.static import static
from django.contrib import admin
from django.urls import include, path
from consist import urls as consist_urls
from roster import urls as roster_urls
from driver import urls as driver_urls
@@ -26,6 +27,7 @@ admin.site.site_header = "Trains assets manager"
urlpatterns = [
path("ht/", include("health_check.urls")),
path("admin/", admin.site.urls),
path("api/v1/consist/", include(consist_urls)),
path("api/v1/roster/", include(roster_urls)),
path("api/v1/dcc/", include(driver_urls)),
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)