Merge pull request #16502 from gavindsouza/nestedset-fixes
fix(nestedset): Fix rgt value via update_add_node
This commit is contained in:
commit
62ca3b6edb
2 changed files with 7 additions and 6 deletions
|
|
@ -115,6 +115,7 @@ class Database(object):
|
|||
{"name": "a%", "owner":"test@example.com"})
|
||||
|
||||
"""
|
||||
debug = debug or getattr(self, "debug", False)
|
||||
query = str(query)
|
||||
if not run:
|
||||
return query
|
||||
|
|
|
|||
|
|
@ -63,9 +63,8 @@ def update_add_node(doc, parent, parent_field):
|
|||
left, right = frappe.db.get_value(doctype, {"name": parent}, ["lft", "rgt"], for_update=True)
|
||||
validate_loop(doc.doctype, doc.name, left, right)
|
||||
else: # root
|
||||
|
||||
right = frappe.qb.from_(Table).select(
|
||||
Coalesce(Max(Table.rgt), 0)
|
||||
Coalesce(Max(Table.rgt), 0) + 1
|
||||
).where(Coalesce(Table[parent_field], "") == "").run(pluck=True)[0]
|
||||
|
||||
right = right or 1
|
||||
|
|
@ -110,14 +109,15 @@ def update_move_node(doc: Document, parent_field: str):
|
|||
).run()
|
||||
|
||||
if parent:
|
||||
# re-query value due to computation above
|
||||
new_parent = frappe.qb.from_(Table).select(
|
||||
Table.lft, Table.rgt
|
||||
).where(Table.name == parent).for_update().run(as_dict=True)[0]
|
||||
|
||||
# set parent lft, rgt
|
||||
frappe.qb.update(Table).set(Table.rgt, Table.rgt + diff).where(Table.name == parent).run()
|
||||
|
||||
# shift right at new parent
|
||||
frappe.qb.update(Table).set(Table.lft, Table.lft + diff).set(Table.rgt, Table.rgt + diff).where(
|
||||
(Table.lft >= new_parent.lft) & (Table.lft <= new_parent.rgt)
|
||||
).run()
|
||||
|
||||
frappe.qb.update(Table).set(Table.lft, Table.lft + diff).set(Table.rgt, Table.rgt + diff).where(
|
||||
Table.lft > new_parent.rgt
|
||||
).run()
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue