create award for employee and bind

This commit is contained in:
Kuroshini 2020-01-23 22:56:01 +03:00
parent e8c043d2ed
commit f52016bfee
3 changed files with 34 additions and 0 deletions

View File

@ -4,6 +4,7 @@ from rest_framework import serializers
from location.serializers import CountrySerializer
from main import models
from establishment.models import Employee
from tag.serializers import TagBackOfficeSerializer
from utils.serializers import ProjectModelSerializer, RecursiveFieldSerializer, TranslatedField
@ -241,6 +242,31 @@ class BackAwardSerializer(AwardBaseSerializer):
]
class BackAwardEmployeeCreateSerializer(serializers.ModelSerializer):
"""Award, The Creator."""
award_type = serializers.PrimaryKeyRelatedField(required=True, queryset=models.AwardType.objects.all())
title = serializers.CharField(write_only=True)
def get_title(self, obj):
pass
class Meta:
model = models.Award
fields = (
'id',
'award_type',
'title',
'vintage_year',
)
def validate(self, attrs):
attrs['object_id'] = self.context.get('request').parser_context.get('kwargs')['employee_id']
attrs['content_type'] = ContentType.objects.get_for_model(Employee)
attrs['title'] = {self.context.get('request').locale: attrs['title']}
return attrs
class CarouselListSerializer(serializers.ModelSerializer):
"""Serializer for retrieving list of carousel items."""

View File

@ -8,6 +8,7 @@ app_name = 'main'
urlpatterns = [
path('awards/', views.AwardLstView.as_view(), name='awards-list-create'),
path('awards/<int:id>/', views.AwardRUDView.as_view(), name='awards-rud'),
path('awards/create-and-bind/<int:employee_id>/', views.AwardCreateAndBind.as_view(), name='award-employee-create'),
path('award-types/', views.AwardTypesListView.as_view(), name='awards-types-list'),
path('content_type/', views.ContentTypeView.as_view(), name='content_type-list'),
path('sites/', views.SiteListBackOfficeView.as_view(), name='site-list-create'),

View File

@ -21,6 +21,13 @@ class AwardLstView(generics.ListCreateAPIView):
filterset_class = AwardFilter
class AwardCreateAndBind(generics.CreateAPIView):
"""Award create and bind to employee by id"""
queryset = Award.objects.all().with_base_related()
serializer_class = serializers.BackAwardEmployeeCreateSerializer
permission_classes = (permissions.IsAdminUser, )
class AwardRUDView(generics.RetrieveUpdateDestroyAPIView):
"""Award RUD view."""
queryset = Award.objects.all().with_base_related()