From d8d9a97746385b4f0732c3078616c626c87bbd6d Mon Sep 17 00:00:00 2001 From: Kuroshini Date: Thu, 23 Jan 2020 21:02:32 +0300 Subject: [PATCH] remove award from employee --- apps/establishment/models.py | 6 ++++++ apps/establishment/urls/back.py | 1 + apps/establishment/views/back.py | 12 ++++++++++++ 3 files changed, 19 insertions(+) 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