格式化已有代码
This commit is contained in:
parent
b77ecb46e7
commit
b21441ad76
|
@ -1,7 +1,5 @@
|
|||
from rest_framework import serializers
|
||||
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 rest_framework.exceptions import ParseError
|
||||
|
||||
|
@ -15,6 +13,7 @@ class AreaSimpleSerializer(CustomModelSerializer):
|
|||
class AreaSerializer(CustomModelSerializer):
|
||||
manager_name = serializers.CharField(source='manager.name', read_only=True)
|
||||
belong_dept_name = serializers.CharField(source='belong_dept.name', read_only=True)
|
||||
|
||||
class Meta:
|
||||
model = Area
|
||||
fields = '__all__'
|
||||
|
|
|
@ -7,7 +7,6 @@ from rest_framework import serializers
|
|||
from apps.third.clients import xxClient
|
||||
from apps.third.tapis import xxapis
|
||||
from rest_framework.response import Response
|
||||
from rest_framework.exceptions import ParseError
|
||||
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.
|
||||
|
|
|
@ -27,4 +27,4 @@ class PwResetSerializer(serializers.Serializer):
|
|||
|
||||
class SecretLoginSerializer(serializers.Serializer):
|
||||
username = serializers.CharField(label="用户名")
|
||||
secret = serializers.CharField(label="密钥")
|
||||
secret = serializers.CharField(label="密钥")
|
||||
|
|
|
@ -1,9 +1,10 @@
|
|||
from atexit import register
|
||||
|
||||
from django.urls import path
|
||||
from rest_framework_simplejwt.views import (TokenObtainPairView,
|
||||
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/'
|
||||
urlpatterns = [
|
||||
|
|
|
@ -7,10 +7,6 @@ from django.contrib.auth import authenticate, login, logout
|
|||
from rest_framework.generics import CreateAPIView
|
||||
from rest_framework.permissions import IsAuthenticated
|
||||
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 django.core.cache import cache
|
||||
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 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.utils.viewsets import CustomGenericViewSet, CustomModelViewSet
|
||||
|
||||
# Create your views here.
|
||||
|
||||
|
|
|
@ -1,12 +1,7 @@
|
|||
from __future__ import absolute_import, unicode_literals
|
||||
from celery import shared_task
|
||||
import subprocess
|
||||
from apps.utils.tasks import CustomTask
|
||||
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
|
||||
|
@ -55,4 +50,3 @@ def backup_media():
|
|||
command = 'bash {}/backup_media.sh'.format(SH_PATH)
|
||||
completed = subprocess.run(command, shell=True, capture_output=True, text=True)
|
||||
return completed
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
import json
|
||||
|
||||
from rest_framework.views import APIView
|
||||
from rest_framework.permissions import IsAdminUser
|
||||
from rest_framework.response import Response
|
||||
|
@ -6,13 +6,10 @@ from rest_framework.serializers import Serializer
|
|||
from rest_framework.decorators import action
|
||||
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 rest_framework.exceptions import APIException, ParseError
|
||||
from apps.system.models import User
|
||||
from rest_framework.exceptions import APIException
|
||||
from apps.system.tasks import show
|
||||
from apps.utils.sms import send_sms
|
||||
from apps.utils.speech import generate_voice
|
||||
from django.core.cache import cache
|
||||
import requests
|
||||
|
||||
from apps.utils.viewsets import CustomGenericViewSet
|
||||
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.third.serializers import TDeviceSimpleSerializer
|
||||
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.hrm.models import Employee
|
||||
from apps.system.models import User
|
||||
from apps.third.clients import xxClient
|
||||
from apps.third.models import TDevice
|
||||
from apps.third.tapis import xxapis
|
||||
from apps.utils.queryset import get_child_queryset2, get_parent_queryset
|
||||
from django.core.cache import cache
|
||||
import time
|
||||
|
@ -33,13 +31,6 @@ def update_remind_read(event: Event, user: User):
|
|||
|
||||
def get_area_info_from_cache(target: str, cache: list):
|
||||
"""从区域信息缓存里匹配到所在区域
|
||||
|
||||
Args:
|
||||
target (str): 区域ID
|
||||
cache (list):
|
||||
|
||||
Returns:
|
||||
_type_: _description_
|
||||
"""
|
||||
for i in cache:
|
||||
if i['id'] == target:
|
||||
|
|
|
@ -1,20 +1,28 @@
|
|||
|
||||
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.models import AlgoChannel, Event, EventCate, Eventdo, Remind, NotifySetting
|
||||
from apps.ecm.serializers import (AlgoChannelCreateSerializer, AlgoChannelCreatesSerializer, AlgoChannelSerializer, EventAggSerializer, EventCateCreateUpdateSerializer, EventCateListSerializer, EventCateUpdateSerializer, EventHandleSerializer,
|
||||
EventSerializer, RemindSerializer, NotifySettingsSerializer)
|
||||
from apps.ecm.models import (AlgoChannel, Event, EventCate, Eventdo,
|
||||
NotifySetting, Remind)
|
||||
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.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.
|
||||
|
@ -81,7 +89,8 @@ class EventViewSet(ListModelMixin, RetrieveModelMixin, CustomGenericViewSet):
|
|||
"""
|
||||
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('您无权处理该事件')
|
||||
data = request.data
|
||||
obj.mark = data.get('mark')
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
from django.db import models
|
||||
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):
|
||||
|
@ -40,7 +40,6 @@ class Employee(CommonBModel):
|
|||
not_work_remark = models.CharField('当前未打卡说明', null=True, blank=True, max_length=200)
|
||||
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)
|
||||
|
||||
|
||||
class Meta:
|
||||
verbose_name = '员工补充信息'
|
||||
|
|
|
@ -6,15 +6,12 @@ from apps.utils.fields import MyFilePathField
|
|||
|
||||
|
||||
from apps.utils.serializers import CustomModelSerializer
|
||||
from apps.utils.constants import EXCLUDE_FIELDS, EXCLUDE_FIELDS_BASE
|
||||
from apps.utils.tools import rannum
|
||||
from apps.utils.constants import EXCLUDE_FIELDS
|
||||
from apps.hrm.models import Certificate, ClockRecord, Employee, NotWorkRemark
|
||||
from apps.system.serializers import DeptSimpleSerializer, UserSimpleSerializer
|
||||
from django.db import transaction
|
||||
from apps.third.clients import dhClient
|
||||
from apps.third.tapis import dhapis
|
||||
import re
|
||||
from datetime import datetime
|
||||
from django.conf import settings
|
||||
|
||||
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
from os import access
|
||||
from apps.hrm.models import Employee
|
||||
from apps.third.models import TDevice
|
||||
from apps.third.tapis import dhapis
|
||||
|
|
|
@ -19,7 +19,6 @@ from apps.hrm.serializers import (CertificateCreateUpdateSerializer, Certificate
|
|||
EmployeeNotWorkRemarkSerializer,
|
||||
EmployeeSerializer,
|
||||
NotWorkRemarkListSerializer)
|
||||
from apps.hrm.services import HrmService
|
||||
|
||||
from apps.third.clients import dhClient
|
||||
from apps.third.tapis import dhapis
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
from apps.hrm.models import Certificate
|
||||
from apps.opm.models import GasCheck, Operation, Opl, OplCate, OplCert, OplWorker
|
||||
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.serializers import CustomModelSerializer
|
||||
from apps.utils.constants import EXCLUDE_FIELDS
|
||||
|
@ -122,8 +122,10 @@ class OplWorkerUpdateSerializer(CustomModelSerializer):
|
|||
oplc.save()
|
||||
return oplw
|
||||
|
||||
|
||||
class OplCertSerializer(CustomModelSerializer):
|
||||
file = MyFilePathField()
|
||||
|
||||
class Meta:
|
||||
model = OplCert
|
||||
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.serializers import OplCloseSerializer
|
||||
from apps.wf.models import Ticket, Transition
|
||||
|
||||
|
||||
|
@ -62,3 +61,4 @@ def opl_audit_end(ticket: Ticket):
|
|||
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 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 rest_framework.exceptions import ParseError
|
||||
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.
|
||||
|
||||
|
||||
class OplCateViewSet(CustomModelViewSet):
|
||||
queryset = OplCate.objects.all()
|
||||
create_serializer_class = OplCateCreateUpdateSerializer
|
||||
|
@ -28,7 +31,7 @@ class OperationViewSet(CustomModelViewSet):
|
|||
serializer_class = OperationDetailSerializer
|
||||
retrieve_serializer_class = OperationDetailSerializer
|
||||
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):
|
||||
obj = self.get_object()
|
||||
|
|
|
@ -1,7 +1,5 @@
|
|||
from inflection import transliterate
|
||||
from numpy import True_
|
||||
from apps.hrm.models import Certificate, Employee
|
||||
from apps.hrm.serializers import phone_check
|
||||
|
||||
from apps.hrm.models import Employee
|
||||
from apps.rpm.models import Rcertificate, Remployee, Rfile, Rparty, Rpjcertificate, Rpjfile, Rpjmember, Rpj
|
||||
from apps.system.models import Dept
|
||||
from apps.utils.constants import EXCLUDE_FIELDS
|
||||
|
@ -76,6 +74,7 @@ class RfileListSerializer(CustomModelSerializer):
|
|||
class RpjCreateUpdateSerializer(CustomModelSerializer):
|
||||
rparty = serializers.PrimaryKeyRelatedField(queryset=Rparty.objects.all(), required=False)
|
||||
belong_dept = serializers.PrimaryKeyRelatedField(queryset=Dept.objects.all(), required=False)
|
||||
|
||||
class Meta:
|
||||
model = Rpj
|
||||
fields = ['id', 'name', 'contract_number', 'type', 'come_time', 'leave_time', 'belong_dept', 'rparty']
|
||||
|
@ -117,6 +116,7 @@ class RpjListSerializer(CustomModelSerializer):
|
|||
|
||||
class RemployeeCreateSerializer(CustomModelSerializer):
|
||||
rparty = serializers.PrimaryKeyRelatedField(queryset=Rparty.objects.all(), label='相关方ID', required=False)
|
||||
|
||||
class Meta:
|
||||
model = Remployee
|
||||
fields = ['name', 'phone', 'photo', 'id_number', 'rparty']
|
||||
|
@ -141,6 +141,7 @@ class RemployeeUpdateSerializer(CustomModelSerializer):
|
|||
class RemployeeSerializer(CustomModelSerializer):
|
||||
rparty_name = serializers.CharField(source='rparty.name', read_only=True)
|
||||
photo = MyFilePathField()
|
||||
|
||||
class Meta:
|
||||
model = Remployee
|
||||
fields = '__all__'
|
||||
|
@ -156,6 +157,7 @@ class RcertificateSerializer(CustomModelSerializer):
|
|||
remployee_name = serializers.CharField(source='remployee.name', read_only=True)
|
||||
rparty_name = serializers.CharField(source='rparty.name', read_only=True)
|
||||
file = MyFilePathField()
|
||||
|
||||
class Meta:
|
||||
model = Rcertificate
|
||||
fields = '__all__'
|
||||
|
@ -236,12 +238,15 @@ class RpjmemberUpdateSerializer(CustomModelSerializer):
|
|||
Rpjmember.objects.exclude(id=ins.id).update(is_manager=False)
|
||||
return ins
|
||||
|
||||
|
||||
class RpjcertificateSerializer(CustomModelSerializer):
|
||||
file = MyFilePathField()
|
||||
|
||||
class Meta:
|
||||
model = Rpjcertificate
|
||||
fields = ['rcertificate', 'name', 'type', 'number', 'issue_date', 'expiration_date', 'review_date', 'file']
|
||||
|
||||
|
||||
class RpjmemberSerializer(CustomModelSerializer):
|
||||
remployee_ = RemployeeSerializer(source='remployee', read_only=True)
|
||||
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.services import HrmService
|
||||
from apps.system.models import Post, User, UserPost
|
||||
from apps.utils.tools import ranstr
|
||||
from apps.wf.models import Ticket, Transition
|
||||
from apps.rpm.models import Rcertificate, Rfile, Rpj, Rpjcertificate, Rpjfile, Rpjmember
|
||||
from rest_framework.exceptions import ParseError
|
||||
from apps.rpm.models import Rfile, Rpj, Rpjcertificate, Rpjfile, Rpjmember
|
||||
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.serializers import RcertificateCreateUpdateSerializer, RcertificateSerializer, RemployeeCreateSerializer, RemployeeSerializer, RemployeeUpdateSerializer, RpartyAssignSerializer, RpartyCreateUpdateSerializer, RfileListSerializer, RpartySerializer, RpjListSerializer, RpjfileSerializer, RpjfileUpdateSerializer, RpjmemberCreateSerializer, RpjmemberCreatesSerializer, RpjCreateUpdateSerializer, RpjmemberSerializer, RpjmemberUpdateSerializer
|
||||
from apps.system.models import Dictionary, Post, User, UserPost
|
||||
from apps.rpm.serializers import (RcertificateCreateUpdateSerializer,
|
||||
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.utils.viewsets import CustomGenericViewSet, CustomModelViewSet
|
||||
from rest_framework.mixins import CreateModelMixin, ListModelMixin, RetrieveModelMixin, DestroyModelMixin, UpdateModelMixin
|
||||
from apps.utils.mixins import CustomDestoryModelMixin
|
||||
from rest_framework.mixins import ListModelMixin, DestroyModelMixin, UpdateModelMixin
|
||||
from rest_framework.decorators import action
|
||||
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 rest_framework.exceptions import ParseError
|
||||
from rest_framework import serializers
|
||||
|
||||
|
||||
# Create your views here.
|
||||
|
@ -31,7 +32,6 @@ class RpartyViewSet(CustomModelViewSet):
|
|||
queryset = queryset.filter(dept=self.request.user.belong_dept)
|
||||
return queryset
|
||||
|
||||
|
||||
@action(methods=['post'], detail=True, perms_map={'post': 'rparty:assgin'}, serializer_class=RpartyAssignSerializer)
|
||||
@transaction.atomic
|
||||
def assign(self, request, *args, **kwargs):
|
||||
|
@ -122,7 +122,7 @@ class RpjViewSet(CustomModelViewSet):
|
|||
update_serializer_class = RpjCreateUpdateSerializer
|
||||
serializer_class = RpjListSerializer
|
||||
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):
|
||||
queryset = super().get_queryset()
|
||||
|
|
|
@ -1,8 +1,7 @@
|
|||
from django.contrib.auth.models import UserManager
|
||||
import enum
|
||||
from django.db import models
|
||||
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):
|
||||
|
|
|
@ -301,6 +301,7 @@ class UserListSerializer(CustomModelSerializer):
|
|||
belong_dept_ = DeptSimpleSerializer(source='belong_dept', read_only=True)
|
||||
# posts_ = PostSimpleSerializer(source='posts', many=True)
|
||||
avatar = MyFilePathField()
|
||||
|
||||
class Meta:
|
||||
model = User
|
||||
exclude = ['password', 'secret']
|
||||
|
|
|
@ -14,7 +14,7 @@ from rest_framework.parsers import (JSONParser,
|
|||
from rest_framework.permissions import IsAuthenticated
|
||||
from rest_framework.response import Response
|
||||
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 django_q.models import Task as QTask, Schedule as QSchedule
|
||||
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,
|
||||
DictSerializer, DictTypeCreateUpdateSerializer, DictTypeSerializer,
|
||||
FileSerializer, PasswordChangeSerializer, PermissionCreateUpdateSerializer,
|
||||
PermissionSerializer, PostCreateUpdateSerializer, PostRoleCreateSerializer, PostRoleSerializer, PostSerializer,
|
||||
PermissionSerializer, PostCreateUpdateSerializer, PostRoleCreateSerializer,
|
||||
PostRoleSerializer, PostSerializer,
|
||||
PTaskSerializer, PTaskCreateUpdateSerializer, PTaskResultSerializer,
|
||||
RoleCreateUpdateSerializer, RoleSerializer, TaskRunSerializer,
|
||||
UserCreateSerializer, UserListSerializer, UserPostCreateSerializer,
|
||||
|
@ -512,7 +513,7 @@ class UserViewSet(CustomModelViewSet):
|
|||
user.wx_openid = openid
|
||||
user.save()
|
||||
return Response({'wx_openid': openid})
|
||||
|
||||
|
||||
@action(methods=['post'], detail=False, permission_classes=[IsAuthenticated])
|
||||
def bind_secret(self, request, pk=None):
|
||||
"""创建密钥
|
||||
|
|
|
@ -4,7 +4,6 @@ from apps.am.models import Area
|
|||
from apps.hrm.serializers import EmployeeSimpleSerializer
|
||||
from apps.third.models import BltBind, TDevice, Tlog
|
||||
from apps.utils.serializers import CustomModelSerializer
|
||||
from django.db import transaction
|
||||
|
||||
|
||||
class PicSerializer(serializers.Serializer):
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
from django.core.cache import cache
|
||||
from rest_framework.permissions import BasePermission
|
||||
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
|
||||
|
||||
ALL_PERMS = [
|
||||
|
|
|
@ -1,9 +1,7 @@
|
|||
from django.core.cache import cache
|
||||
import json
|
||||
import time
|
||||
from threading import Thread
|
||||
import uuid
|
||||
from async_timeout import timeout
|
||||
|
||||
import requests
|
||||
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.serializers import CustomModelSerializer
|
||||
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.services import HrmService
|
||||
from apps.vm.models import Visit, Vpeople
|
||||
from apps.wf.models import Ticket
|
||||
|
||||
|
||||
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.views import get_tokens_for_user
|
||||
from apps.hrm.models import Employee
|
||||
from apps.system.models import User
|
||||
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.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.response import Response
|
||||
from rest_framework.exceptions import ParseError
|
||||
from rest_framework.mixins import ListModelMixin, RetrieveModelMixin, CreateModelMixin, DestroyModelMixin, UpdateModelMixin
|
||||
from apps.utils.mixins import CustomDestoryModelMixin
|
||||
from rest_framework.mixins import ListModelMixin, RetrieveModelMixin, CreateModelMixin, DestroyModelMixin
|
||||
from django.contrib.auth.hashers import make_password
|
||||
from rest_framework.permissions import IsAuthenticated
|
||||
from django.db import transaction
|
||||
# Create your views here.
|
||||
|
||||
|
@ -24,7 +23,7 @@ class VisitViewSet(CustomModelViewSet):
|
|||
update_serializer_class = VisitCreateUpdateSerializer
|
||||
serializer_class = VisitSerializer
|
||||
retrieve_serializer_class = VisitDetailSerializer
|
||||
filterset_fields = ['state']
|
||||
filterset_fields = ['state', 'create_by']
|
||||
select_related_fields = ['ticket', 'receptionist', 'ticket__workflow', 'ticket__state']
|
||||
|
||||
def get_queryset(self):
|
||||
|
@ -36,7 +35,7 @@ class VisitViewSet(CustomModelViewSet):
|
|||
|
||||
def create(self, request, *args, **kwargs):
|
||||
user = self.request.user
|
||||
if user.type == 'visitor' and not user.employee:
|
||||
if user.type == 'visitor' and user.employee.photo is None:
|
||||
raise ParseError('请先完善个人信息')
|
||||
return super().create(request, *args, **kwargs)
|
||||
|
||||
|
|
Loading…
Reference in New Issue