added CRUD endpoints for collection app
This commit is contained in:
parent
95040a74d0
commit
ecb6349696
|
|
@ -16,4 +16,3 @@ class CollectionItemAdmin(admin.ModelAdmin):
|
||||||
@admin.register(models.Guide)
|
@admin.register(models.Guide)
|
||||||
class GuideAdmin(admin.ModelAdmin):
|
class GuideAdmin(admin.ModelAdmin):
|
||||||
"""Guide admin."""
|
"""Guide admin."""
|
||||||
|
|
||||||
|
|
|
||||||
0
apps/collection/serializers/__init__.py
Normal file
0
apps/collection/serializers/__init__.py
Normal file
42
apps/collection/serializers/common.py
Normal file
42
apps/collection/serializers/common.py
Normal file
|
|
@ -0,0 +1,42 @@
|
||||||
|
from rest_framework import serializers
|
||||||
|
from collection import models
|
||||||
|
|
||||||
|
|
||||||
|
class CollectionSerializer(serializers.ModelSerializer):
|
||||||
|
"""Collection serializer"""
|
||||||
|
class Meta:
|
||||||
|
model = models.Collection
|
||||||
|
fields = [
|
||||||
|
'name',
|
||||||
|
'start',
|
||||||
|
'end',
|
||||||
|
'filters',
|
||||||
|
'selectors',
|
||||||
|
'targets',
|
||||||
|
'country'
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
|
class CollectionItemSerializer(serializers.ModelSerializer):
|
||||||
|
"""CollectionItem serializer"""
|
||||||
|
class Meta:
|
||||||
|
model = models.CollectionItem
|
||||||
|
fields = [
|
||||||
|
'collection',
|
||||||
|
'item_type',
|
||||||
|
'item_ids'
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
|
class GuideSerializer(serializers.ModelSerializer):
|
||||||
|
"""Guide serializer"""
|
||||||
|
class Meta:
|
||||||
|
model = models.Guide
|
||||||
|
fields = [
|
||||||
|
'name',
|
||||||
|
'start',
|
||||||
|
'end',
|
||||||
|
'parent',
|
||||||
|
'advertorials',
|
||||||
|
'collection'
|
||||||
|
]
|
||||||
0
apps/collection/serializers/web.py
Normal file
0
apps/collection/serializers/web.py
Normal file
0
apps/collection/urls/__init__.py
Normal file
0
apps/collection/urls/__init__.py
Normal file
41
apps/collection/urls/common.py
Normal file
41
apps/collection/urls/common.py
Normal file
|
|
@ -0,0 +1,41 @@
|
||||||
|
"""Collection common urlpaths."""
|
||||||
|
from django.urls import path
|
||||||
|
|
||||||
|
from collection.views import common as views
|
||||||
|
|
||||||
|
app_name = 'collection'
|
||||||
|
|
||||||
|
urlpatterns = [
|
||||||
|
path('list/', views.CollectionListView.as_view(),
|
||||||
|
name='collections_list'),
|
||||||
|
path('create/', views.CollectionCreateView.as_view(),
|
||||||
|
name='collection_create'),
|
||||||
|
path('<int:pk>/', views.CollectionRetrieveView.as_view(),
|
||||||
|
name='collection_retrieve'),
|
||||||
|
path('<int:pk>/delete/', views.CollectionDestroyView.as_view(),
|
||||||
|
name='collection_destroy'),
|
||||||
|
path('<int:pk>/update/', views.CollectionUpdateView.as_view(),
|
||||||
|
name='collection_update'),
|
||||||
|
|
||||||
|
path('collection_items/', views.CollectionItemListView.as_view(),
|
||||||
|
name='collection_items_list'),
|
||||||
|
path('collection_items/create/', views.CollectionItemCreateView.as_view(),
|
||||||
|
name='collection_items_create'),
|
||||||
|
path('collection_items/<int:pk>/', views.CollectionItemRetrieveView.as_view(),
|
||||||
|
name='collection_items_retrieve'),
|
||||||
|
path('collection_items/<int:pk>/delete/', views.CollectionDestroyView.as_view(),
|
||||||
|
name='collection_items_destroy'),
|
||||||
|
path('collection_items/<int:pk>/update/', views.CollectionItemUpdateView.as_view(),
|
||||||
|
name='collection_items_update'),
|
||||||
|
|
||||||
|
path('guides/', views.GuideListView.as_view(),
|
||||||
|
name='guides_list'),
|
||||||
|
path('guides/create/', views.GuideCreateView.as_view(),
|
||||||
|
name='guide_create'),
|
||||||
|
path('guides/<int:pk>/', views.GuideRetrieveView.as_view(),
|
||||||
|
name='guide_retrieve'),
|
||||||
|
path('guides/<int:pk>/delete/', views.GuideDestroyView.as_view(),
|
||||||
|
name='guide_destroy'),
|
||||||
|
path('guides/<int:pk>/update/', views.GuideUpdateView.as_view(),
|
||||||
|
name='guide_update'),
|
||||||
|
]
|
||||||
9
apps/collection/urls/web.py
Normal file
9
apps/collection/urls/web.py
Normal file
|
|
@ -0,0 +1,9 @@
|
||||||
|
"""Collection app urlconf."""
|
||||||
|
from collection.urls.common import urlpatterns as common_url_patterns
|
||||||
|
|
||||||
|
|
||||||
|
urlpatterns_api = []
|
||||||
|
|
||||||
|
|
||||||
|
urlpatterns = urlpatterns_api + \
|
||||||
|
common_url_patterns
|
||||||
0
apps/collection/views/__init__.py
Normal file
0
apps/collection/views/__init__.py
Normal file
103
apps/collection/views/common.py
Normal file
103
apps/collection/views/common.py
Normal file
|
|
@ -0,0 +1,103 @@
|
||||||
|
from rest_framework import generics
|
||||||
|
from rest_framework import permissions
|
||||||
|
from collection import models
|
||||||
|
from collection.serializers import common as serializers
|
||||||
|
|
||||||
|
|
||||||
|
# Mixins
|
||||||
|
class CollectionViewMixin(generics.GenericAPIView):
|
||||||
|
"""Mixin for Collection view"""
|
||||||
|
model = models.Collection
|
||||||
|
queryset = models.Collection.objects.all()
|
||||||
|
|
||||||
|
|
||||||
|
class CollectionItemViewMixin(generics.GenericAPIView):
|
||||||
|
"""Mixin for CollectionItem view"""
|
||||||
|
model = models.CollectionItem
|
||||||
|
queryset = models.CollectionItem.objects.all()
|
||||||
|
|
||||||
|
|
||||||
|
class GuideViewMixin(generics.GenericAPIView):
|
||||||
|
"""Mixin for Guide view"""
|
||||||
|
model = models.Guide
|
||||||
|
queryset = models.Guide.objects.all()
|
||||||
|
|
||||||
|
|
||||||
|
# Views
|
||||||
|
class CollectionListView(CollectionViewMixin, generics.ListAPIView):
|
||||||
|
"""List Collection view"""
|
||||||
|
permission_classes = (permissions.AllowAny,)
|
||||||
|
serializer_class = serializers.CollectionSerializer
|
||||||
|
|
||||||
|
|
||||||
|
class CollectionRetrieveView(CollectionViewMixin, generics.RetrieveAPIView):
|
||||||
|
"""Retrieve Collection view"""
|
||||||
|
serializer_class = serializers.CollectionSerializer
|
||||||
|
|
||||||
|
|
||||||
|
class CollectionCreateView(CollectionViewMixin, generics.CreateAPIView):
|
||||||
|
"""Create Collection view"""
|
||||||
|
serializer_class = serializers.CollectionSerializer
|
||||||
|
|
||||||
|
|
||||||
|
class CollectionDestroyView(CollectionViewMixin, generics.DestroyAPIView):
|
||||||
|
"""Destroy Collection view"""
|
||||||
|
serializer_class = serializers.CollectionSerializer
|
||||||
|
|
||||||
|
|
||||||
|
class CollectionUpdateView(CollectionViewMixin, generics.UpdateAPIView):
|
||||||
|
"""Update Collection view"""
|
||||||
|
serializer = serializers.CollectionSerializer
|
||||||
|
|
||||||
|
|
||||||
|
class CollectionItemListView(CollectionItemViewMixin, generics.ListAPIView):
|
||||||
|
"""List CollectionItem view"""
|
||||||
|
permission_classes = (permissions.AllowAny,)
|
||||||
|
serializer_class = serializers.CollectionItemSerializer
|
||||||
|
|
||||||
|
|
||||||
|
class CollectionItemRetrieveView(CollectionItemViewMixin, generics.RetrieveAPIView):
|
||||||
|
"""Retrieve CollectionItem view"""
|
||||||
|
serializer_class = serializers.CollectionItemSerializer
|
||||||
|
|
||||||
|
|
||||||
|
class CollectionItemCreateView(CollectionItemViewMixin, generics.CreateAPIView):
|
||||||
|
"""Create CollectionItem view"""
|
||||||
|
serializer_class = serializers.CollectionItemSerializer
|
||||||
|
|
||||||
|
|
||||||
|
class CollectionItemDestroyView(CollectionItemViewMixin, generics.DestroyAPIView):
|
||||||
|
"""Destroy CollectionItem view"""
|
||||||
|
serializer_class = serializers.CollectionItemSerializer
|
||||||
|
|
||||||
|
|
||||||
|
class CollectionItemUpdateView(CollectionItemViewMixin, generics.UpdateAPIView):
|
||||||
|
"""Update CollectionItem view"""
|
||||||
|
serializer = serializers.CollectionItemSerializer
|
||||||
|
|
||||||
|
|
||||||
|
class GuideListView(GuideViewMixin, generics.ListAPIView):
|
||||||
|
"""List Guide view"""
|
||||||
|
permission_classes = (permissions.AllowAny,)
|
||||||
|
serializer_class = serializers.GuideSerializer
|
||||||
|
|
||||||
|
|
||||||
|
class GuideRetrieveView(GuideViewMixin, generics.RetrieveAPIView):
|
||||||
|
"""Retrieve Guide view"""
|
||||||
|
serializer_class = serializers.GuideSerializer
|
||||||
|
|
||||||
|
|
||||||
|
class GuideCreateView(GuideViewMixin, generics.CreateAPIView):
|
||||||
|
"""Create Guide view"""
|
||||||
|
serializer_class = serializers.GuideSerializer
|
||||||
|
|
||||||
|
|
||||||
|
class GuideDestroyView(GuideViewMixin, generics.DestroyAPIView):
|
||||||
|
"""Destroy Guide view"""
|
||||||
|
serializer_class = serializers.GuideSerializer
|
||||||
|
|
||||||
|
|
||||||
|
class GuideUpdateView(GuideViewMixin, generics.UpdateAPIView):
|
||||||
|
"""Update Guide view"""
|
||||||
|
serializer = serializers.GuideSerializer
|
||||||
|
|
||||||
0
apps/collection/views/web.py
Normal file
0
apps/collection/views/web.py
Normal file
|
|
@ -20,4 +20,5 @@ app_name = 'web'
|
||||||
urlpatterns = [
|
urlpatterns = [
|
||||||
path('account/', include('account.urls.web')),
|
path('account/', include('account.urls.web')),
|
||||||
path('news/', include('news.urls.web')),
|
path('news/', include('news.urls.web')),
|
||||||
|
path('collection/', include('collection.urls.web'))
|
||||||
]
|
]
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user