create destroy mixin
This commit is contained in:
parent
801f5fce24
commit
429825804a
|
|
@ -196,6 +196,7 @@ class News(GalleryModelMixin, BaseAttributes, TranslatedFieldsMixin, HasTagsMixi
|
||||||
views_count = models.OneToOneField('rating.ViewCount', blank=True, null=True, on_delete=models.SET_NULL)
|
views_count = models.OneToOneField('rating.ViewCount', blank=True, null=True, on_delete=models.SET_NULL)
|
||||||
ratings = generic.GenericRelation(Rating)
|
ratings = generic.GenericRelation(Rating)
|
||||||
favorites = generic.GenericRelation(to='favorites.Favorites')
|
favorites = generic.GenericRelation(to='favorites.Favorites')
|
||||||
|
carousels = generic.GenericRelation(to='main.Carousel')
|
||||||
agenda = models.ForeignKey('news.Agenda', blank=True, null=True,
|
agenda = models.ForeignKey('news.Agenda', blank=True, null=True,
|
||||||
on_delete=models.SET_NULL,
|
on_delete=models.SET_NULL,
|
||||||
verbose_name=_('agenda'))
|
verbose_name=_('agenda'))
|
||||||
|
|
|
||||||
|
|
@ -85,7 +85,7 @@ class JWTGenericViewMixin:
|
||||||
value=cookie.value,
|
value=cookie.value,
|
||||||
secure=cookie.secure,
|
secure=cookie.secure,
|
||||||
httponly=cookie.http_only,
|
httponly=cookie.http_only,
|
||||||
max_age=cookie.max_age,)
|
max_age=cookie.max_age, )
|
||||||
return response
|
return response
|
||||||
|
|
||||||
def _get_tokens_from_cookies(self, request, cookies: dict = None):
|
def _get_tokens_from_cookies(self, request, cookies: dict = None):
|
||||||
|
|
@ -126,9 +126,8 @@ class CreateDestroyGalleryViewMixin(generics.CreateAPIView,
|
||||||
return Response(status=status.HTTP_204_NO_CONTENT)
|
return Response(status=status.HTTP_204_NO_CONTENT)
|
||||||
|
|
||||||
|
|
||||||
class FavoritesCreateDestroyMixinView(generics.CreateAPIView,
|
class BaseCreateDestroyMixinView(generics.CreateAPIView, generics.DestroyAPIView):
|
||||||
generics.DestroyAPIView):
|
"""Base Create Destroy mixin."""
|
||||||
"""Favorites Create Destroy mixin."""
|
|
||||||
|
|
||||||
_model = None
|
_model = None
|
||||||
serializer_class = None
|
serializer_class = None
|
||||||
|
|
@ -137,16 +136,6 @@ class FavoritesCreateDestroyMixinView(generics.CreateAPIView,
|
||||||
def get_base_object(self):
|
def get_base_object(self):
|
||||||
return get_object_or_404(self._model, slug=self.kwargs['slug'])
|
return get_object_or_404(self._model, slug=self.kwargs['slug'])
|
||||||
|
|
||||||
def get_object(self):
|
|
||||||
"""
|
|
||||||
Returns the object the view is displaying.
|
|
||||||
"""
|
|
||||||
obj = self.get_base_object()
|
|
||||||
favorites = get_object_or_404(obj.favorites.filter(user=self.request.user))
|
|
||||||
# May raise a permission denied
|
|
||||||
self.check_object_permissions(self.request, favorites)
|
|
||||||
return favorites
|
|
||||||
|
|
||||||
def es_update_base_object(self):
|
def es_update_base_object(self):
|
||||||
es_update(self.get_base_object())
|
es_update(self.get_base_object())
|
||||||
|
|
||||||
|
|
@ -159,6 +148,34 @@ class FavoritesCreateDestroyMixinView(generics.CreateAPIView,
|
||||||
self.es_update_base_object()
|
self.es_update_base_object()
|
||||||
|
|
||||||
|
|
||||||
|
class FavoritesCreateDestroyMixinView(BaseCreateDestroyMixinView):
|
||||||
|
"""Favorites Create Destroy mixin."""
|
||||||
|
|
||||||
|
def get_object(self):
|
||||||
|
"""
|
||||||
|
Returns the object the view is displaying.
|
||||||
|
"""
|
||||||
|
obj = self.get_base_object()
|
||||||
|
favorites = get_object_or_404(obj.favorites.filter(user=self.request.user))
|
||||||
|
# May raise a permission denied
|
||||||
|
self.check_object_permissions(self.request, favorites)
|
||||||
|
return favorites
|
||||||
|
|
||||||
|
|
||||||
|
class CarouselCreateDestroyMixinView(BaseCreateDestroyMixinView):
|
||||||
|
"""Carousel Create Destroy mixin."""
|
||||||
|
|
||||||
|
def get_object(self):
|
||||||
|
"""
|
||||||
|
Returns the object the view is displaying.
|
||||||
|
"""
|
||||||
|
obj = self.get_base_object()
|
||||||
|
carousels = get_object_or_404(obj.carousels.filter(user=self.request.user))
|
||||||
|
# May raise a permission denied
|
||||||
|
self.check_object_permissions(self.request, carousels)
|
||||||
|
return carousels
|
||||||
|
|
||||||
|
|
||||||
# BackOffice user`s views & viewsets
|
# BackOffice user`s views & viewsets
|
||||||
class BindObjectMixin:
|
class BindObjectMixin:
|
||||||
"""Bind object mixin."""
|
"""Bind object mixin."""
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user