create award for employee and bind
This commit is contained in:
parent
e8c043d2ed
commit
f52016bfee
|
|
@ -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."""
|
||||
|
||||
|
|
|
|||
|
|
@ -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'),
|
||||
|
|
|
|||
|
|
@ -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()
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user