Hi Chris, no. But it is trivial with web2py.
Here I implemented the example in http://www.sitepoint.com/print/hierarchical-data-database/ db=SQLDB('sqlite://tree.db') db.define_table('tree',db.Field('title'),db.Field ('left','integer'),db.Field('right','integer')) db.tree.insert(title='Food',left=1,right=2) def add_node(title,parent_title): """ add_node ('Fruit','Food') add_node ('Meat','Food') add_node ('Red','Fruit') """ parent=db(db.tree.title==parent_title).select()[0] db(db.tree.right>=parent.right).update(right=db.tree.right+2) db(db.tree.left>=parent.right).update(left=db.tree.left+2) db.tree.insert(title=title,left=parent.right,right=parent.right+1) def ancestors(title,*fields): """ print ancestors('Red',db.tree.title)""" node=db(db.tree.title==title).select()[0] return db(db.tree.left<node.left)(db.tree.right>node.right).select (orderby=db.tree.left,*fields) def descendants(title,*fields): """ print ancestors('Fruit',db.tree.title)""" node=db(db.tree.title==title).select()[0] return db(db.tree.left>node.left)(db.tree.right<node.right).select (orderby=db.tree.left,*fields) def test(): print db().select(db.tree.ALL) add_node('Fruit','Food') print db().select(db.tree.ALL) add_node('Meat','Food') print db().select(db.tree.ALL) add_node('Red','Fruit') print db().select(db.tree.ALL) print ancestors('Red',db.tree.title) print descendants('Fruit',db.tree.title) test() OUTPUT: tree.id,tree.title,tree.left,tree.right 1,Food,1,2 tree.id,tree.title,tree.left,tree.right 1,Food,1,4 2,Fruit,2,3 tree.id,tree.title,tree.left,tree.right 1,Food,1,6 2,Fruit,2,3 3,Meat,4,5 tree.id,tree.title,tree.left,tree.right 1,Food,1,8 2,Fruit,2,5 3,Meat,6,7 4,Red,3,4 tree.title Food Fruit tree.title Red On Feb 13, 2:31 am, sociotech <cfassna...@gmail.com> wrote: > Just wondering if anyone has implemented modified preorder tree > traversal (MPTT) functions for Web2Py yet. MPTT is an efficient > approach to organizing hierarchically-related records (e.g., nested > menus, parent/child relationships, etc.) in a database. > > I was hoping someone here might've already implemented it (there is an > implementation for Django and more general information > here:http://code.google.com/p/django-mptt/), but I haven't found anything > yet. > > Thanks very much, > > Chris --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "web2py Web Framework" group. To post to this group, send email to web2py@googlegroups.com To unsubscribe from this group, send email to web2py+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/web2py?hl=en -~----------~----~----~----~------~----~------~--~---