82 lines
3.3 KiB
Python
82 lines
3.3 KiB
Python
from django.shortcuts import render
|
|
import rest_framework
|
|
from rest_framework.viewsets import ModelViewSet, GenericViewSet
|
|
from rest_framework.response import Response
|
|
from rest_framework import status
|
|
from .models import *
|
|
from .serializers import *
|
|
from apps.system.models import Dict
|
|
from apps.system.permission_data import RbacFilterSet
|
|
from apps.system.mixins import CreateUpdateCustomMixin, OptimizationMixin
|
|
import random
|
|
|
|
# Create your views here.
|
|
class ApplicationViewSet(CreateUpdateCustomMixin, ModelViewSet):
|
|
"""
|
|
认证申请
|
|
"""
|
|
perms_map = {'get': 'application_view', 'post':'application_create', 'put':'application_update','delete': 'application_delete'}
|
|
queryset = Application.objects.all()
|
|
serializer_class = ApplicationCreateSerializer
|
|
ordering = ['-create_time']
|
|
|
|
def get_serializer_class(self):
|
|
if self.action == 'create':
|
|
return ApplicationCreateSerializer
|
|
else:
|
|
return ApplicationUpdateSerializer
|
|
|
|
def perform_create(self, serializer):
|
|
serializer.save(create_by = self.request.user, belong_dept=self.request.user.dept, number=random.randrange(1000,2000))
|
|
|
|
class SubApplicationViewSet(CreateUpdateCustomMixin, ModelViewSet):
|
|
"""
|
|
子认证申请
|
|
"""
|
|
perms_map = {'get': 'application_view', 'post':'application_create', 'put':'application_update','delete': 'application_delete'}
|
|
queryset = SubApplication.objects.all()
|
|
serializer_class = SubApplicationCreateSerializer
|
|
filterset_fields = ['application']
|
|
ordering = ['-create_time']
|
|
|
|
def get_serializer_class(self):
|
|
if self.action == 'create':
|
|
return SubApplicationCreateSerializer
|
|
else:
|
|
return SubApplicationUpdateSerializer
|
|
|
|
def create(self, request, *args, **kwargs):
|
|
postdata = request.data
|
|
postdata['number'] = random.randrange(1000,2000)
|
|
serializer = self.get_serializer(data=postdata)
|
|
serializer.is_valid(raise_exception=True)
|
|
self.perform_create(serializer)
|
|
headers = self.get_success_headers(serializer.data)
|
|
return Response(serializer.data, status=status.HTTP_201_CREATED, headers=headers)
|
|
|
|
def paginate_queryset(self, queryset):
|
|
|
|
if ((not self.request.query_params.get('page', None)) and (self.request.query_params.get('application', None))) or (self.paginator is None):
|
|
return None
|
|
return self.paginator.paginate_queryset(queryset, self.request, view=self)
|
|
|
|
class CertappViewset(CreateUpdateCustomMixin, ModelViewSet):
|
|
"""
|
|
申请受理
|
|
"""
|
|
perms_map = {'get': 'certapp_view', 'post':'certapp_create', 'put':'certapp_update','delete': 'certapp_delete'}
|
|
queryset = CertApp.objects.all()
|
|
serializer_class = CertappSerializer
|
|
ordering = ['-create_time']
|
|
|
|
def create(self, request, *args, **kwargs):
|
|
postdata = request.data
|
|
postdata['number'] = random.randrange(1000,2000)
|
|
if postdata.get('field_code', None):
|
|
postdata['cert_field'] = Dict.objects.get(code=postdata['field_code']).id
|
|
print(postdata)
|
|
serializer = self.get_serializer(data=postdata)
|
|
serializer.is_valid(raise_exception=True)
|
|
self.perform_create(serializer)
|
|
headers = self.get_success_headers(serializer.data)
|
|
return Response(serializer.data, status=status.HTTP_201_CREATED, headers=headers) |