adapter api-vhc

This commit is contained in:
2024-07-28 15:49:18 +02:00
parent 37f86d5db1
commit 975d5d460d
3 changed files with 25 additions and 6 deletions

View File

@@ -75,7 +75,7 @@ class Vehicles(models.Model):
class Vehicles_infos(models.Model): class Vehicles_infos(models.Model):
Vehicle = models.ForeignKey(Vehicles, on_delete=models.CASCADE, verbose_name="Véhicule") Vehicle = models.ForeignKey(Vehicles, on_delete=models.CASCADE, verbose_name="Véhicule" , related_name='vehicles_infos')
nType = models.CharField('Type', max_length=1, choices=TYPES_CHOICES, default=1) nType = models.CharField('Type', max_length=1, choices=TYPES_CHOICES, default=1)
sDesc = models.TextField("Description") sDesc = models.TextField("Description")
bEnabled = models.BooleanField("Actif",default=1) bEnabled = models.BooleanField("Actif",default=1)

View File

@@ -3,12 +3,28 @@ from rest_framework import serializers
from.models import Vehicles_infos, Vehicles from.models import Vehicles_infos, Vehicles
class cl_Vehicles_Serializer(serializers.ModelSerializer):
class Meta:
model = Vehicles
fields = '__all__'
class cl_Vehicles_infos_Serializer(serializers.ModelSerializer): class cl_Vehicles_infos_Serializer(serializers.ModelSerializer):
class Meta: class Meta:
model = Vehicles_infos model = Vehicles_infos
fields = '__all__' fields = '__all__'
class cl_Vehicles_Serializer(serializers.ModelSerializer):
technique_infos = serializers.SerializerMethodField()
matos_infos = serializers.SerializerMethodField()
perempt_infos = serializers.SerializerMethodField()
class Meta:
model = Vehicles
fields = '__all__'
def get_technique_infos(self, obj):
enabled_infos = Vehicles_infos.objects.filter(Vehicle=obj, bEnabled=True, nType=1)
return cl_Vehicles_infos_Serializer(enabled_infos, many=True).data
def get_matos_infos(self, obj):
enabled_infos = Vehicles_infos.objects.filter(Vehicle=obj, bEnabled=True, nType=2)
return cl_Vehicles_infos_Serializer(enabled_infos, many=True).data
def get_perempt_infos(self, obj):
enabled_infos = Vehicles_infos.objects.filter(Vehicle=obj, bEnabled=True, nType=3)
return cl_Vehicles_infos_Serializer(enabled_infos, many=True).data

View File

@@ -6,7 +6,7 @@ from django.template import loader
from django.views.decorators.clickjacking import xframe_options_exempt from django.views.decorators.clickjacking import xframe_options_exempt
from vehicles.models import * from vehicles.models import *
from rest_framework import viewsets from rest_framework import viewsets, filters
from Reskreen.rest_permission import CustomPermission_DjangoModel_based from Reskreen.rest_permission import CustomPermission_DjangoModel_based
from .serializers import cl_Vehicles_Serializer, cl_Vehicles_infos_Serializer from .serializers import cl_Vehicles_Serializer, cl_Vehicles_infos_Serializer
@@ -15,6 +15,9 @@ class VehicleViewset(viewsets.ModelViewSet):
queryset = Vehicles.objects.all() queryset = Vehicles.objects.all()
serializer_class = cl_Vehicles_Serializer serializer_class = cl_Vehicles_Serializer
permission_classes = [CustomPermission_DjangoModel_based] permission_classes = [CustomPermission_DjangoModel_based]
filter_backends = [filters.OrderingFilter]
ordering_fields = ['nStatus', 'nType', 'nOrder'] # Les champs sur lesquels vous voulez permettre l'ordering
ordering = ['nStatus', 'nType', 'nOrder'] # Ordre par défaut
class VehicleInfosViewset(viewsets.ModelViewSet): class VehicleInfosViewset(viewsets.ModelViewSet):
queryset = Vehicles_infos.objects.all() queryset = Vehicles_infos.objects.all()