61 lines
2.0 KiB
Python
61 lines
2.0 KiB
Python
from django_core.mixins import BaseViewSetMixin
|
|
from drf_spectacular.utils import extend_schema
|
|
from rest_framework import viewsets
|
|
from rest_framework.permissions import IsAdminUser
|
|
from rest_framework.viewsets import ModelViewSet
|
|
|
|
# core
|
|
from core.apps.evaluation.models.bonus import BonusCategory, EmployeeBonus, BaseValueBonus
|
|
from core.apps.evaluation.serializers.bonus.Bonus import BonusCategorySerializer, \
|
|
BonusCategoryListSerializer, EmployeeBonusListSerializer, BonusEmployeeBonusSerializer, BaseBonusSerializer
|
|
|
|
|
|
@extend_schema(tags=["BaseBonus"])
|
|
class BaseBonusViewSet(BaseViewSetMixin, viewsets.ModelViewSet):
|
|
queryset = BaseValueBonus.objects.all()
|
|
serializer_class = BaseBonusSerializer
|
|
|
|
|
|
@extend_schema(tags=["Bonus-Category"])
|
|
class BonusTypeView(BaseViewSetMixin, ModelViewSet):
|
|
queryset = BonusCategory.objects.all()
|
|
|
|
serializer_class = BonusCategorySerializer
|
|
|
|
action_serializer_class = {
|
|
'create': BonusCategorySerializer,
|
|
'update': BonusCategorySerializer,
|
|
'partial_update': BonusCategorySerializer,
|
|
'list': BonusCategoryListSerializer,
|
|
'retrieve': BonusCategoryListSerializer,
|
|
}
|
|
|
|
action_permission_classes = {
|
|
'create': [IsAdminUser],
|
|
'update': [IsAdminUser],
|
|
'partial_update': [IsAdminUser],
|
|
'destroy': [IsAdminUser],
|
|
'list': [IsAdminUser],
|
|
}
|
|
|
|
|
|
class BonusEmployeeViewSet(BaseViewSetMixin, ModelViewSet):
|
|
queryset = EmployeeBonus.objects.all()
|
|
serializer_class = BonusEmployeeBonusSerializer
|
|
|
|
action_serializer_class = {
|
|
'create': BonusEmployeeBonusSerializer,
|
|
'update': BonusEmployeeBonusSerializer,
|
|
'partial_update': BonusEmployeeBonusSerializer,
|
|
'list': EmployeeBonusListSerializer,
|
|
'retrieve': EmployeeBonusListSerializer,
|
|
}
|
|
|
|
action_permission_classes = {
|
|
'create': [IsAdminUser],
|
|
'update': [IsAdminUser],
|
|
'partial_update': [IsAdminUser],
|
|
'destroy': [IsAdminUser],
|
|
'list': [IsAdminUser],
|
|
}
|