diff --git a/apps/main/urls/common.py b/apps/main/urls/common.py index 16b4b2af..d18f95a7 100644 --- a/apps/main/urls/common.py +++ b/apps/main/urls/common.py @@ -9,5 +9,9 @@ common_urlpatterns = [ path('awards//', AwardRetrieveView.as_view(), name='awards_retrieve'), path('carousel/', CarouselListView.as_view(), name='carousel-list'), path('determine-location/', DetermineLocation.as_view(), name='determine-location'), - path('content-pages/', ContentPage.as_view(), name='content-pages') + path('content-pages/', ContentPageView.as_view(), name='content-pages-list'), + path('content-pages/create/', ContentPageAdminView.as_view(), name='content-pages-admin-list'), + path('content-pages/slug//', ContentPageRetrieveView.as_view(), name='content-pages-retrieve'), + path('content-pages/update/slug//', ContentPageRetrieveAdminView.as_view(), + name='content-pages-admin-retrieve') ] diff --git a/apps/main/views/common.py b/apps/main/views/common.py index d5fc413e..bc03c60a 100644 --- a/apps/main/views/common.py +++ b/apps/main/views/common.py @@ -97,9 +97,35 @@ class DetermineLocation(generics.GenericAPIView): raise Http404 -class ContentPage(generics.ListCreateAPIView): +class ContentPageView(generics.ListAPIView): """Method to get content pages""" permission_classes = (permissions.AllowAny,) serializer_class = serializers.ContentPageSerializer queryset = models.ContentPage.objects.all() + + +class ContentPageAdminView(generics.ListCreateAPIView): + """Method to get content pages""" + + permission_classes = (permissions.IsAdminUser,) + serializer_class = serializers.ContentPageSerializer + queryset = models.ContentPage.objects.all() + + +class ContentPageRetrieveView(generics.RetrieveAPIView): + """Retrieve method to get content pages""" + + lookup_field = 'slug' + permission_classes = (permissions.AllowAny,) + serializer_class = serializers.ContentPageSerializer + queryset = models.ContentPage.objects.all() + + +class ContentPageRetrieveAdminView(generics.RetrieveUpdateDestroyAPIView): + """Retrieve method to get content pages""" + + lookup_field = 'slug' + permission_classes = (permissions.IsAdminUser,) + serializer_class = serializers.ContentPageSerializer + queryset = models.ContentPage.objects.all()