MCPcopy Index your code
hub / github.com/1Panel-dev/MaxKB / one

Method one

apps/knowledge/serializers/knowledge.py:408–472  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

406 return workspace_user_role_mapping_model is not None and role_permission_mapping_model is not None
407
408 def one(self):
409 self.is_valid()
410 workspace_manage = is_workspace_manage(self.data.get("user_id"), self.data.get("workspace_id"))
411 is_x_pack_ee = self.is_x_pack_ee()
412
413 query_set_dict = {
414 "default_sql": QuerySet(model=get_dynamics_model({"temp.id": models.CharField()})).filter(
415 **{"temp.id": self.data.get("knowledge_id")}
416 ),
417 "knowledge_custom_sql": QuerySet(model=get_dynamics_model({"knowledge.id": models.CharField()})).filter(
418 **{"knowledge.id": self.data.get("knowledge_id")}
419 ),
420 }
421 if not workspace_manage:
422 query_set_dict["workspace_user_resource_permission_query_set"] = QuerySet(
423 WorkspaceUserResourcePermission
424 ).filter(
425 auth_target_type="KNOWLEDGE",
426 workspace_id=self.data.get("workspace_id"),
427 user_id=self.data.get("user_id"),
428 )
429 all_application_list = [str(adm.get("id")) for adm in self.list_application(with_valid=False)]
430 knowledge_dict = native_search(
431 query_set_dict,
432 select_string=get_file_content(
433 os.path.join(
434 PROJECT_DIR,
435 "apps",
436 "knowledge",
437 "sql",
438 "list_knowledge.sql"
439 if workspace_manage
440 else ("list_knowledge_user_ee.sql" if is_x_pack_ee else "list_knowledge_user.sql"),
441 )
442 ),
443 with_search_one=True,
444 )
445 workflow = {}
446
447 if knowledge_dict.get("type") == 4:
448 from knowledge.models import KnowledgeWorkflow
449
450 k = QuerySet(KnowledgeWorkflow).filter(knowledge_id=knowledge_dict.get("id")).first()
451 if k:
452 workflow["work_flow"] = k.work_flow
453 workflow["is_publish"] = k.is_publish
454 workflow["publish_time"] = k.publish_time
455 return {
456 **knowledge_dict,
457 **workflow,
458 "meta": json.loads(knowledge_dict.get("meta", "{}")),
459 "application_id_list": list(
460 filter(
461 lambda application_id: all_application_list.__contains__(application_id),
462 [
463 str(application_knowledge_mapping.source_id)
464 for application_knowledge_mapping in QuerySet(ResourceMapping).filter(
465 source_type="APPLICATION",

Callers 1

editMethod · 0.95

Calls 8

is_validMethod · 0.95
is_x_pack_eeMethod · 0.95
list_applicationMethod · 0.95
is_workspace_manageFunction · 0.90
get_dynamics_modelFunction · 0.90
native_searchFunction · 0.90
get_file_contentFunction · 0.90
getMethod · 0.45

Tested by

no test coverage detected