forked from erp-dev/erp
fix: added permission for plate_order and printing_order api
This commit is contained in:
@@ -28,6 +28,7 @@ from .serializers import (
|
||||
PrintingJobDetailSerializer,
|
||||
PrintingJobCreateUpdateSerializer,
|
||||
)
|
||||
from .mixins import CustomerVisibilityFilterMixin
|
||||
|
||||
|
||||
class IsPrintingFactory(BasePermission):
|
||||
@@ -96,7 +97,7 @@ class PrintingOrderFilterSet(django_filters.FilterSet):
|
||||
|
||||
|
||||
@method_decorator(cache_page(20), name='list')
|
||||
class PrintingOrderViewSet(LimitedModelViewSet):
|
||||
class PrintingOrderViewSet(CustomerVisibilityFilterMixin, LimitedModelViewSet):
|
||||
"""
|
||||
印染订单 ViewSet
|
||||
|
||||
@@ -129,8 +130,14 @@ class PrintingOrderViewSet(LimitedModelViewSet):
|
||||
格式: [{"state_name": "进度一", "state_id": 1, "count": 3}, ...]
|
||||
- jobs_last_status_summary: 订单下所有印染任务按最后完成状态分组的数量汇总
|
||||
格式: [{"state_name": "进度一", "count": 3}, ...]
|
||||
|
||||
权限控制:
|
||||
- 默认按客户可见性过滤(员工只能看到自己负责的客户的订单)
|
||||
- 拥有 printing.view_all_printingorders 权限可突破此限制
|
||||
"""
|
||||
queryset = models.PrintingOrder.objects.all()
|
||||
customer_field = 'customer'
|
||||
view_all_permission = 'printing.view_all_printingorders'
|
||||
permission_classes = [DjangoModelPermissions]
|
||||
filter_backends = [DjangoFilterBackend, filters.SearchFilter, filters.OrderingFilter]
|
||||
filterset_class = PrintingOrderFilterSet
|
||||
@@ -286,7 +293,7 @@ class PrintingJobFilterSet(django_filters.FilterSet):
|
||||
fields = ['printing_order', 'product']
|
||||
|
||||
|
||||
class PrintingJobViewSet(LimitedModelViewSet):
|
||||
class PrintingJobViewSet(CustomerVisibilityFilterMixin, LimitedModelViewSet):
|
||||
"""
|
||||
印染款式明细 ViewSet
|
||||
|
||||
@@ -318,8 +325,14 @@ class PrintingJobViewSet(LimitedModelViewSet):
|
||||
- pieces_max: 最大件数
|
||||
- search: 全文搜索(产品名称、单位、尺寸、备注)
|
||||
- ordering: 排序字段
|
||||
|
||||
权限控制:
|
||||
- 默认按客户可见性过滤(通过 printing_order.customer)
|
||||
- 拥有 printing.view_all_printingorders 权限可突破此限制
|
||||
"""
|
||||
queryset = models.PrintingJob.objects.all()
|
||||
customer_field = 'printing_order__customer'
|
||||
view_all_permission = 'printing.view_all_printingorders'
|
||||
permission_classes = [DjangoModelPermissions, IsPrintingFactory]
|
||||
filter_backends = [DjangoFilterBackend, filters.SearchFilter, filters.OrderingFilter]
|
||||
filterset_class = PrintingJobFilterSet
|
||||
@@ -630,7 +643,7 @@ def _plate_order_last_modified(request, *args, **kwargs):
|
||||
|
||||
|
||||
# @method_decorator(condition(last_modified_func=_plate_order_last_modified), name='list')
|
||||
class PlateOrderViewSet(LimitedModelViewSet):
|
||||
class PlateOrderViewSet(CustomerVisibilityFilterMixin, LimitedModelViewSet):
|
||||
"""
|
||||
开版订单 ViewSet
|
||||
|
||||
@@ -677,8 +690,14 @@ class PlateOrderViewSet(LimitedModelViewSet):
|
||||
- created_date_to: 创建日期结束
|
||||
- search: 全文搜索(设计编号、款式名称、客户名称、面料)
|
||||
- ordering: 排序字段
|
||||
|
||||
权限控制:
|
||||
- 默认按客户可见性过滤(员工只能看到自己负责的客户的订单)
|
||||
- 拥有 printing.view_all_plateorders 权限可突破此限制
|
||||
"""
|
||||
queryset = models.PlateOrder.objects.all()
|
||||
customer_field = 'customer'
|
||||
view_all_permission = 'printing.view_all_plateorders'
|
||||
permission_classes = [DjangoModelPermissions]
|
||||
parser_classes = [MultiPartParser, FormParser, JSONParser] # 支持文件上传
|
||||
filter_backends = [DjangoFilterBackend, filters.SearchFilter, filters.OrderingFilter]
|
||||
|
||||
Reference in New Issue
Block a user