Files
ProFi/employees/views.py

30 lines
1.3 KiB
Python
Raw Normal View History

2025-05-19 17:00:02 +03:00
from rest_framework import viewsets
from rest_framework.filters import SearchFilter, OrderingFilter
from django_filters.rest_framework import DjangoFilterBackend
from .models import Position, Department, Employee
from .serializers import PositionSerializer, DepartmentSerializer, EmployeeSerializer
from .filters import EmployeeFilter # Фильтры будут добавлены позже
2025-05-18 21:29:04 +03:00
2025-05-19 17:00:02 +03:00
class PositionViewSet(viewsets.ModelViewSet):
queryset = Position.objects.all()
serializer_class = PositionSerializer
filter_backends = [SearchFilter, OrderingFilter]
search_fields = ["name"]
ordering_fields = ["name"]
class DepartmentViewSet(viewsets.ModelViewSet):
queryset = Department.objects.all()
serializer_class = DepartmentSerializer
filter_backends = [SearchFilter, OrderingFilter]
search_fields = ["name"]
ordering_fields = ["name"]
class EmployeeViewSet(viewsets.ModelViewSet):
queryset = Employee.objects.all()
serializer_class = EmployeeSerializer
filter_backends = [DjangoFilterBackend, SearchFilter, OrderingFilter]
filterset_class = EmployeeFilter
search_fields = ["account__first_name", "account__last_name", "position__name", "department__name"]
ordering_fields = ["department", "position", "account__last_name"]