作业人员未就位/未配置灭火器事件

This commit is contained in:
曹前明 2022-09-11 16:51:32 +08:00
parent 9324f59825
commit 568d6545d0
5 changed files with 44 additions and 13 deletions

View File

@ -0,0 +1,21 @@
# Generated by Django 3.2.12 on 2022-09-09 08:14
from django.conf import settings
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
('hrm', '0003_alter_employee_type'),
]
operations = [
migrations.AlterField(
model_name='employee',
name='user',
field=models.OneToOneField(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='employee', to=settings.AUTH_USER_MODEL, verbose_name='系统账号'),
),
]

View File

@ -1,7 +1,7 @@
from django.db import models
from apps.system.models import Post, User
from apps.utils.models import BaseModel, CommonAModel, CommonBModel
from apps.utils.models import BaseModel, CommonADModel, CommonAModel, CommonBModel
class Employee(CommonBModel):
@ -24,7 +24,7 @@ class Employee(CommonBModel):
user = models.OneToOneField(User,
verbose_name='系统账号',
related_name='employee',
on_delete=models.PROTECT, null=True, blank=True)
on_delete=models.CASCADE, null=True, blank=True)
name = models.CharField('姓名', max_length=20)
phone = models.CharField('手机号', max_length=11, null=True, blank=True, unique=True)
email = models.EmailField('邮箱号', null=True, blank=True)
@ -62,7 +62,7 @@ class Employee(CommonBModel):
# CARD_LOCATION = 20
class NotWorkRemark(CommonAModel):
class NotWorkRemark(CommonADModel):
"""
离岗说明
"""

View File

@ -66,12 +66,6 @@ class CustomUpdateModelMixin(UpdateModelMixin):
serializer.save(update_by=self.request.user)
class CustomDestoryModelMixin(DestroyModelMixin):
def perform_destroy(self, instance):
instance.delete(update_by=self.request.user)
class MyLoggingMixin(object):
"""Mixin to log requests"""

View File

@ -12,13 +12,13 @@ class SoftDeletableQuerySetMixin(object):
its ``is_deleted`` field to True.
'''
def delete(self, soft=True, update_by=None):
def delete(self, soft=True):
'''
Soft delete objects from queryset (set their ``is_deleted``
field to True)
'''
if soft:
self.update(is_deleted=True, update_by=update_by)
self.update(is_deleted=True)
else:
return super(SoftDeletableQuerySetMixin, self).delete()
@ -103,6 +103,9 @@ class CommonAModel(SoftModel):
update_by = models.ForeignKey(
'system.user', null=True, blank=True, on_delete=models.SET_NULL,
verbose_name='最后编辑人', related_name='%(class)s_update_by')
# delete_by = models.ForeignKey(
# 'system.user', null=True, blank=True, on_delete=models.SET_NULL,
# verbose_name='删除人', related_name='%(class)s_delete_by')
class Meta:
abstract = True
@ -118,6 +121,9 @@ class CommonBModel(SoftModel):
update_by = models.ForeignKey(
'system.user', null=True, blank=True, on_delete=models.SET_NULL,
verbose_name='最后编辑人', related_name='%(class)s_update_by')
# delete_by = models.ForeignKey(
# 'system.user', null=True, blank=True, on_delete=models.SET_NULL,
# verbose_name='删除人', related_name='%(class)s_delete_by')
belong_dept = models.ForeignKey(
'system.dept', null=True, blank=True, on_delete=models.SET_NULL,
verbose_name='所属部门', related_name='%(class)s_belong_dept')
@ -136,6 +142,9 @@ class CommonADModel(BaseModel):
update_by = models.ForeignKey(
'system.user', null=True, blank=True, on_delete=models.SET_NULL,
verbose_name='最后编辑人', related_name='%(class)s_update_by')
# delete_by = models.ForeignKey(
# 'system.user', null=True, blank=True, on_delete=models.SET_NULL,
# verbose_name='删除人', related_name='%(class)s_delete_by')
class Meta:
abstract = True
@ -151,6 +160,9 @@ class CommonBDModel(BaseModel):
update_by = models.ForeignKey(
'system.user', null=True, blank=True, on_delete=models.SET_NULL,
verbose_name='最后编辑人', related_name='%(class)s_update_by')
# delete_by = models.ForeignKey(
# 'system.user', null=True, blank=True, on_delete=models.SET_NULL,
# verbose_name='删除人', related_name='%(class)s_delete_by')
belong_dept = models.ForeignKey(
'system.dept', null=True, blank=True, on_delete=models.SET_NULL,
verbose_name='所属部门', related_name='%(class)s_belong_dept')

View File

@ -8,7 +8,7 @@ from rest_framework.permissions import IsAuthenticated, IsAdminUser
from rest_framework.response import Response
from rest_framework.viewsets import GenericViewSet
from apps.system.models import DataFilter, Dept
from apps.system.models import DataFilter, Dept, User
from apps.utils.errors import PKS_ERROR
from apps.utils.mixins import MyLoggingMixin
from apps.utils.permission import ALL_PERMS, RbacPermission, get_user_perms_map
@ -131,11 +131,15 @@ class CustomModelViewSet(CreateModelMixin, UpdateModelMixin, ListModelMixin,
@action(methods=['post'], detail=False, serializer_class=PkSerializer, permission_classes=[IsAdminUser])
def deletes_hard(self, request, *args, **kwargs):
"""批量物理删除
批量物理删除
"""
request_data = request.data
pks = request_data.get('pks', None)
if pks:
try:
self.get_queryset(all=True).filter(id__in=pks).delete(soft=False)
self.get_queryset().model.objects.get_queryset(all=True).filter(id__in=pks).delete(soft=False)
except Exception:
self.get_queryset().filter(id__in=pks).delete()
return Response(status=204)