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 location.serializers import CountrySerializer
from main import models from main import models
from establishment.models import Employee
from tag.serializers import TagBackOfficeSerializer from tag.serializers import TagBackOfficeSerializer
from utils.serializers import ProjectModelSerializer, RecursiveFieldSerializer, TranslatedField 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): class CarouselListSerializer(serializers.ModelSerializer):
"""Serializer for retrieving list of carousel items.""" """Serializer for retrieving list of carousel items."""

View File

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

View File

@ -21,6 +21,13 @@ class AwardLstView(generics.ListCreateAPIView):
filterset_class = AwardFilter 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): class AwardRUDView(generics.RetrieveUpdateDestroyAPIView):
"""Award RUD view.""" """Award RUD view."""
queryset = Award.objects.all().with_base_related() queryset = Award.objects.all().with_base_related()