Looks like I worked most of the bugs out of this. Hope it saves someone a 
lot of time. If you know of a more *obvious or elegant* solution please 
post it. Also, my slug field is returning a tuple now. Still works as a 
slug but I wish I didn't have the |slug|None| format.




def insert_wiki_if_not_exists(table, s, f):
    """Used for auto creation of wiki pages for use with items already
       in your table. On any update to the table set the wiki pages will be 
create if it
       doesn't exist.
       To use:
       In model file after table definition enter lines:
       db.extracted_linear.wiki_page.required=False
       db.mytable._before_update.append(lambda s,f: \
                                    insert_wiki_if_not_exist(db.mytable, s, 
f))
       @see_also gluon.dal.RecordUpdater,
       @see_also 
http://web2py.com/books/default/chapter/29/06?search=_before_update
    """
    tablename=table._tablename
    table_wikis_set=db(db.wiki_page.tablename==tablename)
    for s_row in s.select():
        for row in table_wikis_set.select():
                id = s_row.id
                name = s_row.name or tablename + ' ' + id
                f['wiki_page']=db.wiki_page.update_or_insert(
                    db.wiki_page.title==name,
                    title=name,
                    slug=table_slug(name.strip()),
                    body='#ADD PLUGIN CODE TO DISPLAY GRAPHS HERE\n' + \
                             '##Use WIKI menu to edit or delete this page',
                    changelog='inserted after ' + tablename + ' table 
update',
                    tags=None,
                    tablename=tablename,
                    record_id=id)
                s.update_naive()
                return 


-- 



Reply via email to