diff --git a/i2p2www/anonbib/views.py b/i2p2www/anonbib/views.py index 1d4aac94..bda6d579 100644 --- a/i2p2www/anonbib/views.py +++ b/i2p2www/anonbib/views.py @@ -3,12 +3,28 @@ from flask import render_template from i2p2www import ANONBIB_CFG, ANONBIB_FILE from i2p2www.anonbib import BibTeX, config -def papers_list(): +def papers_list(tag=None, choice=None): config.load(ANONBIB_CFG) rbib = BibTeX.parseFile(ANONBIB_FILE) - rbib = [ b for b in rbib.entries ] - rbib = BibTeX.sortEntriesByDate(rbib) - rbib = BibTeX.splitSortedEntriesBy(rbib, 'year') + if tag: + rbib = [ b for b in rbib.entries if tag in b.get('www_tags', '').split() ] + else: + rbib = rbib.entries + + if choice == 'topic': + rbib = BibTeX.sortEntriesBy(rbib, 'www_section', 'ZZZZZZZZZZZZZZ') + rbib = BibTeX.splitSortedEntriesBy(rbib, 'www_section') + if rbib[-1][0].startswith(""): + rbib[-1] = ("Miscellaneous", rbib[-1][1]) + + rbib = [ (s, BibTeX.sortEntriesByDate(ents)) + for s, ents in rbib + ] + elif choice == 'author': + rbib, url_map = BibTeX.splitEntriesByAuthor(rbib) + else: + rbib = BibTeX.sortEntriesByDate(rbib) + rbib = BibTeX.splitSortedEntriesBy(rbib, 'year') bib = {} bib['title'] = 'Papers on I2P' @@ -27,6 +43,4 @@ def papers_list(): sections.append(s) bib['sections'] = sections - print bib['sections'] - return render_template('papers/list.html', bib=bib) diff --git a/i2p2www/urls.py b/i2p2www/urls.py index 3bacf959..5117a6d1 100644 --- a/i2p2www/urls.py +++ b/i2p2www/urls.py @@ -39,6 +39,9 @@ url('//', 'views.site_show', defaults={'page': 'index'}) url('//', 'views.site_show') url('//papers/', 'anonbib.views.papers_list') +url('//papers/by-', 'anonbib.views.papers_list') +url('//papers/tag/', 'anonbib.views.papers_list') +url('//papers/tag//by-', 'anonbib.views.papers_list') url('//blog/', 'blog.views.blog_index', defaults={'page': 1}) url('//blog/page/', 'blog.views.blog_index')