Can you please try the nightly build? I think this problem may be related to a nasty issue with URL that was fixed last week. In fact I cannot reproduce the problem with trunk, using your code.
Massimo On Wednesday, 19 September 2012 18:33:16 UTC-5, JoeCodeswell wrote: > > I have gone one more step in trying to isolate the problem. Given the > existence of models/[menu.py, db.py] in the previous post, when > default-fail.py is copied to controllers/default.py, the sub-menus DO NOT > show up when hovered over. > > However, when default-welcome209.py is copied to controllers/default.py, > the sub-menus DO INDEED show up when hovered over. > > Here is default-fail.py > # -*- coding: utf-8 -*- > > #ContactUs > def update_t_contactus00(): > return dict(form=crud.update(db.t_contactus00, request.args(0))) > > #Appointment > def update_t_appointment00(): > return dict(form=crud.update(db.t_appointment00, request.args(0))) > > indexMM = '''## Stock Forms for Web2py > ### Background > While using the web2py App Wizard, I got frustrated at needing to define > the model for a > "Contact Us" form for the *90 millionth time*. So, i made a suggestion in > code.google/p/web2py > in Issue 982. **Massimo liked the idea and said, "If you have done work in > this direction feel free to post a patch."** > > ''' > > def index(): > """ > example action using the internationalization operator T and flash > rendered by views/default/index.html or views/generic.html > > if you need a simple wiki simple replace the two lines below with: > return auth.wiki() > """ > #response.flash = T("Welcome to web2py!") > #return dict(message=T('Hello World')) > return dict(message=MARKMIN(indexMM)) > > > Here is default-welcome209.py > > # -*- coding: utf-8 -*- > # this file is released under public domain and you can use without > limitations > > ######################################################################### > ## This is a samples controller > ## - index is the default action of any application > ## - user is required for authentication and authorization > ## - download is for downloading files uploaded in the db (does streaming) > ## - call exposes all registered services (none by default) > ######################################################################### > > def index(): > """ > example action using the internationalization operator T and flash > rendered by views/default/index.html or views/generic.html > > if you need a simple wiki simple replace the two lines below with: > return auth.wiki() > """ > response.flash = T("Welcome to web2py!") > return dict(message=T('Hello World')) > > def user(): > """ > exposes: > http://..../[app]/default/user/login > http://..../[app]/default/user/logout > http://..../[app]/default/user/register > http://..../[app]/default/user/profile > http://..../[app]/default/user/retrieve_password > http://..../[app]/default/user/change_password > use @auth.requires_login() > @auth.requires_membership('group name') > @auth.requires_permission('read','table name',record_id) > to decorate functions that need access control > """ > return dict(form=auth()) > > > def download(): > """ > allows downloading of uploaded files > http://..../[app]/default/download/[filename] > """ > return response.download(request,db) > > > def call(): > """ > exposes services. for example: > http://..../[app]/default/call/jsonrpc > decorate with @services.jsonrpc the functions to expose > supports xml, json, xmlrpc, jsonrpc, amfrpc, rss, csv > """ > return service() > > > @auth.requires_signature() > def data(): > """ > http://..../[app]/default/data/tables > http://..../[app]/default/data/create/[table] > http://..../[app]/default/data/read/[table]/[id] > http://..../[app]/default/data/update/[table]/[id] > http://..../[app]/default/data/delete/[table]/[id] > http://..../[app]/default/data/select/[table] > http://..../[app]/default/data/search/[table] > but URLs must be signed, i.e. linked with > A('table',_href=URL('data/tables',user_signature=True)) > or with the signed load operator > > LOAD('default','data.load',args='tables',ajax=True,user_signature=True) > """ > return dict(form=crud()) > > > Thanks for the help. > > Love and peace, > > Joe > --