intermediate commit
This commit is contained in:
parent
ab82d9a2d6
commit
7d40471084
|
|
@ -96,3 +96,43 @@ class GuideBaseSerializer(serializers.ModelSerializer):
|
|||
extra_kwargs = {
|
||||
'state': {'write_only': True},
|
||||
}
|
||||
|
||||
|
||||
class GuideFilterBaseSerializer(serializers.ModelSerializer):
|
||||
"""GuideFilter serializer"""
|
||||
|
||||
class Meta:
|
||||
"""Meta class."""
|
||||
model = models.GuideFilter
|
||||
fields = [
|
||||
'id',
|
||||
'establishment_type_json',
|
||||
'country_json',
|
||||
'region_json',
|
||||
'sub_region_json',
|
||||
'wine_region_json',
|
||||
'with_mark',
|
||||
'locale_json',
|
||||
'max_mark',
|
||||
'min_mark',
|
||||
'review_vintage_json',
|
||||
'review_state_json',
|
||||
'guide',
|
||||
]
|
||||
extra_kwargs = {
|
||||
'guide': {'write_only': True}
|
||||
}
|
||||
|
||||
@property
|
||||
def request_kwargs(self):
|
||||
"""Get url kwargs from request."""
|
||||
return self.context.get('request').parser_context.get('kwargs')
|
||||
|
||||
def get_guide(self):
|
||||
"""Get guide instance from kwargs."""
|
||||
return self.request_kwargs.get()
|
||||
|
||||
def create(self, validated_data):
|
||||
"""Overridden create method."""
|
||||
validated_data['guide'] = self.get_guide(validated_data.pop('guide', None))
|
||||
return super().create(validated_data)
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
"""Collection common urlpaths."""
|
||||
from rest_framework.routers import SimpleRouter
|
||||
from django.urls import path
|
||||
|
||||
from collection.views import back as views
|
||||
|
||||
|
|
@ -7,6 +8,10 @@ app_name = 'collection'
|
|||
|
||||
router = SimpleRouter()
|
||||
router.register(r'collections', views.CollectionBackOfficeViewSet)
|
||||
router.register(r'guides', views.GuideBackOfficeViewSet)
|
||||
|
||||
urlpatterns = router.urls
|
||||
urlpatterns = [
|
||||
path('guides/', views.GuideListCreateView.as_view(),
|
||||
name='guide-list-create'),
|
||||
path('guides/<int:pk>/filters/', views.GuideFilterCreateView.as_view(),
|
||||
name='guide-filter-list-create'),
|
||||
] + router.urls
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
from rest_framework import permissions
|
||||
from rest_framework import viewsets, mixins
|
||||
from rest_framework import viewsets, mixins, generics
|
||||
|
||||
from collection import models, serializers
|
||||
from utils.views import BindObjectMixin
|
||||
|
|
@ -14,7 +14,7 @@ class CollectionViewSet(mixins.ListModelMixin, viewsets.GenericViewSet):
|
|||
serializer_class = serializers.CollectionBackOfficeSerializer
|
||||
|
||||
|
||||
class GuideViewSet(viewsets.ModelViewSet):
|
||||
class GuideBaseView(generics.GenericAPIView):
|
||||
"""ViewSet for Guide model."""
|
||||
pagination_class = None
|
||||
queryset = models.Guide.objects.all()
|
||||
|
|
@ -22,6 +22,14 @@ class GuideViewSet(viewsets.ModelViewSet):
|
|||
permission_classes = (permissions.IsAuthenticated,)
|
||||
|
||||
|
||||
class GuideFilterBaseView(generics.GenericAPIView):
|
||||
"""ViewSet for GuideFilter model."""
|
||||
pagination_class = None
|
||||
queryset = models.GuideFilter.objects.all()
|
||||
serializer_class = serializers.GuideFilterBaseSerializer
|
||||
permission_classes = (permissions.IsAuthenticated,)
|
||||
|
||||
|
||||
class CollectionBackOfficeViewSet(mixins.CreateModelMixin,
|
||||
mixins.UpdateModelMixin,
|
||||
mixins.DestroyModelMixin,
|
||||
|
|
@ -54,5 +62,11 @@ class CollectionBackOfficeViewSet(mixins.CreateModelMixin,
|
|||
collection.products.remove(related_object)
|
||||
|
||||
|
||||
class GuideBackOfficeViewSet(GuideViewSet):
|
||||
class GuideListCreateView(GuideBaseView,
|
||||
generics.ListCreateAPIView):
|
||||
"""ViewSet for Guide model for BackOffice users."""
|
||||
|
||||
|
||||
class GuideFilterCreateView(GuideFilterBaseView,
|
||||
generics.CreateAPIView):
|
||||
"""ViewSet for GuideFilter model for BackOffice users."""
|
||||
|
|
|
|||
|
|
@ -225,18 +225,19 @@ class EstablishmentBackOfficeGallerySerializer(serializers.ModelSerializer):
|
|||
'is_main',
|
||||
]
|
||||
|
||||
def get_request_kwargs(self):
|
||||
@property
|
||||
def request_kwargs(self):
|
||||
"""Get url kwargs from request."""
|
||||
return self.context.get('request').parser_context.get('kwargs')
|
||||
|
||||
def validate(self, attrs):
|
||||
"""Override validate method."""
|
||||
establishment_pk = self.get_request_kwargs().get('pk')
|
||||
establishment_slug = self.get_request_kwargs().get('slug')
|
||||
establishment_pk = self.request_kwargs.get('pk')
|
||||
establishment_slug = self.request_kwargs.get('slug')
|
||||
|
||||
search_kwargs = {'pk': establishment_pk} if establishment_pk else {'slug': establishment_slug}
|
||||
|
||||
image_id = self.get_request_kwargs().get('image_id')
|
||||
image_id = self.request_kwargs.get('image_id')
|
||||
|
||||
establishment_qs = models.Establishment.objects.filter(**search_kwargs)
|
||||
image_qs = Image.objects.filter(id=image_id)
|
||||
|
|
|
|||
|
|
@ -35,14 +35,15 @@ class CityGallerySerializer(serializers.ModelSerializer):
|
|||
'is_main',
|
||||
]
|
||||
|
||||
def get_request_kwargs(self):
|
||||
@property
|
||||
def request_kwargs(self):
|
||||
"""Get url kwargs from request."""
|
||||
return self.context.get('request').parser_context.get('kwargs')
|
||||
|
||||
def validate(self, attrs):
|
||||
"""Override validate method."""
|
||||
city_pk = self.get_request_kwargs().get('pk')
|
||||
image_id = self.get_request_kwargs().get('image_id')
|
||||
city_pk = self.request_kwargs.get('pk')
|
||||
image_id = self.request_kwargs.get('image_id')
|
||||
|
||||
city_qs = models.City.objects.filter(pk=city_pk)
|
||||
image_qs = Image.objects.filter(id=image_id)
|
||||
|
|
|
|||
|
|
@ -217,14 +217,15 @@ class NewsBackOfficeGallerySerializer(serializers.ModelSerializer):
|
|||
'is_main',
|
||||
]
|
||||
|
||||
def get_request_kwargs(self):
|
||||
@property
|
||||
def request_kwargs(self):
|
||||
"""Get url kwargs from request."""
|
||||
return self.context.get('request').parser_context.get('kwargs')
|
||||
|
||||
def validate(self, attrs):
|
||||
"""Override validate method."""
|
||||
news_pk = self.get_request_kwargs().get('pk')
|
||||
image_id = self.get_request_kwargs().get('image_id')
|
||||
news_pk = self.request_kwargs.get('pk')
|
||||
image_id = self.request_kwargs.get('image_id')
|
||||
|
||||
news_qs = models.News.objects.filter(pk=news_pk)
|
||||
image_qs = Image.objects.filter(id=image_id)
|
||||
|
|
|
|||
|
|
@ -22,14 +22,15 @@ class ProductBackOfficeGallerySerializer(serializers.ModelSerializer):
|
|||
'is_main',
|
||||
]
|
||||
|
||||
def get_request_kwargs(self):
|
||||
@property
|
||||
def request_kwargs(self):
|
||||
"""Get url kwargs from request."""
|
||||
return self.context.get('request').parser_context.get('kwargs')
|
||||
|
||||
def validate(self, attrs):
|
||||
"""Override validate method."""
|
||||
product_pk = self.get_request_kwargs().get('pk')
|
||||
image_id = self.get_request_kwargs().get('image_id')
|
||||
product_pk = self.request_kwargs.get('pk')
|
||||
image_id = self.request_kwargs.get('image_id')
|
||||
|
||||
product_qs = models.Product.objects.filter(pk=product_pk)
|
||||
image_qs = Image.objects.filter(id=image_id)
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user