add email and phone api for establishments

This commit is contained in:
Dmitriy Kuzmenko 2019-09-13 12:20:36 +03:00
parent 10d9b52bec
commit 15f02b72ca
4 changed files with 76 additions and 5 deletions

View File

@ -1,8 +1,12 @@
from establishment.serializers import EstablishmentBaseSerializer, PlateSerializer
from rest_framework import serializers
from establishment import models
from establishment.serializers import (
EstablishmentBaseSerializer, PlateSerializer, ContactEmailsSerializer,
ContactPhonesSerializer, SocialNetworkRelatedSerializers)
from main.models import Currency
class EstablishmentListCreateSerializer(EstablishmentBaseSerializer):
"""Establishment create serializer"""
@ -10,6 +14,9 @@ class EstablishmentListCreateSerializer(EstablishmentBaseSerializer):
source='establishment_type',
queryset=models.EstablishmentType.objects.all(), write_only=True
)
phones = ContactPhonesSerializer(read_only=True, many=True, )
emails = ContactEmailsSerializer(read_only=True, many=True, )
socials = SocialNetworkRelatedSerializers(read_only=True, many=True, )
class Meta:
model = models.Establishment
@ -17,12 +24,13 @@ class EstablishmentListCreateSerializer(EstablishmentBaseSerializer):
'id',
'name',
'website',
'phone',
'email',
'phones',
'emails',
'price_level',
'toque_number',
'type_id',
'type'
'type',
'socials'
]
@ -52,4 +60,26 @@ class PlatesSerializers(PlateSerializer):
'name',
'currency_id',
'menu'
]
class ContactPhoneBackSerializers(PlateSerializer):
"""Social network serializers."""
class Meta:
model = models.ContactPhone
fields = [
'id',
'establishment',
'phone'
]
class ContactEmailBackSerializers(PlateSerializer):
"""Social network serializers."""
class Meta:
model = models.ContactEmail
fields = [
'id',
'establishment',
'email'
]

View File

@ -31,6 +31,17 @@ class ContactEmailsSerializer(serializers.ModelSerializer):
]
class SocialNetworkRelatedSerializers(serializers.ModelSerializer):
"""Social network serializers."""
class Meta:
model = models.SocialNetwork
fields = [
'id',
'title',
'url',
]
class PlateSerializer(serializers.ModelSerializer):
name_translated = serializers.CharField(allow_null=True, read_only=True)

View File

@ -16,4 +16,8 @@ urlpatterns = [
path('plates/<int:pk>/', views.PlateListCreateView.as_view(), name='plate-rud'),
path('socials/', views.SocialListCreateView.as_view(), name='socials'),
path('socials/<int:pk>/', views.SocialRUDView.as_view(), name='social-rud'),
path('phones/', views.PhonesListCreateView.as_view(), name='phones'),
path('phones/<int:pk>/', views.PhonesRUDView.as_view(), name='phones-rud'),
path('emails/', views.EmailListCreateView.as_view(), name='emails'),
path('emails/<int:pk>/', views.EmailRUDView.as_view(), name='emails-rud'),
]

View File

@ -47,4 +47,30 @@ class PlateListCreateView(generics.ListCreateAPIView):
class PlateRUDView(generics.RetrieveUpdateDestroyAPIView):
"""Social RUD view."""
serializer_class = serializers.PlatesSerializers
queryset = models.Plate.objects.all()
queryset = models.Plate.objects.all()
class PhonesListCreateView(generics.ListCreateAPIView):
"""Plate list create view."""
serializer_class = serializers.ContactPhoneBackSerializers
queryset = models.ContactPhone.objects.all()
pagination_class = None
class PhonesRUDView(generics.RetrieveUpdateDestroyAPIView):
"""Social RUD view."""
serializer_class = serializers.ContactPhoneBackSerializers
queryset = models.ContactPhone.objects.all()
class EmailListCreateView(generics.ListCreateAPIView):
"""Plate list create view."""
serializer_class = serializers.ContactEmailBackSerializers
queryset = models.ContactEmail.objects.all()
pagination_class = None
class EmailRUDView(generics.RetrieveUpdateDestroyAPIView):
"""Social RUD view."""
serializer_class = serializers.ContactEmailBackSerializers
queryset = models.ContactEmail.objects.all()