feat: 工艺路线复制按钮
This commit is contained in:
parent
688b3fc3d1
commit
4927afa9b7
|
@ -19,7 +19,7 @@ from rest_framework.serializers import Serializer
|
|||
from django.db import transaction
|
||||
from django.db.models import Q
|
||||
from apps.wf.models import Ticket
|
||||
|
||||
from django.utils import timezone
|
||||
|
||||
# Create your views here.
|
||||
class MaterialViewSet(CustomModelViewSet):
|
||||
|
@ -226,6 +226,39 @@ class RoutePackViewSet(CustomModelViewSet):
|
|||
obj.delete()
|
||||
Ticket.objects.filter(ticket_data__t_id=obj.id, ticket_data__t_model='routepack').delete()
|
||||
return Response(status=204)
|
||||
|
||||
@transaction.atomic
|
||||
@action(methods=['post'], detail=True, perms_map={'post': 'routepack.create'}, serializer_class=Serializer)
|
||||
def copy(self, request, *args, **kwargs):
|
||||
"""复制工艺路线
|
||||
|
||||
复制工艺路线
|
||||
"""
|
||||
obj = self.get_object()
|
||||
user = request.user
|
||||
now = timezone.now()
|
||||
obj_c = RoutePack()
|
||||
obj_c.name = f'{obj.name}_copy'
|
||||
obj_c.material = obj.material
|
||||
obj_c.create_by = user
|
||||
obj_c.create_time = now
|
||||
obj_c.save()
|
||||
for route in Route.objects.filter(routepack=obj):
|
||||
route_new = Route()
|
||||
for f in Route._meta.fields:
|
||||
if f.name not in ['id', 'create_by', 'update_by', 'create_time', 'update_time']:
|
||||
setattr(route_new, f.name, getattr(route, f.name, None))
|
||||
route_new.routepack = obj_c
|
||||
route_new.create_by = user
|
||||
route_new.create_time = now
|
||||
route_new.save()
|
||||
for rm in RouteMat.objects.filter(route=route):
|
||||
rm_new = RouteMat()
|
||||
rm_new.route = route_new
|
||||
rm_new.material = rm.material
|
||||
rm_new.save()
|
||||
return Response()
|
||||
|
||||
|
||||
class RouteViewSet(CustomModelViewSet):
|
||||
queryset = Route.objects.all()
|
||||
|
|
Loading…
Reference in New Issue