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 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."""
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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'),
|
||||||
|
|
|
||||||
|
|
@ -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()
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user