Hi,

Thanks for your reply.

Here's some more code from the function:

if session.site:
    print session.site
if not session.site or session.site[0].nodeID!=session.id:
    
session.site=db((db.NodeNav.nodeID==session.id)&(db.NodeNav.navID==db.Nav.id)&\
    
(db.Nav.navbarID==SITENAVBARID)).select(db.NodeNav.ALL,orderby=db.Nav.position)
    if session.site:
        print session.site[0]
        # HERE I CONSTRUCT PART OF A MENU AND SOME UI COMPONENTS 
if session.about:
    print session.about
if not session.about or session.about[0].NodeNav['nodeID']!=session.id:
    
session.about=db((db.NodeNav.nodeID==session.id)&(db.NodeNav.navID==db.Nav.id)&\
    
(db.Nav.navbarID==ABOUTNAVBARID)).select(db.Nav.ALL,db.NodeNav.ALL,orderby=db.Nav.position)
    if session.about:
        print session.about[0].NodeNav
        # HERE I CONSTRUCT PART OF A MENU AND SOME UI COMPONENTS
return dict()


The first time I run the code the following lines are written to the 
console:

<Row {'frontend': True, 'navID': 1, 'update_record': <function <lambda> at 
0x15e26c30>, 'createdOn': datetime.datetime(2012, 7, 27, 8, 26, 22), 
'nodeID': 283, 'modifiedOn': datetime.datetime(2012, 7, 27, 8, 26, 22), 
'id': 39, 'delete_record': <function <lambda> at 0x15e265b0>, 'backend': 
True}>
<Row {'frontend': True, 'navID': 32, 'update_record': <function <lambda> at 
0x15b26d70>, 'createdOn': datetime.datetime(2012, 7, 27, 10, 18, 17), 
'nodeID': 283, 'modifiedOn': datetime.datetime(2012, 7, 27, 10, 18, 17), 
'id': 76, 'delete_record': <function <lambda> at 0x15b26830>, 'backend': 
True}>


The second time the code is run I get this:

[<Row {'frontend': True, 'navID': 1, 'modifiedOn': datetime.datetime(2012, 
7, 27, 8, 26, 22), 'createdOn': datetime.datetime(2012, 7, 27, 8, 26, 22), 
'backend': True, 'nodeID': 283, 'id': 39}>, <Row {'frontend': False, 
'navID': 2, 'modifiedOn': datetime.datetime(2012, 7, 27, 8, 27, 8), 
'createdOn': datetime.datetime(2012, 7, 27, 8, 27, 8), 'backend': True, 
'nodeID': 283, 'id': 40}>, ...]
<Row {'frontend': True, 'navID': 1, 'update_record': <function <lambda> at 
0x15c601f0>, 'createdOn': datetime.datetime(2012, 7, 27, 8, 26, 22), 
'nodeID': 283, 'modifiedOn': datetime.datetime(2012, 7, 27, 8, 26, 22), 
'id': 39, 'delete_record': <function <lambda> at 0x15c60f70>, 'backend': 
True}>
[<Row {}>, <Row {}>, <Row {}>, <Row {}>, <Row {}>]


So, apparently the join:

session.about=db((db.NodeNav.nodeID==session.id)&(db.NodeNav.navID==db.Nav.id)&\
(db.Nav.navbarID==ABOUTNAVBARID)).select(db.Nav.ALL,db.NodeNav.ALL,orderby=db.Nav.position)

doesn't survive being stored in session?

I hope there is way to get passed this, while my whole application depends 
on this function:




def index():
    if request.args(0)!=session.id or not len(request.args):
        redirect(URL('addressbook','router',args=request.args(0)))
    else:
        if session.site:
            print session.site
        if not session.site or session.site[0].nodeID!=session.id:
            
session.site_menu=session.herotext=session.hero=session.homepage=session.promounit=session.relatednames=\
            
session.socialmedia=session.googlemaps=session.theme=session.customtheme=[]
            session.container=session.navbarfixedtop=False
            
session.site=db((db.NodeNav.nodeID==session.id)&(db.NodeNav.navID==db.Nav.id)&\
            
(db.Nav.navbarID==SITENAVBARID)).select(db.NodeNav.ALL,orderby=db.Nav.position)
            if session.site:
                print session.site[0]
                
session.site_menu=[['home',False,URL('site','index',args=session.id)]]
                for s in session.site:
                    if s.navID==4 and s.frontend:
                        
session.herotext=db(db.HeroUnitText.nodeID==session.id).select(db.HeroUnitText.ALL).first()
                    if s.navID==5 and s.frontend:
                        
session.hero=db(db.HeroUnit.nodeID==session.id).select(db.HeroUnit.ALL).first()
                    if s.navID==6 and s.frontend:
                        
session.homepage=db((db.AboutText.nodeID==session.id)&(db.AboutText.aboutID==HOMEPAGEID))\
                        .select(db.AboutText.ALL).first()
                        if not session.homepage:
                            response.flash='Geen home page tekst 
beschikbaar'
                            alert='alert-info' # to set alert class for 
flash
                    if s.navID==7 and s.frontend:
                        session.promounit=True
                    if s.navID==8 and s.frontend:
                        
session.relatednames=db((db.NodeRelatedNames.nodeID==session.id)&\
                        
(db.NodeRelatedNames.relatedID==db.Organization.nodeID)&(db.NodeRelatedNames.relatedID==db.Address.nodeID)&\
                        (db.Address.addrType==PHYSICALADDR))\
                        
.select(db.Organization.nodeID,db.Organization.name,db.Address.ALL,orderby=db.Organization.name)
                    if s.navID==9 and s.frontend:
                        
session.socialmedia=db((db.NodeSocialMedia.nodeID==session.id)&\
                        
(db.NodeSocialMedia.socialMediaID==db.SocialMedia.id))\
                        
.select(db.NodeSocialMedia.ALL,db.SocialMedia.ALL,orderby=db.SocialMedia.name)
                    if s.navID==10 and s.frontend:
                        session.googlemaps=True
                    if s.navID==12 and s.frontend:
                        session.theme=db((db.NodeTheme.nodeID==session.id)&\
                        
(db.NodeTheme.themeID==db.Theme.id)).select(db.Theme.ALL).first()
                        # session because theme results in error in 
layout.html
                        if session.theme:
                            session.container=session.theme.container
                            
session.navbarfixedtop=session.theme.navbarFixedTop
                    if s.navID==13 and s.frontend:
                        
session.customtheme=db(db.CustomTheme.nodeID==session.id).select(db.CustomTheme.ALL).first()
                        if session.customtheme:
                            session.container=session.customtheme.container
                            
session.navbarfixedtop=session.customtheme.navbarFixedTop
        if session.about:
            print session.about
        if not session.about or 
session.about[0].NodeNav['nodeID']!=session.id:
            session.about_dropdown=[]
            
session.about=db((db.NodeNav.nodeID==session.id)&(db.NodeNav.navID==db.Nav.id)&\
            
(db.Nav.navbarID==ABOUTNAVBARID)).select(db.Nav.ALL,db.NodeNav.ALL,orderby=db.Nav.position)
            if session.about:
                print session.about[0].NodeNav
                for a in session.about:
                    if a.Nav.id==32 and a.NodeNav.frontend:
                        session.site_menu.append([T('about'),False,'#'])
                    else:
                        
session.about_dropdown.append([T(a.Nav.name),False,URL(a.Nav.frontendcontroller,a.Nav.function,args=session.id)])
        if not session.cal or session.cal[0].NodeNav['nodeID']!=session.id:
            session.calendar_dropdown=session.hours=session.promohomepage=[]
            session.tab_1=session.tab_2=session.tab_3=False
            
session.cal=db((db.NodeNav.nodeID==session.id)&(db.NodeNav.navID==db.Nav.id)&\
            
(db.Nav.navbarID==CALENDARNAVBARID)).select(db.Nav.ALL,db.NodeNav.ALL,orderby=db.Nav.position)
            if session.cal:
                for c in session.cal:
                    if c.Nav.id==41 and c.NodeNav.frontend:
                        session.site_menu.append([T('calendar'),False,'#'])
                    if c.Nav.id==42 and c.NodeNav.frontend:
                        calendarDropdown(c)
                        session.openinghours=True
                        weekday=request.now.weekday()+1
                        
session.hours=db((db.OpeningHours.nodeID==session.id)&(db.OpeningHours.dayID==weekday))\
                        
.select(db.OpeningHours.ALL,orderby=db.OpeningHours.startTime)
                    else:
                        response.flash_hours='Geen informatie over 
openingstijden beschikbaar'
                    if c.Nav.id==43 and c.NodeNav.frontend:
                        calendarDropdown(c)
                        session.tab_2=True
                    if c.Nav.id==44 and c.NodeNav.frontend:
                        calendarDropdown(c)
                        session.tab_1=True
                    if c.Nav.id==45 and c.NodeNav.frontend:
                        calendarDropdown(c)
                        session.tab_3=True
                if session.tab_1:
                    tab='tab-1'
                elif session.tab_2:
                    tab='tab-2'
                elif session.tab_3:
                    tab='tab-3'
                else:
                    session.promohomepage=generatePromoUnit(HOMEPAGEID)
                    if not session.promohomepage:
                        response.flash_promounits='Geen promo units 
beschikbaar'
        response.view='site/index.html'
        return dict(tab=tab)



Kind regards,

Annet

-- 



Reply via email to