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"
|
:visible.sync="drawer"
|
||||||
:with-header="false"
|
:with-header="false"
|
||||||
size="40%"
|
size="40%"
|
||||||
|
style="overflow-y:auto"
|
||||||
>
|
>
|
||||||
<recorddo
|
<recorddo
|
||||||
ref="recorddo"
|
ref="recorddo"
|
||||||
|
|
|
||||||
|
|
@ -39,7 +39,6 @@ class SubInspectTask(CommonAModel):
|
||||||
"""
|
"""
|
||||||
name = models.CharField('子任务名', max_length=100)
|
name = models.CharField('子任务名', max_length=100)
|
||||||
inspecttask = models.ForeignKey(InspectTask, on_delete=models.CASCADE, verbose_name='所属任务')
|
inspecttask = models.ForeignKey(InspectTask, on_delete=models.CASCADE, verbose_name='所属任务')
|
||||||
leader = models.ForeignKey(User, on_delete=models.CASCADE, verbose_name='组长')
|
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
verbose_name = '巡查子任务'
|
verbose_name = '巡查子任务'
|
||||||
|
|
@ -85,6 +84,7 @@ class InspectRecord(CommonAModel):
|
||||||
dept = models.ForeignKey(Organization, on_delete=models.CASCADE, verbose_name='受检查单位')
|
dept = models.ForeignKey(Organization, on_delete=models.CASCADE, verbose_name='受检查单位')
|
||||||
result = models.CharField('检查结果', max_length=50, choices=result_choices, null=True, blank=True)
|
result = models.CharField('检查结果', max_length=50, choices=result_choices, null=True, blank=True)
|
||||||
note = models.TextField('检查说明', null=True, blank=True)
|
note = models.TextField('检查说明', null=True, blank=True)
|
||||||
|
subtask = models.ForeignKey(SubInspectTask, on_delete=models.CASCADE, verbose_name='关联子任务')
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
verbose_name = '巡查记录'
|
verbose_name = '巡查记录'
|
||||||
|
|
|
||||||
|
|
@ -30,3 +30,8 @@ class InspectTaskSerializer(serializers.ModelSerializer):
|
||||||
def get_subtask_count(self, obj):
|
def get_subtask_count(self, obj):
|
||||||
return SubInspectTask.objects.filter(inspecttask=obj, is_deleted=True).count()
|
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 django.urls import path, include
|
||||||
from rest_framework import routers
|
from rest_framework import routers
|
||||||
from .views import InspectItemViewSet, InspectTaskViewSet
|
from .views import InspectItemViewSet, InspectTaskViewSet, SubtaskViewSet
|
||||||
|
|
||||||
router = routers.DefaultRouter()
|
router = routers.DefaultRouter()
|
||||||
router.register('inspectitem', InspectItemViewSet, basename="inspectitem")
|
router.register('inspectitem', InspectItemViewSet, basename="inspectitem")
|
||||||
router.register('inspecttask', InspectTaskViewSet, basename="inspecttask")
|
router.register('inspecttask', InspectTaskViewSet, basename="inspecttask")
|
||||||
|
router.register('subinspecttask', SubtaskViewSet, basename="subinspecttask")
|
||||||
urlpatterns = [
|
urlpatterns = [
|
||||||
path('', include(router.urls))
|
path('', include(router.urls))
|
||||||
]
|
]
|
||||||
|
|
@ -47,4 +47,48 @@ class SubtaskViewSet(ModelViewSet):
|
||||||
perms_map = {'get': '*', 'post': 'inspecttask_create',
|
perms_map = {'get': '*', 'post': 'inspecttask_create',
|
||||||
'put': 'inspecttask_update', 'delete': 'inspecttask_delete'}
|
'put': 'inspecttask_update', 'delete': 'inspecttask_delete'}
|
||||||
queryset = SubInspectTask.objects.all()
|
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'
|
ordering = 'id'
|
||||||
|
|
||||||
|
|
||||||
class UserViewSet(ModelViewSet):
|
class UserViewSet(PageOrNot, ModelViewSet):
|
||||||
"""
|
"""
|
||||||
用户管理:增删改查
|
用户管理:增删改查
|
||||||
"""
|
"""
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue