perf: 修改 labels 和 role 搜索

This commit is contained in:
ibuler
2023-12-18 17:56:16 +08:00
committed by Bryan
parent 1e7f268f0c
commit 1358cf532f
9 changed files with 76 additions and 39 deletions

View File

@@ -56,9 +56,22 @@ class RoleViewSet(JMSModelViewSet):
return
instance.permissions.set(clone.get_permissions())
def filter_builtins(self, queryset):
keyword = self.request.query_params.get('search')
if not keyword:
return queryset
builtins = list(self.queryset.filter(builtin=True))
matched = [role.id for role in builtins if keyword in role.display_name]
if not matched:
return queryset
queryset = list(queryset.exclude(id__in=matched))
return queryset + builtins
def filter_queryset(self, queryset):
queryset = super().filter_queryset(queryset)
queryset = queryset.order_by(*self.ordering)
queryset = self.filter_builtins(queryset)
return queryset
def set_users_amount(self, queryset):