主动报送提交

This commit is contained in:
caoqianming 2021-08-23 09:12:48 +08:00
parent 41c9ffd096
commit 0a4bed8391
3 changed files with 46 additions and 14 deletions

View File

@ -53,8 +53,10 @@ class RecordSerializer(serializers.ModelSerializer):
queryset = queryset.prefetch_related('files',)
return queryset
class RecordCreateUpdateSerializer(serializers.ModelSerializer):
pass
class RecordCreateSerializer(serializers.ModelSerializer):
class Meta:
model = Record
fields = ['content', 'files', 'noteb']
class TaksDetailSerializer(serializers.ModelSerializer):

View File

@ -235,6 +235,11 @@ class RecordViewSet(PageOrNot, CreateUpdateCustomMixin, ModelViewSet):
queryset = queryset.exclude(state='待发布')
return super().filter_queryset(queryset)
def get_serializer_class(self):
if self.action == 'create':
return RecordCreateSerializer
return super().get_serializer_class()
@action(methods=['get'], detail=False, perms_map = {'get':'*'})
def todos(self, request, *args, **kwargs):
ret={}
@ -262,6 +267,9 @@ class RecordViewSet(PageOrNot, CreateUpdateCustomMixin, ModelViewSet):
@action(methods=['post'], detail=False, perms_map = {'post':'record_createself'})
def createself(self, request, *args, **kwargs):
"""
创建主动报送记录
"""
contents = request.data['contents']
rlist = []
for i in contents:
@ -270,7 +278,29 @@ class RecordViewSet(PageOrNot, CreateUpdateCustomMixin, ModelViewSet):
rlist.append(Record(**data))
Record.objects.bulk_create(rlist)
return Response(status=status.HTTP_200_OK)
def create(self, request, *args, **kwargs):
"""
主动报送
"""
data = request.data
if data.get('files', None):
serializer = RecordCreateSerializer(data=data)
serializer.is_valid(raise_exception=True)
content = Content.objects.get(pk=data['content'])
if content.can_doself:
sdata = {'belong_dept':request.user.dept,
'is_self':True,
'content_name':content.name,
'content_desc':content.desc,
'state':'已报送',
'up_user':request.user,
'up_date':timezone.now()}
serializer.save(**sdata)
return Response(status=status.HTTP_201_CREATED)
return Response('该材料不在主动报送范围!', status=status.HTTP_400_BAD_REQUEST)
return Response('未上传文件', status=status.HTTP_400_BAD_REQUEST)
@action(methods=['put'], detail=True, perms_map = {'put':'record_up'})
def up(self, request, *args, **kwargs):
"""

View File

@ -1,20 +1,20 @@
from .settings import *
DEBUG = True
DATABASES = {
# 'default': {
# 'ENGINE': 'django.db.backends.postgresql',
# 'NAME': 'cma',
# 'USER': 'postgres',
# 'PASSWORD': 'zctest1234',
# 'HOST': '47.95.0.242',
# 'PORT': '5432',
# }
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': 'cma',
'USER': 'cma',
'PASSWORD': 'cma123',
'HOST': '172.16.80.102',
'USER': 'postgres',
'PASSWORD': 'zctest1234',
'HOST': '47.95.0.242',
'PORT': '5432',
}
# 'default': {
# 'ENGINE': 'django.db.backends.postgresql',
# 'NAME': 'cma',
# 'USER': 'cma',
# 'PASSWORD': 'cma123',
# 'HOST': '172.16.80.102',
# 'PORT': '5432',
# }
}