63 lines
2.0 KiB
Python
63 lines
2.0 KiB
Python
from django.shortcuts import render
|
|
|
|
# Create your views here.
|
|
from django.shortcuts import render
|
|
from apps.utils.viewsets import CustomModelViewSet, CustomGenericViewSet
|
|
from .models import PatentInfo, Papersecret, PatentRecord
|
|
from .serializers import PatentInfoSerializer, PaperSeSerializer, PatentRecordSerializer
|
|
|
|
from rest_framework.exceptions import ParseError
|
|
from rest_framework.response import Response
|
|
from rest_framework.decorators import action
|
|
|
|
class PatentInfoViewSet(CustomModelViewSet):
|
|
"""list: 专利
|
|
|
|
专利
|
|
"""
|
|
queryset = PatentInfo.objects.all()
|
|
serializer_class = PatentInfoSerializer
|
|
filterset_fields = ["name", "author", "type"]
|
|
ordering = ["-create_time", "name", "author", "type"]
|
|
|
|
|
|
class PapersecretViewSet(CustomModelViewSet):
|
|
"""list: 论文申密审批
|
|
|
|
论文申密审批
|
|
"""
|
|
queryset = Papersecret.objects.all()
|
|
serializer_class = PaperSeSerializer
|
|
filterset_fields = ["paper_name", "author"]
|
|
ordering = ["-create_time", "paper_name"]
|
|
|
|
|
|
class PatentRecordViewSet(CustomModelViewSet):
|
|
"""list: 专利台账登记
|
|
|
|
专利台账登记
|
|
"""
|
|
queryset = PatentRecord.objects.all()
|
|
serializer_class = PatentRecordSerializer
|
|
select_related_fields = ["patent"]
|
|
filterset_fields = ["volume_number", "patent","inventors"]
|
|
ordering = ["-create_time", "volume_number"]
|
|
search_fields = ["volume_number", "patent", "inventors"]
|
|
|
|
def get_queryset(self):
|
|
qs = super().get_queryset()
|
|
patent_type = self.request.query_params.get('patent_type', None)
|
|
if patent_type:
|
|
qs = qs.filter(patent__type=patent_type)
|
|
return qs
|
|
|
|
|
|
@action(detail=False, methods=['get'])
|
|
def patent_name(self, request):
|
|
"""获取专利列表"""
|
|
search = request.query_params.get('search', '')
|
|
queryset = PatentInfo.objects.all()
|
|
if search:
|
|
queryset = queryset.filter(name__icontains=search)
|
|
patents = [{'id': patent.id, 'name': patent.name} for patent in queryset]
|
|
return Response(patents) |