intermediate commit
This commit is contained in:
parent
ab82d9a2d6
commit
7d40471084
|
|
@ -96,3 +96,43 @@ class GuideBaseSerializer(serializers.ModelSerializer):
|
||||||
extra_kwargs = {
|
extra_kwargs = {
|
||||||
'state': {'write_only': True},
|
'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."""
|
"""Collection common urlpaths."""
|
||||||
from rest_framework.routers import SimpleRouter
|
from rest_framework.routers import SimpleRouter
|
||||||
|
from django.urls import path
|
||||||
|
|
||||||
from collection.views import back as views
|
from collection.views import back as views
|
||||||
|
|
||||||
|
|
@ -7,6 +8,10 @@ app_name = 'collection'
|
||||||
|
|
||||||
router = SimpleRouter()
|
router = SimpleRouter()
|
||||||
router.register(r'collections', views.CollectionBackOfficeViewSet)
|
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 permissions
|
||||||
from rest_framework import viewsets, mixins
|
from rest_framework import viewsets, mixins, generics
|
||||||
|
|
||||||
from collection import models, serializers
|
from collection import models, serializers
|
||||||
from utils.views import BindObjectMixin
|
from utils.views import BindObjectMixin
|
||||||
|
|
@ -14,7 +14,7 @@ class CollectionViewSet(mixins.ListModelMixin, viewsets.GenericViewSet):
|
||||||
serializer_class = serializers.CollectionBackOfficeSerializer
|
serializer_class = serializers.CollectionBackOfficeSerializer
|
||||||
|
|
||||||
|
|
||||||
class GuideViewSet(viewsets.ModelViewSet):
|
class GuideBaseView(generics.GenericAPIView):
|
||||||
"""ViewSet for Guide model."""
|
"""ViewSet for Guide model."""
|
||||||
pagination_class = None
|
pagination_class = None
|
||||||
queryset = models.Guide.objects.all()
|
queryset = models.Guide.objects.all()
|
||||||
|
|
@ -22,6 +22,14 @@ class GuideViewSet(viewsets.ModelViewSet):
|
||||||
permission_classes = (permissions.IsAuthenticated,)
|
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,
|
class CollectionBackOfficeViewSet(mixins.CreateModelMixin,
|
||||||
mixins.UpdateModelMixin,
|
mixins.UpdateModelMixin,
|
||||||
mixins.DestroyModelMixin,
|
mixins.DestroyModelMixin,
|
||||||
|
|
@ -54,5 +62,11 @@ class CollectionBackOfficeViewSet(mixins.CreateModelMixin,
|
||||||
collection.products.remove(related_object)
|
collection.products.remove(related_object)
|
||||||
|
|
||||||
|
|
||||||
class GuideBackOfficeViewSet(GuideViewSet):
|
class GuideListCreateView(GuideBaseView,
|
||||||
|
generics.ListCreateAPIView):
|
||||||
"""ViewSet for Guide model for BackOffice users."""
|
"""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',
|
'is_main',
|
||||||
]
|
]
|
||||||
|
|
||||||
def get_request_kwargs(self):
|
@property
|
||||||
|
def request_kwargs(self):
|
||||||
"""Get url kwargs from request."""
|
"""Get url kwargs from request."""
|
||||||
return self.context.get('request').parser_context.get('kwargs')
|
return self.context.get('request').parser_context.get('kwargs')
|
||||||
|
|
||||||
def validate(self, attrs):
|
def validate(self, attrs):
|
||||||
"""Override validate method."""
|
"""Override validate method."""
|
||||||
establishment_pk = self.get_request_kwargs().get('pk')
|
establishment_pk = self.request_kwargs.get('pk')
|
||||||
establishment_slug = self.get_request_kwargs().get('slug')
|
establishment_slug = self.request_kwargs.get('slug')
|
||||||
|
|
||||||
search_kwargs = {'pk': establishment_pk} if establishment_pk else {'slug': establishment_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)
|
establishment_qs = models.Establishment.objects.filter(**search_kwargs)
|
||||||
image_qs = Image.objects.filter(id=image_id)
|
image_qs = Image.objects.filter(id=image_id)
|
||||||
|
|
|
||||||
|
|
@ -35,14 +35,15 @@ class CityGallerySerializer(serializers.ModelSerializer):
|
||||||
'is_main',
|
'is_main',
|
||||||
]
|
]
|
||||||
|
|
||||||
def get_request_kwargs(self):
|
@property
|
||||||
|
def request_kwargs(self):
|
||||||
"""Get url kwargs from request."""
|
"""Get url kwargs from request."""
|
||||||
return self.context.get('request').parser_context.get('kwargs')
|
return self.context.get('request').parser_context.get('kwargs')
|
||||||
|
|
||||||
def validate(self, attrs):
|
def validate(self, attrs):
|
||||||
"""Override validate method."""
|
"""Override validate method."""
|
||||||
city_pk = self.get_request_kwargs().get('pk')
|
city_pk = self.request_kwargs.get('pk')
|
||||||
image_id = self.get_request_kwargs().get('image_id')
|
image_id = self.request_kwargs.get('image_id')
|
||||||
|
|
||||||
city_qs = models.City.objects.filter(pk=city_pk)
|
city_qs = models.City.objects.filter(pk=city_pk)
|
||||||
image_qs = Image.objects.filter(id=image_id)
|
image_qs = Image.objects.filter(id=image_id)
|
||||||
|
|
|
||||||
|
|
@ -217,14 +217,15 @@ class NewsBackOfficeGallerySerializer(serializers.ModelSerializer):
|
||||||
'is_main',
|
'is_main',
|
||||||
]
|
]
|
||||||
|
|
||||||
def get_request_kwargs(self):
|
@property
|
||||||
|
def request_kwargs(self):
|
||||||
"""Get url kwargs from request."""
|
"""Get url kwargs from request."""
|
||||||
return self.context.get('request').parser_context.get('kwargs')
|
return self.context.get('request').parser_context.get('kwargs')
|
||||||
|
|
||||||
def validate(self, attrs):
|
def validate(self, attrs):
|
||||||
"""Override validate method."""
|
"""Override validate method."""
|
||||||
news_pk = self.get_request_kwargs().get('pk')
|
news_pk = self.request_kwargs.get('pk')
|
||||||
image_id = self.get_request_kwargs().get('image_id')
|
image_id = self.request_kwargs.get('image_id')
|
||||||
|
|
||||||
news_qs = models.News.objects.filter(pk=news_pk)
|
news_qs = models.News.objects.filter(pk=news_pk)
|
||||||
image_qs = Image.objects.filter(id=image_id)
|
image_qs = Image.objects.filter(id=image_id)
|
||||||
|
|
|
||||||
|
|
@ -22,14 +22,15 @@ class ProductBackOfficeGallerySerializer(serializers.ModelSerializer):
|
||||||
'is_main',
|
'is_main',
|
||||||
]
|
]
|
||||||
|
|
||||||
def get_request_kwargs(self):
|
@property
|
||||||
|
def request_kwargs(self):
|
||||||
"""Get url kwargs from request."""
|
"""Get url kwargs from request."""
|
||||||
return self.context.get('request').parser_context.get('kwargs')
|
return self.context.get('request').parser_context.get('kwargs')
|
||||||
|
|
||||||
def validate(self, attrs):
|
def validate(self, attrs):
|
||||||
"""Override validate method."""
|
"""Override validate method."""
|
||||||
product_pk = self.get_request_kwargs().get('pk')
|
product_pk = self.request_kwargs.get('pk')
|
||||||
image_id = self.get_request_kwargs().get('image_id')
|
image_id = self.request_kwargs.get('image_id')
|
||||||
|
|
||||||
product_qs = models.Product.objects.filter(pk=product_pk)
|
product_qs = models.Product.objects.filter(pk=product_pk)
|
||||||
image_qs = Image.objects.filter(id=image_id)
|
image_qs = Image.objects.filter(id=image_id)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user