swagger修正
This commit is contained in:
parent
2e7a9a2b7e
commit
3830a1b000
|
@ -1,3 +1,9 @@
|
|||
from django.contrib import admin
|
||||
|
||||
from apps.ecm.models import Event
|
||||
|
||||
# Register your models here.
|
||||
|
||||
@admin.register(Event)
|
||||
class EventAdmin(admin.ModelAdmin):
|
||||
date_hierarchy = 'create_time'
|
|
@ -0,0 +1,23 @@
|
|||
# Generated by Django 3.2.12 on 2022-06-20 07:17
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('system', '0001_initial'),
|
||||
('ecm', '0004_alter_notifysetting_event_cate'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.RemoveField(
|
||||
model_name='event',
|
||||
name='imgs',
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='event',
|
||||
name='imgs',
|
||||
field=models.ManyToManyField(blank=True, to='system.File', verbose_name='事件图片'),
|
||||
),
|
||||
]
|
|
@ -2,7 +2,7 @@ from django.db import models
|
|||
from apps.am.models import Area
|
||||
from apps.hrm.models import Employee
|
||||
from apps.utils.models import BaseModel, CommonAModel, CommonBModel
|
||||
from apps.system.models import Dept, Post, User
|
||||
from apps.system.models import Dept, File, Post, User
|
||||
from apps.third.models import TDevice
|
||||
from django.utils import timezone
|
||||
# Create your models here.
|
||||
|
@ -24,6 +24,9 @@ class EventCate(CommonAModel):
|
|||
filter_area_level = models.PositiveSmallIntegerField('固定音响区域级别过滤', choices=Area.AREA_LEVEL_CHOICES,
|
||||
default=Area.AREA_LEVEL_1)
|
||||
|
||||
def __str__(self):
|
||||
return self.name
|
||||
|
||||
|
||||
class NotifySetting(CommonAModel):
|
||||
"""
|
||||
|
@ -51,7 +54,7 @@ class Event(CommonBModel):
|
|||
事件
|
||||
"""
|
||||
cate = models.ForeignKey(EventCate, verbose_name='事件种类', on_delete=models.CASCADE)
|
||||
imgs = models.JSONField('事件图片', default=list, null=False, blank=True)
|
||||
imgs = models.ManyToManyField(File, verbose_name='事件图片', blank=True)
|
||||
area = models.ForeignKey(Area, verbose_name='发生区域', on_delete=models.CASCADE)
|
||||
location = models.JSONField('事件点位坐标', default=dict, null=False, blank=True)
|
||||
peope_type = models.CharField('当事人员类型', choices=Employee.PEOPLE_TYPE_CHOICES,
|
||||
|
|
|
@ -0,0 +1,204 @@
|
|||
# Generated by Django 3.2.12 on 2022-06-20 01:42
|
||||
|
||||
from django.conf import settings
|
||||
from django.db import migrations, models
|
||||
import django.db.models.deletion
|
||||
import django.utils.timezone
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
initial = True
|
||||
|
||||
dependencies = [
|
||||
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
|
||||
('hrm', '0002_auto_20220617_1124'),
|
||||
('wf', '0001_initial'),
|
||||
('system', '0001_initial'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.CreateModel(
|
||||
name='Rcertificate',
|
||||
fields=[
|
||||
('id', models.CharField(editable=False, help_text='主键ID', max_length=20, primary_key=True, serialize=False, verbose_name='主键ID')),
|
||||
('create_time', models.DateTimeField(default=django.utils.timezone.now, help_text='创建时间', verbose_name='创建时间')),
|
||||
('update_time', models.DateTimeField(auto_now=True, help_text='修改时间', verbose_name='修改时间')),
|
||||
('is_deleted', models.BooleanField(default=False, help_text='删除标记', verbose_name='删除标记')),
|
||||
('name', models.CharField(max_length=20, verbose_name='证书名称')),
|
||||
('number', models.CharField(max_length=20, unique=True, verbose_name='证书编号')),
|
||||
('type', models.PositiveSmallIntegerField(choices=[(10, '特种作业证书'), (20, '特种设备操作证书'), (30, '安全管理人员证书')], default=10, verbose_name='证书类型')),
|
||||
('issue_date', models.DateField(verbose_name='发证日期')),
|
||||
('expiration_date', models.DateField(verbose_name='有效期')),
|
||||
('review_date', models.DateField(verbose_name='下一次复审日期')),
|
||||
('file', models.CharField(blank=True, max_length=1000, null=True, verbose_name='文件地址')),
|
||||
('certificate', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='hrm.certificate', verbose_name='关联认可证书')),
|
||||
('create_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='rcertificate_create_by', to=settings.AUTH_USER_MODEL, verbose_name='创建人')),
|
||||
],
|
||||
options={
|
||||
'abstract': False,
|
||||
},
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='Remployee',
|
||||
fields=[
|
||||
('id', models.CharField(editable=False, help_text='主键ID', max_length=20, primary_key=True, serialize=False, verbose_name='主键ID')),
|
||||
('create_time', models.DateTimeField(default=django.utils.timezone.now, help_text='创建时间', verbose_name='创建时间')),
|
||||
('update_time', models.DateTimeField(auto_now=True, help_text='修改时间', verbose_name='修改时间')),
|
||||
('is_deleted', models.BooleanField(default=False, help_text='删除标记', verbose_name='删除标记')),
|
||||
('name', models.CharField(max_length=20, verbose_name='姓名')),
|
||||
('phone', models.CharField(max_length=11, verbose_name='手机号')),
|
||||
('photo', models.CharField(max_length=1000, verbose_name='证件照')),
|
||||
('id_number', models.CharField(max_length=100, verbose_name='身份证号')),
|
||||
('create_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='remployee_create_by', to=settings.AUTH_USER_MODEL, verbose_name='创建人')),
|
||||
('employee', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='hrm.employee', verbose_name='成员信息')),
|
||||
],
|
||||
options={
|
||||
'abstract': False,
|
||||
},
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='Rparty',
|
||||
fields=[
|
||||
('id', models.CharField(editable=False, help_text='主键ID', max_length=20, primary_key=True, serialize=False, verbose_name='主键ID')),
|
||||
('create_time', models.DateTimeField(default=django.utils.timezone.now, help_text='创建时间', verbose_name='创建时间')),
|
||||
('update_time', models.DateTimeField(auto_now=True, help_text='修改时间', verbose_name='修改时间')),
|
||||
('is_deleted', models.BooleanField(default=False, help_text='删除标记', verbose_name='删除标记')),
|
||||
('name', models.CharField(max_length=20, verbose_name='名称')),
|
||||
('number', models.CharField(blank=True, max_length=50, null=True, verbose_name='信用代码')),
|
||||
('lawer', models.CharField(blank=True, max_length=20, null=True, verbose_name='法人')),
|
||||
('contacter', models.CharField(max_length=20, verbose_name='联系人')),
|
||||
('phone', models.CharField(max_length=20, verbose_name='联系电话')),
|
||||
('email', models.EmailField(blank=True, max_length=254, null=True, verbose_name='邮箱')),
|
||||
('addresss', models.CharField(blank=True, max_length=200, null=True, verbose_name='企业地址')),
|
||||
('description', models.TextField(blank=True, null=True, verbose_name='概述')),
|
||||
('belong_dept', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='rparty_belong_dept', to='system.dept', verbose_name='所属部门')),
|
||||
('create_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='rparty_create_by', to=settings.AUTH_USER_MODEL, verbose_name='创建人')),
|
||||
('dept', models.OneToOneField(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='system.dept', verbose_name='关联部门')),
|
||||
('update_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='rparty_update_by', to=settings.AUTH_USER_MODEL, verbose_name='最后编辑人')),
|
||||
],
|
||||
options={
|
||||
'abstract': False,
|
||||
},
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='Rpj',
|
||||
fields=[
|
||||
('id', models.CharField(editable=False, help_text='主键ID', max_length=20, primary_key=True, serialize=False, verbose_name='主键ID')),
|
||||
('create_time', models.DateTimeField(default=django.utils.timezone.now, help_text='创建时间', verbose_name='创建时间')),
|
||||
('update_time', models.DateTimeField(auto_now=True, help_text='修改时间', verbose_name='修改时间')),
|
||||
('is_deleted', models.BooleanField(default=False, help_text='删除标记', verbose_name='删除标记')),
|
||||
('name', models.CharField(max_length=20, verbose_name='名称')),
|
||||
('type', models.PositiveSmallIntegerField(default=10, verbose_name='项目类型')),
|
||||
('contract_number', models.CharField(max_length=20, verbose_name='合同编号')),
|
||||
('come_time', models.DateTimeField(verbose_name='进厂时间')),
|
||||
('leave_time', models.DateTimeField(verbose_name='离厂时间')),
|
||||
('state', models.PositiveSmallIntegerField(default=10, verbose_name='状态')),
|
||||
('belong_dept', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='rpj_belong_dept', to='system.dept', verbose_name='所属部门')),
|
||||
('create_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='rpj_create_by', to=settings.AUTH_USER_MODEL, verbose_name='创建人')),
|
||||
('rparty', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='rpm.rparty', verbose_name='关联相关方')),
|
||||
('ticket', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='wf.ticket', verbose_name='关联工单')),
|
||||
('update_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='rpj_update_by', to=settings.AUTH_USER_MODEL, verbose_name='最后编辑人')),
|
||||
],
|
||||
options={
|
||||
'abstract': False,
|
||||
},
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='Rpjcertificate',
|
||||
fields=[
|
||||
('id', models.CharField(editable=False, help_text='主键ID', max_length=20, primary_key=True, serialize=False, verbose_name='主键ID')),
|
||||
('create_time', models.DateTimeField(default=django.utils.timezone.now, help_text='创建时间', verbose_name='创建时间')),
|
||||
('update_time', models.DateTimeField(auto_now=True, help_text='修改时间', verbose_name='修改时间')),
|
||||
('is_deleted', models.BooleanField(default=False, help_text='删除标记', verbose_name='删除标记')),
|
||||
('name', models.CharField(max_length=20, verbose_name='证书名称')),
|
||||
('number', models.CharField(max_length=20, verbose_name='证书编号')),
|
||||
('type', models.PositiveSmallIntegerField(choices=[(10, '特种作业证书'), (20, '特种设备操作证书'), (30, '安全管理人员证书')], default=10, verbose_name='证书类型')),
|
||||
('issue_date', models.DateField(verbose_name='发证日期')),
|
||||
('expiration_date', models.DateField(verbose_name='有效期')),
|
||||
('review_date', models.DateField(verbose_name='下一次复审日期')),
|
||||
('file', models.CharField(blank=True, max_length=1000, null=True, verbose_name='文件地址')),
|
||||
('rcertificate', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='rpm.rcertificate', verbose_name='关联相关方证书')),
|
||||
],
|
||||
options={
|
||||
'abstract': False,
|
||||
},
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='Rpjmember',
|
||||
fields=[
|
||||
('id', models.CharField(editable=False, help_text='主键ID', max_length=20, primary_key=True, serialize=False, verbose_name='主键ID')),
|
||||
('create_time', models.DateTimeField(default=django.utils.timezone.now, help_text='创建时间', verbose_name='创建时间')),
|
||||
('update_time', models.DateTimeField(auto_now=True, help_text='修改时间', verbose_name='修改时间')),
|
||||
('is_deleted', models.BooleanField(default=False, help_text='删除标记', verbose_name='删除标记')),
|
||||
('duty', models.CharField(blank=True, max_length=20, null=True, verbose_name='职责')),
|
||||
('is_manager', models.BooleanField(default=False, verbose_name='是否项目负责人')),
|
||||
('rcertificates', models.ManyToManyField(through='rpm.Rpjcertificate', to='rpm.Rcertificate')),
|
||||
('remployee', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='rpm.remployee', verbose_name='关联人员')),
|
||||
('rpj', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='rpm.rpj', verbose_name='关联项目')),
|
||||
],
|
||||
options={
|
||||
'abstract': False,
|
||||
},
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='Rpjfile',
|
||||
fields=[
|
||||
('id', models.CharField(editable=False, help_text='主键ID', max_length=20, primary_key=True, serialize=False, verbose_name='主键ID')),
|
||||
('create_time', models.DateTimeField(default=django.utils.timezone.now, help_text='创建时间', verbose_name='创建时间')),
|
||||
('update_time', models.DateTimeField(auto_now=True, help_text='修改时间', verbose_name='修改时间')),
|
||||
('is_deleted', models.BooleanField(default=False, help_text='删除标记', verbose_name='删除标记')),
|
||||
('file_cate', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='system.dictionary', verbose_name='文件种类')),
|
||||
('files', models.ManyToManyField(blank=True, to='system.File', verbose_name='文件')),
|
||||
('rpj', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='rpm.rpj', verbose_name='关联相关方项目')),
|
||||
],
|
||||
options={
|
||||
'abstract': False,
|
||||
},
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='rpjcertificate',
|
||||
name='rpj_member',
|
||||
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='rpm.rpjmember', verbose_name='关联项目成员'),
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='Rfile',
|
||||
fields=[
|
||||
('id', models.CharField(editable=False, help_text='主键ID', max_length=20, primary_key=True, serialize=False, verbose_name='主键ID')),
|
||||
('create_time', models.DateTimeField(default=django.utils.timezone.now, help_text='创建时间', verbose_name='创建时间')),
|
||||
('update_time', models.DateTimeField(auto_now=True, help_text='修改时间', verbose_name='修改时间')),
|
||||
('is_deleted', models.BooleanField(default=False, help_text='删除标记', verbose_name='删除标记')),
|
||||
('file_cate', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='system.dictionary', verbose_name='文件种类')),
|
||||
('files', models.ManyToManyField(to='system.File', verbose_name='文件')),
|
||||
('rparty', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='rpm.rparty', verbose_name='关联相关方')),
|
||||
],
|
||||
options={
|
||||
'abstract': False,
|
||||
},
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='remployee',
|
||||
name='rparty',
|
||||
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='rpm.rparty', verbose_name='所属相关方'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='remployee',
|
||||
name='rpj',
|
||||
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='rpm.rpj', verbose_name='最近所属相关方项目'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='remployee',
|
||||
name='update_by',
|
||||
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='remployee_update_by', to=settings.AUTH_USER_MODEL, verbose_name='最后编辑人'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='rcertificate',
|
||||
name='remployee',
|
||||
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='rpm.remployee', verbose_name='关联相关方成员'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='rcertificate',
|
||||
name='update_by',
|
||||
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='rcertificate_update_by', to=settings.AUTH_USER_MODEL, verbose_name='最后编辑人'),
|
||||
),
|
||||
]
|
|
@ -67,13 +67,13 @@ class Rpj(CommonBDModel):
|
|||
on_delete=models.CASCADE, null=True, blank=True)
|
||||
|
||||
|
||||
class RpjFile(BaseModel):
|
||||
class Rpjfile(BaseModel):
|
||||
"""
|
||||
相关方项目文件库
|
||||
"""
|
||||
file_cate = models.ForeignKey(Dictionary, verbose_name='文件种类',
|
||||
on_delete=models.CASCADE, null=True, blank=True)
|
||||
files = models.ManyToManyField(File, verbose_name='文件')
|
||||
files = models.ManyToManyField(File, verbose_name='文件', blank=True)
|
||||
rpj = models.ForeignKey(Rpj, verbose_name='关联相关方项目', on_delete=models.CASCADE)
|
||||
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
from apps.hrm.models import Certificate, Employee
|
||||
from apps.hrm.serializers import phone_check
|
||||
from apps.rpm.models import Rcertificate, Remployee, Rparty, Rpjcertificate, Rpjmember, Rpj
|
||||
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
|
||||
from apps.utils.serializers import CustomModelSerializer
|
||||
|
@ -22,7 +22,7 @@ class RpartyCreateUpdateSerializer(CustomModelSerializer):
|
|||
def create(self, validated_data):
|
||||
instance = super().create(validated_data)
|
||||
dept = Dept.objects.create(name=instance.name,
|
||||
parent=instance.belong_dept)
|
||||
parent=instance.belong_dept, type='rparty')
|
||||
instance.dept = dept
|
||||
instance.save()
|
||||
return instance
|
||||
|
@ -49,7 +49,7 @@ class RpartySimpleSerializer(CustomModelSerializer):
|
|||
|
||||
|
||||
class RpartyAssignSerializer(serializers.Serializer):
|
||||
username = serializers.CharField('用户名')
|
||||
username = serializers.CharField(label='用户名')
|
||||
|
||||
|
||||
class RfileListSerializer(CustomModelSerializer):
|
||||
|
@ -57,6 +57,10 @@ class RfileListSerializer(CustomModelSerializer):
|
|||
file_cate_ = DictSerializer(source='file_cate', read_only=True)
|
||||
files_ = FileSerializer(source='files', many=True, read_only=True)
|
||||
|
||||
class Meta:
|
||||
model = Rfile
|
||||
fields = '__all__'
|
||||
|
||||
|
||||
class RpjCreateUpdateSerializer(CustomModelSerializer):
|
||||
class Meta:
|
||||
|
@ -76,7 +80,7 @@ class RemployeeCreateSerializer(CustomModelSerializer):
|
|||
|
||||
class Meta:
|
||||
model = Remployee
|
||||
fields = ['name', 'phone', 'photo', 'id_number']
|
||||
fields = ['name', 'phone', 'photo', 'id_number', 'rparty']
|
||||
# model = Employee
|
||||
# exclude = EXCLUDE_FIELDS + ['is_atwork', 'last_check_time',
|
||||
# 'not_work_remark', 'third_info', 'type']
|
||||
|
@ -118,11 +122,11 @@ class RpjmemberCreatesSerializer(CustomModelSerializer):
|
|||
|
||||
|
||||
class RpjmemberCreateSerializer(CustomModelSerializer):
|
||||
rcertificates = serializers.PrimaryKeyRelatedField(label='证书ID', many=True)
|
||||
rcertificates = serializers.PrimaryKeyRelatedField(label='证书ID', many=True, queryset=Rcertificate.objects.all())
|
||||
|
||||
class Meta:
|
||||
model = Rpjmember
|
||||
fields = ['employee', 'rpj', 'duty', 'is_manager']
|
||||
fields = ['remployee', 'rpj', 'duty', 'is_manager', 'rcertificates']
|
||||
|
||||
def create(self, validated_data):
|
||||
rpj = validated_data['rpj']
|
||||
|
@ -146,7 +150,7 @@ class RpjmemberCreateSerializer(CustomModelSerializer):
|
|||
|
||||
|
||||
class RpjmemberUpdateSerializer(CustomModelSerializer):
|
||||
rcertificates = serializers.PrimaryKeyRelatedField(label='证书ID', many=True)
|
||||
rcertificates = serializers.PrimaryKeyRelatedField(label='证书ID', many=True, queryset=Rcertificate.objects.all())
|
||||
|
||||
class Meta:
|
||||
model = Rpjmember
|
||||
|
@ -173,3 +177,15 @@ class RpjmemberSerializer(CustomModelSerializer):
|
|||
class Meta:
|
||||
model = Rpjmember
|
||||
fields = '__all__'
|
||||
|
||||
|
||||
class RpjfileSerializer(CustomModelSerializer):
|
||||
class Meta:
|
||||
model = Rpjfile
|
||||
fields = '__all__'
|
||||
|
||||
|
||||
class RpjfileUpdateSerializer(CustomModelSerializer):
|
||||
class Meta:
|
||||
model = Rpjfile
|
||||
fields = ['files']
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
from apps.rpm.models import RpjFile
|
||||
from apps.rpm.views import RpartyViewSet, RemployeeViewSet, RfileViewSet, RpjViewSet, RpjmemberViewSet
|
||||
from apps.rpm.views import RpartyViewSet, RemployeeViewSet, RfileViewSet, RpjViewSet, RpjfileViewSet, RpjmemberViewSet
|
||||
from django.urls import path, include
|
||||
from rest_framework.routers import DefaultRouter
|
||||
|
||||
|
@ -12,7 +11,7 @@ router.register('remployee', RemployeeViewSet, basename='remployee')
|
|||
router.register('rfile', RfileViewSet, basename='rfile')
|
||||
router.register('rpj', RpjViewSet, basename='rpj')
|
||||
router.register('rpj_member', RpjmemberViewSet, basename='rpj_member')
|
||||
router.register('rpj_file', RpjFile, basename='rpj_file')
|
||||
router.register('rpj_file', RpjfileViewSet, basename='rpj_file')
|
||||
urlpatterns = [
|
||||
path(API_BASE_URL, include(router.urls)),
|
||||
]
|
|
@ -1,11 +1,11 @@
|
|||
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, Rpjmember, Rpj
|
||||
from apps.rpm.serializers import RcertificateCreateUpdateSerializer, RcertificateSerializer, RemployeeCreateSerializer, RemployeeSerializer, RpartyAssignSerializer, RpartyCreateUpdateSerializer, RfileListSerializer, RpartySerializer, RpjListSerializer, RpjmemberCreateSerializer, RpjmemberCreatesSerializer, RpjCreateUpdateSerializer, RpjmemberSerializer, RpjmemberUpdateSerializer
|
||||
from apps.rpm.models import Rcertificate, Remployee, Rparty, Rfile, Rpjfile, Rpjmember, Rpj
|
||||
from apps.rpm.serializers import RcertificateCreateUpdateSerializer, RcertificateSerializer, RemployeeCreateSerializer, RemployeeSerializer, RpartyAssignSerializer, RpartyCreateUpdateSerializer, RfileListSerializer, RpartySerializer, RpjListSerializer, RpjfileSerializer, RpjfileUpdateSerializer, RpjmemberCreateSerializer, RpjmemberCreatesSerializer, RpjCreateUpdateSerializer, RpjmemberSerializer, RpjmemberUpdateSerializer
|
||||
from apps.system.models import Post, User, UserPost
|
||||
from apps.utils.viewsets import CustomGenericViewSet, CustomModelViewSet
|
||||
from rest_framework.mixins import CreateModelMixin, ListModelMixin, RetrieveModelMixin
|
||||
from rest_framework.mixins import CreateModelMixin, ListModelMixin, RetrieveModelMixin, DestroyModelMixin, UpdateModelMixin
|
||||
from apps.utils.mixins import CustomDestoryModelMixin
|
||||
from rest_framework.decorators import action
|
||||
from rest_framework.response import Response
|
||||
|
@ -161,3 +161,22 @@ class RpjmemberViewSet(CustomModelViewSet):
|
|||
if obj.rpj.state == Rpj.RPJ_CREATE:
|
||||
raise ParseError('项目非创建状态不可删除')
|
||||
return super().destroy(request, *args, **kwargs)
|
||||
|
||||
|
||||
class RpjfileViewSet(UpdateModelMixin, DestroyModelMixin, ListModelMixin, CustomGenericViewSet):
|
||||
perms_map = {'get': '*', 'put': 'rpj:update', 'delete': 'rpj:update'}
|
||||
queryset = Rpjfile.objects.all()
|
||||
update_serializer_class = RpjfileUpdateSerializer
|
||||
serializer_class = RpjfileSerializer
|
||||
|
||||
def update(self, request, *args, **kwargs):
|
||||
obj = self.get_object()
|
||||
if obj.rpj.state == Rpj.RPJ_CREATE:
|
||||
raise ParseError('项目非创建状态不可修改')
|
||||
return super().update(request, *args, **kwargs)
|
||||
|
||||
def destroy(self, request, *args, **kwargs):
|
||||
obj = self.get_object()
|
||||
if obj.rpj.state == Rpj.RPJ_CREATE:
|
||||
raise ParseError('项目非创建状态不可删除')
|
||||
return super().destroy(request, *args, **kwargs)
|
||||
|
|
|
@ -51,6 +51,7 @@ urlpatterns = [
|
|||
path('', include('apps.hrm.urls')),
|
||||
path('', include('apps.am.urls')),
|
||||
path('', include('apps.ecm.urls')),
|
||||
path('', include('apps.rpm.urls')),
|
||||
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue