Merge branch 'master' of https://e.coding.net/ctcdevteam/cma_search
This commit is contained in:
commit
a3e0a0a772
|
@ -283,6 +283,7 @@
|
|||
:visible.sync="drawer"
|
||||
:with-header="false"
|
||||
size="40%"
|
||||
style="overflow-y:auto"
|
||||
>
|
||||
<recorddo
|
||||
ref="recorddo"
|
||||
|
|
|
@ -39,7 +39,6 @@ class SubInspectTask(CommonAModel):
|
|||
"""
|
||||
name = models.CharField('子任务名', max_length=100)
|
||||
inspecttask = models.ForeignKey(InspectTask, on_delete=models.CASCADE, verbose_name='所属任务')
|
||||
leader = models.ForeignKey(User, on_delete=models.CASCADE, verbose_name='组长')
|
||||
|
||||
class Meta:
|
||||
verbose_name = '巡查子任务'
|
||||
|
@ -85,6 +84,7 @@ class InspectRecord(CommonAModel):
|
|||
dept = models.ForeignKey(Organization, on_delete=models.CASCADE, verbose_name='受检查单位')
|
||||
result = models.CharField('检查结果', max_length=50, choices=result_choices, null=True, blank=True)
|
||||
note = models.TextField('检查说明', null=True, blank=True)
|
||||
subtask = models.ForeignKey(SubInspectTask, on_delete=models.CASCADE, verbose_name='关联子任务')
|
||||
|
||||
class Meta:
|
||||
verbose_name = '巡查记录'
|
||||
|
|
|
@ -30,3 +30,8 @@ class InspectTaskSerializer(serializers.ModelSerializer):
|
|||
def get_subtask_count(self, obj):
|
||||
return SubInspectTask.objects.filter(inspecttask=obj, is_deleted=True).count()
|
||||
|
||||
class SubtaskListSerializer(serializers.ModelSerializer):
|
||||
|
||||
class Meta:
|
||||
model = SubInspectTask
|
||||
fields = '__all__'
|
|
@ -1,10 +1,11 @@
|
|||
from django.urls import path, include
|
||||
from rest_framework import routers
|
||||
from .views import InspectItemViewSet, InspectTaskViewSet
|
||||
from .views import InspectItemViewSet, InspectTaskViewSet, SubtaskViewSet
|
||||
|
||||
router = routers.DefaultRouter()
|
||||
router.register('inspectitem', InspectItemViewSet, basename="inspectitem")
|
||||
router.register('inspecttask', InspectTaskViewSet, basename="inspecttask")
|
||||
router.register('subinspecttask', SubtaskViewSet, basename="subinspecttask")
|
||||
urlpatterns = [
|
||||
path('', include(router.urls))
|
||||
]
|
|
@ -47,4 +47,48 @@ class SubtaskViewSet(ModelViewSet):
|
|||
perms_map = {'get': '*', 'post': 'inspecttask_create',
|
||||
'put': 'inspecttask_update', 'delete': 'inspecttask_delete'}
|
||||
queryset = SubInspectTask.objects.all()
|
||||
ordering = ['create_time']
|
||||
serializer_class = SubtaskListSerializer
|
||||
filterset_fields = ['inspecttask']
|
||||
ordering = ['create_time']
|
||||
|
||||
|
||||
def destroy(self, request, *args, **kwargs):
|
||||
instance = self.get_object()
|
||||
instance.delete(soft=False)
|
||||
return Response(status=status.HTTP_204_NO_CONTENT)
|
||||
|
||||
def create(self, request, *args, **kwargs):
|
||||
obj = SubInspectTask()
|
||||
obj.inspecttask = InspectTask.objects.get(pk=request.data['inspecttask'])
|
||||
obj.name = request.data['name']
|
||||
obj.save()
|
||||
InspectTeam.objects.create(member=User.objects.get(pk=request.data['leader']), type='组长', subtask=obj)
|
||||
if request.data.get('members', False) and request.data.get('depts', False):
|
||||
members = []
|
||||
depts = []
|
||||
records = []
|
||||
for dept in request.data['depts']:
|
||||
mdept = Organization.objects.get(pk=dept)
|
||||
if not InspectRecord.objects.filter(dept=mdept, subtask=obj).exists():
|
||||
data = {}
|
||||
data['dept'] = mdept
|
||||
data['subtask'] = obj
|
||||
depts.append(InspectDept(**data))
|
||||
for i in InspectItem.objects.filter(is_deleted=False):
|
||||
r = {}
|
||||
r['dept'] = mdept
|
||||
r['item'] = i
|
||||
r['subtask'] = obj
|
||||
records.append(InspectRecord(**r))
|
||||
for member in request.data['members']:
|
||||
mmember = User.objects.get(pk=member)
|
||||
if not InspectTeam.objects.filter(member=mdept, subtask=obj).exists():
|
||||
data = {}
|
||||
data['member'] = mmember
|
||||
data['subtask'] = obj
|
||||
members.append(InspectTeam(**data))
|
||||
InspectTeam.objects.bulk_create(members)
|
||||
InspectDept.objects.bulk_create(depts)
|
||||
InspectRecord.objects.bulk_create(records)
|
||||
return Response(status=status.HTTP_201_CREATED)
|
||||
return Response('组织和成员不能为空', status=status.HTTP_400_BAD_REQUEST)
|
||||
|
|
|
@ -226,7 +226,7 @@ class RoleViewSet(ModelViewSet):
|
|||
ordering = 'id'
|
||||
|
||||
|
||||
class UserViewSet(ModelViewSet):
|
||||
class UserViewSet(PageOrNot, ModelViewSet):
|
||||
"""
|
||||
用户管理:增删改查
|
||||
"""
|
||||
|
|
Loading…
Reference in New Issue