Beispiel #1
0
def drilldown_key_count( slug, obj_type ):
    
    #if slug.startswith(obj_type):
    #    slug = slug[len(obj_type+'-'):]
    
    try:
        if _search_drilldown_cache.has_key(slug) \
            and obj_type in _search_drilldown_cache.get_key_data(slug).keys():
            
            return  _search_drilldown_cache.get_key_data(slug)[obj_type][slug]
        else:
            return _search_drilldown_cache.get_object(obj_type, slug)['count']
    except:
        traceback.print_exc()
        return '?'
Beispiel #2
0
def drilldown_key( slug, obj_type ):
    label = u''
    try:
        slugs = slug.split('/')
        
        if len(slugs) == 1:
            
            if _search_drilldown_cache.has_object(obj_type, slug):
                label = _search_drilldown_cache.get_object(obj_type, slug)['data']['label']
                label = label.capitalize()
            else:
                label = slug.capitalize()
        else:
            
            if obj_type in ('admin3','admin2'):
                label = _search_drilldown_cache.get_object(obj_type, slugs[0])['data']['label']
            elif obj_type in ('label','slug'):
                label = _search_drilldown_cache.get_object(obj_type, slugs[1])['data']['label']
            else:
                label = slug.capitalize()
    
            label = label.capitalize()
    except:
        label = slug.capitalize()
    
    if _search_drilldown_cache.has_key(slug):
        label += ' ('+_search_drilldown_cache.get_key_data(slug)[obj_type]+')'
    
    return label
Beispiel #3
0
def drilldown_item(context, item):
    
    
    # for each dept, get top town
    data = _search_drilldown_cache.get_key_data(item.label)
    
    for key in data:
        context[ slugify(key).replace('-','_') ] = data[key]
    
    
    return context
Beispiel #4
0
def drilldown_france_top_towns(context):
    
    # for each dept, get top town
    _data = _search_drilldown_cache.get_key_data('france')
    
    top_towns = {}
    
    for dept in _data['admin2'].keys():
        
        dept_data = _search_drilldown_cache.get_key_data(dept)
        
        if dept == 'paris':
            top_towns[dept] = drilldown_key_count(dept,'admin2')
        else:
            # find top town iun departement
            top_dept_count = 0
            top_dept_town = None
            
            for town, count in dept_data['admin3'].items():
                if count > top_dept_count:
                    top_dept_count = count
                    top_dept_town = town
            
            top_towns[top_dept_town] = top_dept_count
    
    # sort top_towns
    # sort town list by count
    sorted_dict = SortedDict()
    town_list = sorted(top_towns.iteritems(), key=lambda (k,v): (v,k), reverse=True)[0:20]
    for kv in town_list:
        sorted_dict[kv[0]] = kv[1]
    
    context['top_france_town_list'] = sorted_dict
    
    
    return context