Files
api-bashgah/apps/cuser/views.py
T
2026-06-15 10:57:28 +03:30

79 lines
2.7 KiB
Python

from rest_framework.views import APIView
from rest_framework.permissions import IsAuthenticated
from django.contrib.auth import get_user_model
from apps.cuser.models import CUser as CUserModel
from apps.project.models import Project as ProjectModel
from rest_framework import serializers
from rest_framework.response import Response
from rest_framework import status
from rest_framework.generics import ListAPIView
from utils.standard_pagination import StandardPagination
from utils.tools.inline_serializer import inline_serializer
from apps.emtiyazat.selector import get_emtiyaz_mojri
#get user model
CUserModel2 = get_user_model()
class MojriInfoApiview(APIView):
permission_classes = (IsAuthenticated, )
def get(self, request):
user_project_count = ProjectModel.objects.filter(cuser=request.user).count()
name_family = request.user.name_family
step = request.user.step
if request.user.user_profile.ax_mojri:
image = request.user.user_profile.ax_mojri.url
else:
image = '/media/media/app/usericon.jpg'
emtiyaz = get_emtiyaz_mojri(cuser=request.user)
output = {
'project_count': user_project_count,
'name_family': name_family,
'emtiyaz': emtiyaz,
'step': step,
'image': image
}
return Response(output, status=status.HTTP_200_OK)
class ListMojrian(ListAPIView):
class OutputSerializer(serializers.ModelSerializer):
user_profile = inline_serializer(many=False, fields={
'codemeli': serializers.IntegerField(),
'city': inline_serializer(many=False, fields={
'id': serializers.IntegerField(),
'name': serializers.CharField(),
'ostan': inline_serializer(many=False, fields={
'id': serializers.IntegerField(),
'name': serializers.CharField(),
})
}),
'address': serializers.CharField(),
'codeposti': serializers.IntegerField(),
'ax_mojri': serializers.CharField(),
'ax_meli': serializers.CharField(),
'ax_fani': serializers.CharField(),
'ax_sayer': serializers.CharField(),
})
class Meta:
model = CUserModel2
fields = ('id', 'name_family', 'mobile', 'uuid', 'user_profile')
permission_classes = (IsAuthenticated,)
serializer_class = OutputSerializer
pagination_class = StandardPagination
def get_queryset(self):
mojri_status = self.request.query_params.get('status', 'WT')
return CUserModel2.objects.filter(type='MO', is_superuser=False, mojri_status=mojri_status)