check by content_type
This commit is contained in:
parent
b778661564
commit
786dbfc739
|
|
@ -1,5 +1,6 @@
|
||||||
"""Establishment app views."""
|
"""Establishment app views."""
|
||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
|
from django.contrib.contenttypes.models import ContentType
|
||||||
from django.db import transaction
|
from django.db import transaction
|
||||||
from django.db.models.query_utils import Q
|
from django.db.models.query_utils import Q
|
||||||
from django.http import Http404
|
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)
|
team_role_revoked.delay(self.kwargs['user_id'], self.request.country_code, establishment.name)
|
||||||
else:
|
else:
|
||||||
team_role_revoked(self.kwargs['user_id'], self.request.country_code, establishment.name)
|
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