remove award from employee

This commit is contained in:
Kuroshini 2020-01-23 21:02:32 +03:00
parent 1c1d9ecbad
commit d8d9a97746
3 changed files with 19 additions and 0 deletions

View File

@ -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"""

View File

@ -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/<int:pk>/', views.EmployeeRUDView.as_view(), name='employees-rud'),
path('employees/<int:pk>/<int:award_id>', views.RemoveAwardView.as_view(), name='employees-award-delete'),
path('<int:establishment_id>/employee/<int:employee_id>/position/<int:position_id>',
views.EstablishmentEmployeeCreateView.as_view(),
name='employees-establishment-create'),

View File

@ -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