Ver a proveniência

perf: dont query for impossible child/ancestor (#16577)

Also avoid manual plucking
version-14
Ankush Menat há 3 anos
committed by GitHub
ascendente
cometimento
3fb1eaf13b
Não foi encontrada uma chave conhecida para esta assinatura, na base de dados ID da chave GPG: 4AEE18F83AFDEB23
1 ficheiros alterados com 20 adições e 25 eliminações
  1. +20
    -25
      frappe/utils/nestedset.py

+ 20
- 25
frappe/utils/nestedset.py Ver ficheiro

@@ -352,34 +352,29 @@ def get_ancestors_of(doctype, name, order_by="lft desc", limit=None):
"""Get ancestor elements of a DocType with a tree structure"""
lft, rgt = frappe.db.get_value(doctype, name, ["lft", "rgt"])

result = [
d["name"]
for d in frappe.db.get_all(
doctype,
{"lft": ["<", lft], "rgt": [">", rgt]},
"name",
order_by=order_by,
limit_page_length=limit,
)
]

return result or []
return frappe.get_all(
doctype,
{"lft": ["<", lft], "rgt": [">", rgt]},
"name",
order_by=order_by,
limit_page_length=limit,
pluck="name",
)


def get_descendants_of(doctype, name, order_by="lft desc", limit=None, ignore_permissions=False):
"""Return descendants of the current record"""
lft, rgt = frappe.db.get_value(doctype, name, ["lft", "rgt"])

result = [
d["name"]
for d in frappe.db.get_list(
doctype,
{"lft": [">", lft], "rgt": ["<", rgt]},
"name",
order_by=order_by,
limit_page_length=limit,
ignore_permissions=ignore_permissions,
)
]

return result or []
if rgt - lft <= 1:
return []

return frappe.get_list(
doctype,
{"lft": [">", lft], "rgt": ["<", rgt]},
"name",
order_by=order_by,
limit_page_length=limit,
ignore_permissions=ignore_permissions,
pluck="name",
)

Carregando…
Cancelar
Guardar