|
@@ -12,8 +12,234 @@ from rest_framework import status
|
|
|
|
|
|
from reportcenter.models import flowModel as flowlist
|
|
|
from . import serializers
|
|
|
-from .filter import FlowFilter
|
|
|
-from .files import FileFlowListRenderCN
|
|
|
+from .filter import FlowFilter, MaterialChangeHistoryFilter, batchLogFilter, ContainerDetailLogFilter
|
|
|
+from .files import FileFlowListRenderCN, MaterialChangeHistoryRenderCN, batchLogRenderCN, ContainerDetailLogRenderCN
|
|
|
+
|
|
|
+from container.models import MaterialChangeHistory,batchLogModel,ContainerDetailLogModel
|
|
|
+
|
|
|
+"""
|
|
|
+
|
|
|
+ path(r'MaterialChangeHistory/', views.MaterialChangeHistoryViewSet.as_view({"get": "list", }), name="management"),
|
|
|
+ path(r'MaterialChangeHistory/file/', views.MaterialChangeHistoryDownloadView.as_view({"get": "list"}), name="flowfile"),
|
|
|
+
|
|
|
+ path(r'batchLog/', views.batchLogViewSet.as_view({"get": "list", }), name="management"),
|
|
|
+ path(r'batchLog/file/', views.batchLogDownloadView.as_view({"get": "list"}), name="flowfile"),
|
|
|
+
|
|
|
+ path(r'ContainerDetailLog/', views.ContainerDetailLogViewSet.as_view({"get": "list", }), name="management"),
|
|
|
+ path(r'ContainerDetailLog/file/', views.ContainerDetailLogDownloadView.as_view({"get": "list"}), name="flowfile"),
|
|
|
+
|
|
|
+"""
|
|
|
+
|
|
|
+class MaterialChangeHistoryViewSet(viewsets.ModelViewSet):
|
|
|
+ filter_backends = [DjangoFilterBackend, OrderingFilter, ]
|
|
|
+ ordering_fields = ['id', "change_time", "create_time", "update_time", ]
|
|
|
+ filter_class = MaterialChangeHistoryFilter
|
|
|
+ pagination_class = MyPageNumberPagination
|
|
|
+
|
|
|
+ def get_queryset(self):
|
|
|
+ return MaterialChangeHistory.objects.all()
|
|
|
+
|
|
|
+ def get_serializer_class(self):
|
|
|
+ if self.action in ['list', 'create']:
|
|
|
+ return serializers.MaterialChangeHistorySerializer
|
|
|
+ else:
|
|
|
+ return self.http_method_not_allowed(request=self.request)
|
|
|
+
|
|
|
+class MaterialChangeHistoryDownloadView(viewsets.ModelViewSet):
|
|
|
+ renderer_classes = (MaterialChangeHistoryRenderCN, ) + tuple(api_settings.DEFAULT_RENDERER_CLASSES)
|
|
|
+ filter_backends = [DjangoFilterBackend, OrderingFilter, ]
|
|
|
+ ordering_fields = ['id', "change_time", "create_time", "update_time", ]
|
|
|
+ filter_class = MaterialChangeHistoryFilter
|
|
|
+
|
|
|
+ def get_project(self):
|
|
|
+ try:
|
|
|
+ id = self.kwargs.get('pk')
|
|
|
+ return id
|
|
|
+ except:
|
|
|
+ return None
|
|
|
+
|
|
|
+ def get_queryset(self):
|
|
|
+ id = self.get_project()
|
|
|
+ if self.request.user:
|
|
|
+ if id is None:
|
|
|
+ return MaterialChangeHistory.objects.filter()
|
|
|
+ else:
|
|
|
+ return MaterialChangeHistory.objects.filter(id=id)
|
|
|
+ else:
|
|
|
+ return MaterialChangeHistory.objects.none()
|
|
|
+
|
|
|
+ def get_serializer_class(self):
|
|
|
+ if self.action in ['list']:
|
|
|
+ return serializers.MaterialChangeHistorySerializer
|
|
|
+ else:
|
|
|
+ return self.http_method_not_allowed(request=self.request)
|
|
|
+
|
|
|
+ def get_render(self, data):
|
|
|
+ # lang = self.request.META.get('HTTP_LANGUAGE')
|
|
|
+ # if lang:
|
|
|
+ # if lang == 'zh-hans':
|
|
|
+ # return FileListRenderCN().render(data)
|
|
|
+ # else:
|
|
|
+ # return FileListRenderEN().render(data)
|
|
|
+ # else:
|
|
|
+ # return FileListRenderEN().render(data)
|
|
|
+ return MaterialChangeHistoryRenderCN().render(data)
|
|
|
+
|
|
|
+
|
|
|
+ def list(self, request, *args, **kwargs):
|
|
|
+ from datetime import datetime
|
|
|
+ dt = datetime.now()
|
|
|
+ data = (
|
|
|
+ serializers.MaterialChangeHistorySerializer(instance).data
|
|
|
+ for instance in self.filter_queryset(self.get_queryset())
|
|
|
+ )
|
|
|
+ renderer = self.get_render(data)
|
|
|
+ response = StreamingHttpResponse(
|
|
|
+ renderer,
|
|
|
+ content_type="text/csv"
|
|
|
+ )
|
|
|
+ response['Content-Disposition'] = "attachment; filename='MaterialChangeHistory_{}.csv'".format(str(dt.strftime('%Y%m%d%H%M%S%f')))
|
|
|
+ return response
|
|
|
+
|
|
|
+class batchLogViewSet(viewsets.ModelViewSet):
|
|
|
+ filter_backends = [DjangoFilterBackend, OrderingFilter, ]
|
|
|
+ ordering_fields = ['id', "create_time", "update_time", ]
|
|
|
+ filter_class = batchLogFilter
|
|
|
+ pagination_class = MyPageNumberPagination
|
|
|
+
|
|
|
+ def get_queryset(self):
|
|
|
+ return batchLogModel.objects.all()
|
|
|
+
|
|
|
+ def get_serializer_class(self):
|
|
|
+ if self.action in ['list', 'create']:
|
|
|
+ return serializers.batchLogSerializer
|
|
|
+ else:
|
|
|
+ return self.http_method_not_allowed(request=self.request)
|
|
|
+
|
|
|
+class batchLogDownloadView(viewsets.ModelViewSet):
|
|
|
+ renderer_classes = (batchLogRenderCN, ) + tuple(api_settings.DEFAULT_RENDERER_CLASSES)
|
|
|
+ filter_backends = [DjangoFilterBackend, OrderingFilter, ]
|
|
|
+ ordering_fields = ['id', "create_time", "update_time", ]
|
|
|
+ filter_class = batchLogFilter
|
|
|
+
|
|
|
+ def get_project(self):
|
|
|
+ try:
|
|
|
+ id = self.kwargs.get('pk')
|
|
|
+ return id
|
|
|
+ except:
|
|
|
+ return None
|
|
|
+ def get_queryset(self):
|
|
|
+ id = self.get_project()
|
|
|
+ if self.request.user:
|
|
|
+ if id is None:
|
|
|
+ return batchLogModel.objects.filter()
|
|
|
+ else:
|
|
|
+ return batchLogModel.objects.filter(id=id)
|
|
|
+ else:
|
|
|
+ return batchLogModel.objects.none()
|
|
|
+
|
|
|
+ def get_serializer_class(self):
|
|
|
+ if self.action in ['list']:
|
|
|
+ return serializers.batchLogSerializer
|
|
|
+ else:
|
|
|
+ return self.http_method_not_allowed(request=self.request)
|
|
|
+
|
|
|
+ def get_render(self, data):
|
|
|
+ # lang = self.request.META.get('HTTP_LANGUAGE')
|
|
|
+ # if lang:
|
|
|
+ # if lang == 'zh-hans':
|
|
|
+ # return FileListRenderCN().render(data)
|
|
|
+ # else:
|
|
|
+ # return FileListRenderEN().render(data)
|
|
|
+ # else:
|
|
|
+ # return FileListRenderEN().render(data)
|
|
|
+ return batchLogRenderCN().render(data)
|
|
|
+
|
|
|
+
|
|
|
+ def list(self, request, *args, **kwargs):
|
|
|
+ from datetime import datetime
|
|
|
+ dt = datetime.now()
|
|
|
+ data = (
|
|
|
+ serializers.batchLogSerializer(instance).data
|
|
|
+ for instance in self.filter_queryset(self.get_queryset()))
|
|
|
+ renderer = self.get_render(data)
|
|
|
+ response = StreamingHttpResponse(
|
|
|
+ renderer,
|
|
|
+ content_type="text/csv"
|
|
|
+ )
|
|
|
+ response['Content-Disposition'] = "attachment; filename='batchLog_{}.csv'".format(str(dt.strftime('%Y%m%d%H%M%S%f')))
|
|
|
+ return response
|
|
|
+
|
|
|
+class ContainerDetailLogViewSet(viewsets.ModelViewSet):
|
|
|
+ filter_backends = [DjangoFilterBackend, OrderingFilter, ]
|
|
|
+ ordering_fields = ['id', "create_time", "update_time", ]
|
|
|
+ filter_class = ContainerDetailLogFilter
|
|
|
+ pagination_class = MyPageNumberPagination
|
|
|
+ def get_queryset(self):
|
|
|
+ return ContainerDetailLogModel.objects.all()
|
|
|
+
|
|
|
+ def get_serializer_class(self):
|
|
|
+ if self.action in ['list', 'create']:
|
|
|
+ return serializers.ContainerDetailLogSerializer
|
|
|
+ else:
|
|
|
+ return self.http_method_not_allowed(request=self.request)
|
|
|
+
|
|
|
+class ContainerDetailLogDownloadView(viewsets.ModelViewSet):
|
|
|
+ renderer_classes = (ContainerDetailLogRenderCN, ) + tuple(api_settings.DEFAULT_RENDERER_CLASSES)
|
|
|
+ filter_backends = [DjangoFilterBackend, OrderingFilter, ]
|
|
|
+ ordering_fields = ['id', "create_time", "update_time", ]
|
|
|
+ filter_class = ContainerDetailLogFilter
|
|
|
+
|
|
|
+ def get_project(self):
|
|
|
+ try:
|
|
|
+ id = self.kwargs.get('pk')
|
|
|
+ return id
|
|
|
+ except:
|
|
|
+ return None
|
|
|
+
|
|
|
+ def get_queryset(self):
|
|
|
+ id = self.get_project()
|
|
|
+ if self.request.user:
|
|
|
+ if id is None:
|
|
|
+ return ContainerDetailLogModel.objects.filter()
|
|
|
+ else:
|
|
|
+ return ContainerDetailLogModel.objects.filter(id=id)
|
|
|
+ else:
|
|
|
+ return ContainerDetailLogModel.objects.none()
|
|
|
+
|
|
|
+ def get_serializer_class(self):
|
|
|
+ if self.action in ['list']:
|
|
|
+ return serializers.ContainerDetailLogSerializer
|
|
|
+ else:
|
|
|
+ return self.http_method_not_allowed(request=self.request)
|
|
|
+
|
|
|
+ def get_render(self, data):
|
|
|
+ # lang = self.request.META.get('HTTP_LANGUAGE')
|
|
|
+ # if lang:
|
|
|
+ # if lang == 'zh-hans':
|
|
|
+ # return FileListRenderCN().render(data)
|
|
|
+ # else:
|
|
|
+ # return FileListRenderEN().render(data)
|
|
|
+ # else:
|
|
|
+ # return FileListRenderEN().render(data)
|
|
|
+ return ContainerDetailLogRenderCN().render(data)
|
|
|
+
|
|
|
+ def list(self, request, *args, **kwargs):
|
|
|
+ from datetime import datetime
|
|
|
+ dt = datetime.now()
|
|
|
+ data = (
|
|
|
+ serializers.ContainerDetailLogSerializer(instance).data
|
|
|
+ for instance in self.filter_queryset(self.get_queryset()))
|
|
|
+ renderer = self.get_render(data)
|
|
|
+ response = StreamingHttpResponse(
|
|
|
+ renderer,
|
|
|
+ content_type="text/csv"
|
|
|
+ )
|
|
|
+ response['Content-Disposition'] = "attachment; filename='ContainerDetailLog_{}.csv'".format(str(dt.strftime('%Y%m%d%H%M%S%f')))
|
|
|
+ return response
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
|
|
|
|
|
|
class FileListDownloadView(viewsets.ModelViewSet):
|