back carousel api and test
This commit is contained in:
parent
a660ffcc31
commit
17f67d020a
|
|
@ -485,7 +485,7 @@ class EstablishmentCarouselCreateSerializer(CarouselCreateSerializer):
|
||||||
"""Serializer to carousel object w/ model News."""
|
"""Serializer to carousel object w/ model News."""
|
||||||
|
|
||||||
def validate(self, attrs):
|
def validate(self, attrs):
|
||||||
establishment = models.Establishment.objects.filter(slug=self.slug).first()
|
establishment = models.Establishment.objects.filter(pk=self.pk).first()
|
||||||
if not establishment:
|
if not establishment:
|
||||||
raise serializers.ValidationError({'detail': _('Object not found.')})
|
raise serializers.ValidationError({'detail': _('Object not found.')})
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -445,24 +445,13 @@ class EstablishmentWebFavoriteTests(ChildTestCase):
|
||||||
|
|
||||||
class EstablishmentCarouselTests(ChildTestCase):
|
class EstablishmentCarouselTests(ChildTestCase):
|
||||||
|
|
||||||
def test_web_carousel_CR(self):
|
def test_back_carousel_CR(self):
|
||||||
data = {
|
data = {
|
||||||
"object_id": self.establishment.id
|
"object_id": self.establishment.id
|
||||||
}
|
}
|
||||||
|
|
||||||
response = self.client.post(f'/api/web/establishments/slug/{self.establishment.slug}/carousels/', data=data)
|
response = self.client.post(f'/api/back/establishments/{self.establishment.id}/carousels/', data=data)
|
||||||
self.assertEqual(response.status_code, status.HTTP_201_CREATED)
|
self.assertEqual(response.status_code, status.HTTP_201_CREATED)
|
||||||
|
|
||||||
response = self.client.delete(f'/api/web/establishments/slug/{self.establishment.slug}/carousels/')
|
response = self.client.delete(f'/api/back/establishments/{self.establishment.id}/carousels/')
|
||||||
self.assertEqual(response.status_code, status.HTTP_204_NO_CONTENT)
|
|
||||||
|
|
||||||
def test_mobile_carousel_CR(self):
|
|
||||||
data = {
|
|
||||||
"object_id": self.establishment.id
|
|
||||||
}
|
|
||||||
|
|
||||||
response = self.client.post(f'/api/mobile/establishments/slug/{self.establishment.slug}/carousels/', data=data)
|
|
||||||
self.assertEqual(response.status_code, status.HTTP_201_CREATED)
|
|
||||||
|
|
||||||
response = self.client.delete(f'/api/mobile/establishments/slug/{self.establishment.slug}/carousels/')
|
|
||||||
self.assertEqual(response.status_code, status.HTTP_204_NO_CONTENT)
|
self.assertEqual(response.status_code, status.HTTP_204_NO_CONTENT)
|
||||||
|
|
|
||||||
|
|
@ -9,6 +9,8 @@ app_name = 'establishment'
|
||||||
urlpatterns = [
|
urlpatterns = [
|
||||||
path('', views.EstablishmentListCreateView.as_view(), name='list'),
|
path('', views.EstablishmentListCreateView.as_view(), name='list'),
|
||||||
path('<int:pk>/', views.EstablishmentRUDView.as_view(), name='detail'),
|
path('<int:pk>/', views.EstablishmentRUDView.as_view(), name='detail'),
|
||||||
|
path('<int:pk>/carousels/', views.EstablishmentCarouselCreateDestroyView.as_view(),
|
||||||
|
name='create-destroy-carousels'),
|
||||||
path('<int:pk>/schedule/<int:schedule_id>/', views.EstablishmentScheduleRUDView.as_view(),
|
path('<int:pk>/schedule/<int:schedule_id>/', views.EstablishmentScheduleRUDView.as_view(),
|
||||||
name='schedule-rud'),
|
name='schedule-rud'),
|
||||||
path('<int:pk>/schedule/', views.EstablishmentScheduleCreateView.as_view(),
|
path('<int:pk>/schedule/', views.EstablishmentScheduleCreateView.as_view(),
|
||||||
|
|
|
||||||
|
|
@ -18,6 +18,4 @@ urlpatterns = [
|
||||||
name='rud-comment'),
|
name='rud-comment'),
|
||||||
path('slug/<slug:slug>/favorites/', views.EstablishmentFavoritesCreateDestroyView.as_view(),
|
path('slug/<slug:slug>/favorites/', views.EstablishmentFavoritesCreateDestroyView.as_view(),
|
||||||
name='create-destroy-favorites'),
|
name='create-destroy-favorites'),
|
||||||
path('slug/<slug:slug>/carousels/', views.EstablishmentCarouselCreateDestroyView.as_view(),
|
|
||||||
name='create-destroy-carousels')
|
|
||||||
]
|
]
|
||||||
|
|
|
||||||
|
|
@ -275,7 +275,7 @@ class NewsCarouselCreateSerializer(CarouselCreateSerializer):
|
||||||
"""Serializer to carousel object w/ model News."""
|
"""Serializer to carousel object w/ model News."""
|
||||||
|
|
||||||
def validate(self, attrs):
|
def validate(self, attrs):
|
||||||
news = models.News.objects.filter(slug=self.slug).first()
|
news = models.News.objects.filter(pk=self.pk).first()
|
||||||
if not news:
|
if not news:
|
||||||
raise serializers.ValidationError({'detail': _('Object not found.')})
|
raise serializers.ValidationError({'detail': _('Object not found.')})
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -132,24 +132,13 @@ class NewsTestCase(BaseTestCase):
|
||||||
|
|
||||||
class NewsCarouselTests(BaseTestCase):
|
class NewsCarouselTests(BaseTestCase):
|
||||||
|
|
||||||
def test_web_carousel_CR(self):
|
def test_back_carousel_CR(self):
|
||||||
data = {
|
data = {
|
||||||
"object_id": self.test_news.id
|
"object_id": self.test_news.id
|
||||||
}
|
}
|
||||||
|
|
||||||
response = self.client.post(f'/api/web/news/slug/{self.test_news.slug}/carousels/', data=data)
|
response = self.client.post(f'/api/back/news/{self.test_news.id}/carousels/', data=data)
|
||||||
self.assertEqual(response.status_code, status.HTTP_201_CREATED)
|
self.assertEqual(response.status_code, status.HTTP_201_CREATED)
|
||||||
|
|
||||||
response = self.client.delete(f'/api/web/news/slug/{self.test_news.slug}/carousels/')
|
response = self.client.delete(f'/api/back/news/{self.test_news.id}/carousels/')
|
||||||
self.assertEqual(response.status_code, status.HTTP_204_NO_CONTENT)
|
|
||||||
|
|
||||||
def test_mobile_carousel_CR(self):
|
|
||||||
data = {
|
|
||||||
"object_id": self.test_news.id
|
|
||||||
}
|
|
||||||
|
|
||||||
response = self.client.post(f'/api/mobile/news/slug/{self.test_news.slug}/carousels/', data=data)
|
|
||||||
self.assertEqual(response.status_code, status.HTTP_201_CREATED)
|
|
||||||
|
|
||||||
response = self.client.delete(f'/api/mobile/news/slug/{self.test_news.slug}/carousels/')
|
|
||||||
self.assertEqual(response.status_code, status.HTTP_204_NO_CONTENT)
|
self.assertEqual(response.status_code, status.HTTP_204_NO_CONTENT)
|
||||||
|
|
|
||||||
|
|
@ -13,6 +13,5 @@ urlpatterns = [
|
||||||
name='gallery-list'),
|
name='gallery-list'),
|
||||||
path('<int:pk>/gallery/<int:image_id>/', views.NewsBackOfficeGalleryCreateDestroyView.as_view(),
|
path('<int:pk>/gallery/<int:image_id>/', views.NewsBackOfficeGalleryCreateDestroyView.as_view(),
|
||||||
name='gallery-create-destroy'),
|
name='gallery-create-destroy'),
|
||||||
path('slug/<slug:slug>/carousels/', views.NewsCarouselCreateDestroyView.as_view(),
|
path('<int:pk>/carousels/', views.NewsCarouselCreateDestroyView.as_view(), name='create-destroy-carousels'),
|
||||||
name='create-destroy-carousels'),
|
|
||||||
]
|
]
|
||||||
|
|
|
||||||
|
|
@ -7,6 +7,4 @@ common_urlpatterns = [
|
||||||
path('slug/<slug:slug>/', views.NewsDetailView.as_view(), name='rud'),
|
path('slug/<slug:slug>/', views.NewsDetailView.as_view(), name='rud'),
|
||||||
path('slug/<slug:slug>/favorites/', views.NewsFavoritesCreateDestroyView.as_view(),
|
path('slug/<slug:slug>/favorites/', views.NewsFavoritesCreateDestroyView.as_view(),
|
||||||
name='create-destroy-favorites'),
|
name='create-destroy-favorites'),
|
||||||
path('slug/<slug:slug>/carousels/', views.NewsCarouselCreateDestroyView.as_view(),
|
|
||||||
name='create-destroy-carousels'),
|
|
||||||
]
|
]
|
||||||
|
|
|
||||||
|
|
@ -115,8 +115,8 @@ class CarouselCreateSerializer(serializers.ModelSerializer):
|
||||||
return self.context.get('request')
|
return self.context.get('request')
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def slug(self):
|
def pk(self):
|
||||||
return self.request.parser_context.get('kwargs').get('slug')
|
return self.request.parser_context.get('kwargs').get('pk')
|
||||||
|
|
||||||
|
|
||||||
class RecursiveFieldSerializer(serializers.Serializer):
|
class RecursiveFieldSerializer(serializers.Serializer):
|
||||||
|
|
|
||||||
|
|
@ -155,6 +155,11 @@ class FavoritesCreateDestroyMixinView(BaseCreateDestroyMixinView):
|
||||||
class CarouselCreateDestroyMixinView(BaseCreateDestroyMixinView):
|
class CarouselCreateDestroyMixinView(BaseCreateDestroyMixinView):
|
||||||
"""Carousel Create Destroy mixin."""
|
"""Carousel Create Destroy mixin."""
|
||||||
|
|
||||||
|
lookup_field = 'id'
|
||||||
|
|
||||||
|
def get_base_object(self):
|
||||||
|
return get_object_or_404(self._model, id=self.kwargs['pk'])
|
||||||
|
|
||||||
def get_object(self):
|
def get_object(self):
|
||||||
"""
|
"""
|
||||||
Returns the object the view is displaying.
|
Returns the object the view is displaying.
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user