refactor: add create_user field to knowledge query and update filtering logic

This commit is contained in:
CaptainB 2025-07-02 16:22:51 +08:00
parent 8d52166307
commit 621cd37385
3 changed files with 11 additions and 2 deletions

View File

@ -116,6 +116,7 @@ class KnowledgeSerializer(serializers.Serializer):
allow_blank=True, max_length=256, min_length=1)
user_id = serializers.UUIDField(required=False, label=_('user id'), allow_null=True)
scope = serializers.CharField(required=False, label=_('knowledge scope'), allow_null=True)
create_user = serializers.UUIDField(required=False, label=_('create user'), allow_null=True)
@staticmethod
def is_x_pack_ee():
@ -153,6 +154,8 @@ class KnowledgeSerializer(serializers.Serializer):
folder_query_set = folder_query_set.filter(**{'parent_id': self.data.get("folder_id")})
if "scope" in self.data and self.data.get('scope') is not None:
query_set = query_set.filter(**{'temp.scope': self.data.get("scope")})
if "create_user" in self.data and self.data.get('create_user') is not None:
query_set = query_set.filter(**{'temp.user_id': self.data.get("create_user")})
query_set = query_set.order_by("-temp.create_time", "temp.id")
query_set_dict['default_sql'] = query_set

View File

@ -144,7 +144,8 @@ class KnowledgeView(APIView):
'name': request.query_params.get('name'),
'desc': request.query_params.get("desc"),
'scope': KnowledgeScope.WORKSPACE,
'user_id': request.user.id
'user_id': request.user.id,
'create_user': request.query_params.get('create_user'),
}
).page(current_page, page_size))

View File

@ -31,7 +31,7 @@
clearable
style="width: 220px"
>
<el-option v-for="u in user_options" :key="u.id" :value="u.id" :label="u.username" />
<el-option v-for="u in user_options" :key="u.id" :value="u.id" :label="u.nick_name" />
</el-select>
</div>
<el-dropdown trigger="click" v-if="!isShared && permissionPrecise.create()">
@ -527,6 +527,11 @@ onMounted(() => {
})
getList()
}
loadSharedApi({type: 'workspace', isShared: isShared.value, systemType: apiType.value })
.getAllMemberList(user.getWorkspaceId(), loading)
.then((res: any) => {
user_options.value = res.data
})
})
</script>