Files
Rasadyar_Kurdestan/panel/views.py
2026-01-18 11:59:48 +03:30

78 lines
3.0 KiB
Python

from django.shortcuts import render
from django.contrib.auth.models import User
from rest_framework import viewsets
from oauth2_provider.contrib.rest_framework import (
TokenHasReadWriteScope,
)
from notification.models import NotificationType
from authentication.models import UserProfile, UserMessage
from panel.models import (
PoultryRequest,
PoultryAssignmentInformation,
KillHouseCheckRequest,
KillHouseRequest,
ProvinceCheckOperatorRequest,
OperatorLastTimeEnter,
ReportingFieldRoleLimitation,
Group
)
from panel.poultry.serializers import (
PoultryRequestSerializer,
PoultryAssignmentInformationSerializer
)
from panel.ReportingPanel.serializer import (
ReportingFieldLimitationSerializer
)
from authentication.serializers import GroupSerializer
from rest_framework.response import Response
from rest_framework import status
from datetime import datetime
class OperatorLastTimeEnterViewSet(viewsets.ModelViewSet):
queryset = OperatorLastTimeEnter.objects.all()
permission_classes = [TokenHasReadWriteScope]
serializer_class = []
def update(self, request, *args, **kwargs):
time = request.data['time']
if UserProfile.objects.filter(user=request.user):
if not OperatorLastTimeEnter.objects.filter(
operator__exact=UserProfile.objects.get(user__exact=request.user)):
obj = OperatorLastTimeEnter()
else:
obj = OperatorLastTimeEnter.objects.get(
operator__exact=UserProfile.objects.get(user__exact=request.user))
if UserProfile.objects.get(user=request.user).role.name == "CityOperator":
obj.city_operator_last_time_check = time
obj.operator = UserProfile.objects.get(user=request.user)
elif UserProfile.objects.get(user=request.user).role.name == "ProvinceOperator":
obj.province_operator_last_time_check = time
obj.operator = UserProfile.objects.get(user=request.user)
elif UserProfile.objects.get(user=request.user).role.name == "KillHouse":
obj.kill_house_last_time_check = time
obj.operator = UserProfile.objects.get(user=request.user)
obj.save()
return Response({'msg': 'Done'}, status=status.HTTP_200_OK)
class ReportingFieldLimitationViewSet(viewsets.ModelViewSet):
queryset = ReportingFieldRoleLimitation.objects.all()
serializer_class = ReportingFieldLimitationSerializer
permission_classes = [TokenHasReadWriteScope]
def create(self, request, *args, **kwargs):
group = Group.objects.get(name__exact=request.data['role_name'])
request.data.pop('role_name')
serializer = self.serializer_class(data=request.data)
if serializer.is_valid():
obj = serializer.create(validated_data=request.data)
obj.role_name = group
obj.save()
serializer = self.serializer_class(obj)
return Response(serializer.data)
return Response(serializer.errors)