79 lines
2.7 KiB
Python
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)
|