格式化已有代码
This commit is contained in:
parent
b77ecb46e7
commit
b21441ad76
|
@ -1,7 +1,5 @@
|
||||||
from rest_framework import serializers
|
from rest_framework import serializers
|
||||||
from apps.am.models import Access, Area
|
from apps.am.models import Access, Area
|
||||||
from apps.hrm.models import Employee
|
|
||||||
from apps.system.models import Post
|
|
||||||
from apps.utils.serializers import CustomModelSerializer
|
from apps.utils.serializers import CustomModelSerializer
|
||||||
from rest_framework.exceptions import ParseError
|
from rest_framework.exceptions import ParseError
|
||||||
|
|
||||||
|
@ -15,6 +13,7 @@ class AreaSimpleSerializer(CustomModelSerializer):
|
||||||
class AreaSerializer(CustomModelSerializer):
|
class AreaSerializer(CustomModelSerializer):
|
||||||
manager_name = serializers.CharField(source='manager.name', read_only=True)
|
manager_name = serializers.CharField(source='manager.name', read_only=True)
|
||||||
belong_dept_name = serializers.CharField(source='belong_dept.name', read_only=True)
|
belong_dept_name = serializers.CharField(source='belong_dept.name', read_only=True)
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = Area
|
model = Area
|
||||||
fields = '__all__'
|
fields = '__all__'
|
||||||
|
|
|
@ -7,7 +7,6 @@ from rest_framework import serializers
|
||||||
from apps.third.clients import xxClient
|
from apps.third.clients import xxClient
|
||||||
from apps.third.tapis import xxapis
|
from apps.third.tapis import xxapis
|
||||||
from rest_framework.response import Response
|
from rest_framework.response import Response
|
||||||
from rest_framework.exceptions import ParseError
|
|
||||||
from rest_framework.mixins import ListModelMixin, CreateModelMixin, DestroyModelMixin
|
from rest_framework.mixins import ListModelMixin, CreateModelMixin, DestroyModelMixin
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,3 @@
|
||||||
from django.db import models
|
|
||||||
|
|
||||||
from apps.utils.models import BaseModel
|
|
||||||
|
|
||||||
# Create your models here.
|
# Create your models here.
|
||||||
|
|
|
@ -1,9 +1,10 @@
|
||||||
from atexit import register
|
|
||||||
from django.urls import path
|
from django.urls import path
|
||||||
from rest_framework_simplejwt.views import (TokenObtainPairView,
|
from rest_framework_simplejwt.views import (TokenObtainPairView,
|
||||||
TokenRefreshView)
|
TokenRefreshView)
|
||||||
|
|
||||||
from apps.auth1.views import CodeLogin, LoginView, LogoutView, PwResetView, SecretLogin, SendCode, TokenBlackView, WxLogin, WxmpLogin
|
from apps.auth1.views import (CodeLogin, LoginView, LogoutView, PwResetView,
|
||||||
|
SecretLogin, SendCode, TokenBlackView, WxLogin, WxmpLogin)
|
||||||
|
|
||||||
API_BASE_URL = 'api/auth/'
|
API_BASE_URL = 'api/auth/'
|
||||||
urlpatterns = [
|
urlpatterns = [
|
||||||
|
|
|
@ -7,10 +7,6 @@ from django.contrib.auth import authenticate, login, logout
|
||||||
from rest_framework.generics import CreateAPIView
|
from rest_framework.generics import CreateAPIView
|
||||||
from rest_framework.permissions import IsAuthenticated
|
from rest_framework.permissions import IsAuthenticated
|
||||||
from apps.auth1.errors import USERNAME_OR_PASSWORD_WRONG
|
from apps.auth1.errors import USERNAME_OR_PASSWORD_WRONG
|
||||||
from rest_framework.exceptions import ParseError
|
|
||||||
import requests
|
|
||||||
import json
|
|
||||||
from django.conf import settings
|
|
||||||
from rest_framework_simplejwt.tokens import RefreshToken
|
from rest_framework_simplejwt.tokens import RefreshToken
|
||||||
from django.core.cache import cache
|
from django.core.cache import cache
|
||||||
from apps.auth1.services import check_phone_code
|
from apps.auth1.services import check_phone_code
|
||||||
|
@ -22,9 +18,9 @@ from django.contrib.auth.hashers import make_password
|
||||||
from django.db.models import Q
|
from django.db.models import Q
|
||||||
|
|
||||||
|
|
||||||
from apps.auth1.serializers import CodeLoginSerializer, LoginSerializer, PwResetSerializer, SecretLoginSerializer, SendCodeSerializer, WxCodeSerializer
|
from apps.auth1.serializers import (CodeLoginSerializer, LoginSerializer,
|
||||||
|
PwResetSerializer, SecretLoginSerializer, SendCodeSerializer, WxCodeSerializer)
|
||||||
from apps.system.models import User
|
from apps.system.models import User
|
||||||
from apps.utils.viewsets import CustomGenericViewSet, CustomModelViewSet
|
|
||||||
|
|
||||||
# Create your views here.
|
# Create your views here.
|
||||||
|
|
||||||
|
|
|
@ -1,12 +1,7 @@
|
||||||
from __future__ import absolute_import, unicode_literals
|
from __future__ import absolute_import, unicode_literals
|
||||||
from celery import shared_task
|
from celery import shared_task
|
||||||
import subprocess
|
import subprocess
|
||||||
from apps.utils.tasks import CustomTask
|
|
||||||
from server.settings import DATABASES, BACKUP_PATH, SH_PATH, SD_PWD
|
from server.settings import DATABASES, BACKUP_PATH, SH_PATH, SD_PWD
|
||||||
import requests
|
|
||||||
import json
|
|
||||||
from django.conf import settings
|
|
||||||
from django.core.cache import cache
|
|
||||||
|
|
||||||
|
|
||||||
@shared_task
|
@shared_task
|
||||||
|
@ -55,4 +50,3 @@ def backup_media():
|
||||||
command = 'bash {}/backup_media.sh'.format(SH_PATH)
|
command = 'bash {}/backup_media.sh'.format(SH_PATH)
|
||||||
completed = subprocess.run(command, shell=True, capture_output=True, text=True)
|
completed = subprocess.run(command, shell=True, capture_output=True, text=True)
|
||||||
return completed
|
return completed
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
import json
|
|
||||||
from rest_framework.views import APIView
|
from rest_framework.views import APIView
|
||||||
from rest_framework.permissions import IsAdminUser
|
from rest_framework.permissions import IsAdminUser
|
||||||
from rest_framework.response import Response
|
from rest_framework.response import Response
|
||||||
|
@ -6,13 +6,10 @@ from rest_framework.serializers import Serializer
|
||||||
from rest_framework.decorators import action
|
from rest_framework.decorators import action
|
||||||
from apps.develop.serializers import GenerateVoiceSerializer, SendSmsSerializer, TestTaskSerializer
|
from apps.develop.serializers import GenerateVoiceSerializer, SendSmsSerializer, TestTaskSerializer
|
||||||
from apps.develop.tasks import backup_database, backup_media, reload_web_git, reload_server_git, reload_server_only
|
from apps.develop.tasks import backup_database, backup_media, reload_web_git, reload_server_git, reload_server_only
|
||||||
from rest_framework.exceptions import APIException, ParseError
|
from rest_framework.exceptions import APIException
|
||||||
from apps.system.models import User
|
|
||||||
from apps.system.tasks import show
|
from apps.system.tasks import show
|
||||||
from apps.utils.sms import send_sms
|
from apps.utils.sms import send_sms
|
||||||
from apps.utils.speech import generate_voice
|
from apps.utils.speech import generate_voice
|
||||||
from django.core.cache import cache
|
|
||||||
import requests
|
|
||||||
|
|
||||||
from apps.utils.viewsets import CustomGenericViewSet
|
from apps.utils.viewsets import CustomGenericViewSet
|
||||||
from apps.utils.wx import wxClient
|
from apps.utils.wx import wxClient
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
from apps.am.serializers import AreaSerializer, AreaSimpleSerializer
|
from apps.am.serializers import AreaSerializer
|
||||||
from apps.ecm.models import AlgoChannel, EventCate, Remind, NotifySetting, Event
|
from apps.ecm.models import AlgoChannel, EventCate, Remind, NotifySetting, Event
|
||||||
from apps.third.serializers import TDeviceSimpleSerializer
|
from apps.third.serializers import TDeviceSimpleSerializer
|
||||||
from apps.third.models import TDevice
|
from apps.third.models import TDevice
|
||||||
|
|
|
@ -6,9 +6,7 @@ from apps.am.tasks import cache_areas_info
|
||||||
from apps.ecm.models import AlgoChannel, Event, EventCate, Eventdo, NotifySetting, Remind
|
from apps.ecm.models import AlgoChannel, Event, EventCate, Eventdo, NotifySetting, Remind
|
||||||
from apps.hrm.models import Employee
|
from apps.hrm.models import Employee
|
||||||
from apps.system.models import User
|
from apps.system.models import User
|
||||||
from apps.third.clients import xxClient
|
|
||||||
from apps.third.models import TDevice
|
from apps.third.models import TDevice
|
||||||
from apps.third.tapis import xxapis
|
|
||||||
from apps.utils.queryset import get_child_queryset2, get_parent_queryset
|
from apps.utils.queryset import get_child_queryset2, get_parent_queryset
|
||||||
from django.core.cache import cache
|
from django.core.cache import cache
|
||||||
import time
|
import time
|
||||||
|
@ -33,13 +31,6 @@ def update_remind_read(event: Event, user: User):
|
||||||
|
|
||||||
def get_area_info_from_cache(target: str, cache: list):
|
def get_area_info_from_cache(target: str, cache: list):
|
||||||
"""从区域信息缓存里匹配到所在区域
|
"""从区域信息缓存里匹配到所在区域
|
||||||
|
|
||||||
Args:
|
|
||||||
target (str): 区域ID
|
|
||||||
cache (list):
|
|
||||||
|
|
||||||
Returns:
|
|
||||||
_type_: _description_
|
|
||||||
"""
|
"""
|
||||||
for i in cache:
|
for i in cache:
|
||||||
if i['id'] == target:
|
if i['id'] == target:
|
||||||
|
|
|
@ -1,20 +1,28 @@
|
||||||
|
|
||||||
from threading import Thread
|
from threading import Thread
|
||||||
|
|
||||||
|
from django.db import transaction
|
||||||
|
from django.db.models import Count, F
|
||||||
|
from django.utils import timezone
|
||||||
|
from rest_framework.decorators import action
|
||||||
|
from rest_framework.exceptions import PermissionDenied
|
||||||
|
from rest_framework.mixins import (CreateModelMixin, DestroyModelMixin,
|
||||||
|
ListModelMixin, RetrieveModelMixin,
|
||||||
|
UpdateModelMixin)
|
||||||
|
from rest_framework.response import Response
|
||||||
|
|
||||||
from apps.ecm.filters import EventFilterSet
|
from apps.ecm.filters import EventFilterSet
|
||||||
from apps.ecm.models import AlgoChannel, Event, EventCate, Eventdo, Remind, NotifySetting
|
from apps.ecm.models import (AlgoChannel, Event, EventCate, Eventdo,
|
||||||
from apps.ecm.serializers import (AlgoChannelCreateSerializer, AlgoChannelCreatesSerializer, AlgoChannelSerializer, EventAggSerializer, EventCateCreateUpdateSerializer, EventCateListSerializer, EventCateUpdateSerializer, EventHandleSerializer,
|
NotifySetting, Remind)
|
||||||
EventSerializer, RemindSerializer, NotifySettingsSerializer)
|
from apps.ecm.serializers import (AlgoChannelCreateSerializer,
|
||||||
|
AlgoChannelCreatesSerializer,
|
||||||
|
AlgoChannelSerializer, EventAggSerializer,
|
||||||
|
EventCateCreateUpdateSerializer,
|
||||||
|
EventCateListSerializer,
|
||||||
|
EventHandleSerializer, EventSerializer,
|
||||||
|
NotifySettingsSerializer, RemindSerializer)
|
||||||
from apps.ecm.service import update_remind_read
|
from apps.ecm.service import update_remind_read
|
||||||
from apps.utils.viewsets import CustomGenericViewSet, CustomModelViewSet
|
from apps.utils.viewsets import CustomGenericViewSet, CustomModelViewSet
|
||||||
from rest_framework.mixins import UpdateModelMixin, ListModelMixin, RetrieveModelMixin, CreateModelMixin, DestroyModelMixin
|
|
||||||
from django.db import transaction
|
|
||||||
from rest_framework.decorators import action
|
|
||||||
from rest_framework import serializers
|
|
||||||
from django.utils import timezone
|
|
||||||
from rest_framework.response import Response
|
|
||||||
from rest_framework.exceptions import PermissionDenied
|
|
||||||
from apps.utils.snowflake import idWorker
|
|
||||||
from django.db.models import Count, F
|
|
||||||
|
|
||||||
|
|
||||||
# Create your views here.
|
# Create your views here.
|
||||||
|
@ -81,7 +89,8 @@ class EventViewSet(ListModelMixin, RetrieveModelMixin, CustomGenericViewSet):
|
||||||
"""
|
"""
|
||||||
obj = self.get_object()
|
obj = self.get_object()
|
||||||
# 判断当前用户有无处理权限
|
# 判断当前用户有无处理权限
|
||||||
if (not Remind.objects.filter(event=obj, recipient=request.user, can_handle=True).exists()) and (not request.user.is_superuser):
|
if (not Remind.objects.filter(event=obj, recipient=request.user, can_handle=True).exists()) and (
|
||||||
|
not request.user.is_superuser):
|
||||||
raise PermissionDenied('您无权处理该事件')
|
raise PermissionDenied('您无权处理该事件')
|
||||||
data = request.data
|
data = request.data
|
||||||
obj.mark = data.get('mark')
|
obj.mark = data.get('mark')
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
from django.db import models
|
from django.db import models
|
||||||
from apps.system.models import Post, User
|
from apps.system.models import Post, User
|
||||||
|
|
||||||
from apps.utils.models import BaseModel, CommonADModel, CommonAModel, CommonBModel
|
from apps.utils.models import CommonADModel, CommonAModel, CommonBModel
|
||||||
|
|
||||||
|
|
||||||
class Employee(CommonBModel):
|
class Employee(CommonBModel):
|
||||||
|
@ -41,7 +41,6 @@ class Employee(CommonBModel):
|
||||||
third_info = models.JSONField('三方信息', default=dict, null=False, blank=True) # 主要是定位卡信息
|
third_info = models.JSONField('三方信息', default=dict, null=False, blank=True) # 主要是定位卡信息
|
||||||
post = models.ForeignKey(Post, verbose_name='所属岗位', on_delete=models.SET_NULL, null=True, blank=True)
|
post = models.ForeignKey(Post, verbose_name='所属岗位', on_delete=models.SET_NULL, null=True, blank=True)
|
||||||
|
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
verbose_name = '员工补充信息'
|
verbose_name = '员工补充信息'
|
||||||
verbose_name_plural = verbose_name
|
verbose_name_plural = verbose_name
|
||||||
|
|
|
@ -6,15 +6,12 @@ from apps.utils.fields import MyFilePathField
|
||||||
|
|
||||||
|
|
||||||
from apps.utils.serializers import CustomModelSerializer
|
from apps.utils.serializers import CustomModelSerializer
|
||||||
from apps.utils.constants import EXCLUDE_FIELDS, EXCLUDE_FIELDS_BASE
|
from apps.utils.constants import EXCLUDE_FIELDS
|
||||||
from apps.utils.tools import rannum
|
|
||||||
from apps.hrm.models import Certificate, ClockRecord, Employee, NotWorkRemark
|
from apps.hrm.models import Certificate, ClockRecord, Employee, NotWorkRemark
|
||||||
from apps.system.serializers import DeptSimpleSerializer, UserSimpleSerializer
|
from apps.system.serializers import DeptSimpleSerializer, UserSimpleSerializer
|
||||||
from django.db import transaction
|
from django.db import transaction
|
||||||
from apps.third.clients import dhClient
|
from apps.third.clients import dhClient
|
||||||
from apps.third.tapis import dhapis
|
|
||||||
import re
|
import re
|
||||||
from datetime import datetime
|
|
||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,3 @@
|
||||||
from os import access
|
|
||||||
from apps.hrm.models import Employee
|
from apps.hrm.models import Employee
|
||||||
from apps.third.models import TDevice
|
from apps.third.models import TDevice
|
||||||
from apps.third.tapis import dhapis
|
from apps.third.tapis import dhapis
|
||||||
|
|
|
@ -19,7 +19,6 @@ from apps.hrm.serializers import (CertificateCreateUpdateSerializer, Certificate
|
||||||
EmployeeNotWorkRemarkSerializer,
|
EmployeeNotWorkRemarkSerializer,
|
||||||
EmployeeSerializer,
|
EmployeeSerializer,
|
||||||
NotWorkRemarkListSerializer)
|
NotWorkRemarkListSerializer)
|
||||||
from apps.hrm.services import HrmService
|
|
||||||
|
|
||||||
from apps.third.clients import dhClient
|
from apps.third.clients import dhClient
|
||||||
from apps.third.tapis import dhapis
|
from apps.third.tapis import dhapis
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
from apps.hrm.models import Certificate
|
from apps.hrm.models import Certificate
|
||||||
from apps.opm.models import GasCheck, Operation, Opl, OplCate, OplCert, OplWorker
|
from apps.opm.models import GasCheck, Operation, Opl, OplCate, OplCert, OplWorker
|
||||||
from apps.system.models import Dictionary
|
from apps.system.models import Dictionary
|
||||||
from apps.system.serializers import DeptSimpleSerializer, DictSerializer, DictSimpleSerializer, UserSimpleSerializer
|
from apps.system.serializers import DeptSimpleSerializer, DictSimpleSerializer, UserSimpleSerializer
|
||||||
from apps.utils.fields import MyFilePathField
|
from apps.utils.fields import MyFilePathField
|
||||||
from apps.utils.serializers import CustomModelSerializer
|
from apps.utils.serializers import CustomModelSerializer
|
||||||
from apps.utils.constants import EXCLUDE_FIELDS
|
from apps.utils.constants import EXCLUDE_FIELDS
|
||||||
|
@ -122,8 +122,10 @@ class OplWorkerUpdateSerializer(CustomModelSerializer):
|
||||||
oplc.save()
|
oplc.save()
|
||||||
return oplw
|
return oplw
|
||||||
|
|
||||||
|
|
||||||
class OplCertSerializer(CustomModelSerializer):
|
class OplCertSerializer(CustomModelSerializer):
|
||||||
file = MyFilePathField()
|
file = MyFilePathField()
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = OplCert
|
model = OplCert
|
||||||
fields = ['certificate', 'name', 'type', 'number', 'issue_date', 'expiration_date', 'review_date', 'file']
|
fields = ['certificate', 'name', 'type', 'number', 'issue_date', 'expiration_date', 'review_date', 'file']
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
from apps.opm.models import Operation, Opl, OplWorker
|
from apps.opm.models import Operation, Opl, OplWorker
|
||||||
from apps.opm.serializers import OplCloseSerializer
|
|
||||||
from apps.wf.models import Ticket, Transition
|
from apps.wf.models import Ticket, Transition
|
||||||
|
|
||||||
|
|
||||||
|
@ -62,3 +61,4 @@ def opl_audit_end(ticket: Ticket):
|
||||||
op.save()
|
op.save()
|
||||||
|
|
||||||
# 授予相关工作人员区域进入权限
|
# 授予相关工作人员区域进入权限
|
||||||
|
worker_ep_ids = list(OplWorker.objects.filter(opl=opl).values_list('worker__id', flat=True))
|
||||||
|
|
|
@ -1,17 +1,20 @@
|
||||||
from django.shortcuts import render
|
|
||||||
from rest_framework.response import Response
|
from rest_framework.response import Response
|
||||||
from apps.opm.models import GasCheck, Operation, Opl, OplCate, OplWorker
|
from apps.opm.models import GasCheck, Operation, Opl, OplCate, OplWorker
|
||||||
from apps.opm.serializers import GasCheckCreateUpdateSerializer, GasCheckSerializer, OperationCreateUpdateSerializer, OperationDetailSerializer, OperationSerializer, OplCateCreateUpdateSerializer, OplCateDetailSerializer, OplCateSerializer, OplCreateUpdateSerializer, OplDetailSerializer, OplListSerializer, OplSerializer, OplWorkerCreateSerializer, OplWorkerSerializer, OplWorkerUpdateSerializer
|
from apps.opm.serializers import (GasCheckCreateUpdateSerializer, GasCheckSerializer,
|
||||||
|
OperationCreateUpdateSerializer, OperationDetailSerializer,
|
||||||
|
OplCateCreateUpdateSerializer, OplCateDetailSerializer, OplCateSerializer,
|
||||||
|
OplCreateUpdateSerializer, OplDetailSerializer, OplListSerializer,
|
||||||
|
OplWorkerCreateSerializer, OplWorkerSerializer, OplWorkerUpdateSerializer)
|
||||||
from apps.utils.viewsets import CustomGenericViewSet, CustomModelViewSet
|
from apps.utils.viewsets import CustomGenericViewSet, CustomModelViewSet
|
||||||
from rest_framework.exceptions import ParseError
|
from rest_framework.exceptions import ParseError
|
||||||
from rest_framework.mixins import CreateModelMixin, ListModelMixin, DestroyModelMixin
|
from rest_framework.mixins import CreateModelMixin, ListModelMixin, DestroyModelMixin
|
||||||
from rest_framework.decorators import action
|
|
||||||
from rest_framework import serializers
|
|
||||||
from django.db import transaction
|
|
||||||
|
|
||||||
from apps.wf.models import State, Ticket
|
from apps.wf.models import Ticket
|
||||||
|
|
||||||
# Create your views here.
|
# Create your views here.
|
||||||
|
|
||||||
|
|
||||||
class OplCateViewSet(CustomModelViewSet):
|
class OplCateViewSet(CustomModelViewSet):
|
||||||
queryset = OplCate.objects.all()
|
queryset = OplCate.objects.all()
|
||||||
create_serializer_class = OplCateCreateUpdateSerializer
|
create_serializer_class = OplCateCreateUpdateSerializer
|
||||||
|
@ -28,7 +31,7 @@ class OperationViewSet(CustomModelViewSet):
|
||||||
serializer_class = OperationDetailSerializer
|
serializer_class = OperationDetailSerializer
|
||||||
retrieve_serializer_class = OperationDetailSerializer
|
retrieve_serializer_class = OperationDetailSerializer
|
||||||
select_related_fields = ['area', 'dept_bus', 'dept_ter', 'coordinator']
|
select_related_fields = ['area', 'dept_bus', 'dept_ter', 'coordinator']
|
||||||
filterset_fields = ['state', 'opl_operation__cate', 'area']
|
filterset_fields = ['state', 'opl_operation__cate', 'area', 'create_by']
|
||||||
|
|
||||||
def update(self, request, *args, **kwargs):
|
def update(self, request, *args, **kwargs):
|
||||||
obj = self.get_object()
|
obj = self.get_object()
|
||||||
|
|
|
@ -1,7 +1,5 @@
|
||||||
from inflection import transliterate
|
|
||||||
from numpy import True_
|
from apps.hrm.models import Employee
|
||||||
from apps.hrm.models import Certificate, Employee
|
|
||||||
from apps.hrm.serializers import phone_check
|
|
||||||
from apps.rpm.models import Rcertificate, Remployee, Rfile, Rparty, Rpjcertificate, Rpjfile, Rpjmember, Rpj
|
from apps.rpm.models import Rcertificate, Remployee, Rfile, Rparty, Rpjcertificate, Rpjfile, Rpjmember, Rpj
|
||||||
from apps.system.models import Dept
|
from apps.system.models import Dept
|
||||||
from apps.utils.constants import EXCLUDE_FIELDS
|
from apps.utils.constants import EXCLUDE_FIELDS
|
||||||
|
@ -76,6 +74,7 @@ class RfileListSerializer(CustomModelSerializer):
|
||||||
class RpjCreateUpdateSerializer(CustomModelSerializer):
|
class RpjCreateUpdateSerializer(CustomModelSerializer):
|
||||||
rparty = serializers.PrimaryKeyRelatedField(queryset=Rparty.objects.all(), required=False)
|
rparty = serializers.PrimaryKeyRelatedField(queryset=Rparty.objects.all(), required=False)
|
||||||
belong_dept = serializers.PrimaryKeyRelatedField(queryset=Dept.objects.all(), required=False)
|
belong_dept = serializers.PrimaryKeyRelatedField(queryset=Dept.objects.all(), required=False)
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = Rpj
|
model = Rpj
|
||||||
fields = ['id', 'name', 'contract_number', 'type', 'come_time', 'leave_time', 'belong_dept', 'rparty']
|
fields = ['id', 'name', 'contract_number', 'type', 'come_time', 'leave_time', 'belong_dept', 'rparty']
|
||||||
|
@ -117,6 +116,7 @@ class RpjListSerializer(CustomModelSerializer):
|
||||||
|
|
||||||
class RemployeeCreateSerializer(CustomModelSerializer):
|
class RemployeeCreateSerializer(CustomModelSerializer):
|
||||||
rparty = serializers.PrimaryKeyRelatedField(queryset=Rparty.objects.all(), label='相关方ID', required=False)
|
rparty = serializers.PrimaryKeyRelatedField(queryset=Rparty.objects.all(), label='相关方ID', required=False)
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = Remployee
|
model = Remployee
|
||||||
fields = ['name', 'phone', 'photo', 'id_number', 'rparty']
|
fields = ['name', 'phone', 'photo', 'id_number', 'rparty']
|
||||||
|
@ -141,6 +141,7 @@ class RemployeeUpdateSerializer(CustomModelSerializer):
|
||||||
class RemployeeSerializer(CustomModelSerializer):
|
class RemployeeSerializer(CustomModelSerializer):
|
||||||
rparty_name = serializers.CharField(source='rparty.name', read_only=True)
|
rparty_name = serializers.CharField(source='rparty.name', read_only=True)
|
||||||
photo = MyFilePathField()
|
photo = MyFilePathField()
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = Remployee
|
model = Remployee
|
||||||
fields = '__all__'
|
fields = '__all__'
|
||||||
|
@ -156,6 +157,7 @@ class RcertificateSerializer(CustomModelSerializer):
|
||||||
remployee_name = serializers.CharField(source='remployee.name', read_only=True)
|
remployee_name = serializers.CharField(source='remployee.name', read_only=True)
|
||||||
rparty_name = serializers.CharField(source='rparty.name', read_only=True)
|
rparty_name = serializers.CharField(source='rparty.name', read_only=True)
|
||||||
file = MyFilePathField()
|
file = MyFilePathField()
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = Rcertificate
|
model = Rcertificate
|
||||||
fields = '__all__'
|
fields = '__all__'
|
||||||
|
@ -236,12 +238,15 @@ class RpjmemberUpdateSerializer(CustomModelSerializer):
|
||||||
Rpjmember.objects.exclude(id=ins.id).update(is_manager=False)
|
Rpjmember.objects.exclude(id=ins.id).update(is_manager=False)
|
||||||
return ins
|
return ins
|
||||||
|
|
||||||
|
|
||||||
class RpjcertificateSerializer(CustomModelSerializer):
|
class RpjcertificateSerializer(CustomModelSerializer):
|
||||||
file = MyFilePathField()
|
file = MyFilePathField()
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = Rpjcertificate
|
model = Rpjcertificate
|
||||||
fields = ['rcertificate', 'name', 'type', 'number', 'issue_date', 'expiration_date', 'review_date', 'file']
|
fields = ['rcertificate', 'name', 'type', 'number', 'issue_date', 'expiration_date', 'review_date', 'file']
|
||||||
|
|
||||||
|
|
||||||
class RpjmemberSerializer(CustomModelSerializer):
|
class RpjmemberSerializer(CustomModelSerializer):
|
||||||
remployee_ = RemployeeSerializer(source='remployee', read_only=True)
|
remployee_ = RemployeeSerializer(source='remployee', read_only=True)
|
||||||
rcertificates_ = serializers.SerializerMethodField()
|
rcertificates_ = serializers.SerializerMethodField()
|
||||||
|
|
|
@ -1,12 +1,10 @@
|
||||||
from threading import Thread
|
|
||||||
from apps.hrm.errors import PHONE_EXIST
|
|
||||||
from apps.hrm.models import Certificate, Employee
|
from apps.hrm.models import Certificate, Employee
|
||||||
from apps.hrm.services import HrmService
|
from apps.hrm.services import HrmService
|
||||||
from apps.system.models import Post, User, UserPost
|
from apps.system.models import Post, User, UserPost
|
||||||
from apps.utils.tools import ranstr
|
from apps.utils.tools import ranstr
|
||||||
from apps.wf.models import Ticket, Transition
|
from apps.wf.models import Ticket, Transition
|
||||||
from apps.rpm.models import Rcertificate, Rfile, Rpj, Rpjcertificate, Rpjfile, Rpjmember
|
from apps.rpm.models import Rfile, Rpj, Rpjcertificate, Rpjfile, Rpjmember
|
||||||
from rest_framework.exceptions import ParseError
|
|
||||||
from django.contrib.auth.hashers import make_password
|
from django.contrib.auth.hashers import make_password
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,19 +1,20 @@
|
||||||
from django.shortcuts import render
|
|
||||||
from apps.hrm.models import Certificate, Employee
|
|
||||||
from apps.hrm.serializers import CertificateCreateUpdateSerializer, CertificateSerializer, EmployeeSerializer
|
|
||||||
from apps.rpm.models import Rcertificate, Remployee, Rparty, Rfile, Rpjfile, Rpjmember, Rpj
|
from apps.rpm.models import Rcertificate, Remployee, Rparty, Rfile, Rpjfile, Rpjmember, Rpj
|
||||||
from apps.rpm.serializers import RcertificateCreateUpdateSerializer, RcertificateSerializer, RemployeeCreateSerializer, RemployeeSerializer, RemployeeUpdateSerializer, RpartyAssignSerializer, RpartyCreateUpdateSerializer, RfileListSerializer, RpartySerializer, RpjListSerializer, RpjfileSerializer, RpjfileUpdateSerializer, RpjmemberCreateSerializer, RpjmemberCreatesSerializer, RpjCreateUpdateSerializer, RpjmemberSerializer, RpjmemberUpdateSerializer
|
from apps.rpm.serializers import (RcertificateCreateUpdateSerializer,
|
||||||
from apps.system.models import Dictionary, Post, User, UserPost
|
RcertificateSerializer, RemployeeCreateSerializer, RemployeeSerializer,
|
||||||
|
RemployeeUpdateSerializer, RpartyAssignSerializer, RpartyCreateUpdateSerializer,
|
||||||
|
RfileListSerializer, RpartySerializer, RpjListSerializer, RpjfileSerializer,
|
||||||
|
RpjfileUpdateSerializer, RpjmemberCreateSerializer,
|
||||||
|
RpjCreateUpdateSerializer, RpjmemberSerializer, RpjmemberUpdateSerializer)
|
||||||
|
from apps.system.models import Dictionary, Post, UserPost
|
||||||
from apps.system.serializers import UserCreateSerializer
|
from apps.system.serializers import UserCreateSerializer
|
||||||
from apps.utils.viewsets import CustomGenericViewSet, CustomModelViewSet
|
from apps.utils.viewsets import CustomGenericViewSet, CustomModelViewSet
|
||||||
from rest_framework.mixins import CreateModelMixin, ListModelMixin, RetrieveModelMixin, DestroyModelMixin, UpdateModelMixin
|
from rest_framework.mixins import ListModelMixin, DestroyModelMixin, UpdateModelMixin
|
||||||
from apps.utils.mixins import CustomDestoryModelMixin
|
|
||||||
from rest_framework.decorators import action
|
from rest_framework.decorators import action
|
||||||
from rest_framework.response import Response
|
from rest_framework.response import Response
|
||||||
from django.contrib.auth.hashers import check_password, make_password
|
from django.contrib.auth.hashers import make_password
|
||||||
from django.db import transaction
|
from django.db import transaction
|
||||||
from rest_framework.exceptions import ParseError
|
from rest_framework.exceptions import ParseError
|
||||||
from rest_framework import serializers
|
|
||||||
|
|
||||||
|
|
||||||
# Create your views here.
|
# Create your views here.
|
||||||
|
@ -31,7 +32,6 @@ class RpartyViewSet(CustomModelViewSet):
|
||||||
queryset = queryset.filter(dept=self.request.user.belong_dept)
|
queryset = queryset.filter(dept=self.request.user.belong_dept)
|
||||||
return queryset
|
return queryset
|
||||||
|
|
||||||
|
|
||||||
@action(methods=['post'], detail=True, perms_map={'post': 'rparty:assgin'}, serializer_class=RpartyAssignSerializer)
|
@action(methods=['post'], detail=True, perms_map={'post': 'rparty:assgin'}, serializer_class=RpartyAssignSerializer)
|
||||||
@transaction.atomic
|
@transaction.atomic
|
||||||
def assign(self, request, *args, **kwargs):
|
def assign(self, request, *args, **kwargs):
|
||||||
|
@ -122,7 +122,7 @@ class RpjViewSet(CustomModelViewSet):
|
||||||
update_serializer_class = RpjCreateUpdateSerializer
|
update_serializer_class = RpjCreateUpdateSerializer
|
||||||
serializer_class = RpjListSerializer
|
serializer_class = RpjListSerializer
|
||||||
select_related_fields = ['rparty', 'belong_dept', 'ticket', 'ticket__state']
|
select_related_fields = ['rparty', 'belong_dept', 'ticket', 'ticket__state']
|
||||||
filterset_fields = ['rparty', 'belong_dept', 'state']
|
filterset_fields = ['rparty', 'belong_dept', 'state', 'create_by']
|
||||||
|
|
||||||
def get_queryset(self):
|
def get_queryset(self):
|
||||||
queryset = super().get_queryset()
|
queryset = super().get_queryset()
|
||||||
|
|
|
@ -1,8 +1,7 @@
|
||||||
from django.contrib.auth.models import UserManager
|
from django.contrib.auth.models import UserManager
|
||||||
import enum
|
|
||||||
from django.db import models
|
from django.db import models
|
||||||
from django.contrib.auth.models import AbstractUser
|
from django.contrib.auth.models import AbstractUser
|
||||||
from apps.utils.models import CommonAModel, CommonBModel, BaseModel, SoftDeletableManager, SoftDeletableManagerMixin
|
from apps.utils.models import CommonAModel, CommonBModel, BaseModel, SoftDeletableManagerMixin
|
||||||
|
|
||||||
|
|
||||||
class DataFilter(models.IntegerChoices):
|
class DataFilter(models.IntegerChoices):
|
||||||
|
|
|
@ -301,6 +301,7 @@ class UserListSerializer(CustomModelSerializer):
|
||||||
belong_dept_ = DeptSimpleSerializer(source='belong_dept', read_only=True)
|
belong_dept_ = DeptSimpleSerializer(source='belong_dept', read_only=True)
|
||||||
# posts_ = PostSimpleSerializer(source='posts', many=True)
|
# posts_ = PostSimpleSerializer(source='posts', many=True)
|
||||||
avatar = MyFilePathField()
|
avatar = MyFilePathField()
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = User
|
model = User
|
||||||
exclude = ['password', 'secret']
|
exclude = ['password', 'secret']
|
||||||
|
|
|
@ -14,7 +14,7 @@ from rest_framework.parsers import (JSONParser,
|
||||||
from rest_framework.permissions import IsAuthenticated
|
from rest_framework.permissions import IsAuthenticated
|
||||||
from rest_framework.response import Response
|
from rest_framework.response import Response
|
||||||
from rest_framework.views import APIView
|
from rest_framework.views import APIView
|
||||||
from apps.system.errors import FUNC_ERROR, OLD_PASSWORD_WRONG, PASSWORD_NOT_SAME, SCHEDULE_WRONG
|
from apps.system.errors import OLD_PASSWORD_WRONG, PASSWORD_NOT_SAME, SCHEDULE_WRONG
|
||||||
from apps.system.filters import UserFilterSet
|
from apps.system.filters import UserFilterSet
|
||||||
# from django_q.models import Task as QTask, Schedule as QSchedule
|
# from django_q.models import Task as QTask, Schedule as QSchedule
|
||||||
from apps.utils.mixins import (CustomCreateModelMixin)
|
from apps.utils.mixins import (CustomCreateModelMixin)
|
||||||
|
@ -27,7 +27,8 @@ from .models import (Dept, Dictionary, DictType, File, Permission, Post, PostRol
|
||||||
from .serializers import (DeptCreateUpdateSerializer, DeptSerializer, DictCreateUpdateSerializer,
|
from .serializers import (DeptCreateUpdateSerializer, DeptSerializer, DictCreateUpdateSerializer,
|
||||||
DictSerializer, DictTypeCreateUpdateSerializer, DictTypeSerializer,
|
DictSerializer, DictTypeCreateUpdateSerializer, DictTypeSerializer,
|
||||||
FileSerializer, PasswordChangeSerializer, PermissionCreateUpdateSerializer,
|
FileSerializer, PasswordChangeSerializer, PermissionCreateUpdateSerializer,
|
||||||
PermissionSerializer, PostCreateUpdateSerializer, PostRoleCreateSerializer, PostRoleSerializer, PostSerializer,
|
PermissionSerializer, PostCreateUpdateSerializer, PostRoleCreateSerializer,
|
||||||
|
PostRoleSerializer, PostSerializer,
|
||||||
PTaskSerializer, PTaskCreateUpdateSerializer, PTaskResultSerializer,
|
PTaskSerializer, PTaskCreateUpdateSerializer, PTaskResultSerializer,
|
||||||
RoleCreateUpdateSerializer, RoleSerializer, TaskRunSerializer,
|
RoleCreateUpdateSerializer, RoleSerializer, TaskRunSerializer,
|
||||||
UserCreateSerializer, UserListSerializer, UserPostCreateSerializer,
|
UserCreateSerializer, UserListSerializer, UserPostCreateSerializer,
|
||||||
|
|
|
@ -4,7 +4,6 @@ from apps.am.models import Area
|
||||||
from apps.hrm.serializers import EmployeeSimpleSerializer
|
from apps.hrm.serializers import EmployeeSimpleSerializer
|
||||||
from apps.third.models import BltBind, TDevice, Tlog
|
from apps.third.models import BltBind, TDevice, Tlog
|
||||||
from apps.utils.serializers import CustomModelSerializer
|
from apps.utils.serializers import CustomModelSerializer
|
||||||
from django.db import transaction
|
|
||||||
|
|
||||||
|
|
||||||
class PicSerializer(serializers.Serializer):
|
class PicSerializer(serializers.Serializer):
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
from django.core.cache import cache
|
from django.core.cache import cache
|
||||||
from rest_framework.permissions import BasePermission
|
from rest_framework.permissions import BasePermission
|
||||||
from apps.utils.queryset import get_child_queryset2
|
from apps.utils.queryset import get_child_queryset2
|
||||||
from apps.system.models import DataFilter, Dept, Permission, Post, PostRole, UserPost
|
from apps.system.models import DataFilter, Dept, Permission, PostRole, UserPost
|
||||||
from django.db.models.query import QuerySet
|
from django.db.models.query import QuerySet
|
||||||
|
|
||||||
ALL_PERMS = [
|
ALL_PERMS = [
|
||||||
|
|
|
@ -1,9 +1,7 @@
|
||||||
from django.core.cache import cache
|
from django.core.cache import cache
|
||||||
import json
|
|
||||||
import time
|
import time
|
||||||
from threading import Thread
|
from threading import Thread
|
||||||
import uuid
|
import uuid
|
||||||
from async_timeout import timeout
|
|
||||||
|
|
||||||
import requests
|
import requests
|
||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
|
|
|
@ -1,6 +1,4 @@
|
||||||
from requests import request
|
|
||||||
from apps.hrm.models import Employee
|
|
||||||
from apps.utils.constants import EXCLUDE_FIELDS
|
|
||||||
from apps.utils.fields import MyFilePathField
|
from apps.utils.fields import MyFilePathField
|
||||||
from apps.utils.serializers import CustomModelSerializer
|
from apps.utils.serializers import CustomModelSerializer
|
||||||
from apps.vm.models import Visit, Visitor, Vpeople
|
from apps.vm.models import Visit, Visitor, Vpeople
|
||||||
|
|
|
@ -1,8 +1,7 @@
|
||||||
from threading import Thread
|
|
||||||
from apps.hrm.models import Employee
|
from apps.hrm.models import Employee
|
||||||
from apps.hrm.services import HrmService
|
from apps.hrm.services import HrmService
|
||||||
from apps.vm.models import Visit, Vpeople
|
from apps.vm.models import Visit, Vpeople
|
||||||
from apps.wf.models import Ticket
|
|
||||||
|
|
||||||
|
|
||||||
def bind_visit(ticket, transition, new_ticket_data: dict):
|
def bind_visit(ticket, transition, new_ticket_data: dict):
|
||||||
|
|
|
@ -1,19 +1,18 @@
|
||||||
from django.shortcuts import render
|
|
||||||
from apps.auth1.services import check_phone_code
|
from apps.auth1.services import check_phone_code
|
||||||
from apps.auth1.views import get_tokens_for_user
|
from apps.auth1.views import get_tokens_for_user
|
||||||
from apps.hrm.models import Employee
|
|
||||||
from apps.system.models import User
|
from apps.system.models import User
|
||||||
from apps.utils.tools import ranstr
|
from apps.utils.tools import ranstr
|
||||||
from apps.utils.viewsets import CustomGenericViewSet, CustomModelViewSet, GenericViewSet
|
from apps.utils.viewsets import CustomGenericViewSet, CustomModelViewSet
|
||||||
from apps.vm.models import Visit, Visitor, Vpeople
|
from apps.vm.models import Visit, Visitor, Vpeople
|
||||||
from apps.vm.serializers import VisitCreateUpdateSerializer, VisitDetailSerializer, VisitSerializer, VisitorCreateSerializer, VisitorRegisterSerializer, VisitorSerializer, VpeopleCreateSerializer, VpeopleSerializer
|
from apps.vm.serializers import (VisitCreateUpdateSerializer, VisitDetailSerializer,
|
||||||
|
VisitSerializer, VisitorCreateSerializer, VisitorRegisterSerializer, VisitorSerializer,
|
||||||
|
VpeopleCreateSerializer, VpeopleSerializer)
|
||||||
from rest_framework.decorators import action
|
from rest_framework.decorators import action
|
||||||
from rest_framework.response import Response
|
from rest_framework.response import Response
|
||||||
from rest_framework.exceptions import ParseError
|
from rest_framework.exceptions import ParseError
|
||||||
from rest_framework.mixins import ListModelMixin, RetrieveModelMixin, CreateModelMixin, DestroyModelMixin, UpdateModelMixin
|
from rest_framework.mixins import ListModelMixin, RetrieveModelMixin, CreateModelMixin, DestroyModelMixin
|
||||||
from apps.utils.mixins import CustomDestoryModelMixin
|
|
||||||
from django.contrib.auth.hashers import make_password
|
from django.contrib.auth.hashers import make_password
|
||||||
from rest_framework.permissions import IsAuthenticated
|
|
||||||
from django.db import transaction
|
from django.db import transaction
|
||||||
# Create your views here.
|
# Create your views here.
|
||||||
|
|
||||||
|
@ -24,7 +23,7 @@ class VisitViewSet(CustomModelViewSet):
|
||||||
update_serializer_class = VisitCreateUpdateSerializer
|
update_serializer_class = VisitCreateUpdateSerializer
|
||||||
serializer_class = VisitSerializer
|
serializer_class = VisitSerializer
|
||||||
retrieve_serializer_class = VisitDetailSerializer
|
retrieve_serializer_class = VisitDetailSerializer
|
||||||
filterset_fields = ['state']
|
filterset_fields = ['state', 'create_by']
|
||||||
select_related_fields = ['ticket', 'receptionist', 'ticket__workflow', 'ticket__state']
|
select_related_fields = ['ticket', 'receptionist', 'ticket__workflow', 'ticket__state']
|
||||||
|
|
||||||
def get_queryset(self):
|
def get_queryset(self):
|
||||||
|
@ -36,7 +35,7 @@ class VisitViewSet(CustomModelViewSet):
|
||||||
|
|
||||||
def create(self, request, *args, **kwargs):
|
def create(self, request, *args, **kwargs):
|
||||||
user = self.request.user
|
user = self.request.user
|
||||||
if user.type == 'visitor' and not user.employee:
|
if user.type == 'visitor' and user.employee.photo is None:
|
||||||
raise ParseError('请先完善个人信息')
|
raise ParseError('请先完善个人信息')
|
||||||
return super().create(request, *args, **kwargs)
|
return super().create(request, *args, **kwargs)
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue