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
--