mirror of
https://github.com/daniviga/django-ram.git
synced 2025-08-04 21:27:49 +02:00
Add consists API
This commit is contained in:
@@ -25,7 +25,11 @@ class Consist(models.Model):
|
|||||||
|
|
||||||
|
|
||||||
class ConsistItem(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)
|
rolling_stock = models.ForeignKey(RollingStock, on_delete=models.CASCADE)
|
||||||
order = models.PositiveIntegerField(default=0, blank=False, null=False)
|
order = models.PositiveIntegerField(default=0, blank=False, null=False)
|
||||||
|
|
||||||
|
24
dcc/consist/serializers.py
Normal file
24
dcc/consist/serializers.py
Normal 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
6
dcc/consist/urls.py
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
from django.urls import path
|
||||||
|
from consist.views import ConsistList
|
||||||
|
|
||||||
|
urlpatterns = [
|
||||||
|
path("list", ConsistList.as_view()),
|
||||||
|
]
|
@@ -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"
|
||||||
|
@@ -18,6 +18,7 @@ from django.conf.urls.static import static
|
|||||||
from django.contrib import admin
|
from django.contrib import admin
|
||||||
from django.urls import include, path
|
from django.urls import include, path
|
||||||
|
|
||||||
|
from consist import urls as consist_urls
|
||||||
from roster import urls as roster_urls
|
from roster import urls as roster_urls
|
||||||
from driver import urls as driver_urls
|
from driver import urls as driver_urls
|
||||||
|
|
||||||
@@ -26,6 +27,7 @@ admin.site.site_header = "Trains assets manager"
|
|||||||
urlpatterns = [
|
urlpatterns = [
|
||||||
path("ht/", include("health_check.urls")),
|
path("ht/", include("health_check.urls")),
|
||||||
path("admin/", admin.site.urls),
|
path("admin/", admin.site.urls),
|
||||||
|
path("api/v1/consist/", include(consist_urls)),
|
||||||
path("api/v1/roster/", include(roster_urls)),
|
path("api/v1/roster/", include(roster_urls)),
|
||||||
path("api/v1/dcc/", include(driver_urls)),
|
path("api/v1/dcc/", include(driver_urls)),
|
||||||
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
|
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
|
||||||
|
Reference in New Issue
Block a user