mirror of
				https://gitlab.crans.org/bde/nk20
				synced 2025-10-30 23:39:54 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			75 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			75 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| # Copyright (C) 2018-2025 by BDE ENS Paris-Saclay
 | |
| # SPDX-License-Identifier: GPL-3.0-or-later
 | |
| 
 | |
| from api.viewsets import ReadProtectedModelViewSet
 | |
| from django_filters.rest_framework import DjangoFilterBackend
 | |
| from rest_framework.filters import SearchFilter
 | |
| 
 | |
| from .serializers import AllergenSerializer, FoodSerializer, BasicFoodSerializer, TransformedFoodSerializer, QRCodeSerializer
 | |
| from ..models import Allergen, Food, BasicFood, TransformedFood, QRCode
 | |
| 
 | |
| 
 | |
| class AllergenViewSet(ReadProtectedModelViewSet):
 | |
|     """
 | |
|     REST API View set.
 | |
|     The djangorestframework plugin will get all `Allergen` objects, serialize it to JSON with the given serializer,
 | |
|     then render it on /api/food/allergen/
 | |
|     """
 | |
|     queryset = Allergen.objects.order_by('id')
 | |
|     serializer_class = AllergenSerializer
 | |
|     filter_backends = [DjangoFilterBackend, SearchFilter]
 | |
|     filterset_fields = ['name', ]
 | |
|     search_fields = ['$name', ]
 | |
| 
 | |
| 
 | |
| class FoodViewSet(ReadProtectedModelViewSet):
 | |
|     """
 | |
|     REST API View set.
 | |
|     The djangorestframework plugin will get all `Food` objects, serialize it to JSON with the given serializer,
 | |
|     then render it on /api/food/food/
 | |
|     """
 | |
|     queryset = Food.objects.order_by('id')
 | |
|     serializer_class = FoodSerializer
 | |
|     filter_backends = [DjangoFilterBackend, SearchFilter]
 | |
|     filterset_fields = ['name', ]
 | |
|     search_fields = ['$name', ]
 | |
| 
 | |
| 
 | |
| class BasicFoodViewSet(ReadProtectedModelViewSet):
 | |
|     """
 | |
|     REST API View set.
 | |
|     The djangorestframework plugin will get all `BasicFood` objects, serialize it to JSON with the given serializer,
 | |
|     then render it on /api/food/basicfood/
 | |
|     """
 | |
|     queryset = BasicFood.objects.order_by('id')
 | |
|     serializer_class = BasicFoodSerializer
 | |
|     filter_backends = [DjangoFilterBackend, SearchFilter]
 | |
|     filterset_fields = ['name', ]
 | |
|     search_fields = ['$name', ]
 | |
| 
 | |
| 
 | |
| class TransformedFoodViewSet(ReadProtectedModelViewSet):
 | |
|     """
 | |
|     REST API View set.
 | |
|     The djangorestframework plugin will get all `TransformedFood` objects, serialize it to JSON with the given serializer,
 | |
|     then render it on /api/food/transformedfood/
 | |
|     """
 | |
|     queryset = TransformedFood.objects.order_by('id')
 | |
|     serializer_class = TransformedFoodSerializer
 | |
|     filter_backends = [DjangoFilterBackend, SearchFilter]
 | |
|     filterset_fields = ['name', ]
 | |
|     search_fields = ['$name', ]
 | |
| 
 | |
| 
 | |
| class QRCodeViewSet(ReadProtectedModelViewSet):
 | |
|     """
 | |
|     REST API View set.
 | |
|     The djangorestframework plugin will get all `QRCode` objects, serialize it to JSON with the given serializer,
 | |
|     then render it on /api/food/qrcode/
 | |
|     """
 | |
|     queryset = QRCode.objects.order_by('id')
 | |
|     serializer_class = QRCodeSerializer
 | |
|     filter_backends = [DjangoFilterBackend, SearchFilter]
 | |
|     filterset_fields = ['qr_code_number', ]
 | |
|     search_fields = ['$qr_code_number', ]
 |