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 import transaction
|
||||||
from django.db.models import Q
|
from django.db.models import Q
|
||||||
from apps.wf.models import Ticket
|
from apps.wf.models import Ticket
|
||||||
|
from django.utils import timezone
|
||||||
|
|
||||||
# Create your views here.
|
# Create your views here.
|
||||||
class MaterialViewSet(CustomModelViewSet):
|
class MaterialViewSet(CustomModelViewSet):
|
||||||
|
@ -227,6 +227,39 @@ class RoutePackViewSet(CustomModelViewSet):
|
||||||
Ticket.objects.filter(ticket_data__t_id=obj.id, ticket_data__t_model='routepack').delete()
|
Ticket.objects.filter(ticket_data__t_id=obj.id, ticket_data__t_model='routepack').delete()
|
||||||
return Response(status=204)
|
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):
|
class RouteViewSet(CustomModelViewSet):
|
||||||
queryset = Route.objects.all()
|
queryset = Route.objects.all()
|
||||||
serializer_class = RouteSerializer
|
serializer_class = RouteSerializer
|
||||||
|
|
Loading…
Reference in New Issue