refactor(gerp): P2 完成 25 个 ViewSet queryset 全部换源 gvsdsdk 模型
This commit is contained in:
1 parent
9dd3ff8aca
commit
010ff46765
1 file changed
+37
-24
@@ -20,13 +20,26 @@ from gvsdsdk.models import (
|
||||
CashReceiptsPaymentsLedger as SdkCashReceiptsPaymentsLedger,
|
||||
Asset as SdkAsset,
|
||||
Liability as SdkLiability,
|
||||
Tenant as SdkTenant,
|
||||
Company as SdkCompany,
|
||||
Department as SdkDepartment,
|
||||
Role as SdkRole,
|
||||
UserRole as SdkUserRole,
|
||||
RolePermission as SdkRolePermission,
|
||||
Permission as SdkPermission,
|
||||
FileAsset as SdkFileAsset,
|
||||
WorkOrder as SdkWorkOrder,
|
||||
Message as SdkMessage,
|
||||
Menu as SdkMenu,
|
||||
ItemReference as SdkItemReference,
|
||||
Backpack as SdkBackpack,
|
||||
PositionTemplate as SdkPositionTemplate,
|
||||
Position as SdkPosition,
|
||||
)
|
||||
from . import ELTAuthenticatedAPIView
|
||||
from ..models import (
|
||||
Tenant, Company, Department, Role,
|
||||
UserRole, UserRoleDepartment, RolePermission, Permission, FileAsset, WorkOrder, Message, Menu,
|
||||
DepartmentSMTM, ItemReference, Backpack,
|
||||
PositionTemplate, Position,
|
||||
UserRoleDepartment,
|
||||
DepartmentSMTM,
|
||||
)
|
||||
from ..serializers import (
|
||||
TenantSerializer, CompanyInfoSerializer, CompanySerializer,
|
||||
@@ -46,7 +59,7 @@ from ..serializers import (
|
||||
|
||||
|
||||
class TenantViewSet(TenantScopedMixin, viewsets.ModelViewSet):
|
||||
queryset = Tenant.objects.all()
|
||||
queryset = SdkTenant.objects.all()
|
||||
serializer_class = TenantSerializer
|
||||
permission_classes = [IsAuthenticated]
|
||||
|
||||
@@ -82,7 +95,7 @@ class CompanyInfoViewSet(TenantScopedMixin, viewsets.ModelViewSet):
|
||||
|
||||
|
||||
class CompanyViewSet(TenantScopedMixin, viewsets.ModelViewSet):
|
||||
queryset = Company.objects.all()
|
||||
queryset = SdkCompany.objects.all()
|
||||
serializer_class = CompanySerializer
|
||||
permission_classes = [IsAuthenticated]
|
||||
|
||||
@@ -120,7 +133,7 @@ class CompanyViewSet(TenantScopedMixin, viewsets.ModelViewSet):
|
||||
|
||||
|
||||
class DepartmentViewSet(CompanyScopedMixin, viewsets.ModelViewSet):
|
||||
queryset = Department.objects.select_related('CompanyUUID', 'ParentDeptUUID')
|
||||
queryset = SdkDepartment.objects.all()
|
||||
serializer_class = DepartmentSerializer
|
||||
permission_classes = [IsAuthenticated]
|
||||
|
||||
@@ -176,7 +189,7 @@ class DepartmentViewSet(CompanyScopedMixin, viewsets.ModelViewSet):
|
||||
|
||||
|
||||
class RoleViewSet(TenantScopedMixin, viewsets.ModelViewSet):
|
||||
queryset = Role.objects.all()
|
||||
queryset = SdkRole.objects.all()
|
||||
serializer_class = RoleSerializer
|
||||
permission_classes = [IsAuthenticated]
|
||||
|
||||
@@ -264,7 +277,7 @@ class WorkgroupViewSet(CompanyScopedMixin, viewsets.ModelViewSet):
|
||||
|
||||
|
||||
class UserRoleViewSet(CompanyScopedMixin, viewsets.ModelViewSet):
|
||||
queryset = UserRole.objects.all()
|
||||
queryset = SdkUserRole.objects.all()
|
||||
serializer_class = UserRoleSerializer
|
||||
permission_classes = [IsAuthenticated, IsAdminUser]
|
||||
|
||||
@@ -373,7 +386,7 @@ class UserRoleViewSet(CompanyScopedMixin, viewsets.ModelViewSet):
|
||||
# 部门树分组:tree=1 时附带部门树(前端"按部门树展示成员"面板用)
|
||||
if request.query_params.get('tree') == '1':
|
||||
try:
|
||||
dept_qs = Department.objects.all()
|
||||
dept_qs = SdkDepartment.objects.all()
|
||||
# 与 UserRole 同公司隔离:仅当前公司部门(管理员特权模式不过滤)
|
||||
if not IsAdminScopeDisabled(request):
|
||||
current_company = getattr(request, 'current_company_uuid', None)
|
||||
@@ -406,7 +419,7 @@ class UserRoleViewSet(CompanyScopedMixin, viewsets.ModelViewSet):
|
||||
|
||||
|
||||
class RolePermissionViewSet(CompanyScopedMixin, viewsets.ModelViewSet):
|
||||
queryset = RolePermission.objects.all()
|
||||
queryset = SdkRolePermission.objects.all()
|
||||
serializer_class = RolePermissionSerializer
|
||||
permission_classes = [IsAuthenticated, IsAdminUser]
|
||||
|
||||
@@ -440,10 +453,10 @@ class RolePermissionViewSet(CompanyScopedMixin, viewsets.ModelViewSet):
|
||||
role = RoleManager.GetRoleByUUID(data['RoleUUID'])
|
||||
if role and getattr(role, 'TenantUUID_id', None) != current_tenant and getattr(role, 'TenantUUID', None) != current_tenant:
|
||||
return Response({'code': 403, 'msg': '无权操作:目标角色不属于当前租户'}, status=403)
|
||||
perm = Permission.objects.filter(PermUUID=data['PermUUID']).first()
|
||||
perm = SdkPermission.objects.filter(PermUUID=data['PermUUID']).first()
|
||||
if perm and getattr(perm, 'TenantUUID_id', None) != current_tenant and getattr(perm, 'TenantUUID', None) != current_tenant:
|
||||
return Response({'code': 403, 'msg': '无权操作:目标权限不属于当前租户'}, status=403)
|
||||
existing = RolePermission.objects.filter(
|
||||
existing = SdkRolePermission.objects.filter(
|
||||
RoleUUID=data['RoleUUID'],
|
||||
PermUUID=data['PermUUID'],
|
||||
CompanyUUID=company_uuid,
|
||||
@@ -467,7 +480,7 @@ class RolePermissionViewSet(CompanyScopedMixin, viewsets.ModelViewSet):
|
||||
|
||||
|
||||
class PermissionViewSet(TenantScopedMixin, viewsets.ModelViewSet):
|
||||
queryset = Permission.objects.all()
|
||||
queryset = SdkPermission.objects.all()
|
||||
serializer_class = PermissionSerializer
|
||||
permission_classes = [IsAuthenticated, IsAdminUser]
|
||||
|
||||
@@ -560,7 +573,7 @@ class PermissionViewSet(TenantScopedMixin, viewsets.ModelViewSet):
|
||||
|
||||
|
||||
class FileAssetViewSet(CompanyScopedMixin, viewsets.ModelViewSet):
|
||||
queryset = FileAsset.objects.select_related('CompanyUUID')
|
||||
queryset = SdkFileAsset.objects.all()
|
||||
serializer_class = FileAssetSerializer
|
||||
permission_classes = [IsAuthenticated]
|
||||
|
||||
@@ -655,7 +668,7 @@ class FileAssetViewSet(CompanyScopedMixin, viewsets.ModelViewSet):
|
||||
|
||||
|
||||
class WorkOrderViewSet(CompanyScopedMixin, viewsets.ModelViewSet):
|
||||
queryset = WorkOrder.objects.all()
|
||||
queryset = SdkWorkOrder.objects.all()
|
||||
serializer_class = WorkOrderSerializer
|
||||
permission_classes = [IsAuthenticated]
|
||||
|
||||
@@ -698,7 +711,7 @@ class WorkOrderViewSet(CompanyScopedMixin, viewsets.ModelViewSet):
|
||||
|
||||
|
||||
class MessageViewSet(CompanyScopedMixin, viewsets.ModelViewSet):
|
||||
queryset = Message.objects.select_related('SenderUUID', 'ReceiverUUID')
|
||||
queryset = SdkMessage.objects.all()
|
||||
serializer_class = MessageSerializer
|
||||
permission_classes = [IsAuthenticated]
|
||||
|
||||
@@ -714,14 +727,14 @@ class MessageViewSet(CompanyScopedMixin, viewsets.ModelViewSet):
|
||||
|
||||
class MenuViewSet(viewsets.ModelViewSet):
|
||||
"""菜单表为系统级全局配置,不按公司/租户隔离(与 FormService.COMPANY_SCOPE_EXEMPT_TABLES 一致)"""
|
||||
queryset = Menu.objects.all()
|
||||
queryset = SdkMenu.objects.all()
|
||||
serializer_class = MenuSerializer
|
||||
permission_classes = [IsAuthenticated]
|
||||
|
||||
@action(detail=False, methods=['get'])
|
||||
def search(self, request):
|
||||
keyword = request.query_params.get('keyword', '')
|
||||
qs = Menu.objects.all()
|
||||
qs = self.get_queryset()
|
||||
if keyword:
|
||||
qs = qs.filter(MenuTitle__icontains=keyword)
|
||||
serializer = self.get_serializer(qs[:20], many=True)
|
||||
@@ -730,7 +743,7 @@ class MenuViewSet(viewsets.ModelViewSet):
|
||||
@action(detail=False, methods=['get'])
|
||||
def list_by_company(self, request):
|
||||
CompanyUUID = request.query_params.get('CompanyUUID', '')
|
||||
qs = Menu.objects.all()
|
||||
qs = self.get_queryset()
|
||||
if CompanyUUID:
|
||||
qs = qs.filter(CompanyUUID=CompanyUUID)
|
||||
else:
|
||||
@@ -752,7 +765,7 @@ class DepartmentSMTMViewSet(viewsets.ModelViewSet):
|
||||
|
||||
|
||||
class ItemReferenceViewSet(viewsets.ModelViewSet):
|
||||
queryset = ItemReference.objects.all()
|
||||
queryset = SdkItemReference.objects.all()
|
||||
serializer_class = ItemReferenceSerializer
|
||||
permission_classes = [IsAuthenticated]
|
||||
|
||||
@@ -804,7 +817,7 @@ class ItemReferenceViewSet(viewsets.ModelViewSet):
|
||||
|
||||
|
||||
class BackpackViewSet(CompanyScopedMixin, viewsets.ModelViewSet):
|
||||
queryset = Backpack.objects.select_related('UserUUID', 'ItemTemplateUUID')
|
||||
queryset = SdkBackpack.objects.all()
|
||||
serializer_class = BackpackSerializer
|
||||
permission_classes = [IsAuthenticated]
|
||||
|
||||
@@ -925,7 +938,7 @@ class LiabilityViewSet(UserScopedMixin, viewsets.ModelViewSet):
|
||||
|
||||
|
||||
class PositionTemplateViewSet(TenantScopedMixin, viewsets.ModelViewSet):
|
||||
queryset = PositionTemplate.objects.all()
|
||||
queryset = SdkPositionTemplate.objects.all()
|
||||
serializer_class = PositionTemplateSerializer
|
||||
permission_classes = [IsAuthenticated, IsAdminUser]
|
||||
|
||||
@@ -946,7 +959,7 @@ class PositionTemplatePermissionViewSet(viewsets.ModelViewSet):
|
||||
|
||||
|
||||
class PositionViewSet(TenantScopedMixin, viewsets.ModelViewSet):
|
||||
queryset = Position.objects.all()
|
||||
queryset = SdkPosition.objects.all()
|
||||
serializer_class = PositionTemplateSerializer # 复用,search 只需基本字段
|
||||
permission_classes = [IsAuthenticated]
|
||||
|
||||
|
||||
Reference in new issue
Block a user