diff --git a/apps/establishment/models.py b/apps/establishment/models.py index 6332d97e..56537ebb 100644 --- a/apps/establishment/models.py +++ b/apps/establishment/models.py @@ -6,6 +6,7 @@ from typing import List import elasticsearch_dsl from django.conf import settings +from django.shortcuts import get_object_or_404 from django.contrib.contenttypes import fields as generic from django.contrib.gis.db.models.functions import Distance from django.contrib.gis.geos import Point @@ -1155,6 +1156,11 @@ class Employee(BaseAttributes): ) return image_property + def remove_award(self, award_id: int): + from main.models import Award + award = get_object_or_404(Award, pk=award_id) + self.awards.remove(award) + class EstablishmentScheduleQuerySet(models.QuerySet): """QuerySet for model EstablishmentSchedule""" diff --git a/apps/establishment/urls/back.py b/apps/establishment/urls/back.py index 00d44fc2..2de741c1 100644 --- a/apps/establishment/urls/back.py +++ b/apps/establishment/urls/back.py @@ -47,6 +47,7 @@ urlpatterns = [ path('employees/', views.EmployeeListCreateView.as_view(), name='employees'), path('employees/search/', views.EmployeesListSearchViews.as_view(), name='employees-search'), path('employees//', views.EmployeeRUDView.as_view(), name='employees-rud'), + path('employees//', views.RemoveAwardView.as_view(), name='employees-award-delete'), path('/employee//position/', views.EstablishmentEmployeeCreateView.as_view(), name='employees-establishment-create'), diff --git a/apps/establishment/views/back.py b/apps/establishment/views/back.py index 04ba6581..6a7ccde8 100644 --- a/apps/establishment/views/back.py +++ b/apps/establishment/views/back.py @@ -218,6 +218,18 @@ class EmployeeRUDView(generics.RetrieveUpdateDestroyAPIView): queryset = models.Employee.objects.all().with_back_office_related() +class RemoveAwardView(generics.DestroyAPIView): + lookup_field = 'pk' + serializer_class = serializers.EmployeeBackSerializers + queryset = models.Employee.objects.all().with_back_office_related() + permission_classes = (permissions.AllowAny, ) + + def get_object(self): + employee = super().get_object() + employee.remove_award(self.kwargs['award_id']) + return employee + + class EstablishmentTypeListCreateView(generics.ListCreateAPIView): """Establishment type list/create view.""" serializer_class = serializers.EstablishmentTypeBaseSerializer