Browse Source

Merge branch 'stable' into live

version-14
Nabin Hait 14 years ago
parent
commit
cea5b3d846
1 changed files with 4 additions and 8 deletions
  1. +4
    -8
      cgi-bin/webnotes/utils/nestedset.py

+ 4
- 8
cgi-bin/webnotes/utils/nestedset.py View File

@@ -153,19 +153,16 @@ def rebuild_tree(doctype, parent_field):
""" """
# get all roots # get all roots
right = 1 right = 1
result = webnotes.conn.sql("SELECT name FROM `tab%s` WHERE `%s`='' or `%s` IS NULL" % (doctype, parent_field, parent_field))
result = webnotes.conn.sql("SELECT name FROM `tab%s` WHERE `%s`='' or `%s` IS NULL ORDER BY name ASC" % (doctype, parent_field, parent_field))
for r in result: for r in result:
right = rebuild_node(doctype, r[0], right, parent_field) right = rebuild_node(doctype, r[0], right, parent_field)
webnotes.conn.sql("commit") webnotes.conn.sql("commit")
webnotes.conn.sql("start transaction") webnotes.conn.sql("start transaction")
cnt = 0

def rebuild_node(doctype, parent, left, parent_field):
def rebuild_node(doctype, parent, left, parent_field, cnt = 0):
""" """
reset lft, rgt and recursive call for all children reset lft, rgt and recursive call for all children
""" """
global cnt
from webnotes.utils import now from webnotes.utils import now
n = now() n = now()
@@ -175,8 +172,7 @@ def rebuild_node(doctype, parent, left, parent_field):
# get all children of this node # get all children of this node
result = webnotes.conn.sql("SELECT name FROM `tab%s` WHERE `%s`='%s'" % (doctype, parent_field, parent)) result = webnotes.conn.sql("SELECT name FROM `tab%s` WHERE `%s`='%s'" % (doctype, parent_field, parent))
for r in result: for r in result:

right = rebuild_node(doctype, r[0], right, parent_field)
right = rebuild_node(doctype, r[0], right, parent_field, cnt)


# we've got the left value, and now that we've processed # we've got the left value, and now that we've processed
# the children of this node we also know the right value # the children of this node we also know the right value
@@ -184,7 +180,7 @@ def rebuild_node(doctype, parent, left, parent_field):


# commit after every 100 # commit after every 100
cnt += 1 cnt += 1
if cnt % 500 == 0:
if cnt % 100 == 0:
cnt = 0 cnt = 0
webnotes.conn.sql("commit") webnotes.conn.sql("commit")
webnotes.conn.sql("start transaction") webnotes.conn.sql("start transaction")


Loading…
Cancel
Save