def index():
    """
    This controller shows the favourite sensations for the user.
    It also shows some cross selling options based on the favourites.
    """
    
    # Set welcome cookie
    #if session.cookies_accepted:
    welcome_cookie(db, request)
    
    #########################################################################
    ## Check favourites for the current user
    #########################################################################
    # Retrieve 'basket' cookie if available and query number of favourites
    if request.cookies.has_key('basket'):
        
        cookie = request.cookies['basket'].value
        
        query = db.favourite.basket == cookie
        
    # Retrieve 'welcome' cookie if available and query number of favourites
    elif request.cookies.has_key('welcome'):
        
        cookie = request.cookies['welcome'].value
        
        query = db.favourite.welcome == cookie
        
    # Get user favourites from database
    try:
        query
        query &= db.favourite.is_favourite == True
        selected_fav = db(query).select(db.favourite.service_id, distinct=True)
    except:
        selected_fav = None
        
    if selected_fav:
        # Get favourite services data
        query1 = db.service.enabled == True
        for idx,favourite in enumerate(selected_fav):
            if idx == 0: query = db.service.id == favourite.service_id
            else: query |= db.service.id == favourite.service_id
           
        if query: services = db(query1 & query).select(orderby=~db.service.ranking | ~db.service.id)
        else: services = None
    else:
        services = None
    
    if services:
        # Determine for each service if it is a fixed price service
        determine_price_mode(services)
        
        for service in services:
            service.is_favourite = True
    
        # Get cross-selling elements
        x_sell_elems = get_cross_selling(services)
    else:
        x_sell_elems = None
    
    return dict(services=services, x_sell=x_sell_elems)
Beispiel #2
0
def index():
    """
    This page wellcomes the first time visitor and suggests him to enter the site.
    """
    #if session.cookies_accepted:
    redir = welcome_cookie(db, request)
    
    #if redir: redirect(URL('intro'))
    
    print request.env.http_accept_language
    print T.accepted_language
    
    #set_ranking(db)
    
    if request.env.http_referer:
        print request.env.http_referer
        #redirect(request.env.http_referer)
    
    return dict()
Beispiel #3
0
def intro():
    """
    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 simply replace the two lines below with:
    return auth.wiki()
    """
    #if session.cookies_accepted:
    welcome_cookie(db, request)
    
    # Get number of sensations in DB
    sens_nr = db(db.service.enabled==True).count()

    # get slide presentation data
    
    presentation = db(db.carousel).select(orderby=db.carousel.slide_nr)

    # get main page options data

    #options = db(db.main_page).select(orderby=db.main_page.field_nr | db.main_page.section)
    
    # Get lifestyles data
    
    lifestyles = db(db.intro_lifestyles).select(db.intro_lifestyles.ALL, orderby=db.intro_lifestyles.field_nr)
    
    # Get number of sensations in DB for each lifestyle
    for lifestyle in lifestyles:
        query  = db.service.enabled==True
        query &= db.service.tourism_segment_id.contains(lifestyle.tourism_segment_id[0])
        lifestyle.segm_sens = db(query).count()
    
    
    # Get regions data
    
    regions = db(db.intro_regions).select(db.intro_regions.ALL, orderby=db.intro_regions.field_nr)
    
    # Get number of sensations in DB for each region and list of Region names to show in form
    region_list = []
    for region in regions:
        if region.show_level != 'Hide':
            region_list.append(T(region.region_id[0].name))
        query  = db.service.enabled==True
        query &= db.service.region_id.contains(region.region_id[0])
        region.reg_sens = db(query).count()
    
    # Get Be Personal data
    
    be_personal = db(db.intro_be_personal).select(db.intro_be_personal.ALL)
    
    # Build form
    tourism_regions = [T('All Regions')] + region_list
    #tourism_regions = ['All Regions'] + [region.name for region in db().select(db.region.name, orderby=db.region.name)]

    tourism_segments = [T('All Lifestyles')] + [T(segment.segment) for segment in db().select(db.tourism_segment.segment, orderby=db.tourism_segment.segment)]
    
    
    form = FORM(
                
        SELECT(*tourism_regions, _name='quick_search_regions', _class="quick-search-lifestyles cs-select cs-select-sm"),

        SELECT(*tourism_segments, _name='quick_search_lifestyle', _class="quick-search-regions cs-select cs-select-sm"),
        
        INPUT(_type='submit', _class='quick-search-submit btn btn-gray', _value=T('GO'), _name='quick_search'),
                
        _id="qsrch_form",
    )
    
    if form.process().accepted:
        
        redirect(URL('sensations', 'index', vars=dict(lifestyle=form.vars.quick_search_lifestyle, region=form.vars.quick_search_regions)))
    
        
    return dict(presentation=presentation, lifestyles=lifestyles, regions=regions, 
                be_personal=be_personal, sens_nr=sens_nr, form=form)