check by content_type
This commit is contained in:
parent
b778661564
commit
786dbfc739
|
|
@ -1,5 +1,6 @@
|
|||
"""Establishment app views."""
|
||||
from django.conf import settings
|
||||
from django.contrib.contenttypes.models import ContentType
|
||||
from django.db import transaction
|
||||
from django.db.models.query_utils import Q
|
||||
from django.http import Http404
|
||||
|
|
@ -950,3 +951,28 @@ class TeamMemberDeleteView(generics.DestroyAPIView):
|
|||
team_role_revoked.delay(self.kwargs['user_id'], self.request.country_code, establishment.name)
|
||||
else:
|
||||
team_role_revoked(self.kwargs['user_id'], self.request.country_code, establishment.name)
|
||||
|
||||
|
||||
class EstablishmentAwardCreateAndBind(generics.CreateAPIView, generics.DestroyAPIView):
|
||||
queryset = main_models.Award.objects.with_base_related().all()
|
||||
permission_classes = get_permission_classes()
|
||||
serializer_class = serializers.BackEstablishmentAwardCreateSerializer
|
||||
|
||||
def _award_list_for_establishment(self, establishment_id: int, status: int) -> Response:
|
||||
awards = main_models.Award.objects.with_base_related().filter(
|
||||
object_id=establishment_id,
|
||||
content_type=ContentType.objects.get_for_model(models.Establishment)
|
||||
)
|
||||
response_serializer = main_serializers.AwardBaseSerializer(awards, many=True)
|
||||
headers = self.get_success_headers(response_serializer.data)
|
||||
return Response(response_serializer.data, status=status, headers=headers)
|
||||
|
||||
def create(self, request, *args, **kwargs):
|
||||
"""Overridden create method."""
|
||||
super().create(request, args, kwargs)
|
||||
return self._award_list_for_establishment(kwargs['establishment_id'], status.HTTP_201_CREATED)
|
||||
|
||||
def delete(self, request, *args, **kwargs):
|
||||
establishment = get_object_or_404(models.Establishment, id=kwargs['establishment_id'])
|
||||
establishment.remove_award(kwargs['award_id'])
|
||||
return self._award_list_for_establishment(kwargs['establishment_id'], status.HTTP_200_OK)
|
||||
Loading…
Reference in New Issue
Block a user