cma_search/server/apps/consulting/views.py

55 lines
2.5 KiB
Python

from django.conf import settings
from django.core.cache import cache
from django.db.models import Count, Q
from django.db.models.query import QuerySet
from django.http import request
from django.shortcuts import render
from django.utils import timezone
from rest_framework import status
from rest_framework.decorators import action, permission_classes
from rest_framework.exceptions import PermissionDenied
from rest_framework.mixins import CreateModelMixin, DestroyModelMixin, ListModelMixin, RetrieveModelMixin
from rest_framework.permissions import IsAdminUser
from rest_framework.response import Response
from rest_framework.viewsets import GenericViewSet, ModelViewSet
from utils.pagination import PageOrNot
from apps.system.mixins import CreateUpdateCustomMixin, CreateUpdateModelAMixin, OptimizationMixin
from apps.system.models import Organization
from apps.system.permission import get_permission_list, has_permission
from apps.system.permission_data import RbacFilterSet
from .models import *
from .serializers import *
# Create your views here.
class RegulatoryViewSet(OptimizationMixin, PageOrNot, CreateUpdateModelAMixin, ModelViewSet):
perms_map = {'get': '*', 'post': 'regulatory_create',
'put': 'regulatory_update', 'delete': 'regulatory_delete'}
queryset = Regulatory.objects.all()
serializer_class = RegulatorySerializer
ordering = ['-id']
search_fields = ['provinces']
ordering_fields = ['provinces']
filterset_fields = ['provinces']
class ProfessionalViewSet(OptimizationMixin, PageOrNot, CreateUpdateModelAMixin, ModelViewSet):
perms_map = {'get': '*', 'post': 'professional_create',
'put': 'professional_update', 'delete': 'professional_delete'}
queryset = Professional.objects.all()
serializer_class = ProfessionalSerializer
ordering = ['-id']
class PolicyViewSet(OptimizationMixin, PageOrNot, CreateUpdateModelAMixin, ModelViewSet):
perms_map = {'get': '*', 'post': 'policy_create',
'put': 'policy_update', 'delete': 'policy_delete'}
queryset = Policy.objects.all()
serializer_class = PolicySerializer
ordering = ['-id']
class ValidationViewSet(OptimizationMixin, PageOrNot, CreateUpdateModelAMixin, ModelViewSet):
perms_map = {'get': '*', 'post': 'validation_create',
'put': 'policy_update', 'delete': 'validation_delete'}
queryset = Validation.objects.all()
serializer_class = ValidationSerializer
ordering = ['-id']
search_fields = ['provinces']
ordering_fields = ['provinces']
filterset_fields = ['provinces']