partner bind/unbind
This commit is contained in:
parent
0261deb5df
commit
5ad32ad8aa
|
|
@ -4,6 +4,8 @@ from partner.models import Partner, PartnerToEstablishment
|
|||
from establishment.serializers import EstablishmentShortSerializer
|
||||
from location.serializers import CountrySimpleSerializer
|
||||
from location.models import Country
|
||||
from django.shortcuts import get_object_or_404
|
||||
from establishment.models import Establishment
|
||||
|
||||
|
||||
class BackPartnerSerializer(serializers.ModelSerializer):
|
||||
|
|
@ -38,13 +40,14 @@ class BackPartnerSerializer(serializers.ModelSerializer):
|
|||
|
||||
|
||||
class PartnersForEstablishmentSerializer(serializers.ModelSerializer):
|
||||
id = serializers.IntegerField(source='partner.pk')
|
||||
name = serializers.CharField(source='partner.name')
|
||||
type = serializers.IntegerField(source='partner.type')
|
||||
type_display = serializers.CharField(source='partner.type_display')
|
||||
starting_date = serializers.DateField(source='partner.starting_date')
|
||||
expiry_date = serializers.DateField(source='partner.expiry_date')
|
||||
price_per_month = serializers.DecimalField(source='partner.price_per_month', max_digits=10, decimal_places=2)
|
||||
id = serializers.IntegerField(source='partner.pk', read_only=True)
|
||||
name = serializers.CharField(source='partner.name', read_only=True)
|
||||
type = serializers.IntegerField(source='partner.type', read_only=True)
|
||||
type_display = serializers.CharField(source='partner.type_display', read_only=True)
|
||||
starting_date = serializers.DateField(source='partner.starting_date', read_only=True)
|
||||
expiry_date = serializers.DateField(source='partner.expiry_date', read_only=True)
|
||||
price_per_month = serializers.DecimalField(source='partner.price_per_month', max_digits=10, decimal_places=2,
|
||||
read_only=True)
|
||||
country = CountrySimpleSerializer(read_only=True, source='partner.country')
|
||||
|
||||
class Meta:
|
||||
|
|
@ -58,10 +61,20 @@ class PartnersForEstablishmentSerializer(serializers.ModelSerializer):
|
|||
'expiry_date',
|
||||
'price_per_month',
|
||||
'country',
|
||||
'url',
|
||||
'image',
|
||||
'url', # own field
|
||||
'image', # own field
|
||||
)
|
||||
|
||||
def create(self, validated_data):
|
||||
establishment_id = self.context['view'].kwargs['establishment_id']
|
||||
partner_id = self.context['view'].kwargs['partner_id']
|
||||
establishment = get_object_or_404(Establishment, pk=establishment_id)
|
||||
partner = get_object_or_404(Partner, pk=partner_id)
|
||||
instance = PartnerToEstablishment.objects.create(**validated_data,
|
||||
establishment=establishment,
|
||||
partner=partner)
|
||||
return instance
|
||||
|
||||
|
||||
class PartnerPicturesSerializer(serializers.ModelSerializer):
|
||||
|
||||
|
|
|
|||
|
|
@ -8,10 +8,11 @@ app_name = 'partner'
|
|||
urlpatterns = [
|
||||
path('', views.PartnerLstView.as_view(), name='partner-list-create'),
|
||||
path('<int:id>/', views.PartnerRUDView.as_view(), name='partner-rud'),
|
||||
path('for_establishment/<int:establishment_id>/', views.EstablishmentPartners.as_view(), name='partners-for-establishment'),
|
||||
path('for_establishment/<int:establishment_id>/', views.EstablishmentPartners.as_view(),
|
||||
name='partners-for-establishment'),
|
||||
path('pictures/<int:id>/', views.PartnerPicturesListView.as_view(), name='partner-pictures-get'),
|
||||
# path('bind/<int:partner_id>/<int:establishment_id>/', views.BindPartnerToEstablishmentView.as_view(),
|
||||
# name='bind-partner-to-establishment'),
|
||||
# path('unbind/<int:partner_id>/<int:establishment_id>/', views.BindPartnerToEstablishmentView.as_view(),
|
||||
# name='unbind-partner-from-establishment'),
|
||||
path('bind/<int:partner_id>/<int:establishment_id>/', views.BindPartnerToEstablishmentView.as_view(),
|
||||
name='bind-partner-to-establishment'),
|
||||
path('unbind/<int:partner_id>/<int:establishment_id>/', views.UnbindPartnerFromEstablishmentView.as_view(),
|
||||
name='unbind-partner-from-establishment'),
|
||||
]
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
from rest_framework import generics, permissions
|
||||
|
||||
from django.shortcuts import get_object_or_404
|
||||
from partner import filters
|
||||
from partner.models import Partner, PartnerToEstablishment
|
||||
from partner.serializers import back as serializers
|
||||
|
|
@ -14,7 +15,6 @@ class PartnerLstView(generics.ListCreateAPIView):
|
|||
serializer_class = serializers.BackPartnerSerializer
|
||||
pagination_class = None
|
||||
permission_classes = [permissions.IsAdminUser | IsEstablishmentManager]
|
||||
# permission_classes = (permissions.AllowAny, )
|
||||
filter_class = filters.PartnerFilterSet
|
||||
|
||||
|
||||
|
|
@ -23,7 +23,6 @@ class EstablishmentPartners(generics.ListAPIView):
|
|||
serializer_class = serializers.PartnersForEstablishmentSerializer
|
||||
pagination_class = None
|
||||
permission_classes = [permissions.IsAdminUser | IsEstablishmentManager]
|
||||
# filter_class = filters.PartnerFilterSet
|
||||
|
||||
def get_queryset(self):
|
||||
return super().get_queryset().filter(establishment=self.kwargs['establishment_id'])
|
||||
|
|
@ -34,7 +33,6 @@ class PartnerRUDView(generics.RetrieveUpdateDestroyAPIView):
|
|||
queryset = Partner.objects.with_base_related()
|
||||
serializer_class = serializers.BackPartnerSerializer
|
||||
permission_classes = [permissions.IsAdminUser | IsEstablishmentManager]
|
||||
# permission_classes = (permissions.AllowAny, )
|
||||
lookup_field = 'id'
|
||||
|
||||
|
||||
|
|
@ -42,12 +40,18 @@ class PartnerPicturesListView(generics.RetrieveAPIView):
|
|||
lookup_field = 'id'
|
||||
serializer_class = serializers.PartnerPicturesSerializer
|
||||
queryset = Partner.objects.with_base_related()
|
||||
# permission_classes = [permissions.IsAdminUser | IsEstablishmentManager]
|
||||
permission_classes = (permissions.AllowAny, )
|
||||
|
||||
# class BindPartnerToEstablishmentView(generics.GenericAPIView):
|
||||
# pass
|
||||
permission_classes = [permissions.IsAdminUser | IsEstablishmentManager]
|
||||
|
||||
|
||||
# class UnbindPartnerFromEstablishmentView(generics.DestroyAPIView):
|
||||
# pass
|
||||
class BindPartnerToEstablishmentView(generics.CreateAPIView):
|
||||
serializer_class = serializers.PartnersForEstablishmentSerializer
|
||||
permission_classes = [permissions.IsAdminUser | IsEstablishmentManager]
|
||||
|
||||
|
||||
class UnbindPartnerFromEstablishmentView(generics.DestroyAPIView):
|
||||
serializer_class = serializers.PartnersForEstablishmentSerializer
|
||||
permission_classes = [permissions.IsAdminUser | IsEstablishmentManager]
|
||||
|
||||
def get_object(self):
|
||||
return get_object_or_404(PartnerToEstablishment, establishment_id=self.kwargs['establishment_id'],
|
||||
partner_id=self.kwargs['partner_id'])
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user