article serializer
This commit is contained in:
parent
90715a0cb9
commit
26dadfbb4f
|
|
@ -3,7 +3,7 @@ import json
|
|||
from django.utils.translation import gettext, gettext_lazy as _
|
||||
from rest_framework.generics import get_object_or_404
|
||||
|
||||
from BaseBillet.models import Event, TarifBillet
|
||||
from BaseBillet.models import Event, TarifBillet, Article
|
||||
|
||||
|
||||
class TarifsSerializer(serializers.ModelSerializer):
|
||||
|
|
@ -15,7 +15,31 @@ class TarifsSerializer(serializers.ModelSerializer):
|
|||
"prix",
|
||||
"reservation_par_user_max",
|
||||
]
|
||||
extra_kwargs = {'event': {'required': False}}
|
||||
read_only_fields = ['uuid']
|
||||
|
||||
|
||||
class ArticleSerializer(serializers.ModelSerializer):
|
||||
class Meta:
|
||||
model = Article
|
||||
fields = [
|
||||
'uuid',
|
||||
'name',
|
||||
'prix',
|
||||
'stock',
|
||||
'reservation_par_user_max',
|
||||
'vat',
|
||||
'publish',
|
||||
'img',
|
||||
'categorie_article',
|
||||
'id_product_stripe',
|
||||
'id_price_stripe',
|
||||
]
|
||||
read_only_fields = [
|
||||
'uuid',
|
||||
'id_product_stripe',
|
||||
'id_price_stripe',
|
||||
]
|
||||
depth = 1
|
||||
|
||||
|
||||
class EventSerializer(serializers.ModelSerializer):
|
||||
|
|
@ -38,7 +62,7 @@ class EventSerializer(serializers.ModelSerializer):
|
|||
'reservations',
|
||||
'complet',
|
||||
]
|
||||
read_only_fields = ['reservations']
|
||||
read_only_fields = ['uuid', 'reservations']
|
||||
depth = 1
|
||||
|
||||
def validate(self, attrs):
|
||||
|
|
@ -64,6 +88,7 @@ class EventSerializer(serializers.ModelSerializer):
|
|||
instance.tarifs.add(tarif)
|
||||
return instance
|
||||
|
||||
|
||||
'''
|
||||
[
|
||||
{
|
||||
|
|
|
|||
|
|
@ -7,6 +7,7 @@ from rest_framework import routers
|
|||
router = routers.DefaultRouter()
|
||||
router.register(r'events', api_view.EventsViewSet, basename='event')
|
||||
router.register(r'tarifs', api_view.TarifBilletViewSet, basename='billet')
|
||||
router.register(r'articles', api_view.ArticleViewSet, basename='article')
|
||||
|
||||
|
||||
urlpatterns = [
|
||||
|
|
|
|||
|
|
@ -4,22 +4,21 @@ from django.shortcuts import render
|
|||
from rest_framework.generics import get_object_or_404
|
||||
from rest_framework.response import Response
|
||||
|
||||
from ApiBillet.serializers import EventSerializer, TarifsSerializer
|
||||
from ApiBillet.serializers import EventSerializer, TarifsSerializer, ArticleSerializer
|
||||
from AuthBillet.models import TenantAdminPermission
|
||||
from Customers.models import Client, Domain
|
||||
from BaseBillet.models import Event, TarifBillet
|
||||
from BaseBillet.models import Event, TarifBillet, Article
|
||||
from rest_framework import viewsets, permissions, status
|
||||
|
||||
import os
|
||||
|
||||
|
||||
def new_tenants(schema_name):
|
||||
tenant = Client.objects.get_or_create(schema_name=schema_name,
|
||||
name=schema_name,
|
||||
paid_until='2200-12-05',
|
||||
on_trial=False)[0]
|
||||
|
||||
# Add one or more domains for the tenant
|
||||
|
||||
tenant_domain = Domain.objects.get_or_create(domain=f'{schema_name}.{os.getenv("DOMAIN")}',
|
||||
tenant=tenant,
|
||||
is_primary=True,
|
||||
|
|
@ -27,6 +26,7 @@ def new_tenants(schema_name):
|
|||
|
||||
return tenant, tenant_domain
|
||||
|
||||
|
||||
class TarifBilletViewSet(viewsets.ViewSet):
|
||||
def list(self, request):
|
||||
queryset = TarifBillet.objects.all().order_by('prix')
|
||||
|
|
@ -41,26 +41,45 @@ class TarifBilletViewSet(viewsets.ViewSet):
|
|||
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
|
||||
|
||||
def get_permissions(self):
|
||||
"""
|
||||
Instantiates and returns the list of permissions that this view requires.
|
||||
"""
|
||||
if self.action in ['list', 'retrieve']:
|
||||
permission_classes = [permissions.AllowAny]
|
||||
else:
|
||||
permission_classes = [TenantAdminPermission]
|
||||
return [permission() for permission in permission_classes]
|
||||
|
||||
class EventsViewSet(viewsets.ViewSet):
|
||||
queryset = Event.objects.all().order_by('-datetime')
|
||||
|
||||
class ArticleViewSet(viewsets.ViewSet):
|
||||
|
||||
def list(self, request):
|
||||
serializer = EventSerializer(self.queryset, many=True, context={'request': request})
|
||||
serializer = ArticleSerializer(Article.objects.all(), many=True, context={'request': request})
|
||||
print(serializer.data)
|
||||
return Response(serializer.data)
|
||||
|
||||
def create(self, request):
|
||||
serializer = ArticleSerializer(data=request.data)
|
||||
if serializer.is_valid():
|
||||
serializer.save()
|
||||
return Response(serializer.data, status=status.HTTP_201_CREATED)
|
||||
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
|
||||
|
||||
def get_permissions(self):
|
||||
if self.action in ['list', 'retrieve']:
|
||||
permission_classes = [permissions.AllowAny]
|
||||
else:
|
||||
permission_classes = [TenantAdminPermission]
|
||||
return [permission() for permission in permission_classes]
|
||||
|
||||
|
||||
class EventsViewSet(viewsets.ViewSet):
|
||||
|
||||
def list(self, request):
|
||||
queryset = Event.objects.all().order_by('-datetime')
|
||||
serializer = EventSerializer(queryset, many=True, context={'request': request})
|
||||
return Response(serializer.data)
|
||||
|
||||
def retrieve(self, request, pk=None):
|
||||
print(f"retrieve : {pk}")
|
||||
event = get_object_or_404(self.queryset, pk=pk)
|
||||
queryset = Event.objects.all().order_by('-datetime')
|
||||
event = get_object_or_404(queryset, pk=pk)
|
||||
serializer = EventSerializer(event)
|
||||
return Response(serializer.data)
|
||||
|
||||
|
|
@ -72,35 +91,25 @@ class EventsViewSet(viewsets.ViewSet):
|
|||
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
|
||||
|
||||
def update(self, request, pk=None):
|
||||
queryset = Event.objects.all().order_by('-datetime')
|
||||
print(f"update : {pk}")
|
||||
event = get_object_or_404(self.queryset, pk=pk)
|
||||
event = get_object_or_404(queryset, pk=pk)
|
||||
print(event)
|
||||
serializer = EventSerializer(event, data=request.data)
|
||||
if serializer.is_valid(raise_exception=True):
|
||||
# import ipdb; ipdb.set_trace()
|
||||
serializer.save()
|
||||
return Response(serializer.data, status=status.HTTP_201_CREATED)
|
||||
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
|
||||
|
||||
def destroy(self, request, pk=None):
|
||||
event = get_object_or_404(self.queryset, pk=pk)
|
||||
queryset = Event.objects.all().order_by('-datetime')
|
||||
event = get_object_or_404(queryset, pk=pk)
|
||||
event.delete()
|
||||
return Response(('deleted'), status=status.HTTP_200_OK)
|
||||
|
||||
def get_permissions(self):
|
||||
"""
|
||||
Instantiates and returns the list of permissions that this view requires.
|
||||
"""
|
||||
if self.action in ['list', 'retrieve']:
|
||||
permission_classes = [permissions.AllowAny]
|
||||
else:
|
||||
permission_classes = [TenantAdminPermission]
|
||||
return [permission() for permission in permission_classes]
|
||||
|
||||
class EventViewSet(viewsets.ModelViewSet):
|
||||
"""
|
||||
API endpoint that allows users to be viewed or edited.
|
||||
"""
|
||||
queryset = Event.objects.all().order_by('-datetime')
|
||||
serializer_class = EventSerializer
|
||||
permission_classes = [permissions.AllowAny]
|
||||
|
|
|
|||
|
|
@ -152,8 +152,7 @@ class VAT(models.Model):
|
|||
class Article(models.Model):
|
||||
uuid = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False, unique=True, db_index=True)
|
||||
|
||||
name = models.CharField(max_length=50,
|
||||
blank=True, null=True)
|
||||
name = models.CharField(max_length=50)
|
||||
prix = models.FloatField()
|
||||
stock = models.SmallIntegerField(blank=True, null=True)
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue