My application is completely node ID driven. I have the following router
function:
def router():
if not len(request.args):
redirect(URL('addressbook','index'))
else:
id=int(request.args(0))
account=db(db.nodeAccount.nodeID==id).select(db.nodeAccount.ALL).first()
if account:
if account.statusID!=ACTIVE: # in that case the account is
blocked or under maintenance
redirect(URL('card',args=id))
elif account.accountID in(FREEACCOUNTID,BASICACCOUNTID):
redirect(URL('vcard',args=id))
elif account.accountID==BASICHUBACCOUNTID:
redirect(URL('vhub',args=id))
elif account.accountID
in(ADVANCEDACCOUNTID,PREMIUMACCOUNTID,ADVANCEDHUBACCOUNTID):
if not session[id]:
session[id]=Storage(id=id)
session[id].accountID=account.accountID
session[id].pluralID=account.pluralID
if account.accountID in(ADVANCEDACCOUNTID,PREMIUMACCOUNTID):
redirect(URL('site','index',args=id))
elif account.accountID==ADVANCEDHUBACCOUNTID:
redirect(URL('hub','index',args=id))
else:
redirect(URL('card',args=id))
return None
In the site.py and hub.py index function I store node's address and telecom
addresses, menu, hero unit and some other settings in the node's session[id]
At the moment this works fine. However, with the number of users increasing
I wonder whether this is the way to go, is there a limit to what you can
store in session?. Most settings change when the user manages a node's data
in the CMS.
Address and telecom have their own views: address.html and telecom.html,
which are included in other views. Maybe I'd better save address.html and
telecom.html in a folder static/node_ID/ when the user changed the data in
the CMS.
This is also the case for menu and hero unit.
I look forward to your advice.
Annet
--