diff -r e6675a5b2195 -r a46461f8a74f web/hdalab/views/ajax.py --- a/web/hdalab/views/ajax.py Thu Oct 11 15:49:57 2012 +0200 +++ b/web/hdalab/views/ajax.py Thu Oct 11 18:22:45 2012 +0200 @@ -49,21 +49,21 @@ tags = Tag.objects.filter(wp_categories__wp_category = category).distinct() taglabels = [k for k in dict([(t.label,t.label) for t in tags])] resobj = { - 'category': category.label, - 'tags': [], + 'label': category.label, + 'themes': [], 'contents': [] - } + } for label in taglabels: if label == catlabel: globtags[label] = {'level': level, 'access': resobj } else: tag_in_list = {'label' : label, 'contents': []} - resobj['tags'].append(tag_in_list) + resobj['themes'].append(tag_in_list) globtags[label] = {'level': (level + 1), 'access': tag_in_list } if level < max_level: subcats = WpCategory.objects.filter(parent_categories__parent_category = category) - resobj['sub_categories'] = [subcat(subcats[i], globtags, level + 1, max_level ) for i in range(len(subcats))] + resobj['themes'] += [subcat(subcats[i], globtags, level + 1, max_level ) for i in range(len(subcats))] return resobj def cleantags(category): @@ -71,21 +71,15 @@ del category['contents'] if category.has_key('contents'): category['contents'] = sorted(category['contents'], key=lambda content: -content['score']) - if category.has_key('tags'): - category['tags'] = [cleantags(tag) for tag in category['tags'] if len(tag['contents'])] - if len(category['tags']) == 0: - del category['tags'] - else: - category['tags'] = sorted(category['tags'], key=lambda tag: tag['label']) - if category.has_key('sub_categories'): - sub_cats = [] - for sub_cat in category['sub_categories']: - cat = cleantags(sub_cat) - if cat.has_key('tags') or cat.has_key('sub_categories') or cat.has_key('contents'): - sub_cats.append(cat) - category['sub_categories'] = sorted(sub_cats, key=lambda cat: cat['category']) - if len(category['sub_categories']) == 0: - del category['sub_categories'] + if category.has_key('themes'): + themes = [] + for theme in category['themes']: + clean_theme = cleantags(theme) + if clean_theme.has_key('themes') or clean_theme.has_key('contents'): + themes.append(clean_theme) + category['themes'] = sorted(themes, key=lambda cat: cat['label']) + if len(category['themes']) == 0: + del category['themes'] return category def cattree(request): @@ -434,15 +428,15 @@ contents = sorted(contents, key=lambda e: -e['score']) - res = { 'category': label } + res = { 'label': label } if len(contents): res['contents'] = contents if len(sub): subcats = [subtree(st) for st in sub] - subcats = [sc for sc in subcats if len(sc.get('contents',[])) or len(sc.get('sub_categories',[]))] - res['sub_categories'] = subcats + subcats = [sc for sc in subcats if len(sc.get('contents',[])) or len(sc.get('themes',[]))] + res['themes'] = subcats return res