重构(dvadmin):所有包引入都加apps.
parent
a85e185d22
commit
959faf6ec4
|
@ -22,7 +22,7 @@ from django.urls import re_path, include
|
||||||
from django.views.static import serve
|
from django.views.static import serve
|
||||||
from rest_framework.views import APIView
|
from rest_framework.views import APIView
|
||||||
|
|
||||||
from apps.vadmin.utils.response import SuccessResponse
|
from apps.vadmin.op_drf.response import SuccessResponse
|
||||||
|
|
||||||
|
|
||||||
class CaptchaRefresh(APIView):
|
class CaptchaRefresh(APIView):
|
||||||
|
|
|
@ -2,6 +2,6 @@ from django.apps import AppConfig
|
||||||
|
|
||||||
|
|
||||||
class DpCmdbConfig(AppConfig):
|
class DpCmdbConfig(AppConfig):
|
||||||
name = 'vadmin.celery'
|
name = 'apps.vadmin.celery'
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
from django_celery_beat.models import IntervalSchedule, CrontabSchedule, PeriodicTask
|
from django_celery_beat.models import IntervalSchedule, CrontabSchedule, PeriodicTask
|
||||||
from rest_framework import serializers
|
from rest_framework import serializers
|
||||||
|
|
||||||
from ..op_drf.serializers import CustomModelSerializer
|
from apps.vadmin.op_drf.serializers import CustomModelSerializer
|
||||||
from ..utils.exceptions import APIException
|
from apps.vadmin.utils.exceptions import APIException
|
||||||
|
|
||||||
|
|
||||||
class IntervalScheduleSerializer(CustomModelSerializer):
|
class IntervalScheduleSerializer(CustomModelSerializer):
|
||||||
|
|
|
@ -2,13 +2,11 @@ from django_celery_beat.admin import TaskSelectWidget
|
||||||
from django_celery_beat.models import IntervalSchedule, CrontabSchedule, PeriodicTask
|
from django_celery_beat.models import IntervalSchedule, CrontabSchedule, PeriodicTask
|
||||||
from rest_framework.views import APIView
|
from rest_framework.views import APIView
|
||||||
|
|
||||||
from ..celery.filters import IntervalScheduleFilter, CrontabScheduleFilter, PeriodicTaskFilter
|
from apps.vadmin.celery.filters import IntervalScheduleFilter, CrontabScheduleFilter, PeriodicTaskFilter
|
||||||
from ..celery.serializers import IntervalScheduleSerializer, CrontabScheduleSerializer, PeriodicTaskSerializer
|
from apps.vadmin.celery.serializers import IntervalScheduleSerializer, CrontabScheduleSerializer, PeriodicTaskSerializer
|
||||||
from ..op_drf.views import CustomAPIView
|
from apps.vadmin.op_drf.views import CustomAPIView
|
||||||
from ..op_drf.viewsets import CustomModelViewSet
|
from apps.vadmin.op_drf.viewsets import CustomModelViewSet
|
||||||
from ..system.models import DictData
|
from apps.vadmin.op_drf.response import SuccessResponse
|
||||||
from ..system.serializers import DictDataSerializer
|
|
||||||
from ..utils.response import SuccessResponse
|
|
||||||
|
|
||||||
|
|
||||||
class IntervalScheduleModelViewSet(CustomModelViewSet):
|
class IntervalScheduleModelViewSet(CustomModelViewSet):
|
||||||
|
|
|
@ -2,5 +2,5 @@ from django.apps import AppConfig
|
||||||
|
|
||||||
|
|
||||||
class MonitorConfig(AppConfig):
|
class MonitorConfig(AppConfig):
|
||||||
name = 'vadmin.monitor'
|
name = 'apps.vadmin.monitor'
|
||||||
verbose_name = "系统监控"
|
verbose_name = "系统监控"
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
import django_filters
|
import django_filters
|
||||||
|
|
||||||
from .models import Server, Monitor
|
from apps.vadmin.monitor.models import Server, Monitor
|
||||||
|
|
||||||
|
|
||||||
class ServerFilter(django_filters.rest_framework.FilterSet):
|
class ServerFilter(django_filters.rest_framework.FilterSet):
|
||||||
|
|
|
@ -1,3 +1,3 @@
|
||||||
from ..models.monitor import Monitor
|
from apps.vadmin.monitor.models.monitor import Monitor
|
||||||
from ..models.server import Server
|
from apps.vadmin.monitor.models.server import Server
|
||||||
from ..models.sys_files import SysFiles
|
from apps.vadmin.monitor.models.sys_files import SysFiles
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
from django.db.models import CharField, ForeignKey, CASCADE
|
from django.db.models import CharField, ForeignKey, CASCADE
|
||||||
|
|
||||||
from ...op_drf.models import CoreModel
|
from apps.vadmin.op_drf.models import CoreModel
|
||||||
|
|
||||||
|
|
||||||
class Monitor(CoreModel):
|
class Monitor(CoreModel):
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
from django.db.models import CharField, ForeignKey, CASCADE
|
from django.db.models import CharField, ForeignKey, CASCADE
|
||||||
|
|
||||||
from ...op_drf.models import CoreModel
|
from apps.vadmin.op_drf.models import CoreModel
|
||||||
|
|
||||||
|
|
||||||
class SysFiles(CoreModel):
|
class SysFiles(CoreModel):
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
from .models import Server, Monitor
|
from apps.vadmin.monitor.models import Server, Monitor
|
||||||
from ..op_drf.serializers import CustomModelSerializer
|
from apps.vadmin.op_drf.serializers import CustomModelSerializer
|
||||||
|
|
||||||
|
|
||||||
# ================================================= #
|
# ================================================= #
|
||||||
|
|
|
@ -5,10 +5,10 @@ import time
|
||||||
|
|
||||||
import psutil
|
import psutil
|
||||||
|
|
||||||
from ..monitor.models import Server, Monitor, SysFiles
|
from apps.vadmin.monitor.models import Server, Monitor, SysFiles
|
||||||
from ..op_drf.response import SuccessResponse
|
from apps.vadmin.op_drf.response import SuccessResponse
|
||||||
from ..system.models import ConfigSettings
|
from apps.vadmin.system.models import ConfigSettings
|
||||||
from ..utils.decorators import BaseCeleryApp
|
from apps.vadmin.utils.decorators import BaseCeleryApp
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
from platform import platform
|
from platform import platform
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
from django.urls import re_path
|
from django.urls import re_path
|
||||||
from rest_framework.routers import DefaultRouter
|
from rest_framework.routers import DefaultRouter
|
||||||
|
|
||||||
from .views import ServerModelViewSet, MonitorModelViewSet
|
from apps.vadmin.monitor.views import ServerModelViewSet, MonitorModelViewSet
|
||||||
|
|
||||||
router = DefaultRouter()
|
router = DefaultRouter()
|
||||||
router.register(r'server', ServerModelViewSet)
|
router.register(r'server', ServerModelViewSet)
|
||||||
|
|
|
@ -1,13 +1,13 @@
|
||||||
from django_celery_beat.models import PeriodicTask, IntervalSchedule, CrontabSchedule
|
from django_celery_beat.models import PeriodicTask, IntervalSchedule, CrontabSchedule
|
||||||
from rest_framework.request import Request
|
from rest_framework.request import Request
|
||||||
|
|
||||||
from .filters import ServerFilter, MonitorFilter
|
from apps.vadmin.monitor.filters import ServerFilter, MonitorFilter
|
||||||
from .models import Server, Monitor, SysFiles
|
from apps.vadmin.monitor.models import Server, Monitor, SysFiles
|
||||||
from .serializers import ServerSerializer, MonitorSerializer, UpdateServerSerializer
|
from apps.vadmin.monitor.serializers import ServerSerializer, MonitorSerializer, UpdateServerSerializer
|
||||||
from ..op_drf.response import SuccessResponse, ErrorResponse
|
from apps.vadmin.op_drf.response import SuccessResponse, ErrorResponse
|
||||||
from ..op_drf.viewsets import CustomModelViewSet
|
from apps.vadmin.op_drf.viewsets import CustomModelViewSet
|
||||||
from ..permission.permissions import CommonPermission
|
from apps.vadmin.permission.permissions import CommonPermission
|
||||||
from ..system.models import ConfigSettings
|
from apps.vadmin.system.models import ConfigSettings
|
||||||
|
|
||||||
|
|
||||||
class ServerModelViewSet(CustomModelViewSet):
|
class ServerModelViewSet(CustomModelViewSet):
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
from django.apps import AppConfig
|
|
||||||
|
|
||||||
import logging
|
import logging
|
||||||
|
|
||||||
|
from django.apps import AppConfig
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -2,7 +2,7 @@ from django.contrib.auth import get_user_model
|
||||||
from django.db import models
|
from django.db import models
|
||||||
from django.db.models import SET_NULL
|
from django.db.models import SET_NULL
|
||||||
|
|
||||||
from ..utils.string_util import uuid_8, uuid_16, uuid_32, uuid_36
|
from apps.vadmin.utils.string_util import uuid_8, uuid_16, uuid_32, uuid_36
|
||||||
|
|
||||||
|
|
||||||
class IdField(models.CharField):
|
class IdField(models.CharField):
|
||||||
|
|
|
@ -10,7 +10,7 @@ from django.utils import six
|
||||||
from mongoengine.queryset import visitor
|
from mongoengine.queryset import visitor
|
||||||
from rest_framework.filters import BaseFilterBackend, SearchFilter, OrderingFilter
|
from rest_framework.filters import BaseFilterBackend, SearchFilter, OrderingFilter
|
||||||
|
|
||||||
from ..utils.model_util import get_dept
|
from apps.vadmin.utils.model_util import get_dept
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
|
|
@ -4,11 +4,11 @@ from django.http import Http404
|
||||||
from django.shortcuts import get_object_or_404 as _get_object_or_404
|
from django.shortcuts import get_object_or_404 as _get_object_or_404
|
||||||
from rest_framework.settings import api_settings
|
from rest_framework.settings import api_settings
|
||||||
|
|
||||||
|
from apps.vadmin.utils.jsonpath_util import get_jsonpath, filter_json, search_json
|
||||||
|
from apps.vadmin.utils.sort_util import sortList
|
||||||
from . import mixins
|
from . import mixins
|
||||||
from .pagination import Pagination, JsonPagination
|
from .pagination import JsonPagination
|
||||||
from .response import SuccessResponse
|
from .response import SuccessResponse
|
||||||
from ..utils.jsonpath_util import get_jsonpath, filter_json, search_json
|
|
||||||
from ..utils.sort_util import sortList
|
|
||||||
from .views import CustomAPIView
|
from .views import CustomAPIView
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
import logging
|
import logging
|
||||||
from django.core.cache import cache
|
|
||||||
|
|
||||||
|
|
||||||
class RedisHandler(logging.StreamHandler):
|
class RedisHandler(logging.StreamHandler):
|
||||||
|
@ -7,4 +6,3 @@ class RedisHandler(logging.StreamHandler):
|
||||||
def emit(self, record):
|
def emit(self, record):
|
||||||
msg = self.format(record)
|
msg = self.format(record)
|
||||||
print(msg)
|
print(msg)
|
||||||
|
|
||||||
|
|
|
@ -40,7 +40,7 @@ class Command(BaseCommand):
|
||||||
|
|
||||||
|
|
||||||
class {name.capitalize()}Config(AppConfig):
|
class {name.capitalize()}Config(AppConfig):
|
||||||
name = '{name}'
|
name = 'apps.{name}'
|
||||||
verbose_name = "{name}App"
|
verbose_name = "{name}App"
|
||||||
"""
|
"""
|
||||||
with open(os.path.join(app_path, "apps.py"), 'w', encoding='UTF-8') as f:
|
with open(os.path.join(app_path, "apps.py"), 'w', encoding='UTF-8') as f:
|
||||||
|
|
|
@ -9,11 +9,11 @@ from django.conf import settings
|
||||||
from django.contrib.auth.models import AnonymousUser
|
from django.contrib.auth.models import AnonymousUser
|
||||||
from django.utils.deprecation import MiddlewareMixin
|
from django.utils.deprecation import MiddlewareMixin
|
||||||
|
|
||||||
|
from apps.vadmin.op_drf.response import ErrorJsonResponse
|
||||||
from apps.vadmin.permission.models import Menu
|
from apps.vadmin.permission.models import Menu
|
||||||
from apps.vadmin.system.models import OperationLog
|
from apps.vadmin.system.models import OperationLog
|
||||||
from ..utils.request_util import get_request_ip, get_request_data, get_request_path, get_browser, get_os, \
|
from apps.vadmin.utils.request_util import get_request_ip, get_request_data, get_request_path, get_browser, get_os, \
|
||||||
get_login_location, get_request_canonical_path, get_request_user, get_verbose_name
|
get_login_location, get_request_canonical_path, get_request_user, get_verbose_name
|
||||||
from ..utils.response import ErrorJsonResponse
|
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
|
|
@ -5,9 +5,9 @@ from rest_framework import status
|
||||||
from rest_framework.relations import ManyRelatedField, RelatedField, PrimaryKeyRelatedField
|
from rest_framework.relations import ManyRelatedField, RelatedField, PrimaryKeyRelatedField
|
||||||
from rest_framework.request import Request
|
from rest_framework.request import Request
|
||||||
|
|
||||||
|
from apps.vadmin.utils.export_excel import excel_to_data, export_excel_save_model
|
||||||
|
from apps.vadmin.utils.request_util import get_verbose_name
|
||||||
from .response import SuccessResponse
|
from .response import SuccessResponse
|
||||||
from ..utils.export_excel import excel_to_data, export_excel_save_model
|
|
||||||
from ..utils.request_util import get_verbose_name
|
|
||||||
|
|
||||||
|
|
||||||
class CreateModelMixin(mixins.CreateModelMixin):
|
class CreateModelMixin(mixins.CreateModelMixin):
|
||||||
|
@ -317,7 +317,8 @@ class ImportSerializerMixin:
|
||||||
# 示例数据
|
# 示例数据
|
||||||
queryset = self.filter_queryset(self.get_queryset())
|
queryset = self.filter_queryset(self.get_queryset())
|
||||||
return SuccessResponse(
|
return SuccessResponse(
|
||||||
export_excel_save_model(request, self.import_field_data.values(), [], f'导入{get_verbose_name(queryset)}模板.xls'))
|
export_excel_save_model(request, self.import_field_data.values(), [],
|
||||||
|
f'导入{get_verbose_name(queryset)}模板.xls'))
|
||||||
updateSupport = request.data.get('updateSupport')
|
updateSupport = request.data.get('updateSupport')
|
||||||
# 从excel中组织对应的数据结构,然后使用序列化器保存
|
# 从excel中组织对应的数据结构,然后使用序列化器保存
|
||||||
data = excel_to_data(request.data.get('file_url'), self.import_field_data)
|
data = excel_to_data(request.data.get('file_url'), self.import_field_data)
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
from collections import OrderedDict
|
from collections import OrderedDict
|
||||||
from typing import Any
|
|
||||||
|
|
||||||
from rest_framework.pagination import PageNumberPagination, _positive_int
|
from rest_framework.pagination import PageNumberPagination, _positive_int
|
||||||
from rest_framework.utils.urls import replace_query_param
|
from rest_framework.utils.urls import replace_query_param
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
"""
|
"""
|
||||||
常用的Response以及Django的Response、DRF的Response
|
常用的Response以及Django的Response、DRF的Response
|
||||||
"""
|
"""
|
||||||
from django.http.response import DjangoJSONEncoder
|
from django.http.response import DjangoJSONEncoder, JsonResponse
|
||||||
from rest_framework.response import Response
|
from rest_framework.response import Response
|
||||||
|
|
||||||
|
|
||||||
|
@ -26,13 +26,16 @@ class SuccessResponse(Response):
|
||||||
|
|
||||||
def __init__(self, data=None, msg='success', status=None, template_name=None, headers=None, exception=False,
|
def __init__(self, data=None, msg='success', status=None, template_name=None, headers=None, exception=False,
|
||||||
content_type=None):
|
content_type=None):
|
||||||
std_data = {
|
self.std_data = {
|
||||||
"code": 200,
|
"code": 200,
|
||||||
"data": data,
|
"data": data,
|
||||||
"msg": msg,
|
"msg": msg,
|
||||||
"status": 'success'
|
"status": 'success'
|
||||||
}
|
}
|
||||||
super().__init__(std_data, status, template_name, headers, exception, content_type)
|
super().__init__(self.std_data, status, template_name, headers, exception, content_type)
|
||||||
|
|
||||||
|
def __str__(self):
|
||||||
|
return str(self.std_data)
|
||||||
|
|
||||||
|
|
||||||
class ErrorResponse(Response):
|
class ErrorResponse(Response):
|
||||||
|
@ -43,10 +46,46 @@ class ErrorResponse(Response):
|
||||||
|
|
||||||
def __init__(self, data=None, msg='error', code=201, status=None, template_name=None, headers=None,
|
def __init__(self, data=None, msg='error', code=201, status=None, template_name=None, headers=None,
|
||||||
exception=False, content_type=None):
|
exception=False, content_type=None):
|
||||||
|
self.std_data = {
|
||||||
|
"code": code,
|
||||||
|
"data": data,
|
||||||
|
"msg": msg,
|
||||||
|
"status": 'error'
|
||||||
|
}
|
||||||
|
super().__init__(self.std_data, status, template_name, headers, exception, content_type)
|
||||||
|
|
||||||
|
def __str__(self):
|
||||||
|
return str(self.std_data)
|
||||||
|
|
||||||
|
|
||||||
|
class SuccessJsonResponse(JsonResponse):
|
||||||
|
"""
|
||||||
|
标准JsonResponse, SuccessJsonResponse(data)SuccessJsonResponse(data=data)
|
||||||
|
(1)仅SuccessResponse无法使用时才能推荐使用SuccessJsonResponse
|
||||||
|
"""
|
||||||
|
|
||||||
|
def __init__(self, data, msg='success', encoder=DjangoJSONEncoder, safe=True, json_dumps_params=None, **kwargs):
|
||||||
|
std_data = {
|
||||||
|
"code": 200,
|
||||||
|
"data": data,
|
||||||
|
"msg": msg,
|
||||||
|
"status": 'success'
|
||||||
|
}
|
||||||
|
super().__init__(std_data, encoder, safe, json_dumps_params, **kwargs)
|
||||||
|
|
||||||
|
|
||||||
|
class ErrorJsonResponse(JsonResponse):
|
||||||
|
"""
|
||||||
|
标准JsonResponse, 仅ErrorResponse无法使用时才能使用ErrorJsonResponse
|
||||||
|
(1)默认错误码返回2001, 也可以指定其他返回码:ErrorJsonResponse(code=xxx)
|
||||||
|
"""
|
||||||
|
|
||||||
|
def __init__(self, data, msg='error', code=201, encoder=OpDRFJSONEncoder, safe=True, json_dumps_params=None,
|
||||||
|
**kwargs):
|
||||||
std_data = {
|
std_data = {
|
||||||
"code": code,
|
"code": code,
|
||||||
"data": data,
|
"data": data,
|
||||||
"msg": msg,
|
"msg": msg,
|
||||||
"status": 'error'
|
"status": 'error'
|
||||||
}
|
}
|
||||||
super().__init__(std_data, status, template_name, headers, exception, content_type)
|
super().__init__(std_data, encoder, safe, json_dumps_params, **kwargs)
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
"""
|
"""
|
||||||
from rest_framework.validators import UniqueValidator, qs_exists
|
from rest_framework.validators import UniqueValidator, qs_exists
|
||||||
|
|
||||||
from vadmin.utils.exceptions import APIException
|
from apps.vadmin.utils.exceptions import APIException
|
||||||
|
|
||||||
|
|
||||||
class CustomUniqueValidator(UniqueValidator):
|
class CustomUniqueValidator(UniqueValidator):
|
||||||
|
|
|
@ -6,11 +6,8 @@ from rest_framework.exceptions import APIException as DRFAPIException
|
||||||
from rest_framework.request import Request
|
from rest_framework.request import Request
|
||||||
from rest_framework.views import APIView
|
from rest_framework.views import APIView
|
||||||
|
|
||||||
from ..utils import exceptions
|
from apps.vadmin.utils import exceptions
|
||||||
from ..utils.model_util import ModelRelateUtils
|
from .response import ErrorResponse
|
||||||
from .logging.view_logger import CustomerRelationshipViewLogger
|
|
||||||
from .response import SuccessResponse, ErrorResponse
|
|
||||||
from .serializers import CustomModelSerializer
|
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
|
|
@ -11,7 +11,7 @@ from rest_framework.request import Request
|
||||||
from rest_framework.settings import api_settings
|
from rest_framework.settings import api_settings
|
||||||
from rest_framework.viewsets import ViewSetMixin
|
from rest_framework.viewsets import ViewSetMixin
|
||||||
|
|
||||||
from ..utils.exceptions import APIException
|
from apps.vadmin.utils.exceptions import APIException
|
||||||
from . import mixins
|
from . import mixins
|
||||||
from .filters import MongoSearchFilter, MongoOrderingFilter, AdvancedSearchFilter, MongoAdvancedSearchFilter
|
from .filters import MongoSearchFilter, MongoOrderingFilter, AdvancedSearchFilter, MongoAdvancedSearchFilter
|
||||||
from .generics import GenericAPIView
|
from .generics import GenericAPIView
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
import django_filters
|
import django_filters
|
||||||
from django.contrib.auth import get_user_model
|
from django.contrib.auth import get_user_model
|
||||||
|
|
||||||
from ..permission.models import Menu, Dept, Post, Role
|
from apps.vadmin.permission.models import Menu, Dept, Post, Role
|
||||||
from ..utils.model_util import get_dept
|
from apps.vadmin.utils.model_util import get_dept
|
||||||
|
|
||||||
UserProfile = get_user_model()
|
UserProfile = get_user_model()
|
||||||
|
|
||||||
|
|
|
@ -5,7 +5,7 @@ from django.conf import settings
|
||||||
from django.core.management.base import BaseCommand
|
from django.core.management.base import BaseCommand
|
||||||
from django.db import connection
|
from django.db import connection
|
||||||
|
|
||||||
from ....scripts import getSql
|
from apps.vadmin.scripts import getSql
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
from ..models.dept import Dept
|
from apps.vadmin.permission.models.dept import Dept
|
||||||
from ..models.menu import Menu
|
from apps.vadmin.permission.models.menu import Menu
|
||||||
from ..models.post import Post
|
from apps.vadmin.permission.models.post import Post
|
||||||
from ..models.role import Role
|
from apps.vadmin.permission.models.role import Role
|
||||||
from ..models.users import UserProfile
|
from apps.vadmin.permission.models.users import UserProfile
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
from django.db.models import CASCADE
|
from django.db.models import CASCADE
|
||||||
from django.db.models import CharField, IntegerField, ForeignKey
|
from django.db.models import CharField, IntegerField, ForeignKey
|
||||||
|
|
||||||
from ...op_drf.models import CoreModel
|
from apps.vadmin.op_drf.models import CoreModel
|
||||||
|
|
||||||
|
|
||||||
class Dept(CoreModel):
|
class Dept(CoreModel):
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
from django.core.cache import cache
|
from django.core.cache import cache
|
||||||
from django.db.models import IntegerField, ForeignKey, CharField, CASCADE, Q
|
from django.db.models import IntegerField, ForeignKey, CharField, CASCADE, Q
|
||||||
|
|
||||||
from ...op_drf.models import CoreModel
|
from apps.vadmin.op_drf.models import CoreModel
|
||||||
|
|
||||||
|
|
||||||
class Menu(CoreModel):
|
class Menu(CoreModel):
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
from django.db.models import IntegerField, BooleanField, CharField, TextField
|
from django.db.models import IntegerField, BooleanField, CharField, TextField
|
||||||
|
|
||||||
from ...op_drf.models import CoreModel
|
from apps.vadmin.op_drf.models import CoreModel
|
||||||
|
|
||||||
|
|
||||||
class Post(CoreModel):
|
class Post(CoreModel):
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
from django.db.models import IntegerField, BooleanField, CharField, TextField, ManyToManyField
|
from django.db.models import IntegerField, BooleanField, CharField, TextField, ManyToManyField
|
||||||
|
|
||||||
from ...op_drf.models import CoreModel
|
from apps.vadmin.op_drf.models import CoreModel
|
||||||
|
|
||||||
|
|
||||||
class Role(CoreModel):
|
class Role(CoreModel):
|
||||||
|
|
|
@ -5,7 +5,7 @@ from django.contrib.auth.models import UserManager, AbstractUser
|
||||||
from django.core.cache import cache
|
from django.core.cache import cache
|
||||||
from django.db.models import IntegerField, ForeignKey, CharField, TextField, ManyToManyField, CASCADE
|
from django.db.models import IntegerField, ForeignKey, CharField, TextField, ManyToManyField, CASCADE
|
||||||
|
|
||||||
from ...op_drf.models import CoreModel
|
from apps.vadmin.op_drf.models import CoreModel
|
||||||
|
|
||||||
|
|
||||||
class UserProfile(AbstractUser, CoreModel):
|
class UserProfile(AbstractUser, CoreModel):
|
||||||
|
@ -25,7 +25,8 @@ class UserProfile(AbstractUser, CoreModel):
|
||||||
user_type = IntegerField(default=0, verbose_name="用户类型")
|
user_type = IntegerField(default=0, verbose_name="用户类型")
|
||||||
post = ManyToManyField(to='permission.Post', verbose_name='关联岗位', db_constraint=False)
|
post = ManyToManyField(to='permission.Post', verbose_name='关联岗位', db_constraint=False)
|
||||||
role = ManyToManyField(to='permission.Role', verbose_name='关联角色', db_constraint=False)
|
role = ManyToManyField(to='permission.Role', verbose_name='关联角色', db_constraint=False)
|
||||||
dept = ForeignKey(to='permission.Dept', verbose_name='归属部门', on_delete=CASCADE, db_constraint=False, null=True, blank=True)
|
dept = ForeignKey(to='permission.Dept', verbose_name='归属部门', on_delete=CASCADE, db_constraint=False, null=True,
|
||||||
|
blank=True)
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def get_user_interface_dict(self):
|
def get_user_interface_dict(self):
|
||||||
|
|
|
@ -10,8 +10,8 @@ from rest_framework.permissions import (BasePermission,
|
||||||
from rest_framework.request import Request
|
from rest_framework.request import Request
|
||||||
from rest_framework.views import APIView
|
from rest_framework.views import APIView
|
||||||
|
|
||||||
from .models import Dept
|
from apps.vadmin.permission.models import Dept
|
||||||
from ..utils.model_util import get_dept
|
from apps.vadmin.utils.model_util import get_dept
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
User = get_user_model()
|
User = get_user_model()
|
||||||
|
|
|
@ -1,10 +1,10 @@
|
||||||
from django.contrib.auth import get_user_model
|
from django.contrib.auth import get_user_model
|
||||||
from rest_framework import serializers
|
from rest_framework import serializers
|
||||||
|
|
||||||
from ..op_drf.serializers import CustomModelSerializer
|
from apps.vadmin.op_drf.serializers import CustomModelSerializer
|
||||||
from ..op_drf.validator import CustomUniqueValidator
|
from apps.vadmin.op_drf.validator import CustomUniqueValidator
|
||||||
from ..permission.models import Menu, Dept, Post, Role
|
from apps.vadmin.permission.models import Menu, Dept, Post, Role
|
||||||
from ..system.models import MessagePush
|
from apps.vadmin.system.models import MessagePush
|
||||||
|
|
||||||
UserProfile = get_user_model()
|
UserProfile = get_user_model()
|
||||||
|
|
||||||
|
|
|
@ -3,8 +3,8 @@ import logging
|
||||||
|
|
||||||
from captcha.models import CaptchaStore
|
from captcha.models import CaptchaStore
|
||||||
|
|
||||||
from ..utils.decorators import BaseCeleryApp
|
from apps.vadmin.utils.decorators import BaseCeleryApp
|
||||||
from ..utils.response import SuccessResponse
|
from apps.vadmin.op_drf.response import SuccessResponse
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
@BaseCeleryApp(name='apps.vadmin.permission.tasks.clear_invalid_captcha')
|
@BaseCeleryApp(name='apps.vadmin.permission.tasks.clear_invalid_captcha')
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
from django.urls import re_path
|
from django.urls import re_path
|
||||||
from rest_framework.routers import DefaultRouter
|
from rest_framework.routers import DefaultRouter
|
||||||
|
|
||||||
from ..permission.views import MenuModelViewSet, DeptModelViewSet, PostModelViewSet, RoleModelViewSet, \
|
from apps.vadmin.permission.views import MenuModelViewSet, DeptModelViewSet, PostModelViewSet, RoleModelViewSet, \
|
||||||
UserProfileModelViewSet
|
UserProfileModelViewSet
|
||||||
|
|
||||||
router = DefaultRouter()
|
router = DefaultRouter()
|
||||||
|
|
|
@ -2,18 +2,18 @@ from django.contrib.auth import authenticate, get_user_model
|
||||||
from rest_framework.request import Request
|
from rest_framework.request import Request
|
||||||
from rest_framework.views import APIView
|
from rest_framework.views import APIView
|
||||||
|
|
||||||
from .permissions import CommonPermission, DeptDestroyPermission
|
from apps.vadmin.op_drf.response import SuccessResponse, ErrorResponse
|
||||||
from ..op_drf.filters import DataLevelPermissionsFilter
|
from apps.vadmin.permission.permissions import CommonPermission, DeptDestroyPermission
|
||||||
from ..op_drf.viewsets import CustomModelViewSet
|
from apps.vadmin.op_drf.filters import DataLevelPermissionsFilter
|
||||||
from ..permission.filters import MenuFilter, DeptFilter, PostFilter, RoleFilter, UserProfileFilter
|
from apps.vadmin.op_drf.viewsets import CustomModelViewSet
|
||||||
from ..permission.models import Role, Menu, Dept, Post
|
from apps.vadmin.permission.filters import MenuFilter, DeptFilter, PostFilter, RoleFilter, UserProfileFilter
|
||||||
from ..permission.serializers import UserProfileSerializer, MenuSerializer, RoleSerializer, \
|
from apps.vadmin.permission.models import Role, Menu, Dept, Post
|
||||||
|
from apps.vadmin.permission.serializers import UserProfileSerializer, MenuSerializer, RoleSerializer, \
|
||||||
MenuCreateUpdateSerializer, DeptSerializer, DeptCreateUpdateSerializer, PostSerializer, PostCreateUpdateSerializer, \
|
MenuCreateUpdateSerializer, DeptSerializer, DeptCreateUpdateSerializer, PostSerializer, PostCreateUpdateSerializer, \
|
||||||
RoleCreateUpdateSerializer, DeptTreeSerializer, MenuTreeSerializer, UserProfileCreateUpdateSerializer, \
|
RoleCreateUpdateSerializer, DeptTreeSerializer, MenuTreeSerializer, UserProfileCreateUpdateSerializer, \
|
||||||
PostSimpleSerializer, RoleSimpleSerializer, ExportUserProfileSerializer, ExportRoleSerializer, ExportPostSerializer, \
|
PostSimpleSerializer, RoleSimpleSerializer, ExportUserProfileSerializer, ExportRoleSerializer, ExportPostSerializer, \
|
||||||
UserProfileImportSerializer
|
UserProfileImportSerializer
|
||||||
from ..system.models import DictDetails
|
from apps.vadmin.system.models import DictDetails
|
||||||
from ..utils.response import SuccessResponse, ErrorResponse
|
|
||||||
|
|
||||||
UserProfile = get_user_model()
|
UserProfile = get_user_model()
|
||||||
|
|
||||||
|
|
|
@ -2,5 +2,5 @@ from django.apps import AppConfig
|
||||||
|
|
||||||
|
|
||||||
class SystemConfig(AppConfig):
|
class SystemConfig(AppConfig):
|
||||||
name = 'vadmin.system'
|
name = 'apps.vadmin.system'
|
||||||
verbose_name = "系统管理"
|
verbose_name = "系统管理"
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
import django_filters
|
import django_filters
|
||||||
|
|
||||||
from .models import LoginInfor, OperationLog, CeleryLog
|
from apps.vadmin.system.models import DictDetails, DictData, ConfigSettings, MessagePush, SaveFile
|
||||||
from ..system.models import DictDetails, DictData, ConfigSettings, MessagePush, SaveFile
|
from apps.vadmin.system.models import LoginInfor, OperationLog, CeleryLog
|
||||||
|
|
||||||
|
|
||||||
class DictDataFilter(django_filters.rest_framework.FilterSet):
|
class DictDataFilter(django_filters.rest_framework.FilterSet):
|
||||||
|
|
|
@ -1,10 +1,9 @@
|
||||||
from ..models.config_settings import ConfigSettings
|
from apps.vadmin.system.models.celery_log import CeleryLog
|
||||||
from ..models.dict_data import DictData
|
from apps.vadmin.system.models.config_settings import ConfigSettings
|
||||||
from ..models.dict_details import DictDetails
|
from apps.vadmin.system.models.dict_data import DictData
|
||||||
from ..models.save_file import SaveFile
|
from apps.vadmin.system.models.dict_details import DictDetails
|
||||||
from ..models.message_push import MessagePush
|
from apps.vadmin.system.models.logininfor import LoginInfor
|
||||||
from ..models.message_push import MessagePushUser
|
from apps.vadmin.system.models.message_push import MessagePush
|
||||||
from ..models.logininfor import LoginInfor
|
from apps.vadmin.system.models.message_push import MessagePushUser
|
||||||
from ..models.operation_log import OperationLog
|
from apps.vadmin.system.models.operation_log import OperationLog
|
||||||
from ..models.celery_log import CeleryLog
|
from apps.vadmin.system.models.save_file import SaveFile
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
from django.db.models import CharField, BooleanField, TextField
|
from django.db.models import CharField, BooleanField, TextField
|
||||||
|
|
||||||
from ...op_drf.models import CoreModel
|
from apps.vadmin.op_drf.models import CoreModel
|
||||||
|
|
||||||
|
|
||||||
class CeleryLog(CoreModel):
|
class CeleryLog(CoreModel):
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
from django.db.models import CharField, ForeignKey, BooleanField, CASCADE
|
from django.db.models import CharField, ForeignKey, BooleanField, CASCADE
|
||||||
|
|
||||||
from ...op_drf.models import CoreModel
|
from apps.vadmin.op_drf.models import CoreModel
|
||||||
|
|
||||||
|
|
||||||
class ConfigSettings(CoreModel):
|
class ConfigSettings(CoreModel):
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
from django.db.models import TextField, CharField,ForeignKey
|
from django.db.models import TextField, CharField,ForeignKey
|
||||||
|
|
||||||
from ...op_drf.models import CoreModel
|
from apps.vadmin.op_drf.models import CoreModel
|
||||||
|
|
||||||
|
|
||||||
class DictData(CoreModel):
|
class DictData(CoreModel):
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
from django.db.models import CharField, ForeignKey, BooleanField, CASCADE
|
from django.db.models import CharField, ForeignKey, BooleanField, CASCADE
|
||||||
|
|
||||||
from ...op_drf.models import CoreModel
|
from apps.vadmin.op_drf.models import CoreModel
|
||||||
|
|
||||||
|
|
||||||
class DictDetails(CoreModel):
|
class DictDetails(CoreModel):
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
from django.db.models import CharField, BooleanField, TextField
|
from django.db.models import CharField, BooleanField, TextField
|
||||||
|
|
||||||
from ...op_drf.models import CoreModel
|
from apps.vadmin.op_drf.models import CoreModel
|
||||||
|
|
||||||
|
|
||||||
class LoginInfor(CoreModel):
|
class LoginInfor(CoreModel):
|
||||||
|
|
|
@ -2,8 +2,8 @@ from django.conf import settings
|
||||||
from django.db import models
|
from django.db import models
|
||||||
from django.db.models import *
|
from django.db.models import *
|
||||||
|
|
||||||
from ...op_drf.fields import UpdateDateTimeField, CreateDateTimeField
|
from apps.vadmin.op_drf.fields import UpdateDateTimeField, CreateDateTimeField
|
||||||
from ...op_drf.models import CoreModel
|
from apps.vadmin.op_drf.models import CoreModel
|
||||||
|
|
||||||
"""
|
"""
|
||||||
消息通知模型
|
消息通知模型
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
from django.db.models import TextField, CharField, BooleanField
|
from django.db.models import TextField, CharField, BooleanField
|
||||||
|
|
||||||
from ...op_drf.models import CoreModel
|
from apps.vadmin.op_drf.models import CoreModel
|
||||||
|
|
||||||
|
|
||||||
class OperationLog(CoreModel):
|
class OperationLog(CoreModel):
|
||||||
|
|
|
@ -4,7 +4,7 @@ import uuid
|
||||||
from django.db.models import CharField, FileField, BooleanField
|
from django.db.models import CharField, FileField, BooleanField
|
||||||
from django.utils import timezone
|
from django.utils import timezone
|
||||||
|
|
||||||
from ...op_drf.models import CoreModel
|
from apps.vadmin.op_drf.models import CoreModel
|
||||||
|
|
||||||
|
|
||||||
def files_path(instance, filename):
|
def files_path(instance, filename):
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
from django.core.cache import cache
|
from django.core.cache import cache
|
||||||
from rest_framework import serializers
|
from rest_framework import serializers
|
||||||
|
|
||||||
from .models import LoginInfor, OperationLog, CeleryLog
|
from apps.vadmin.op_drf.serializers import CustomModelSerializer
|
||||||
from ..op_drf.serializers import CustomModelSerializer
|
from apps.vadmin.system.models import DictData, DictDetails, ConfigSettings, SaveFile, MessagePush, MessagePushUser
|
||||||
from ..system.models import DictData, DictDetails, ConfigSettings, SaveFile, MessagePush, MessagePushUser
|
from apps.vadmin.system.models import LoginInfor, OperationLog, CeleryLog
|
||||||
|
|
||||||
|
|
||||||
# ================================================= #
|
# ================================================= #
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
from django.urls import re_path
|
from django.urls import re_path
|
||||||
from rest_framework.routers import DefaultRouter
|
from rest_framework.routers import DefaultRouter
|
||||||
|
|
||||||
from ..system.views import DictDataModelViewSet, DictDetailsModelViewSet, \
|
from apps.vadmin.system.views import DictDataModelViewSet, DictDetailsModelViewSet, \
|
||||||
ConfigSettingsModelViewSet, SaveFileModelViewSet, MessagePushModelViewSet, LoginInforModelViewSet, \
|
ConfigSettingsModelViewSet, SaveFileModelViewSet, MessagePushModelViewSet, LoginInforModelViewSet, \
|
||||||
OperationLogModelViewSet, CeleryLogModelViewSet, SystemInfoApiView
|
OperationLogModelViewSet, CeleryLogModelViewSet, SystemInfoApiView
|
||||||
|
|
||||||
|
|
|
@ -6,25 +6,25 @@ from django.db.models import Q
|
||||||
from rest_framework.request import Request
|
from rest_framework.request import Request
|
||||||
from rest_framework.views import APIView
|
from rest_framework.views import APIView
|
||||||
|
|
||||||
from .models import LoginInfor, OperationLog, CeleryLog
|
from apps.vadmin.op_drf.filters import DataLevelPermissionsFilter
|
||||||
from ..op_drf.filters import DataLevelPermissionsFilter
|
from apps.vadmin.op_drf.response import SuccessResponse
|
||||||
from ..op_drf.viewsets import CustomModelViewSet
|
from apps.vadmin.op_drf.viewsets import CustomModelViewSet
|
||||||
from ..permission.permissions import CommonPermission
|
from apps.vadmin.permission.permissions import CommonPermission
|
||||||
from ..system.filters import DictDetailsFilter, DictDataFilter, ConfigSettingsFilter, MessagePushFilter, \
|
from apps.vadmin.system.filters import DictDetailsFilter, DictDataFilter, ConfigSettingsFilter, MessagePushFilter, \
|
||||||
SaveFileFilter, LoginInforFilter, OperationLogFilter, CeleryLogFilter
|
SaveFileFilter, LoginInforFilter, OperationLogFilter, CeleryLogFilter
|
||||||
from ..system.models import DictData, DictDetails, ConfigSettings, SaveFile, MessagePush
|
from apps.vadmin.system.models import DictData, DictDetails, ConfigSettings, SaveFile, MessagePush
|
||||||
from ..system.models import MessagePushUser
|
from apps.vadmin.system.models import LoginInfor, OperationLog, CeleryLog
|
||||||
from ..system.serializers import DictDataSerializer, DictDataCreateUpdateSerializer, DictDetailsSerializer, \
|
from apps.vadmin.system.models import MessagePushUser
|
||||||
|
from apps.vadmin.system.serializers import DictDataSerializer, DictDataCreateUpdateSerializer, DictDetailsSerializer, \
|
||||||
DictDetailsCreateUpdateSerializer, ConfigSettingsSerializer, \
|
DictDetailsCreateUpdateSerializer, ConfigSettingsSerializer, \
|
||||||
ConfigSettingsCreateUpdateSerializer, SaveFileSerializer, SaveFileCreateUpdateSerializer, \
|
ConfigSettingsCreateUpdateSerializer, SaveFileSerializer, SaveFileCreateUpdateSerializer, \
|
||||||
ExportConfigSettingsSerializer, ExportDictDataSerializer, ExportDictDetailsSerializer, \
|
ExportConfigSettingsSerializer, ExportDictDataSerializer, ExportDictDetailsSerializer, \
|
||||||
MessagePushSerializer, MessagePushCreateUpdateSerializer, ExportMessagePushSerializer, LoginInforSerializer, \
|
MessagePushSerializer, MessagePushCreateUpdateSerializer, ExportMessagePushSerializer, LoginInforSerializer, \
|
||||||
OperationLogSerializer, ExportOperationLogSerializer, ExportLoginInforSerializer, CeleryLogSerializer, \
|
OperationLogSerializer, ExportOperationLogSerializer, ExportLoginInforSerializer, CeleryLogSerializer, \
|
||||||
ExportCeleryLogSerializer
|
ExportCeleryLogSerializer
|
||||||
from ..utils.export_excel import export_excel_save_model
|
from apps.vadmin.utils.export_excel import export_excel_save_model
|
||||||
from ..utils.file_util import get_all_files, remove_empty_dir, delete_files
|
from apps.vadmin.utils.file_util import get_all_files, remove_empty_dir, delete_files
|
||||||
from ..utils.response import SuccessResponse
|
from apps.vadmin.utils.system_info_utils import get_memory_used_percent, get_cpu_used_percent, get_disk_used_percent
|
||||||
from ..utils.system_info_utils import get_memory_used_percent, get_cpu_used_percent, get_disk_used_percent
|
|
||||||
|
|
||||||
|
|
||||||
class DictDataModelViewSet(CustomModelViewSet):
|
class DictDataModelViewSet(CustomModelViewSet):
|
||||||
|
|
|
@ -2,5 +2,5 @@ from django.apps import AppConfig
|
||||||
|
|
||||||
|
|
||||||
class TemplateConfig(AppConfig):
|
class TemplateConfig(AppConfig):
|
||||||
name = 'vadmin.template'
|
name = 'apps.vadmin.template'
|
||||||
verbose_name = "模板App"
|
verbose_name = "模板App"
|
||||||
|
|
|
@ -22,9 +22,9 @@ from django.urls import re_path, include
|
||||||
from rest_framework.documentation import include_docs_urls
|
from rest_framework.documentation import include_docs_urls
|
||||||
from rest_framework.views import APIView
|
from rest_framework.views import APIView
|
||||||
|
|
||||||
from .permission.views import GetUserProfileView, GetRouters
|
from apps.vadmin.permission.views import GetUserProfileView, GetRouters
|
||||||
from .utils.login import LoginView, LogoutView
|
from apps.vadmin.utils.login import LoginView, LogoutView
|
||||||
from .utils.response import SuccessResponse
|
from apps.vadmin.op_drf.response import SuccessResponse
|
||||||
|
|
||||||
|
|
||||||
class CaptchaRefresh(APIView):
|
class CaptchaRefresh(APIView):
|
||||||
|
|
|
@ -12,8 +12,8 @@ from django.utils.translation import ugettext as _
|
||||||
from rest_framework import exceptions
|
from rest_framework import exceptions
|
||||||
from rest_framework_jwt.utils import jwt_decode_handler
|
from rest_framework_jwt.utils import jwt_decode_handler
|
||||||
|
|
||||||
from .jwt_util import jwt_get_session_id
|
from apps.vadmin.permission.models.users import UserProfile
|
||||||
from ..permission.models.users import UserProfile
|
from apps.vadmin.utils.jwt_util import jwt_get_session_id
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
User = get_user_model()
|
User = get_user_model()
|
||||||
|
|
|
@ -1,13 +1,10 @@
|
||||||
import logging
|
import logging
|
||||||
|
|
||||||
from captcha.models import CaptchaStore
|
|
||||||
from django.conf import settings
|
|
||||||
from django.contrib.auth import get_user_model
|
from django.contrib.auth import get_user_model
|
||||||
from django.contrib.auth.backends import ModelBackend
|
from django.contrib.auth.backends import ModelBackend
|
||||||
from django.utils import timezone
|
from django.utils import timezone
|
||||||
from rest_framework.authentication import SessionAuthentication as DjangoSessionAuthentication
|
from rest_framework.authentication import SessionAuthentication as DjangoSessionAuthentication
|
||||||
|
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
UserModel = get_user_model()
|
UserModel = get_user_model()
|
||||||
|
|
||||||
|
|
|
@ -15,8 +15,8 @@ from rest_framework.response import Response
|
||||||
from rest_framework_extensions.settings import extensions_api_settings
|
from rest_framework_extensions.settings import extensions_api_settings
|
||||||
|
|
||||||
from application.celery import app
|
from application.celery import app
|
||||||
from .string_util import bas64_encode_text, bas64_decode_text
|
from apps.vadmin.system.models import CeleryLog
|
||||||
from ..system.models import CeleryLog
|
from apps.vadmin.utils.string_util import bas64_encode_text, bas64_decode_text
|
||||||
|
|
||||||
|
|
||||||
def get_cache(alias=None):
|
def get_cache(alias=None):
|
||||||
|
@ -34,6 +34,7 @@ def BaseCeleryApp(name, save_success_logs=True):
|
||||||
:param save_success_logs: 是否保存成功的日志(适用于频率高的celery任务,成功不需要保存日志,则传False)
|
:param save_success_logs: 是否保存成功的日志(适用于频率高的celery任务,成功不需要保存日志,则传False)
|
||||||
:return:
|
:return:
|
||||||
"""
|
"""
|
||||||
|
|
||||||
def wraps(func):
|
def wraps(func):
|
||||||
@app.task(name=name)
|
@app.task(name=name)
|
||||||
@functools.wraps(func)
|
@functools.wraps(func)
|
||||||
|
|
|
@ -4,8 +4,7 @@ import traceback
|
||||||
from rest_framework import exceptions
|
from rest_framework import exceptions
|
||||||
from rest_framework.views import set_rollback
|
from rest_framework.views import set_rollback
|
||||||
|
|
||||||
from .request_util import get_verbose_name
|
from apps.vadmin.op_drf.response import ErrorResponse
|
||||||
from .response import ErrorResponse
|
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
|
|
@ -7,8 +7,8 @@ import xlrd
|
||||||
import xlwt
|
import xlwt
|
||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
|
|
||||||
from ..system.models import SaveFile
|
from apps.vadmin.system.models import SaveFile
|
||||||
from ..system.serializers import SaveFileSerializer
|
from apps.vadmin.system.serializers import SaveFileSerializer
|
||||||
|
|
||||||
|
|
||||||
def len_byte(value):
|
def len_byte(value):
|
||||||
|
|
|
@ -10,12 +10,11 @@ from rest_framework.permissions import IsAuthenticated
|
||||||
from rest_framework.views import APIView
|
from rest_framework.views import APIView
|
||||||
from rest_framework_jwt.views import ObtainJSONWebToken, jwt_response_payload_handler
|
from rest_framework_jwt.views import ObtainJSONWebToken, jwt_response_payload_handler
|
||||||
|
|
||||||
from .exceptions import GenException
|
from apps.vadmin.system.models.logininfor import LoginInfor
|
||||||
from .jwt_util import jwt_get_session_id
|
from apps.vadmin.utils.exceptions import GenException
|
||||||
from .request_util import get_request_ip, get_os, get_browser, get_login_location
|
from apps.vadmin.utils.jwt_util import jwt_get_session_id
|
||||||
from .response import SuccessResponse, ErrorResponse
|
from apps.vadmin.utils.request_util import get_request_ip, get_os, get_browser, get_login_location
|
||||||
# from .jwt_util import jwt_response_payload_handler
|
from apps.vadmin.op_drf.response import SuccessResponse, ErrorResponse
|
||||||
from ..system.models.logininfor import LoginInfor
|
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
|
|
@ -6,7 +6,7 @@ from django.apps.config import AppConfig
|
||||||
from django.db.models.fields import Field
|
from django.db.models.fields import Field
|
||||||
from rest_framework.renderers import JSONRenderer
|
from rest_framework.renderers import JSONRenderer
|
||||||
|
|
||||||
from ..permission.models import Dept
|
from apps.vadmin.permission.models import Dept
|
||||||
|
|
||||||
|
|
||||||
def get_primary_field(model, many=False):
|
def get_primary_field(model, many=False):
|
||||||
|
|
|
@ -1,91 +0,0 @@
|
||||||
"""
|
|
||||||
常用的Response以及Django的Response、DRF的Response
|
|
||||||
"""
|
|
||||||
from django.http.response import DjangoJSONEncoder, JsonResponse
|
|
||||||
from rest_framework.response import Response
|
|
||||||
|
|
||||||
|
|
||||||
class OpDRFJSONEncoder(DjangoJSONEncoder):
|
|
||||||
"""
|
|
||||||
重写DjangoJSONEncoder
|
|
||||||
(1)默认返回支持中文格式的json字符串
|
|
||||||
"""
|
|
||||||
|
|
||||||
def __init__(self, *, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, sort_keys=False,
|
|
||||||
indent=None, separators=None, default=None):
|
|
||||||
super().__init__(skipkeys=skipkeys, ensure_ascii=False, check_circular=check_circular,
|
|
||||||
allow_nan=allow_nan, sort_keys=sort_keys, indent=indent, separators=separators,
|
|
||||||
default=default)
|
|
||||||
|
|
||||||
|
|
||||||
class SuccessResponse(Response):
|
|
||||||
"""
|
|
||||||
标准响应成功的返回, SuccessResponse(data)或者SuccessResponse(data=data)
|
|
||||||
(1)默认错误码返回2000, 不支持指定其他返回码
|
|
||||||
"""
|
|
||||||
|
|
||||||
def __init__(self, data=None, msg='success', status=None, template_name=None, headers=None, exception=False,
|
|
||||||
content_type=None):
|
|
||||||
self.std_data = {
|
|
||||||
"code": 200,
|
|
||||||
"data": data,
|
|
||||||
"msg": msg,
|
|
||||||
"status": 'success'
|
|
||||||
}
|
|
||||||
super().__init__(self.std_data, status, template_name, headers, exception, content_type)
|
|
||||||
|
|
||||||
def __str__(self):
|
|
||||||
return str(self.std_data)
|
|
||||||
|
|
||||||
|
|
||||||
class ErrorResponse(Response):
|
|
||||||
"""
|
|
||||||
标准响应错误的返回,ErrorResponse(msg='xxx')
|
|
||||||
(1)默认错误码返回2001, 也可以指定其他返回码:ErrorResponse(code=xxx)
|
|
||||||
"""
|
|
||||||
|
|
||||||
def __init__(self, data=None, msg='error', code=201, status=None, template_name=None, headers=None,
|
|
||||||
exception=False, content_type=None):
|
|
||||||
self.std_data = {
|
|
||||||
"code": code,
|
|
||||||
"data": data,
|
|
||||||
"msg": msg,
|
|
||||||
"status": 'error'
|
|
||||||
}
|
|
||||||
super().__init__(self.std_data, status, template_name, headers, exception, content_type)
|
|
||||||
|
|
||||||
def __str__(self):
|
|
||||||
return str(self.std_data)
|
|
||||||
|
|
||||||
|
|
||||||
class SuccessJsonResponse(JsonResponse):
|
|
||||||
"""
|
|
||||||
标准JsonResponse, SuccessJsonResponse(data)SuccessJsonResponse(data=data)
|
|
||||||
(1)仅SuccessResponse无法使用时才能推荐使用SuccessJsonResponse
|
|
||||||
"""
|
|
||||||
|
|
||||||
def __init__(self, data, msg='success', encoder=DjangoJSONEncoder, safe=True, json_dumps_params=None, **kwargs):
|
|
||||||
std_data = {
|
|
||||||
"code": 200,
|
|
||||||
"data": data,
|
|
||||||
"msg": msg,
|
|
||||||
"status": 'success'
|
|
||||||
}
|
|
||||||
super().__init__(std_data, encoder, safe, json_dumps_params, **kwargs)
|
|
||||||
|
|
||||||
|
|
||||||
class ErrorJsonResponse(JsonResponse):
|
|
||||||
"""
|
|
||||||
标准JsonResponse, 仅ErrorResponse无法使用时才能使用ErrorJsonResponse
|
|
||||||
(1)默认错误码返回2001, 也可以指定其他返回码:ErrorJsonResponse(code=xxx)
|
|
||||||
"""
|
|
||||||
|
|
||||||
def __init__(self, data, msg='error', code=201, encoder=OpDRFJSONEncoder, safe=True, json_dumps_params=None,
|
|
||||||
**kwargs):
|
|
||||||
std_data = {
|
|
||||||
"code": code,
|
|
||||||
"data": data,
|
|
||||||
"msg": msg,
|
|
||||||
"status": 'error'
|
|
||||||
}
|
|
||||||
super().__init__(std_data, encoder, safe, json_dumps_params, **kwargs)
|
|
Loading…
Reference in New Issue